{"version":3,"file":"vw-oneform-feature-app.umd.js","mappings":"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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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MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,QACNyP,MAAO,QAER,CACCzP,KAAM,MACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,MACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,aAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,aAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,kBAER,CACCzP,KAAM,oBACNyP,MAAO,MAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,MAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,oCAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,aAER,CACCzP,KAAM,eACNyP,MAAO,YAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,2CACNyP,MAAO,QAER,CACCzP,KAAM,0CACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,UAER,CACCzP,KAAM,gCACNyP,MAAO,MAER,CACCzP,KAAM,gBACNyP,MAAO,aAER,CACCzP,KAAM,iBACNyP,MAAO,YAER,CACCzP,KAAM,oBACNyP,MAAO,aAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uCACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,uCACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,SC5pEI0gF,EAAqB92C,GAC1B,CACN,CACCr5C,KAAM,KACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MACC,mKAEF,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,OACNyP,MAAO,sCAER,CACCzP,KAAM,cACNyP,MAAO4pC,GAAc,uBAEtB,CACCr5C,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,cAER,CACCzP,KAAM,sBACNyP,MAAO,4BAER,CACCzP,KAAM,gBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,WAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,SAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,cAER,CACCzP,KAAM,qBACNyP,MAAO,gCAER,CACCzP,KAAM,eACNyP,MAAO,iBAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,aAER,CACCzP,KAAM,WACNyP,MAAO,0BAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,MAER,CACCzP,KAAM,uBACNyP,MAAO,sBAER,CACCzP,KAAM,0BACNyP,MAAO,6BAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,UCzJG8gF,EAAkB,CAC9B,CACCvwF,KAAM,KACNyP,MAAO,SAER,CACCzP,KAAM,aACNyP,MACC,+IAEF,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,OACNyP,MAAO,gBAER,CACCzP,KAAM,cACNyP,MAAO,gCAER,CACCzP,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,wCACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,KAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,qBAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,qBAER,CACCzP,KAAM,qBACNyP,MAAO,MAER,CACCzP,KAAM,qBACNyP,MAAO,cAER,CACCzP,KAAM,eACNyP,MAAO,MAER,CACCzP,KAAM,6BACNyP,MAAO,MAER,CACCzP,KAAM,4BACNyP,MAAO,KAER,CACCzP,KAAM,0BACNyP,MAAO,sBAER,CACCzP,KAAM,uBACNyP,MAAO,KAER,CACCzP,KAAM,gBACNyP,MAAO,sBAER,CACCzP,KAAM,0BACNyP,MAAO,sBAER,CACCzP,KAAM,wBACNyP,MAAO,sBAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,yBAER,CACCzP,KAAM,yBACNyP,MAAO,cAER,CACCzP,KAAM,eACNyP,MAAO,cAER,CACCzP,KAAM,kBACNyP,MAAO,cAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,gBAER,CACCzP,KAAM,iBACNyP,MAAO,uBCpRIwgF,EAAsBA,CAACY,EAAyBx3C,IACrD,CACN,CACCr5C,KAAM,KACNyP,MAAO,UAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,KACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,OACNyP,MAAO,aAER,CACCzP,KAAM,mBACNyP,MAAO,gBAER,CACCzP,KAAM,WACNyP,MAAO,iBAER,CACCzP,KAAM,YACNyP,MAAO,kBAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,cACNyP,MAAO4pC,GAAc,uBAEtB,CACCr5C,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,uBAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,uBAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,sBAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,UACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,KAER,CACCzP,KAAM,uBACNyP,MAAO,6BAER,CACCzP,KAAM,SACNyP,MAAO,SAER,CACCzP,KAAM,UACNyP,MAAOohF,EAAgB,aAAe,WAEvC,CACC7wF,KAAM,sBACNyP,MAAO,aAER,CACCzP,KAAM,cACNyP,MAAO,WAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,iBAER,CACCzP,KAAM,kBACNyP,MAAO,6BAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,aAER,CACCzP,KAAM,8BACNyP,MAAO,UAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,4BAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uCACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,uCACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,SAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,SAER,CACCzP,KAAM,UACNyP,MAAO,SAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,SCpyBG4gF,EAAwBP,GAC7B,CACN,CACC9vF,KAAM,KACNyP,MAAO,WAER,CACCzP,KAAM,aACNyP,MACC,iJAEF,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,OACNyP,MAAO,mBAER,CACCzP,KAAM,cACNyP,MAAO,gCAER,CACCzP,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,YACNyP,MAAO,UAER,CACCzP,KAAM,wBACNyP,MAAO,KAER,CACCzP,KAAM,yBACNyP,MAAO,KAER,CACCzP,KAAM,+BACNyP,MAAOqgF,EAAc,WAAa,qBAEnC,CACC9vF,KAAM,qBACNyP,MAAO,cAER,CACCzP,KAAM,WACNyP,MAAOqgF,EAAc,oBAAsB,qBAE5C,CACC9vF,KAAM,UACNyP,MAAOqgF,EAAc,YAAc,YAEpC,CACC9vF,KAAM,eACNyP,MAAO,gBAER,CACCzP,KAAM,2BACNyP,MAAO,IAER,CACCzP,KAAM,2BACNyP,MAAO,KAER,CACCzP,KAAM,sBACNyP,MAAO,KAER,CACCzP,KAAM,gBACNyP,MAAOqgF,EAAc,OAAS,QAE/B,CACC9vF,KAAM,kBACNyP,MAAO,WAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,KAER,CACCzP,KAAM,kBACNyP,MAAO,mBAER,CACCzP,KAAM,eACNyP,MAAO,MAER,CACCzP,KAAM,kBACNyP,MAAOqgF,EAAc,QAAU,SAEhC,CACC9vF,KAAM,sBACNyP,MAAO,cAER,CACCzP,KAAM,sBACNyP,MAAO,gBAER,CACCzP,KAAM,gBACNyP,MAAO,sBAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAOqgF,EAAc,QAAU,SAEhC,CACC9vF,KAAM,6BACNyP,MAAO,MAER,CACCzP,KAAM,6BACNyP,MAAO,KAER,CACCzP,KAAM,8BACNyP,MAAO,MCrLGygF,EAAe72C,GACpB,CACN,CACCr5C,KAAM,KACNyP,MAAO,QAER,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,aAER,CACCzP,KAAM,WACNyP,MAAO,aAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,aAER,CACCzP,KAAM,QACNyP,MAAO,uBAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,sBAKR,CACCzP,KAAM,aACNyP,MACC,+IAEF,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,uBAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,QACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MACC,wKAEF,CACCzP,KAAM,QACNyP,MAAO,QAER,CACCzP,KAAM,MACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,6CAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,qBAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,OAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,cACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO4pC,GAAc,gCAEtB,CACCr5C,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,qBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,cAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,iCACNyP,MAAO,MAER,CACCzP,KAAM,iCACNyP,MAAO,SAER,CACCzP,KAAM,WACNyP,MAAO,cAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,8BAER,CACCzP,KAAM,iBACNyP,MAAO,sBAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,gBAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,aAER,CACCzP,KAAM,0BACNyP,MAAO,iBAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,aAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,WAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,cAER,CACCzP,KAAM,kCACNyP,MAAO,uBAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,2CACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,6BAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,0BACNyP,MAAO,OAER,CACCzP,KAAM,4BACNyP,MAAO,WAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,gCAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,gCAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,sBAER,CACCzP,KAAM,4BACNyP,MAAO,wBAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,SAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,SAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,0CACNyP,MAAO,SAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,UAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,uBAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,gBAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,6CACNyP,MAAO,QAER,CACCzP,KAAM,4CACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,sBAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,+BAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,OAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SC77BGsgF,EAAgBA,CAACc,EAAyBx3C,IAC/C,CACN,CACCr5C,KAAM,KACNyP,MAAO,UAER,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,WACNyP,MAAO,gBAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,kCAER,CACCzP,KAAM,oBACNyP,MAAO,aAER,CACCzP,KAAM,sBACNyP,MAAO,wCAER,CACCzP,KAAM,uBACNyP,MACC,wLAKF,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,MAER,CACCzP,KAAM,aACNyP,MACC,qJAGF,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,sBAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MACC,wKAEF,CACCzP,KAAM,iBACNyP,MACC,uKAEF,CACCzP,KAAM,WACNyP,MAAO,6CAER,CACCzP,KAAM,QACNyP,MAAO,QAER,CACCzP,KAAM,MACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,MACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,OAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,cACNyP,MAAO4pC,GAAc,gCAEtB,CACCr5C,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,qBACNyP,MAAO,gCAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,sBAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MACC,wKAEF,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,sBAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,qCACNyP,MAAO,mBAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,cAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,8FAER,CACCzP,KAAM,qBACNyP,MAAO,cAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,uBAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,SAER,CACCzP,KAAM,yCACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,2BAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,aAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,OAER,CACCzP,KAAM,mCACNyP,MAAO,OAER,CACCzP,KAAM,qCACNyP,MAAO,OAER,CACCzP,KAAM,kCACNyP,MAAO,OAER,CACCzP,KAAM,4BACNyP,MAAO,OAER,CACCzP,KAAM,kCACNyP,MAAO,OAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,KAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,KAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,UAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,cAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,mCACNyP,MAAO,sDAER,CACCzP,KAAM,gBACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,MAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,sBAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,aAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oCACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,4CACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,SAER,CACCzP,KAAM,kCACNyP,MAAO,SAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,kCACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,SAER,CACCzP,KAAM,qCACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,uCACNyP,MAAO,QAER,CACCzP,KAAM,6CACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,SAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,SC79BG6gF,EAAe,CAC3B,CACCtwF,KAAM,KACNyP,MAAO,SAER,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,0BACNyP,MAAO,cAER,CACCzP,KAAM,4BACNyP,MAAO,cAKR,CACCzP,KAAM,aACNyP,MACC,iJAEF,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,sBAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,sBAER,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,eACNyP,MAAO,sBAER,CACCzP,KAAM,gBACNyP,MAAO,cAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,OACNyP,MAAO,wBAER,CACCzP,KAAM,SACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,OAER,CACCzP,KAAM,cACNyP,MAAO,YAER,CACCzP,KAAM,cACNyP,MAAO,OAER,CACCzP,KAAM,cACNyP,MAAO,gCAER,CACCzP,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,qBAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,wCACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,KAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,YAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,SAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,sBAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SCviBI2gF,EAAkBN,GACvB,CACN,CACC9vF,KAAM,KACNyP,MAAO,WAER,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,OACNyP,MAAO,qBAER,CACCzP,KAAM,qBACNyP,MAAOqgF,EAAc,OAAS,QAE/B,CACC9vF,KAAM,4BACNyP,MAAO,YAKR,CACCzP,KAAM,aACNyP,MACC,2JAEF,CACCzP,KAAM,UACNyP,MAAO,sBAER,CACCzP,KAAM,YACNyP,MAAO,SAER,CACCzP,KAAM,gBACNyP,MAAOqgF,EAAc,OAAS,QAE/B,CACC9vF,KAAM,kBACNyP,MAAO,wBAER,CACCzP,KAAM,kBACNyP,MAAO,OAER,CACCzP,KAAM,cACNyP,MAAO,gCAER,CACCzP,KAAM,cACNyP,MAAO,sBAER,CACCzP,KAAM,mBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,sBAER,CACCzP,KAAM,iBACNyP,MAAO,gCAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,aACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,QAER,CACCzP,KAAM,YACNyP,MAAO,YAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,UACNyP,MAAO,QAER,CACCzP,KAAM,cACNyP,MAAO,UAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,WACNyP,MAAO,QAER,CACCzP,KAAM,iBACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,cAER,CACCzP,KAAM,mBACNyP,MAAO,8FAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,SAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,mCACNyP,MAAO,QAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,uBACNyP,MAAO,MAER,CACCzP,KAAM,uBACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,KAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,6BACNyP,MAAO,gBAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAOqgF,EAAc,QAAU,QAEhC,CACC9vF,KAAM,mBACNyP,MAAO,gBAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,mBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,+BACNyP,MAAO,KAER,CACCzP,KAAM,gCACNyP,MAAO,SAER,CACCzP,KAAM,8BACNyP,MAAO,OAER,CACCzP,KAAM,0BACNyP,MAAO,OAER,CACCzP,KAAM,8BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,KAER,CACCzP,KAAM,8BACNyP,MAAO,WAER,CACCzP,KAAM,uBACNyP,MAAO,+BAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAOqgF,EAAc,QAAU,SAEhC,CACC9vF,KAAM,eACNyP,MAAO,SAER,CACCzP,KAAM,uBACNyP,MAAO,oBAER,CACCzP,KAAM,yBACNyP,MAAO,KAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,qBACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,KAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,8CACNyP,MAAO,cAER,CACCzP,KAAM,iBACNyP,MAAO,SAER,CACCzP,KAAM,sBACNyP,MAAOqgF,EAAc,QAAU,SAEhC,CACC9vF,KAAM,mBACNyP,MAAO,QAER,CACCzP,KAAM,yBACNyP,MAAO,WAER,CACCzP,KAAM,yBACNyP,MAAO,QAER,CACCzP,KAAM,4CACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,gCACNyP,MAAO,OAER,CACCzP,KAAM,2BACNyP,MAAO,QAER,CACCzP,KAAM,eACNyP,MAAO,QAER,CACCzP,KAAM,yCACNyP,MAAO,cAER,CACCzP,KAAM,iCACNyP,MAAO,cAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,kBACNyP,MAAO,QAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,QAER,CACCzP,KAAM,wBACNyP,MAAO,SAER,CACCzP,KAAM,yBACNyP,MAAOqgF,EAAc,QAAU,SAEhC,CACC9vF,KAAM,wBACNyP,MAAO,QAER,CACCzP,KAAM,sBACNyP,MAAO,SAER,CACCzP,KAAM,iCACNyP,MAAO,QAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,4BACNyP,MAAO,OAER,CACCzP,KAAM,gCACNyP,MAAO,QAER,CACCzP,KAAM,iCACNyP,MAAO,OAER,CACCzP,KAAM,wBACNyP,MAAO,UAER,CACCzP,KAAM,0BACNyP,MAAO,QAER,CACCzP,KAAM,6BACNyP,MAAO,QAER,CACCzP,KAAM,gBACNyP,MAAO,UCxbG+gF,EAAgB,CAC5B,CACCxwF,KAAM,KACNyP,MAAO,UAER,CACCzP,KAAM,KACNyP,MAAO,sBAER,CACCzP,KAAM,yBACNyP,MAAO,WAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,cACNyP,MAAO,aAER,CACCzP,KAAM,+BACNyP,MAAO,SAER,CACCzP,KAAM,iBACNyP,MAAO,2BAER,CACCzP,KAAM,qBACNyP,MAAO,SAER,CACCzP,KAAM,eACNyP,MAAO,yBAER,CACCzP,KAAM,mBACNyP,MAAO,aAER,CACCzP,KAAM,oBACNyP,MAAO,YAER,CACCzP,KAAM,oBACNyP,MAAO,KAKR,CACCzP,KAAM,oBACNyP,MAAO,KAER,CACCzP,KAAM,gBACNyP,MAAO,2BAER,CACCzP,KAAM,oBACNyP,MAAO,SAER,CACCzP,KAAM,cACNyP,MAAO,yBAER,CACCzP,KAAM,mBACNyP,MAAO,KAER,CACCzP,KAAM,kBACNyP,MAAO,aAER,CACCzP,KAAM,mBACNyP,MAAO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xK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,YACzBzxK,IAAAA,cAACwxK,EAAa,CAACC,UAAU,c,eClcjC,MA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CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,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,OAAO,UAAY,CAAC,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,IAAI,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,yDAAyD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,wBAAwB,WAAW,CAAC,oBAAoB,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yDAAyD,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gCAAgC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,WAAW,SAAS,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,uCAAuC,CAAC,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,uFAAuF,kNAAkN,kSAAkS,+WAA+W,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,MAAM,GAAG,CAAC,gCAAgC,cAAc,CAAC,yBAAyB,4FAA4F,wNAAwN,4SAA4S,wXAAwX,MAAM,EAAE,eAAe,CAAC,gCAAgC,cAAc,CAAC,MAAM,MAAM,EAAE,eAAe,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,KAAK,MAAM,EAAE,gBAAgB,IAAI,EAAE,0jBAA0jB,OAAO,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,mKAAmK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,sBAAsB,QAAQ,CAAC,uDAAuD,OAAO,CAAC,qBAAqB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,sDAAsD,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,wBAAwB,WAAW,CAAC,UAAU,SAAS,CAAC,2BAA2B,WAAW,CAAC,kBAAkB,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC,8cAA8c,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,sDAAsD,4FAA4F,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,wCAAwC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,iBAAiB,qBAAqB,6BAA6B,SAAS,CAAC,mCAAmC,cAAc,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,kFAAkF,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,qBAAqB,QAAQ,CAAC,wLAAwL,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gBAAgB,OAAO,CAAC,kBAAkB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,sBAAsB,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,gCAAgC,cAAc,CAAC,eAAe,OAAO,CAAC,mCAAmC,cAAc,CAAC,UAAU,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,iDAAiD,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,6BAA6B,cAAc,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,OAAO,CAAC,0BAA0B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,uCAAuC,OAAO,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,6BAA6B,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,yBAAyB,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,uCAAuC,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,cAAc,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,gBAAgB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,KAAK,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,YAAY,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,KAAK,yCAAyC,0FAA0F,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,oBAAoB,uBAAuB,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,8DAA8D,QAAQ,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,SAAS,IAAI,EAAE,8DAA8D,MAAM,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,kBAAkB,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,WAAW,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,MAAM,mIAAmI,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,QAAQ,CAAC,6BAA6B,WAAW,CAAC,OAAO,QAAQ,CAAC,2BAA2B,WAAW,CAAC,oDAAoD,yFAAyF,SAAS,CAAC,mCAAmC,cAAc,CAAC,2BAA2B,SAAS,CAAC,mCAAmC,cAAc,CAAC,SAAS,SAAS,CAAC,6BAA6B,WAAW,CAAC,QAAQ,SAAS,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,gCAAgC,cAAc,CAAC,QAAQ,GAAK,CAAC,IAAI,MAAM,gCAAgC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8MAA8M,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,kPAAkP,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,iBAAiB,CAAC,OAAO,GAAK,CAAC,KAAK,sDAAsD,qEAAqE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC,0IAA0I,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,mBAAmB,QAAQ,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,uBAAuB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,OAAO,CAAC,mCAAmC,cAAc,CAAC,aAAa,OAAO,CAAC,2CAA2C,iBAAiB,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC,gCAAgC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,KAAK,yDAAyD,qCAAqC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,wBAAwB,WAAW,CAAC,WAAW,QAAQ,CAAC,wBAAwB,WAAW,CAAC,WAAW,CAAC,2BAA2B,WAAW,CAAC,oDAAoD,QAAQ,CAAC,6BAA6B,WAAW,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,SAAS,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,wCAAwC,iBAAiB,CAAC,cAAc,GAAK,CAAC,KAAK,6BAA6B,2HAA2H,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,2TAA2T,kWAAkW,wXAAwX,0XAA0X,wXAAwX,OAAO,CAAC,qBAAqB,QAAQ,CAAC,+QAA+Q,4SAA4S,qUAAqU,wUAAwU,OAAO,CAAC,2BAA2B,WAAW,CAAC,cAAc,CAAC,2BAA2B,WAAW,CAAC,2BAA2B,2BAA2B,8DAA8D,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,iMAAiM,MAAM,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,4BAA4B,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,4BAA4B,+BAA+B,CAAC,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,CAAC,mBAAmB,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,WAAW,CAAC,KAAK,MAAM,EAAE,aAAa,IAAI,EAAE,4BAA4B,GAAK,CAAC,MAAM,KAAK,gDAAgD,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,WAAW,CAAC,UAAU,EAAE,EAAE,uCAAuC,GAAK,CAAC,KAAK,MAAM,kDAAkD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,eAAe,SAAS,CAAC,kBAAkB,QAAQ,CAAC,KAAK,SAAS,CAAC,gBAAgB,QAAQ,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,IAAI,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,wBAAwB,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,KAAK,sDAAsD,qEAAqE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,MAAM,EAAE,EAAE,CAAC,CAAC,4JAA4J,CAAC,IAAI,CAAC,0GAA0G,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,2CAA2C,CAAC,IAAI,CAAC,mDAAmD,CAAC,EAAE,EAAE,GAAG,MAAM,QAAQ,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,KAAK,KAAK,gMAAgM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,sBAAsB,QAAQ,CAAC,kBAAkB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,sGAAsG,gHAAgH,OAAO,CAAC,sBAAsB,QAAQ,CAAC,uGAAuG,4bAA4b,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,sBAAsB,QAAQ,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,qBAAqB,QAAQ,CAAC,SAAS,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,YAAY,OAAO,CAAC,mBAAmB,QAAQ,CAAC,YAAY,mBAAmB,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oBAAoB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,gBAAgB,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,SAAS,QAAQ,EAAE,YAAY,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,mDAAmD,iFAAiF,CAAC,qBAAqB,QAAQ,CAAC,sBAAsB,6BAA6B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,KAAK,KAAK,yCAAyC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,kBAAkB,QAAQ,CAAC,QAAQ,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gCAAgC,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,sDAAsD,2EAA2E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,YAAY,OAAO,CAAC,qBAAqB,QAAQ,CAAC,6BAA6B,OAAO,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,OAAO,CAAC,kBAAkB,QAAQ,CAAC,6CAA6C,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,GAAK,CAAC,MAAM,YAAY,qCAAqC,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,EAAE,EAAE,uBAAuB,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,CAAC,wCAAwC,iBAAiB,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,gCAAgC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,WAAW,QAAQ,EAAE,EAAE,0DAA0D,MAAM,GAAK,CAAC,KAAK,KAAK,qCAAqC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,QAAQ,SAAS,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,QAAQ,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,yBAAyB,qCAAqC,oDAAoD,OAAO,CAAC,qBAAqB,QAAQ,CAAC,0BAA0B,OAAO,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,kCAAkC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,UAAU,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,07CAA07C,CAAC,EAAE,KAAK,CAAC,4NAA4N,CAAC,KAAK,CAAC,kCAAkC,CAAC,8DAA8D,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,4FAA4F,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,MAAM,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,OAAO,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,kDAAkD,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,SAAS,EAAE,EAAE,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,oCAAoC,CAAC,KAAK,CAAC,kCAAkC,CAAC,6DAA6D,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,4FAA4F,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,WAAW,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,oFAAoF,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,WAAW,GAAK,CAAC,KAAK,KAAK,iDAAiD,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,+DAA+D,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,6BAA6B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,qBAAqB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,MAAM,MAAM,6BAA6B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,0BAA0B,sDAAsD,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,SAAS,CAAC,mBAAmB,QAAQ,CAAC,mCAAmC,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,MAAM,KAAK,iEAAiE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,WAAW,CAAC,2BAA2B,WAAW,CAAC,wDAAwD,WAAW,CAAC,6BAA6B,WAAW,CAAC,SAAS,UAAU,MAAM,GAAK,CAAC,KAAK,SAAS,gFAAgF,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,OAAO,CAAC,qBAAqB,QAAQ,CAAC,gBAAgB,SAAS,CAAC,qBAAqB,QAAQ,CAAC,OAAO,OAAO,CAAC,qBAAqB,QAAQ,CAAC,UAAU,SAAS,CAAC,6BAA6B,WAAW,CAAC,aAAa,OAAO,CAAC,qBAAqB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,gCAAgC,cAAc,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,sDAAsD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,kCAAkC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,CAAC,0BAA0B,WAAW,CAAC,KAAK,SAAS,CAAC,6BAA6B,WAAW,CAAC,wBAAwB,SAAS,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,KAAK,SAAS,CAAC,gCAAgC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,gBAAgB,gDAAgD,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,2BAA2B,WAAW,CAAC,QAAQ,CAAC,wBAAwB,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,gCAAgC,cAAc,CAAC,WAAW,CAAC,qCAAqC,cAAc,CAAC,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,oCAAoC,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,SAAS,EAAE,wBAAwB,GAAK,CAAC,KAAK,KAAK,0CAA0C,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,8BAA8B,4CAA4C,8CAA8C,EAAE,GAAG,CAAC,qBAAqB,QAAQ,CAAC,MAAM,QAAQ,EAAE,GAAG,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,2BAA2B,WAAW,CAAC,qCAAqC,2DAA2D,4FAA4F,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,sYAAsY,meAAme,ykBAAykB,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,iKAAiK,wSAAwS,mWAAmW,MAAM,GAAG,CAAC,mBAAmB,QAAQ,CAAC,SAAS,MAAM,GAAG,CAAC,6BAA6B,WAAW,CAAC,eAAe,iBAAiB,EAAE,GAAG,CAAC,mCAAmC,cAAc,CAAC,MAAM,EAAE,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,wCAAwC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,aAAa,KAAK,CAAC,MAAM,OAAO,CAAC,qBAAqB,QAAQ,CAAC,4EAA4E,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,4BAA4B,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,8FAA8F,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,CAAC,qBAAqB,QAAQ,CAAC,wCAAwC,0DAA0D,CAAC,qBAAqB,QAAQ,CAAC,mCAAmC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,WAAW,CAAC,YAAY,CAAC,6BAA6B,WAAW,CAAC,2BAA2B,CAAC,6BAA6B,WAAW,CAAC,wBAAwB,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,6BAA6B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8aAA8a,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,iCAAiC,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,EAAE,IAAI,CAAC,iHAAiH,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,8BAA8B,CAAC,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,oCAAoC,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,uDAAuD,CAAC,gCAAgC,CAAC,yGAAyG,CAAC,gBAAgB,EAAE,CAAC,iHAAiH,CAAC,6FAA6F,CAAC,cAAc,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,aAAa,SAAS,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,MAAM,0DAA0D,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,OAAO,CAAC,wBAAwB,WAAW,CAAC,uFAAuF,wKAAwK,wLAAwL,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,wBAAwB,2CAA2C,OAAO,CAAC,2BAA2B,WAAW,CAAC,sVAAsV,soBAAsoB,2vBAA2vB,OAAO,CAAC,2BAA2B,WAAW,CAAC,oCAAoC,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,IAAI,EAAE,uCAAuC,MAAM,GAAK,CAAC,MAAM,MAAM,2DAA2D,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,uBAAuB,OAAO,CAAC,2BAA2B,WAAW,CAAC,eAAe,OAAO,CAAC,kCAAkC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,WAAW,wBAAwB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,mDAAmD,CAAC,EAAE,GAAG,EAAE,KAAK,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,aAAa,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,QAAQ,iCAAiC,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,wBAAwB,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,sDAAsD,2GAA2G,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,gCAAgC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,0BAA0B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,IAAI,EAAE,6BAA6B,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,kCAAkC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,qCAAqC,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,qBAAqB,OAAO,CAAC,mCAAmC,cAAc,CAAC,cAAc,OAAO,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,iDAAiD,OAAO,CAAC,2BAA2B,WAAW,CAAC,YAAY,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,sBAAsB,4BAA4B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,YAAY,GAAK,CAAC,KAAK,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,mDAAmD,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,WAAW,SAAS,GAAG,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,GAAG,CAAC,mBAAmB,QAAQ,CAAC,uBAAuB,SAAS,GAAG,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,IAAI,IAAI,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,yEAAyE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,qEAAqE,CAAC,2BAA2B,WAAW,CAAC,qEAAqE,CAAC,2BAA2B,WAAW,CAAC,cAAc,CAAC,qCAAqC,cAAc,CAAC,uBAAuB,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,mCAAmC,cAAc,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,6CAA6C,iBAAiB,CAAC,uBAAuB,CAAC,qCAAqC,cAAc,CAAC,qDAAqD,EAAE,EAAE,qDAAqD,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,kBAAkB,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,yCAAyC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,SAAS,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,iIAAiI,CAAC,0EAA0E,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,6CAA6C,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,UAAU,CAAC,wCAAwC,iBAAiB,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,0DAA0D,CAAC,8FAA8F,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,gDAAgD,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,QAAQ,QAAQ,IAAI,EAAE,oBAAoB,QAAQ,GAAK,CAAC,MAAM,MAAM,kCAAkC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,KAAK,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,gCAAgC,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,gCAAgC,cAAc,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,KAAK,KAAK,oEAAoE,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,qFAAqF,OAAO,CAAC,0BAA0B,WAAW,CAAC,kBAAkB,oBAAoB,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,OAAO,CAAC,0BAA0B,WAAW,CAAC,+BAA+B,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,MAAM,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,MAAM,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,qBAAqB,QAAQ,CAAC,cAAc,OAAO,CAAC,qBAAqB,QAAQ,CAAC,sCAAsC,4CAA4C,OAAO,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,IAAI,MAAM,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,4BAA4B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,aAAa,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,wCAAwC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,GAAK,CAAC,MAAM,uBAAuB,uCAAuC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,kBAAkB,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAK,CAAC,MAAM,YAAY,2CAA2C,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,2BAA2B,WAAW,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,WAAW,QAAQ,KAAK,GAAK,CAAC,KAAK,QAAQ,cAAc,CAAC,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,CAAC,2BAA2B,WAAW,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,iCAAiC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,6BAA6B,WAAW,CAAC,+BAA+B,oDAAoD,OAAO,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,gCAAgC,cAAc,CAAC,kBAAkB,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,cAAc,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,eAAe,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,GAAK,CAAC,MAAM,KAAK,gBAAgB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,2BAA2B,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,gBAAgB,QAAQ,CAAC,UAAU,EAAE,EAAE,mBAAmB,OAAO,GAAK,CAAC,MAAM,MAAM,2CAA2C,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,8BAA8B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,gBAAgB,QAAQ,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,2CAA2C,OAAO,CAAC,2BAA2B,WAAW,CAAC,cAAc,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,mBAAmB,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,gBAAgB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,qCAAqC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,mCAAmC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,KAAK,aAAa,0FAA0F,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,WAAW,OAAO,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,wBAAwB,OAAO,CAAC,wBAAwB,WAAW,CAAC,6BAA6B,OAAO,CAAC,6BAA6B,WAAW,CAAC,oBAAoB,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,OAAO,CAAC,6BAA6B,WAAW,CAAC,0BAA0B,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,oDAAoD,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,KAAK,0BAA0B,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,SAAS,CAAC,gBAAgB,QAAQ,CAAC,KAAK,SAAS,CAAC,mBAAmB,QAAQ,CAAC,SAAS,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,WAAW,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mCAAmC,cAAc,CAAC,aAAa,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,cAAc,mDAAmD,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,iBAAiB,CAAC,mBAAmB,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,kDAAkD,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,gBAAgB,QAAQ,CAAC,KAAK,SAAS,CAAC,qBAAqB,QAAQ,CAAC,qEAAqE,uHAAuH,SAAS,CAAC,mBAAmB,QAAQ,CAAC,wBAAwB,iCAAiC,SAAS,CAAC,wBAAwB,WAAW,CAAC,KAAK,SAAS,CAAC,2BAA2B,WAAW,CAAC,gBAAgB,SAAS,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,qCAAqC,cAAc,CAAC,OAAO,KAAK,GAAK,CAAC,KAAK,KAAK,kKAAkK,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,qBAAqB,QAAQ,CAAC,kJAAkJ,uKAAuK,SAAS,CAAC,qBAAqB,QAAQ,CAAC,8DAA8D,SAAS,CAAC,mBAAmB,QAAQ,CAAC,MAAM,SAAS,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,mCAAmC,cAAc,CAAC,qDAAqD,SAAS,CAAC,mCAAmC,cAAc,CAAC,UAAU,UAAU,KAAK,GAAK,CAAC,KAAK,KAAK,wDAAwD,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,aAAa,CAAC,2BAA2B,WAAW,CAAC,iFAAiF,oFAAoF,CAAC,6BAA6B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,mDAAmD,CAAC,mCAAmC,cAAc,CAAC,gCAAgC,CAAC,6BAA6B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,4BAA4B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,iBAAiB,GAAK,CAAC,MAAM,SAAS,iCAAiC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,mBAAmB,QAAQ,CAAC,yCAAyC,SAAS,CAAC,qBAAqB,QAAQ,CAAC,0DAA0D,SAAS,CAAC,6BAA6B,WAAW,CAAC,wDAAwD,SAAS,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,sBAAsB,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,KAAK,iDAAiD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,UAAU,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,wCAAwC,CAAC,gGAAgG,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC,qDAAqD,CAAC,qCAAqC,GAAK,CAAC,KAAK,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,cAAc,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,MAAM,KAAK,wGAAwG,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,wBAAwB,OAAO,CAAC,sBAAsB,QAAQ,CAAC,UAAU,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,yBAAyB,CAAC,GAAG,IAAI,CAAC,CAAC,mCAAmC,cAAc,CAAC,qBAAqB,qDAAqD,yEAAyE,SAAS,GAAG,CAAC,gCAAgC,cAAc,CAAC,sBAAsB,2EAA2E,8LAA8L,SAAS,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,SAAS,GAAG,CAAC,mCAAmC,cAAc,CAAC,4BAA4B,SAAS,GAAG,CAAC,mCAAmC,cAAc,CAAC,KAAK,WAAW,IAAI,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iCAAiC,CAAC,EAAE,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,MAAM,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,QAAQ,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,uCAAuC,GAAK,CAAC,MAAM,aAAa,yBAAyB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,KAAK,KAAK,0EAA0E,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,MAAM,MAAM,EAAE,YAAY,CAAC,mBAAmB,QAAQ,CAAC,mBAAmB,MAAM,EAAE,SAAS,CAAC,2BAA2B,WAAW,CAAC,0CAA0C,MAAM,EAAE,YAAY,CAAC,kCAAkC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,6BAA6B,WAAW,CAAC,wHAAwH,MAAM,EAAE,YAAY,CAAC,6BAA6B,WAAW,CAAC,iBAAiB,MAAM,EAAE,YAAY,CAAC,qCAAqC,cAAc,CAAC,qDAAqD,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,QAAQ,MAAM,EAAE,eAAe,CAAC,gCAAgC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,iFAAiF,MAAM,EAAE,eAAe,CAAC,mCAAmC,cAAc,CAAC,KAAK,MAAM,EAAE,eAAe,CAAC,2CAA2C,iBAAiB,CAAC,QAAQ,MAAM,EAAE,mBAAmB,KAAK,GAAK,CAAC,KAAK,YAAY,+CAA+C,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,4BAA4B,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,uBAAuB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,MAAM,uBAAuB,mCAAmC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,qBAAqB,QAAQ,CAAC,WAAW,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,yBAAyB,OAAO,CAAC,gCAAgC,cAAc,CAAC,UAAU,UAAU,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,KAAK,KAAK,gCAAgC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,yCAAyC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,0BAA0B,WAAW,CAAC,MAAM,OAAO,CAAC,6BAA6B,WAAW,CAAC,cAAc,mBAAmB,OAAO,CAAC,gCAAgC,cAAc,CAAC,KAAK,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,mCAAmC,cAAc,CAAC,SAAS,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,UAAU,KAAK,GAAK,CAAC,MAAM,KAAK,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,mCAAmC,cAAc,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,EAAE,gBAAgB,UAAU,GAAK,CAAC,MAAM,KAAK,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,uDAAuD,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,WAAW,KAAK,CAAC,UAAU,CAAC,gBAAgB,QAAQ,CAAC,kCAAkC,CAAC,gBAAgB,QAAQ,CAAC,mBAAmB,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,CAAC,qBAAqB,QAAQ,CAAC,8BAA8B,KAAK,GAAK,CAAC,MAAM,KAAK,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,MAAM,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oBAAoB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,GAAK,CAAC,MAAM,KAAK,6CAA6C,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,2BAA2B,WAAW,CAAC,WAAW,GAAK,CAAC,IAAI,MAAM,sCAAsC,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC,6BAA6B,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,QAAQ,2BAA2B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,GAAK,CAAC,MAAM,KAAK,cAAc,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,YAAY,GAAK,CAAC,KAAK,UAAU,6CAA6C,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,KAAK,GAAK,CAAC,MAAM,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,MAAM,SAAS,CAAC,2BAA2B,WAAW,CAAC,qBAAqB,CAAC,wBAAwB,WAAW,CAAC,sBAAsB,CAAC,2BAA2B,WAAW,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,eAAe,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,MAAM,wBAAwB,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,MAAM,UAAU,CAAC,gCAAgC,cAAc,CAAC,SAAS,UAAU,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,SAAS,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,eAAe,GAAK,CAAC,MAAM,KAAK,oDAAoD,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,oCAAoC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,YAAY,GAAK,CAAC,KAAK,KAAK,iDAAiD,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,MAAM,GAAG,CAAC,mCAAmC,cAAc,CAAC,iBAAiB,qBAAqB,uBAAuB,MAAM,GAAG,CAAC,mCAAmC,cAAc,CAAC,oBAAoB,QAAQ,GAAG,CAAC,6BAA6B,WAAW,CAAC,MAAM,MAAM,IAAI,KAAK,GAAK,CAAC,IAAI,MAAM,2BAA2B,CAAC,IAAI,EAAE,IAAI,EAAE,sBAAsB,QAAQ,EAAE,OAAO,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,mBAAmB,+CAA+C,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,OAAO,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,0BAA0B,WAAW,CAAC,wCAAwC,gDAAgD,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,6BAA6B,WAAW,CAAC,KAAK,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,GAAK,CAAC,MAAM,UAAU,4BAA4B,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,CAAC,2BAA2B,WAAW,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,8DAA8D,mFAAmF,OAAO,CAAC,mBAAmB,QAAQ,CAAC,wFAAwF,qGAAqG,OAAO,CAAC,2BAA2B,WAAW,CAAC,mBAAmB,OAAO,CAAC,6BAA6B,WAAW,CAAC,QAAQ,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,GAAK,CAAC,MAAM,UAAU,qCAAqC,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,2BAA2B,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,sBAAsB,CAAC,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,2BAA2B,aAAa,CAAC,SAAS,EAAE,EAAE,aAAa,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,2uBAA2uB,CAAC,IAAI,CAAC,wCAAwC,CAAC,kBAAkB,CAAC,2OAA2O,EAAE,EAAE,EAAE,CAAC,kBAAkB,GAAK,CAAC,MAAM,mBAAmB,iDAAiD,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,mBAAmB,QAAQ,CAAC,WAAW,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,mBAAmB,QAAQ,CAAC,UAAU,CAAC,6BAA6B,WAAW,CAAC,MAAM,CAAC,qCAAqC,cAAc,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,UAAU,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,GAAG,CAAC,CAAC,mCAAmC,cAAc,CAAC,cAAc,GAAK,CAAC,KAAK,KAAK,+EAA+E,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,uCAAuC,CAAC,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,YAAY,QAAQ,KAAK,GAAK,CAAC,IAAI,MAAM,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,QAAQ,EAAE,OAAO,GAAK,CAAC,IAAI,MAAM,8BAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,QAAQ,EAAE,OAAO,GAAK,CAAC,KAAK,KAAK,mDAAmD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,MAAM,MAAM,GAAG,CAAC,qBAAqB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,mCAAmC,cAAc,CAAC,KAAK,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,WAAW,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,SAAS,MAAM,GAAG,CAAC,2BAA2B,WAAW,CAAC,KAAK,MAAM,IAAI,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,aAAa,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,EAAE,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,mCAAmC,cAAc,CAAC,QAAQ,GAAK,CAAC,MAAM,IAAI,gDAAgD,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,iBAAiB,CAAC,qBAAqB,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,GAAK,CAAC,MAAM,KAAK,gDAAgD,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,sBAAsB,QAAQ,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,+BAA+B,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,0BAA0B,WAAW,CAAC,4BAA4B,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,qCAAqC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,8CAA8C,CAAC,kEAAkE,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sCAAsC,GAAK,CAAC,KAAK,KAAK,yBAAyB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,UAAU,OAAO,CAAC,6BAA6B,WAAW,CAAC,UAAU,OAAO,CAAC,2BAA2B,WAAW,CAAC,OAAO,OAAO,CAAC,2BAA2B,WAAW,CAAC,SAAS,OAAO,CAAC,2BAA2B,WAAW,CAAC,KAAK,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,oCAAoC,CAAC,GAAG,CAAC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,QAAQ,QAAQ,KAAK,GAAK,CAAC,MAAM,KAAK,wHAAwH,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,qBAAqB,QAAQ,CAAC,0FAA0F,OAAO,CAAC,0BAA0B,WAAW,CAAC,QAAQ,OAAO,CAAC,mBAAmB,QAAQ,CAAC,MAAM,OAAO,CAAC,mBAAmB,QAAQ,CAAC,6CAA6C,8EAA8E,SAAS,CAAC,2BAA2B,WAAW,CAAC,KAAK,OAAO,CAAC,6BAA6B,WAAW,CAAC,+CAA+C,iDAAiD,OAAO,CAAC,mBAAmB,QAAQ,CAAC,KAAK,OAAO,CAAC,qBAAqB,QAAQ,CAAC,6IAA6I,OAAO,CAAC,6BAA6B,WAAW,CAAC,mBAAmB,OAAO,CAAC,qBAAqB,QAAQ,CAAC,aAAa,YAAY,QAAQ,MAAM,cAAgB,CAAC,IAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,2BAA2B,IAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,IAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,0CAA0C,IAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,2BAA2B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,eAAe,IAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,wBAAwB,WAAW,CAAC,aAAa,CAAC,0BAA0B,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,4BAA4B,IAAM,CAAC,MAAM,EAAE,uEAAuE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,mBAAmB,QAAQ,CAAC,WAAW,CAAC,mBAAmB,QAAQ,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,YAAY,CAAC,2BAA2B,WAAW,CAAC,UAAU,CAAC,6BAA6B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,+BAA+B,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,6BAA6B,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,kEAAkE,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,mLAAmL,IAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,6BAA6B,WAAW,CAAC,sCAAsC,CAAC,2BAA2B,WAAW,CAAC,QAAQ,CAAC,2BAA2B,WAAW,CAAC,OAAO,CAAC,2BAA2B,WAAW,CAAC,WAAW,CAAC,mCAAmC,cAAc,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,sIAAsI,IAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,2BAA2B,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,IAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,wBAAwB,WAAW,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,mB,wwBCAlxkF,SAASwrC,IACvB,OAAkC5B,EAAAA,EAAAA,GAAmBC,WAA/C7kC,EAAN,EAAMA,KAAM5B,EAAZ,EAAYA,QAASi6B,EAArB,EAAqBA,SACrBj6B,EAAU,EAAH,KACHA,GADG,IAEN0mC,SAAS,IAEV,IAAMT,GAAcspD,EAAAA,EAAAA,GAAiB3tF,EAAM5B,EAASi6B,GACpD,OAAOgM,GAAeA,EAAYhmB,YAAa,CAC/C,CCRM,SAAS,IACf,OAAO,EAAA4mB,EAAA,GAAqB,EAAqBJ,UAClD,C,6DCDe,SAASI,EAAqB88B,EAAMirN,GAClD,IAAIvzP,EAAO6B,MAAMtF,UAAUzkB,MAAMwkB,KAAKi3P,GAEtC,OADAvzP,EAAKl8B,KAAK,KACHwkE,EAAK5L,MAAMp8D,KAAM0/B,EACzB,C,GCPI86Q,EAA2B,CAAC,EAGhC,SAASC,EAAoBz3K,GAE5B,IAAI03K,EAAeF,EAAyBx3K,GAC5C,QAAqB/+H,IAAjBy2S,EACH,OAAOA,EAAal7S,QAGrB,IAAIC,EAAS+6S,EAAyBx3K,GAAY,CACjDhtG,GAAIgtG,EACJp5C,QAAQ,EACRpqF,QAAS,CAAC,GAUX,OANAm7S,EAAoB33K,GAAUhnG,KAAKv8B,EAAOD,QAASC,EAAQA,EAAOD,QAASi7S,GAG3Eh7S,EAAOmqF,QAAS,EAGTnqF,EAAOD,OACf,C,OCzBAi7S,EAAoBG,KAAO,CAAC,ECC5BH,EAAoBvqP,EAAKzwD,IACxB,IAAIo7S,EAASp7S,GAAUA,EAAOolO,WAC7B,IAAOplO,EAAiB,QACxB,IAAM,EAEP,OADAg7S,EAAoB/vR,EAAEmwR,EAAQ,CAAEh7S,EAAGg7S,IAC5BA,CAAM,ECLdJ,EAAoB/vR,EAAI,CAAClrB,EAASs7S,KACjC,IAAI,IAAI9+R,KAAO8+R,EACXL,EAAoB9tE,EAAEmuE,EAAY9+R,KAASy+R,EAAoB9tE,EAAEntO,EAASwc,IAC5E9B,OAAOiuD,eAAe3oE,EAASwc,EAAK,CAAEk/K,YAAY,EAAMx6L,IAAKo6S,EAAW9+R,IAE1E,ECNDy+R,EAAoB1wL,EAAI,WACvB,GAA0B,iBAAf7iB,WAAyB,OAAOA,WAC3C,IACC,OAAOlnG,MAAQ,IAAI0nE,SAAS,cAAb,EAChB,CAAE,MAAOn6D,GACR,GAAsB,iBAAXpL,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBs4S,EAAoBM,IAAOt7S,KAC1BA,EAASya,OAAOgiB,OAAOz8B,IACXotB,WAAUptB,EAAOotB,SAAW,IACxC3S,OAAOiuD,eAAe1oE,EAAQ,UAAW,CACxCy7L,YAAY,EACZ/2H,IAAK,KACJ,MAAM,IAAIv/D,MAAM,0FAA4FnF,EAAOu2B,GAAG,IAGjHv2B,GCTRg7S,EAAoB9tE,EAAI,CAACj7M,EAAKu7F,IAAU/yG,OAAO+hB,UAAU2c,eAAe5c,KAAKtK,EAAKu7F,GCClFwtL,EAAoB9gR,EAAKn6B,IACH,oBAAX0pO,QAA0BA,OAAOwsD,aAC1Cx7Q,OAAOiuD,eAAe3oE,EAAS0pO,OAAOwsD,YAAa,CAAE/hR,MAAO,WAE7DuG,OAAOiuD,eAAe3oE,EAAS,aAAc,CAAEmU,OAAO,GAAO,ECFpC8mS,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/get-installations.ts","webpack://vw-oneform-feature-app/./src/bff/get-marketing-code.ts","webpack://vw-oneform-feature-app/./src/bff/api/send-form.ts","webpack://vw-oneform-feature-app/./src/bff/api/fetch-domains.ts","webpack://vw-oneform-feature-app/./src/bff/api/fetch-marketing-code.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-carlines.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-pincode.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-salesgroups.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-vehiculos-modelo.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-vilma-frame.ts","webpack://vw-oneform-feature-app/./src/bff/api/get-ofertas-suv.ts","webpack://vw-oneform-feature-app/./src/bff/api/eapi.ts","webpack://vw-oneform-feature-app/./src/bff/get-data-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-vweventos-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-google-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/get-molecular-cdn-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-molecular-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-cdn-url.ts","webpack://vw-oneform-feature-app/./src/bff/get-oneform-bff-cdn-api-key.ts","webpack://vw-oneform-feature-app/./src/bff/report-error-sentry.ts","webpack://vw-oneform-feature-app/./src/components/AnteriorCTA.tsx","webpack://vw-oneform-feature-app/./src/components/AvisoIslasCanarias.tsx","webpack://vw-oneform-feature-app/./src/components/CanalDeContacto.tsx","webpack://vw-oneform-feature-app/./src/components/Card.tsx","webpack://vw-oneform-feature-app/./src/components/CarouselComponent.tsx","webpack://vw-oneform-feature-app/./src/components/CloseButton.tsx","webpack://vw-oneform-feature-app/./src/components/CodigoPostal.tsx","webpack://vw-oneform-feature-app/./src/components/ConfirmacionLayers.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalFullScreenSinConsentimientos.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalItem.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/Legales.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LegalesFormatoLayer.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestions.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestionsComerciales.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/LssiTkmQuestionsTurismos.tsx","webpack://vw-oneform-feature-app/./src/components/Legales/ConsentQuestion.tsx","webpack://vw-oneform-feature-app/./src/components/DealerCard.tsx","webpack://vw-oneform-feature-app/./src/components/DetalleMotivo.tsx","webpack://vw-oneform-feature-app/./src/components/FechaCompra.tsx","webpack://vw-oneform-feature-app/./src/components/Kilometros.tsx","webpack://vw-oneform-feature-app/./src/components/LastNavigationConfirmacion.tsx","webpack://vw-oneform-feature-app/./src/components/LocateUserFullScreen.tsx","webpack://vw-oneform-feature-app/./src/components/MatriculaYModelo.tsx","webpack://vw-oneform-feature-app/./src/components/NoCliente.tsx","webpack://vw-oneform-feature-app/./src/components/PantallaIntroduccionStars.tsx","webpack://vw-oneform-feature-app/./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/dist-es/select/index.js","webpack://vw-oneform-feature-app/./src/components/SelectExtended.tsx","webpack://vw-oneform-feature-app/./src/components/Trato.tsx","webpack://vw-oneform-feature-app/./src/components/PantallaNombreApellido.tsx","webpack://vw-oneform-feature-app/./src/components/PoliticaPrivacidad.tsx","webpack://vw-oneform-feature-app/./src/components/SlideEncuestas.tsx","webpack://vw-oneform-feature-app/./src/components/SuggestMarca.tsx","webpack://vw-oneform-feature-app/./src/components/SuggestModelo.tsx","webpack://vw-oneform-feature-app/./src/components/SelectMarcaModelo.tsx","webpack://vw-oneform-feature-app/./src/components/VerticalLine.tsx","webpack://vw-oneform-feature-app/./src/components/YaTienesVolkswagen.tsx","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-CEMVenta.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-carline-select-extended-list.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-all-carlines.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-alphabetical.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-all-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-format-salesgroups-select-extended-list.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-carline-flag.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-get-salesgroups-from-carlines.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-get-formated-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-preselected-fa-content.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-filter-preselected-fa-content-salesgroups.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-find-carline-from-salesgroup.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-find-carline.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/hooks/use-fa-content-modes.ts","webpack://vw-oneform-feature-app/./src/components/CarlineSelect/CarlineSelect.tsx","webpack://vw-oneform-feature-app/./src/components/LoadingEncuestas.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/ThankYouTitle.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/CTAThankYouPage.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/ThankYouFields.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/CTAThankYouPageAction.tsx","webpack://vw-oneform-feature-app/./src/components/ThankYouPage/LeadsCTAs.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/Info/index.js","webpack://vw-oneform-feature-app/./src/components/IDBuzzFakeInput.tsx","webpack://vw-oneform-feature-app/./src/components/ImageCarNoColorBG.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/InputButton.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/TextInputExtended.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Apellido.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Email.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/InputError.tsx","webpack://vw-oneform-feature-app/./src/components/inputs/Nombre.tsx","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/Metadata.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeState.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternParser.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.PatternMatcher.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeFormatter.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouTypeParser.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/AsYouType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/AsYouType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/validatePhoneNumberLength.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/validatePhoneNumberLength.js","webpack://vw-oneform-feature-app/./src/components/inputs/Telefono.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/text-area/index.js","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/./src/components/styleComponents/RatingStarWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/PaddingWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/InputWidthWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralInputWidthWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/ContactoInfoWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralConfirmacionLayerWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/WhiteLinkWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/GeneralConfirmacionWrapper.tsx","webpack://vw-oneform-feature-app/./src/components/styleComponents/helpers.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/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/./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/integrator-root/index.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/./src/feature-app/LayerManagerWrapper.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/Loadscript.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/MapGeneralController.tsx","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/sort.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/within.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/index.js","webpack://vw-oneform-feature-app/./node_modules/kdbush/src/range.js","webpack://vw-oneform-feature-app/./node_modules/supercluster/index.js","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/generate-clusters.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/handle-location.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/usePinState.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/usePredictions.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/use-get-franja-and-day-from.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/use-create-nop-dms-slot-and-asessor.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/NewDealerCard.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/SeleccionDealerTabs.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/SuggestStyles.tsx","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_map.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/marker_dispatcher.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/omit.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/shallowEqual.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_markers.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map_markers_prerender.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/loaders/google_map_loader.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/wrap.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/lat_lng.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/transform.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/lib/geo/index.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/raf.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/log2.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/pick.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isEmpty.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isNumber.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/detect.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isPlainObject.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/passiveEvents.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/detectElementResize.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_map.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/google_heatmap.js","webpack://vw-oneform-feature-app/./node_modules/google-map-react/src/utils/isArraysEqualEps.js","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/CommonStyledComponents.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/CenterMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/ClusterMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/DealerMarker.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Map.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Carousel.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/Filtros.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/suggest.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/components/map-styles.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/provinces.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/GenericStylesDesktop.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/LayerDesktopView.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/LayerMobileView.tsx","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/views/helpers/serviceManagment.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/sort-points.ts","webpack://vw-oneform-feature-app/./src/feature-app/NewMap/utils.ts","webpack://vw-oneform-feature-app/./src/feature-app/OneForm.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/Templates.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/CloseComponent.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/FullScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/LayerScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/Navigation.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStepFiles/getRatingStarsOutput.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStepFiles/getUpdatedField.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/PreviousStep.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/RenderController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/ScreenController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/Screen/TemplatesFullScreen.tsx","webpack://vw-oneform-feature-app/./src/feature-app/ThankYouComponent.tsx","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumber.js","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/get-test-pincode.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/dealer.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/lead.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/order.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/person.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/vehicle.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/lead.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/person.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/order.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/vehicle.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/pincode-data/ndps/dealer.ts","webpack://vw-oneform-feature-app/./src/feature-service/identity-kit-service/person-api.ts","webpack://vw-oneform-feature-app/./src/feature-service/es-oneform-core-feature-service/index.ts","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/parsePhoneNumber.js","webpack://vw-oneform-feature-app/./src/feature-app/feature-app.tsx","webpack://vw-oneform-feature-app/./src/feature-app/get-params-form.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-dropdown-position.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-fa-content.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-app-config.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-bounding-client-rect.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-dealer.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-dealers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-brand.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-is-comerciales.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-instalaciones.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-initiate-match-triggers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-initiate-bonos-triggers.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-is-dev-stage.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-loaded.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-locate-user.tsx","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-navigate.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-on-screen.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-show-overflow.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-transform-to-html.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-tracking-form.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-id-person.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-id-vehicle.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-app-environment.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-feature-services.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-auth-service.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-get-waid-litera.ts","webpack://vw-oneform-feature-app/./src/feature-app/hooks/use-tracking-manager.ts","webpack://vw-oneform-feature-app/./src/feature-app/CitaPreviaTile/CitaPreviaTile.tsx","webpack://vw-oneform-feature-app/./src/feature-app/CitaPreviaTile/CitaPreviaTileGrid.tsx","webpack://vw-oneform-feature-app/./src/feature-app/FormController.tsx","webpack://vw-oneform-feature-app/./src/feature-app/format-dates.ts","webpack://vw-oneform-feature-app/./src/triggers/TestIDTrigger.tsx","webpack://vw-oneform-feature-app/./src/feature-app/get-trigger.tsx","webpack://vw-oneform-feature-app/./src/feature-app/lodash-functions.ts","webpack://vw-oneform-feature-app/./src/feature-app/set-object-values.ts","webpack://vw-oneform-feature-app/./src/feature-app/rating-evaluation.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/dealers-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/dealers-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/vehicles-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/vehicles-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-data-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-data-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-info-types.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/form-info-reducer.ts","webpack://vw-oneform-feature-app/./src/feature-app/redux/reducer.ts","webpack://vw-oneform-feature-app/./node_modules/reselect/es/defaultMemoize.js","webpack://vw-oneform-feature-app/./node_modules/reselect/es/index.js","webpack://vw-oneform-feature-app/./src/feature-app/redux/selectors.ts","webpack://vw-oneform-feature-app/./src/feature-app/save-feature-app.ts","webpack://vw-oneform-feature-app/./src/feature-app/sentry/ErrorBoundary.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integrations/functiontostring.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/is.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/browser.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/string.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/object.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/logger.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/flags.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/misc.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integrations/inboundfilters.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/syncpromise.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/scope.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/session.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/severity.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/hub.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/stacktrace.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/supports.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/instrument.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/normalize.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/memo.ts","webpack://vw-oneform-feature-app/./node_modules/src/stack-parsers.ts","webpack://vw-oneform-feature-app/./node_modules/src/eventbuilder.ts","webpack://vw-oneform-feature-app/./node_modules/src/flags.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/polyfill.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/error.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/dsn.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/api.ts","webpack://vw-oneform-feature-app/./node_modules/src/helpers.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/globalhandlers.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/trycatch.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/enums.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/breadcrumbs.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/linkederrors.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/useragent.ts","webpack://vw-oneform-feature-app/./node_modules/src/integrations/dedupe.ts","webpack://vw-oneform-feature-app/./node_modules/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/version.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/integration.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/baseclient.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/envelope.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/request.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/transports/noop.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/basebackend.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/promisebuffer.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/ratelimit.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/status.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/transports/base.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/utils.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/async.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/base.ts","webpack://vw-oneform-feature-app/./node_modules/@sentry/src/clientreport.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/xhr.ts","webpack://vw-oneform-feature-app/./node_modules/src/backend.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/new-fetch.ts","webpack://vw-oneform-feature-app/./node_modules/src/transports/new-xhr.ts","webpack://vw-oneform-feature-app/./node_modules/src/client.ts","webpack://vw-oneform-feature-app/./src/feature-app/sentry/sentry.ts","webpack://vw-oneform-feature-app/./src/feature-app/tracking-helpers.ts","webpack://vw-oneform-feature-app/./src/feature-app/tracking-objects.ts","webpack://vw-oneform-feature-app/./src/forms/Autosubmit/AutosubmitController.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesForm.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/ThankYouBaja.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesFields.tsx","webpack://vw-oneform-feature-app/./src/forms/BajaComunicaciones/BajaComunicacionesController.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ConfirmarCallMeLayer.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ConfirmacionCallMeOferta.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/CallMeOfertaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CallMe/Oferta/ThankYouCallMeOferta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksEnvio.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ConfirmacionCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/helpers.ts","webpack://vw-oneform-feature-app/./src/forms/Cem/CemController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ThankYouCem.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemFormPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/ChecksPublicacion.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/FirstStepCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemStepsVenta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemStepsPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CemFormVenta.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LastQuestionFlowCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LegalesCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/LegalesSinConsentimientosCEM.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaCalculadoraForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaBonosForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaMaintenanceForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaPortalForm.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaDealerController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaDealerWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/JourneyCitaPosventaWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/MapaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/MapaCita/MapaCitaDealer.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronUp/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronDown/index.js","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmacionCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/LoadingLayer.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/LocateUser.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormController.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ThankYouNuevaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormDefault.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/NuevaCitaPosventaFormLogged.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/ReservaCita.tsx","webpack://vw-oneform-feature-app/./src/forms/CitaPosventa/NuevaCitaPosventa/SeleccionDealer.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/ConfirmacionEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/EmpresaInfoComponent.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/Fleet.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/EmpresasForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/ThankYouEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/JourneyEmpresasController.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/JourneyEmpresasWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/Empresa/MapaEmpresa/MapaEmpresas.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/QuestionWithImage.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/ConfirmationPlanIdeal.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/2023PlanIdeal/ThankYouPlanIdeal.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/CajaCTATrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/ConfirmacionDiaDeLaMadre.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/DisplayImagenesYCTATrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/Mensaje.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/MensajesCards.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/SectionMensajes.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/assets/Svgs.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews/ThankYouDiaDeLaMadre.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/DiaDeLaMadre/DiaDeLaMadreForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ComponentsAndViews/Portada.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ComponentsAndViews/Experiencia.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/EurocopaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ThankYouEurocopa.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Eurocopa/ConfirmacionEurocopa.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/LastNavigationFidelizacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionLastScreenFields.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/use-initialize-fidelizacion-form.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/FidelizacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/Fidelizacion/ThankYouFidelizacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/TestIDController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/Checks.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/QuestionWithImage.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/TestIDForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/ConfirmationTestID.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/EmailForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/questions.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/TestID2023/ThankYouTestID.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeConfirmacion.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeController.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ThankYouConcursoRodaje.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/ConcursoRodaje2023/ConcursoRodajeForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/use-initialize-lem-form.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMContactadoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMNoContactadoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/LEMController.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ChecksEnvio.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ConfirmacionLEM.tsx","webpack://vw-oneform-feature-app/./src/forms/LEM/ThankYouLEM.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/CitaVenta/CitaVentaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/CitaVenta/LeadsCitaVentaPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/ConfirmacionLeadsNoQuestions.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoComercialesForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoController.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/LeadGenericoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/JourneyLeadsController.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/JourneyLeadsWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MapaLeads/MapaLeads.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MasInformacion/MasInformacionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/MasInformacion/LeadsMasInformacionPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Oferta/OfertaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Presupuesto/PresupuestoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Presupuesto/LeadsPresupuestoPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Stock/StockForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/Stock/LeadsStockFormPartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/TestDrive/TestDriveForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/TestDrive/LeadsTestDrivePartialData.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/ThankYouLeads.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/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-configurador-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-match-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/get-ofertas-data.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/helpers/formatLegalesOfertas.ts","webpack://vw-oneform-feature-app/./src/forms/Leads/use-initialize-lead-form.ts","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/Cita/PartialDataCitaConfgurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/ConfirmacionLeadInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/ImageCar.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/LocateUserLeadsInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/JorneyLeadsInPageController.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/JourneyLeadsInPageWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MapaLeadsInPage/MapaLeadsInPage.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/MasInformacion/PartialDataMasInformacionConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/Presupuesto/PresupuestoPartialDataConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/TestDrive/PartialDataTestDriveConfigurador.tsx","webpack://vw-oneform-feature-app/./src/forms/LeadsInPage/get-color-info.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/MGMLayout.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoClienteFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/LegalMGM.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoClienteForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoRegaloFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/BonoRegaloForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/EnvioRegaloFields.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/EnvioRegaloForm.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/MGMController.tsx","webpack://vw-oneform-feature-app/./src/forms/MGM/ThankYouMGM.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/ConfirmacionNewsletter.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/NewsletterForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Newsletter/ThankYouNewsletter.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/use-initialize-no-compra-form.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraYaTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/ConfirmacionNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/ThankYouNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/JourneyNoCompraController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/JourneyNoCompraWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/MapaNoCompra/MapaNoCompra.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraNoTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/PantallaOtrosModelos.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/NoCompraNoQuiero.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/NoCompra/RatingSteps.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/use-initialize-no-renovacion-form.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionYaTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/ConfirmacionNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/ThankYouNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/JourneyNoRenovacionController.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/JourneyNoRenovacionWrapper.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/MapaNoRenovacion/MapaNoRenovacion.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionNoTengo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/NoRenovacionNoQuiero.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/PantallaMarcaModelo.tsx","webpack://vw-oneform-feature-app/./src/forms/NoRenovacion/FakeTriggerCTA.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ConfirmacionProspects.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ProspectsVentaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/MatchProspectForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ProspectsPosventa.tsx","webpack://vw-oneform-feature-app/./src/forms/Prospects/ThankYouProspects.tsx","webpack://vw-oneform-feature-app/./src/forms/Race/RaceForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Race/use-race-form-controller.ts","webpack://vw-oneform-feature-app/./src/forms/SAC/FormData.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopForm.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/ThankYouOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopFields.tsx","webpack://vw-oneform-feature-app/./src/components/HeaderImage.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACOneShop/SACOneShopController.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/SACform.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaMotivoSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaDireccionPostal.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/PantallaMunicipio.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/ConfirmacionSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/SAC/ThankYouSAC.tsx","webpack://vw-oneform-feature-app/./src/forms/dps-utils.ts","webpack://vw-oneform-feature-app/./src/forms/format-fields.ts","webpack://vw-oneform-feature-app/./src/forms/helpers/add-remove-steps.ts","webpack://vw-oneform-feature-app/./src/forms/helpers/transform-millage.ts","webpack://vw-oneform-feature-app/./src/globals.ts","webpack://vw-oneform-feature-app/./src/helpers.ts","webpack://vw-oneform-feature-app/./src/triggers/adhoc/DiaDeLaMadreTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/EurocopaTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/FidelizacionTrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ConfirmacionNavidad.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ComponentsAndViews/FriendsName.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/ThankYouNavidad.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/NavidadForm.tsx","webpack://vw-oneform-feature-app/./src/forms/FormsAdhoc/NavidadForm/assets/Svgs.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/NavidadTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/AcordionHorizontal.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/CTAOfertaSuv.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/MobileCard.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/LiSection.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/Tabs.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/ProgressBar.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/Suvperheroes/TabsNavigation.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/SuvperheroesTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/ConcursoRodajeTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/adhoc/PlanIdealTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/AutosubmitTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/BajaComunicacionesTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CallMeOfertasTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CallMeEmbeddedTrigger.tsx","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/divider/index.js","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/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaBenefitsForm.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaEmbeddedTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaStageTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/CitaPosventaTrigger.tsx","webpack://vw-oneform-feature-app/./src/triggers/EmpresasTrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/LastNavigationCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/use-initialize-lem-form.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/CEMOneShopLastScreenFields.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/ConfirmacionCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEM OneShop/ThankYouCEMOneShop.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/FirstStepCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/StepsCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/ThankYouCEMVentaProducto.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/CEMVentaProductoForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMVentaProducto/CEMVentaProductoController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CEMSegundaEntregaController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CEMSegundaEntregaForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/DealerCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/CitaCEMSegundaEntregaStyles.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/CEMSegundaEntregaNoInteres.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/ConfirmacionCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/ThankYouCEMSegundaEntrega.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/CEMSegundaEntregaValoracionController.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/CEMSegundaEntregaValoracionForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Cem/CEMSegundaEntrega/valoracion/ThankYouCEMSegundaEntregaValoracion.tsx","webpack://vw-oneform-feature-app/./src/triggers/EncuestasTrigger.tsx","webpack://vw-oneform-feature-app/./src/forms/Feedback/ThankYouFeedback.tsx","webpack://vw-oneform-feature-app/./src/forms/Feedback/ConfirmacionFeedback.tsx","webpack://vw-oneform-feature-app/./src/forms/Feedback/FeedbackForm.tsx","webpack://vw-oneform-feature-app/./src/triggers/FeedbackTrigger.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/forms/Leads/CallCenter/CallCenterForm.tsx","webpack://vw-oneform-feature-app/./src/forms/Leads/CallCenter/LeadsCallCenterPartialData.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/@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/helpers/ssr.js","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/dist-es/container/helpers.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/container/container.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/dist-es/fieldset/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/a11y.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/helpers/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/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/Discount/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/CheckmarkCircle/index.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/Info/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/helpers/input-notification.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/layout/layout.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/RadioButton/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/RadioButtonSelected/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/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/node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronLeft/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/node_modules/@volkswagen-onehub/icons-core/dist-es/ChevronRight/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/tab.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/tabs/index.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/use-animated-indicator.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/dist-es/tabs/use-previous-next-button-disabled-state.js","webpack://vw-oneform-feature-app/./node_modules/@volkswagen-onehub/components-core/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/node_modules/@volkswagen-onehub/icons-core/dist-es/CloseCircle/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/helpers/grid.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/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/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/get-design-token-value.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/icons-core/dist-es/Close/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/tokens/dist-es/index.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/TTDSGConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/TTDSGConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/TTDSGConsent/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/CarNetShopClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/CarNetShopService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/carNetShop/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentConfigurationBuilder.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/consent/ConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/contractCenter/ContractCenterService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/contractCenter/types.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/documentConsent/DocumentConsentClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/documentConsent/DocumentConsentService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/DecisionType.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/DevicePlatform.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/EnrollmentStatus.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/ModGeneration.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/Role.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/SoftwareVersion.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/enums/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/TimeoutError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/UnknownSimStatusError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/errors/VcfUpdateCapabilityError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gupis/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gupis/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/GvfClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/GvfService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/SpecificationFilter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/VehicleCommissionDataHelper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/GvfNetworkError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/UnknownVehicleError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/errors/UserNotAuthorizedError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/gvf/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/IdentityDataClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/LoginRenewalService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/UserDataClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/UserDataService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/idk/userData/helper-functions.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/mapPackages/MapPackagesService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/oilNorm/OilNormService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/permissionService/PermissionService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/profileService/ProfileServiceV2.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/profileService/WeProfileFacade.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/serviceConfig/ServiceConfigHelper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/SpinNotificationType.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/SpinService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/TwoFactorManagementClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/errors/InvalidSpinError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/errors/MissingScopeSpinError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/spin/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/trackingFacade/TrackingFacade.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/UserClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/UserService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/user/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/validation/VehicleIdentifierValidator.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vas/VasClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfMessageService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfSubscriptionsSettingsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfSubscriptionsSettingsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/VcfTransactionHistoryClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/CapabilityUpdateStatusEvaluator.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/PollingWrapper.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/VcfCapabilityClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/capabilities/VcfCapabilityService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/digitalKeys/VcfDigitalKeyClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/digitalKeys/VcfDigitalKeyService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoMessagesFoundError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoReportAvailableError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/NoSubscriptionSettingsFoundError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/errors/VcfMeasurementsError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/fuelStatus/VcfFuelStatusClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/fuelStatus/VcfFuelStatusService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/measurements/VcfMeasurementsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/measurements/VcfMeasurementsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/newsfeeds/VcfNewsFeedsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/newsfeeds/fetch.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/VcfNotificationClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/VcfNotificationService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/index.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/notifications/types.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vcf/vehicleHealth/VcfHealthSettingsConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vdbs/VdbsClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vdbs/VdbsService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vehicleImage/VehicleImageUrlBuilder.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/CommissionIdConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumFlattenedVehicleConverter.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumUserRoleClient.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/VumUserRoleService.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/errors/NotEnrolledVehicleError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/src/vum/errors/VumProfileBrokenError.ts","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/index.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/md5.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/native.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/nil.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/parse.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/regex.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/rng.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/sha1.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/stringify.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v1.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v3.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v35.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v4.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/v5.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/validate.js","webpack://vw-oneform-feature-app/./node_modules/@vwdfive/myvw-services/node_modules/uuid/dist/commonjs-browser/version.js","webpack://vw-oneform-feature-app/./node_modules/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/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://vw-oneform-feature-app/./node_modules/dom-helpers/esm/removeClass.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/TransitionGroupContext.js","webpack://vw-oneform-feature-app/./node_modules/react-transition-group/esm/utils/reflow.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/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/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/classnames/index.js","webpack://vw-oneform-feature-app/./node_modules/@googlemaps/js-api-loader/dist/index.mjs","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://vw-oneform-feature-app/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/bind.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/utils.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/AxiosError.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/toFormData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/buildURL.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/InterceptorManager.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/defaults/transitional.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/common/utils.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/platform/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/defaults/index.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/transformData.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/isCancel.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/CanceledError.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/settle.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/speedometer.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/throttle.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/isURLSameOrigin.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/core/mergeConfig.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/adapters/xhr.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/composeSignals.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/trackStream.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/adapters/fetch.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/dispatchRequest.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/env/data.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/validator.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/core/Axios.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/cancel/CancelToken.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/axios.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/spread.js","webpack://vw-oneform-feature-app/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/ParseError.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getPossibleCountriesForNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getIddPrefix.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/format.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/RFC3966.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/PhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isValid.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/constants.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/checkNumberLength.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/mergeArrays.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getCountryByNationalNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/getNumberType.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/isObject.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/matchesEntirely.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/parseDigits.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isPossible.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/tools/semver-compare.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/metadata.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/normalizeArguments.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractPhoneContext.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parse.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumberWithError_.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/parsePhoneNumber_.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/source/isValidPhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","webpack://vw-oneform-feature-app/./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack://vw-oneform-feature-app/webpack/bootstrap","webpack://vw-oneform-feature-app/webpack/runtime/amd options","webpack://vw-oneform-feature-app/webpack/runtime/compat get default export","webpack://vw-oneform-feature-app/webpack/runtime/define property getters","webpack://vw-oneform-feature-app/webpack/runtime/global","webpack://vw-oneform-feature-app/webpack/runtime/harmony module decorator","webpack://vw-oneform-feature-app/webpack/runtime/hasOwnProperty shorthand","webpack://vw-oneform-feature-app/webpack/runtime/make namespace object","webpack://vw-oneform-feature-app/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"), require(\"styled-components\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\", \"styled-components\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\"), require(\"styled-components\")) : factory(root[\"react\"], root[\"react-dom\"], root[\"styled-components\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), (__WEBPACK_EXTERNAL_MODULE__9155__, __WEBPACK_EXTERNAL_MODULE__9514__, __WEBPACK_EXTERNAL_MODULE__8694__) => {\nreturn ","import axios from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\n\nexport const getDealerKvps = async (kvps: string): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n const dealerResponse = await axios.get(`${dataUrl}/getDealer/${kvps}`);\n\n if (dealerResponse?.data?.dealer) {\n return dealerResponse.data.dealer;\n }\n\n reportErrorSentry('Could not get dealer');\n console.error('Could not get dealer');\n return null;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, {AxiosResponse} from 'axios';\nimport {\n\tgetMolecularCdnUrl,\n\tgetOneformBFFCdnApiKey,\n\tgetOneformBFFCdnUrl,\n\tgetVwEventosEntregaIdealUrl,\n\treportErrorSentry,\n} from 'src/bff';\nimport {useIsComerciales} from 'src/feature-app';\nimport {\n\tDomainAttributesValues,\n\tInstallationResponse,\n\tInstallationEntregaIdealResponse,\n\tEntregaIdealHorarioResponse,\n} from 'src/types';\n\nexport const getInstallations = async (\n\ttoken?: string,\n\tdomain?: string,\n): Promise<{attributes: DomainAttributesValues[]}[]> => {\n\tconst isComerciales = useIsComerciales();\n\n\tconst requestToken =\n\t\t!token || testToken() ? (isComerciales ? 'LCV_DDB_FRM_LEM_REC_LEM' : 'VW_DDB_FRM_LEM_REC_LEM') : token;\n\tconst requestDomain = !domain\n\t\t? isComerciales\n\t\t\t? 'LCV_SF_LEAD_INSTALLATION'\n\t\t\t: 'VOLKSWAGEN_SF_LEAD_INSTALLATION'\n\t\t: domain;\n\tconst oneformCdn = getOneformBFFCdnUrl();\n\tconst oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n\ttry {\n\t\tconst installations: AxiosResponse = await axios.get(\n\t\t\t`${oneformCdn}/ndps/domain?token=${requestToken}&domain=${requestDomain}`,\n\t\t\t{\n\t\t\t\ttimeout: 10000,\n\t\t\t\theaders: {\n\t\t\t\t\t'X-Api-Key': oneformBFFApiKey,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t\treturn installations.data.content;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const getInstallationsLegacy = async (\n\ttoken?: string,\n\taddPosventa?: boolean,\n): Promise<{attributes: DomainAttributesValues[]}[]> => {\n\tconst requestToken = !token || testToken() ? 'VW_DDB_FRM_LEM_REC_LEM' : token;\n\tconst domain = addPosventa ? 'Installations_VW_All' : 'Installation';\n\tconst molecularCdnUrl = getMolecularCdnUrl();\n\n\ttry {\n\t\tconst installations: AxiosResponse = await axios.get(\n\t\t\t`${molecularCdnUrl}/request-dps-domain.php?token=${requestToken}&domain=${domain}`,\n\t\t);\n\t\treturn installations.data.content;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nconst testToken = () => {\n\tconst urlParams = new URLSearchParams(window.location.search);\n\treturn urlParams.get('test') && urlParams.get('test').includes('TOKEN');\n};\n\nexport const getInstallationsEntregaIdeal = async (): Promise => {\n\tconst url = getVwEventosEntregaIdealUrl();\n\n\ttry {\n\t\tconst response: AxiosResponse = await axios.get(`${url}/instalaciones`);\n\t\treturn response.data.instalaciones;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const getHorariosInstallation = async (\n\tkvps: string,\n\tyear: string | number,\n\tmonth: string | number,\n): Promise => {\n\tconst url = getVwEventosEntregaIdealUrl();\n\n\ttry {\n\t\tconst response: AxiosResponse<[]> = await axios.get(`${url}/horario/${kvps}/${year}/${month}`);\n\t\treturn response.data;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n","import { fetchMarketingCode, reportErrorSentry } from 'src/bff';\nimport { TrackingConfiguration } from 'src/feature-app';\n\n/*\nexport interface MarketingCodeFields {\n 'fields[COD_VEH_SALESGROUP]': string;\n 'fields[DESC_VEH_SALESGROUP]': string;\n 'fields[DESC_TRIM_LINE]': string;\n 'fields[COD_VEH_TMAIMG]': string;\n 'fields[DESC_VEH_TMAIMG]': string;\n 'fields[DESC_VEH_MARKETING_CODE]': string;\n 'fields[COD_VEH_COLOR]': string;\n 'fields[DESC_VEH_COLOR]': string;\n 'fields[COD_VEH_COLOR_INT]': string;\n 'fields[DESC_VEH_COLOR_INT]': string;\n 'fields[COD_VEH_WHEELS]': string;\n 'fields[DESC_VEH_WHEELS]': string;\n}\n*/\n\nexport interface MarketingCodeHistory {\n marketingCode: string;\n marketingCodeConfig: TrackingConfiguration;\n response: any;\n}\nlet marketingCodeHistory: MarketingCodeHistory[] = [];\n\nexport const getMarketingCode = async (\n marketingCode: string,\n): Promise<{\n marketingCodeConfig: TrackingConfiguration;\n response: any;\n}> => {\n // await delayRequest();\n const offerInHistory = marketingCodeHistory.find((offer) => offer.marketingCode === marketingCode);\n\n if (offerInHistory) {\n return {\n marketingCodeConfig: offerInHistory.marketingCodeConfig,\n response: offerInHistory.response,\n };\n } else {\n const { marketingCodeConfig, response } = await receiveMarketingCode(marketingCode);\n const history: MarketingCodeHistory = { marketingCode, marketingCodeConfig, response };\n marketingCodeHistory.push(history);\n return { marketingCodeConfig, response };\n }\n};\n\nexport const getFeatures = (features: { code: string }[]) => {\n if (!features) return [];\n return features.map((feature) => feature.code);\n};\n\nexport const getWheelsParams = (features: { code: string; name: string }[]) => {\n if (!features) return { COD_VEH_WHEELS: '', DESC_VEH_WHEELS: '' };\n const wheel = features.find((feature) => feature.code.startsWith('MRAD'));\n\n const COD_VEH_WHEELS = wheel?.code ? wheel.code : undefined;\n const DESC_VEH_WHEELS = wheel?.name ? wheel.name : undefined;\n return { COD_VEH_WHEELS, DESC_VEH_WHEELS };\n};\n\nexport const getWheels = (features: { code: string; name: string }[]) => {\n const { COD_VEH_WHEELS, DESC_VEH_WHEELS } = getWheelsParams(features);\n\n return { 'fields[COD_VEH_WHEELS]': COD_VEH_WHEELS, 'fields[DESC_VEH_WHEELS]': DESC_VEH_WHEELS.slice(0, 65) };\n};\n\nexport const getOption = (category: string, options: { category: string, code: string, description: string }[]) => {\n const option = options.find((option) => option.category==category);\n return { option };\n};\n\nexport const getModelFilter = (type: string, modelFilters: { id: string, text: string, type: string }[]) => {\n const modelFilter = modelFilters.find((modelFilter) => modelFilter.type==type);\n return { modelFilter };\n};\n\nclass ErrorLoadStorageDataset extends Error {\n constructor(message: any) {\n super(message);\n this.name = 'ErrorLoadStorageDataset';\n }\n}\n\nexport const receiveMarketingCode = async (\n marketingCode: string,\n): Promise<{ marketingCodeConfig: TrackingConfiguration; response?: any }> => {\n\n try {\n const response = await fetchMarketingCode(marketingCode);\n\n const salesgroup = getOption(\"SALESGROUP\",response.content.consolidatedData.options);\n const modelyear = getOption(\"MODELYEAR\",response.content.consolidatedData.options);\n const type = getOption(\"TYPE\",response.content.consolidatedData.options);\n const baseType = getOption(\"BASETYPE\",response.content.consolidatedData.options);\n\n const equipmentLine = getModelFilter(\"EquipmentLine\",response.content.consolidatedData.meta.modelFilter);\n\n const marketingCodeConfig: TrackingConfiguration = {\n CarlineId: response.content.consolidatedData.model_code.split(\"_\")[1],\n CarlineName: response.content.consolidatedData.model_description,\n SalesgroupId: salesgroup.option.code.replace('SALESGROUP:',''),\n SalesgroupName: salesgroup.option.description,\n EquipmentlineName: equipmentLine.modelFilter.text,\n ModelId: baseType.option.code.replace('BASETYPE:',''),\n ModelName: type.option.description,\n ModelYear: modelyear.option.code.replace('MODELYEAR:',''),\n };\n\n return { marketingCodeConfig, response};\n } catch (error) {\n const errorMkc = new ErrorLoadStorageDataset(error);\n reportErrorSentry(errorMkc);\n const marketingCodeConfig: TrackingConfiguration = null;\n return { marketingCodeConfig };\n }\n};\n\n/**\n * Necesitamos retrasar la request ya que se llama desde muchos sitios al mismo tiempo, por lo que se producen llamadas\n * innecesarias. Esta función simplemente espera a que de tiempo a resolver el marketing code y se la siguiente llamada\n * ya encuentre el resultado de la request anterior en el objeto de historia.\n */\nexport const delayRequest = async () =>\n new Promise((resolve) => {\n setTimeout(resolve, 1000);\n });\n","import axios, { AxiosResponse } from 'axios';\nimport { MolecularResponse, OneformBFFResponse } from 'src/types';\nimport { getMolecularUrl, getOneformBFFUrl, getOneformBFFApiKey, reportErrorSentry } from 'src/bff';\n\nexport const oneformBFFNdpsSend = async (\n\tformData: FormData,\n\tisPresubmit?: boolean,\n): Promise> => {\n\tif (isTest(formData, isPresubmit)) return { data: { status: { code: 200 } } };\n\n\ttry {\n\t\tconst oneformBFFUrl = getOneformBFFUrl();\n\t\tconst oneformBFFApiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.post(`${oneformBFFUrl}/ndps/responses`, formData, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': oneformBFFApiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const oneformBFFYumiwiSend = async (\n\tformData: FormData,\n\tisPresubmit?: boolean,\n): Promise> => {\n\tif (isTest(formData, isPresubmit)) return { data: { status: { code: 200 } } };\n\n\ttry {\n\t\tconst oneformBFFUrl = getOneformBFFUrl();\n\t\tconst oneformBFFApiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.post(`${oneformBFFUrl}/ndps/responses/yumiwi`, formData, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': oneformBFFApiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const dpsSend = async (formData: FormData, isPresubmit?: boolean): Promise> => {\n\tif (isTest(formData, isPresubmit)) return { data: { content: { code: '200' } } };\n\n\ttry {\n\t\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\t\tconst response = await axios.post(`${MOLECULAR_URL}/request-dps-send.php`, formData);\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const yumiwiSend = async (\n\tformData: FormData,\n\tisPresubmit?: boolean,\n): Promise> => {\n\tif (isTest(formData, isPresubmit)) return { data: { content: { code: '200' } } };\n\n\ttry {\n\t\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\t\tconst response = await axios.post(`${MOLECULAR_URL}/request-dps-send-yumiwi.php`, formData);\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const raceSend = async (\n\tformData: FormData,\n\tisPresubmit?: boolean,\n): Promise> => {\n\tif (isTest(formData, isPresubmit)) return { data: { content: { code: '200' } } };\n\n\ttry {\n\t\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\t\tconst response = await axios.post(`${MOLECULAR_URL}/request-race-callme.php`, formData);\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nconst isTest = (formData: FormData, isPresubmit?: boolean) => {\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst test =\n\t\turlParams.get('test') &&\n\t\t((isPresubmit && urlParams.get('test').includes('PRESUBMIT')) ||\n\t\t\t(!isPresubmit && urlParams.get('test').includes('SEND')));\n\tif (test) {\n\t\tlet fields = [];\n\t\tfor (const entry of formData.entries()) {\n\t\t\tfields[entry[0]] = entry[1];\n\t\t}\n\t\tconsole.log('%cOneform Test Send:', 'font-weight: 700', fields);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexport const motorflashSend = (formData: FormData): Promise => {\n\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n\treturn axios\n\t\t.post(`${MOLECULAR_URL}/request-motorflash-send.php`, formData)\n\t\t.then((response: AxiosResponse) => response.data)\n\t\t.catch((error) => error);\n};\n","import Axios from 'axios';\nimport { getMolecularCdnUrl, getOneformBFFCdnApiKey, getOneformBFFCdnUrl, reportErrorSentry } from 'src/bff';\nimport { DomainResponse } from 'src/types';\n\nexport const fetchProvince = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=PROVINCE_CODE`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchDealers = async (code: string, token?: string): Promise => {\n const requestToken = !token ? 'VW_DDB_FRM_LEM_REC_LEM' : token;\n let domain = '';\n switch (requestToken) {\n case \"VW_DDB_FRM_LEM_REC_LEM\":\n domain = 'VOLKSWAGEN_SF_LEAD_INSTALLATION';\n break;\n case \"LCV_DDB_FRM_LEM_REC_LEM\":\n domain = 'LCV_SF_LEAD_INSTALLATION'\n break;\n default:\n domain = 'VOLKSWAGEN_SF_LEAD_INSTALLATION';\n }\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(\n `${oneformCdn}/ndps/domain?token=${requestToken}&domain=${domain}&relatedDomain=FRML_TXT_codVentaProvincia__c&relatedValue=${code}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchTreatment = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await Axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=Treatment`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchProvinceLegacy = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const molecularCdn = getMolecularCdnUrl();\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Province`,\n {\n timeout: 10000\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchDealersLegacy = async (code: string, token?: string, addPosventa?: boolean): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const domain = addPosventa ? 'Installations_VW_All' : 'Installation';\n const molecularCdn = getMolecularCdnUrl();\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=${domain}&relatedDomain=FRML_TXT_codVentaProvincia__c&relatedValue=${code}`,\n {\n timeout: 10000\n }\n );\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchTreatmentLegacy = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const molecularCdn = getMolecularCdnUrl();\n\n try {\n const response = await Axios.get(`${molecularCdn}/request-dps-domain.php?token=${requestToken}&domain=Treatment`,\n {\n timeout: 10000,\n });\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n","import fetch from 'cross-fetch';\nimport * as settings from 'src';\nimport { getOneformBFFCdnUrl, getOneformBFFCdnApiKey, reportErrorSentry } from 'src/bff';\n\nexport const fetchMarketingCode = async (marketingCode: string) => {\n const oneformBFFCdnUrl = getOneformBFFCdnUrl();\n const oneformBFFCdnApiKey = getOneformBFFCdnApiKey();\n\n return fetch(oneformBFFCdnUrl + '/okapi/marketing-code?marketingCode=' + marketingCode, {\n headers: {\n \"X-Api-Key\": oneformBFFCdnApiKey,\n }\n })\n .then((response) => response.json())\n .catch((err) => {\n reportErrorSentry(err);\n });\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { CarlineBase } from 'src/types';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\n\nexport const getCarlines = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n \n const response: AxiosResponse<{ carlines: CarlineBase[] }> = await axios.get(`${dataUrl}/getCarlines`);\n return response.data.carlines;\n \n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { Color } from 'src';\nimport { getDataUrlWithoutTenant, reportErrorSentry } from 'src/bff';\n\ninterface ColoresRequest {\n colores: Color[];\n}\n\nexport const getColors = async () => {\n const dataUrl = getDataUrlWithoutTenant();\n\n try {\n const response: AxiosResponse = await axios.get(`${dataUrl}/getColores`);\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { DealersData } from 'src/types';\n\nexport const getDealers = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n if (!dataUrl) {\n console.error('Error during fetch.');\n return null;\n }\n const dealers: AxiosResponse<{ dealers: DealersData[] }> = await axios.get(`${dataUrl}/getDealers`);\n return dealers.data.dealers;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getMolecularUrl, getOneformBFFUrl, getOneformBFFApiKey, reportErrorSentry } from 'src/bff';\n\nexport interface PincodeData {\n status: { result: string; timestamp: string; code: number; time: number; };\n params: { pincode: string; token: string };\n content: PincodeResponseOk[] | PincodeResponseKo;\n}\n\nexport interface PincodeResponseOk {\n attributes: PincodeDataAttributes[];\n}\nexport interface PincodeResponseKo {\n code: string;\n data: string;\n message: string;\n status: string;\n}\nexport interface PincodeDataAttributes {\n name: string;\n value: string;\n}\n\nexport const getPincode = async (\n pincode: string,\n\tuseBff?: boolean,\n token?: string\n): Promise<{ pincodeData: PincodeData; pincodeUsed: boolean; pincodeError: boolean }> => {\n try {\n if (!token) {\n token = getPincodeToken(pincode);\n\n if (!token) {\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n }\n\n\t\tlet dataResponse: AxiosResponse;\n\n\t\tif (useBff) {\n\t\t\tconst oneformBFFUrl = getOneformBFFUrl();\n\t\t\tconst oneformBFFApiKey = getOneformBFFApiKey();\n\t\t\tdataResponse = await axios.get(`${oneformBFFUrl}/ndps/preload?pincode=${pincode}&token=${token}`, {\n\t\t\t\theaders: {\n\t\t\t\t\t'X-Api-Key': oneformBFFApiKey\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse { \n\t\t\tconst MOLECULAR_URL = getMolecularUrl(); // Legacy\n\t\t\tdataResponse = await axios.get(\n\t\t\t\t`${MOLECULAR_URL}/request-dps-pincode.php?pincode=${pincode}&token=${token}`\n\t\t\t);\n\t\t}\n\n\t\tconst pincodeData = dataResponse;\n\n if (pincodeData && pincodeData.data && \n\t\t\t(pincodeData.data.status.code === 1 || pincodeData.data.status.code === 200)) {\n return { pincodeData: pincodeData.data, pincodeUsed: false, pincodeError: false };\n } else {\n if (\n pincodeData &&\n pincodeData.data &&\n pincodeData.data.content &&\n (pincodeData.data.content as PincodeResponseKo).message.includes('PINCODE_ALREADY_USED')\n ) {\n return { pincodeData: null, pincodeUsed: true, pincodeError: false };\n }\n\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n } catch (error) {\n console.error(error);\n reportErrorSentry(error);\n return { pincodeData: null, pincodeUsed: false, pincodeError: true };\n }\n};\n\n/**\n * El token viene codificado en base64 en el formato PINCODETOKEN.\n * @param pincode\n */\nexport const getPincodeToken = (pincode: string): string => {\n try {\n const pincodeDecoded = atob(pincode).split(/(?=VW)/g);\n return pincodeDecoded[pincodeDecoded.length - 1];\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { CarlinesWithSalesgroups } from 'src/types';\n\nexport const getSalesgroups = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n\n const response: AxiosResponse<{ carlines: CarlinesWithSalesgroups[] }> = await axios.get(\n `${dataUrl}/getSalesgroups`\n );\n\n return response.data.carlines;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n","import axios, { AxiosResponse } from 'axios';\nimport { getDataUrl, getOneformBFFCdnApiKey, getOneformBFFCdnUrl, reportErrorSentry } from 'src/bff';\nimport { modelCar, DomainResponse } from 'src/types';\n\nexport const getVehiculosModelo = async (): Promise => {\n try {\n const dataUrl = getDataUrl();\n const response: AxiosResponse = await axios.get(`${dataUrl}/getVehiculosModelos`);\n return response.data.vehiculos;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n};\n\nexport const fetchMarcas = async (token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=BRANDEUROTAX`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};\n\nexport const fetchModelos = async (code: string, token?: string): Promise => {\n const requestToken = token ? token : 'VW_DDB_FRM_LEM_REC_LEM';\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response = await axios.get(`${oneformCdn}/ndps/domain?token=${requestToken}&domain=MODELOS_EUROTAX&relatedDomain=BRAND&relatedValue=${code}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n\n return response.data;\n } catch (err) {\n reportErrorSentry(err);\n return null;\n }\n};","import axios, { AxiosResponse } from 'axios';\nimport { getMolecularCdnUrl, getOneformBFFCdnUrl, getOneformBFFCdnApiKey, reportErrorSentry } from 'src/bff';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Volkswagen Vilma service config provider.');\n return null;\n};\n\nexport const getVilmaAssets = async (frame: string) => {\n\n const oneformCdn = getOneformBFFCdnUrl();\n const oneformBFFApiKey = getOneformBFFCdnApiKey();\n\n try {\n const response: AxiosResponse = await axios.get(\n `${oneformCdn}/vilma/assets?frame=${frame}`,\n {\n timeout: 10000,\n headers: {\n 'X-Api-Key': oneformBFFApiKey\n }\n }\n );\n return response.data;\n } catch (error) {\n reportErrorSentry(error);\n return null;\n }\n}\n","import axios from 'axios';\nimport { getDataUrl, reportErrorSentry } from 'src/bff';\nimport { CarlineBase, CarlineWithOffers } from 'src/types';\n\nexport const getOfertasSUV = async () => {\n const dataUrl = getDataUrl(); \n let dataRes: any;\n let carlinesWithOffers: CarlineWithOffers[];\n await axios.get(`${dataUrl}/getOfertas`)\n .then(res => dataRes = res.data)\n .then(() => {\n carlinesWithOffers = dataRes.carlines.filter((carline: CarlineBase) => {\n const carlineNames = ['t-cross', 'taigo', 't-roc'];\n return carlineNames.includes(carline.name.toLowerCase());\n });\n })\n .catch((error) => {\n reportErrorSentry(error);\n return null;\n });\n return carlinesWithOffers;\n};\n","import axios, {AxiosResponse} from 'axios';\nimport {OneformBFFResponse} from 'src/types';\nimport {getOneformBFFUrl, getOneformBFFApiKey, reportErrorSentry} from 'src/bff';\nimport {useIsComerciales} from 'src/feature-app';\n\nexport const getEapiCarlines = async (): Promise> => {\n\ttry {\n\t\tconst groupBrand = useIsComerciales() ? 'N' : 'V';\n\t\tconst url = getOneformBFFUrl();\n\t\tconst apiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.get(`${url}/eapi/carlines?group_brand=${groupBrand}`, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': apiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const getEapiAvailability = async (\n\tkvps: string,\n\tcodInstalacion: string,\n\ttimestampFrom: number,\n\ttimestampTo: number,\n): Promise> => {\n\ttry {\n\t\tconst groupBrand = useIsComerciales() ? 'N' : 'V';\n\t\tconst url = getOneformBFFUrl();\n\t\tconst apiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.get(\n\t\t\t`${url}/eapi/availability?group_brand=${groupBrand}&kvps=${kvps}&cod_instalacion=${codInstalacion}×tamp_from=${timestampFrom}×tamp_to=${timestampTo}&check_dealer=true`,\n\t\t\t{\n\t\t\t\theaders: {\n\t\t\t\t\t'X-Api-Key': apiKey,\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const createEapiAppointment = async (formData: FormData): Promise> => {\n\ttry {\n\t\tconst url = getOneformBFFUrl();\n\t\tconst apiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.post(`${url}/eapi/appointment/create`, formData, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': apiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const deleteEapiAppointment = async (formData: FormData): Promise> => {\n\ttry {\n\t\tconst url = getOneformBFFUrl();\n\t\tconst apiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.post(`${url}/eapi/appointment/delete`, formData, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': apiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\n};\n\nexport const getEapiAppointmentIcs = async (pincode: string): Promise => {\n\ttry {\n\t\tconst groupBrand = useIsComerciales() ? 'N' : 'V';\n\t\tconst url = getOneformBFFUrl();\n\t\tconst apiKey = getOneformBFFApiKey();\n\t\tconst response = await axios.get(`${url}/eapi/appointment/get/ics?group_brand=${groupBrand}&pincode=${pincode}`, {\n\t\t\theaders: {\n\t\t\t\t'X-Api-Key': apiKey,\n\t\t\t},\n\t\t});\n\n\t\treturn response.data;\n\t} catch (error) {\n\t\treportErrorSentry(error);\n\t\treturn null;\n\t}\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 { getVwEventosConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Volkwagen Eventos service config provider.');\n return null;\n};\n\nexport const getVwEventosUrl = (): string | null => {\n const service = getVwEventosConfig();\n\n if (!service) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return service.urlOrigin;\n};\n\nexport const getVwEventosEntregaIdealUrl = (): string | null => {\n const service = getVwEventosConfig();\n\n if (!service) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return service.urlOrigin + '/api/volkswagen/entrega-ideal';\n};\n","import { getFeatureServices, getGoogleApiKeyServiceConfig, getMolecularServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Google API Key service config provider.');\n return null;\n};\n\nexport const getGoogleApiKey = (): string | null => {\n const googleApiKeyService = getGoogleApiKeyServiceConfig();\n\n if (!googleApiKeyService) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return googleApiKeyService.customConfig?.apiKey;\n};\n","import { getMolecularCdnServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Molecular CDN service config provider.');\n return null;\n};\n\nexport const getMolecularCdnUrl = (): string | null => {\n const molecularCdn = getMolecularCdnServiceConfig();\n\n if (!molecularCdn) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return (testProduction() ? molecularCdn.urlOrigin.replace('pre-', '') : molecularCdn.urlOrigin) + molecularCdn.urlPath;\n};\n\nconst testProduction = () => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('test') && urlParams.get('test').includes('PROD');\n}","import { getMolecularServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving Molecular service config provider.');\n return null;\n};\n\nexport const getMolecularUrl = (): string | null => {\n const molecular = getMolecularServiceConfig();\n\n if (!molecular) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return molecular.urlOrigin + molecular.urlPath;\n};\n","import {getOneformBFFServiceConfig} from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n\tconsole.error('Error retrieving OneForm BFF service config provider.');\n\treturn null;\n};\n\nexport const getOneformBFFUrl = (): string | null => {\n\tconst oneformBFF = getOneformBFFServiceConfig();\n\n\tif (!oneformBFF) {\n\t\treturn handleErrorInRetrievingExternalConfig();\n\t}\n\n\treturn oneformBFF.urlOrigin + oneformBFF.urlPath;\n};\n","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nexport interface OneformBFFCustomConfig {\n 'X-Api-Key'?: string\n}\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF service config provider.');\n return null;\n};\n\nexport const getOneformBFFApiKey = () => {\n const oneformBFF = getOneformBFFCdnServiceConfig();\n const customConfig:OneformBFFCustomConfig = oneformBFF.customConfig;\n\n if (!oneformBFF) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return customConfig['X-Api-Key'];\n};\n","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF CDN service config provider.');\n return null;\n};\n\nexport const getOneformBFFCdnUrl = (): string | null => {\n const oneformBFFCdn = getOneformBFFCdnServiceConfig();\n\n if (!oneformBFFCdn) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return (testProduction() ? oneformBFFCdn.urlOrigin.replace('pre-', '') : oneformBFFCdn.urlOrigin) + oneformBFFCdn.urlPath;\n};\n\nconst testProduction = () => {\n const urlParams = new URLSearchParams(window.location.search);\n return urlParams.get('test') && urlParams.get('test').includes('PROD');\n}","import { getOneformBFFCdnServiceConfig } from 'src/feature-app';\n\nexport interface OneformBFFCdnCustomConfig {\n 'X-Api-Key'?: string \n}\n\nconst handleErrorInRetrievingExternalConfig = (): null => {\n console.error('Error retrieving OneForm BFF CDN service config provider.');\n return null;\n};\n\nexport const getOneformBFFCdnApiKey = () => {\n const oneformBFF = getOneformBFFCdnServiceConfig();\n const customConfig:OneformBFFCdnCustomConfig = oneformBFF.customConfig;\n \n if (!oneformBFF) {\n return handleErrorInRetrievingExternalConfig();\n }\n\n return customConfig['X-Api-Key'];\n};\n","import { getSentryHub } from 'src/feature-app/sentry';\n\nexport const reportErrorSentry = (error: any) => {\n const hub = getSentryHub();\n hub.run((currentHub) => {\n currentHub.withScope((scope) => {\n currentHub.captureException(error);\n });\n });\n};\n","import { CTA } from '@volkswagen-onehub/components-core';\nimport { ArrowUp } from 'src/icons-core-imports';\nimport React from 'react';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\n\nexport const AnteriorCTA = () => {\n \n const { handlePreviousStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Anterior',\n });\n handlePreviousStep(e);\n }}\n tag=\"button\"\n emphasis=\"secondary\" \n size=\"small\"\n icon={}\n >\n Anterior\n \n\n );\n};\n","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useStore } from 'react-redux';\nimport { AnyAction, Store } from 'redux';\nimport { LayerManagerWrapper } from 'src/feature-app';\n\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\nexport const AvisoIslasCanarias = ({ close }: { close: CloseHandleV2 }) => {\n const [href, setHref] = useState(null);\n const [copy, setCopy] = useState(null);\n\n const store = useStore();\n\n const { formData } = store.getState();\n\n useEffect(() => {\n if (formData.fields.formName === 'cita-posventa') {\n setHref('https://www.vwcanarias.com/es/cita-previa.html');\n setCopy('Para pedir cita en un Servicio Oficial de las islas, visita la web de Volkswagen Canarias y haz la reserva desde ahí.');\n } else {\n setHref('https://cita.vwcanarias.com/');\n setCopy('Para pedir cita en un punto de venta de las islas, visita la web de Volkswagen Canarias y haz la reserva desde ahí.');\n }\n }, []);\n\n return (\n \n \n \n ¿Estás en las Islas Canarias?\n \n \n {copy}\n \n \n \n \n Ir a Volkswagen Canarias\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n >\n Seguir en esta página\n \n \n \n );\n};\n\nexport const renderAvisoIslasCanariasLayer = (\n store: Store,\n env: FeatureAppEnvironment,\n layerManager: LayerManagerV2\n) => {\n\n const render = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n layerManager.openFocusLayer(\n render,\n {},\n { size: FocusLayerSizeV2.B, userCloseable: true }\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { MultipleCTASelection } from '.';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { contactoOptionsTurismos, contactoOptionsComerciales } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nexport function CanalDeContacto() {\n const { register, errors } = useFormContext();\n const [errorContacto, setErrorContacto] = useState(false);\n const [contacto, setContacto] = useState('Arteon');\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const { error, setError } = useOneFormContext();\n const isComerciales = useIsComerciales();\n\n useEffect(() => {\n if (fields.contacto) {\n setContacto(fields.contacto);\n }\n }, []);\n\n useEffect(() => {\n if (error) {\n !contacto ? setErrorContacto(true) : setErrorContacto(false);\n }\n }, [error]);\n\n useEffect(() => {\n if (errors.contacto) {\n setErrorContacto(true);\n } else {\n setErrorContacto(false);\n }\n }, [errors]);\n\n function handleChange(event: any) {\n const newContacto = event.currentTarget.value;\n setContacto(newContacto);\n if (newContacto !== '') setErrorContacto(false);\n }\n\n return ;\n}\n","import { Breakpoints, Layout, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Points } from 'src/types';\n\nconst InnerCardContainer = styled.div`\n background-color: rgba(0, 0, 0, 0.5);\n bottom: 0;\n height: 100%;\n left: 0;\n position: fixed;\n right: 0;\n width: 100%;\n z-index: 21;\n`;\n\nconst AnimatedCard = styled.div`\n height: 100%;\n width: 100%;\n &.alert-enter,\n &.alert-appear {\n transform: translateY(100%);\n }\n &.alert-enter-active,\n &.alert-appear-active {\n transform: translateY(0);\n transition: transform 400ms;\n }\n &.alert-exit {\n transform: translateY(0%);\n }\n &.alert-exit-active {\n transform: translateY(100%);\n transition: transform 400ms;\n }\n`;\n\nconst CloseDiv = styled.button`\n width: 100%;\n display: flex;\n justify-content: center;\n background: #001e50;\n height: 35px;\n border: none;\n cursor: pointer;\n left: 50%;\n outline: none;\n position: fixed;\n top: 0;\n transform: translate(-50%, 0) translateY(${(props) => props.translateY}px);\n z-index: 22;\n\n &.close-enter {\n top: 100%;\n }\n &.close-enter-active {\n top: 0%;\n transition: top 400ms;\n\n /* transform: translate(-50%, 0) translateY(${(props) => props.translateY}px);\n transition: transform 400ms; */\n }\n &.close-exit {\n transform: translateY(0%);\n }\n &.close-exit-active {\n transform: translateY(100%);\n transition: transform 400ms;\n }\n`;\n\nconst Marker = styled.div`\n height: 4px;\n width: 44px;\n border-radius: 2px;\n background-color: #ffffff;\n margin-top: 1.5vh;\n opacity: 0;\n &.marker-enter {\n opacity: 0.1;\n transform: scale(1.5);\n display: block;\n }\n &.marker-enter-active {\n opacity: 1;\n transform: scale(1);\n transition: transform 200ms, opacity 200ms ease-in;\n }\n &.marker-enter-done {\n opacity: 1;\n }\n`;\n\nconst TopBar = styled.div`\n height: 32px;\n width: 100%;\n background-color: #001e50;\n position: sticky;\n top: 0;\n z-index: 3;\n`;\n\ninterface translateYProps {\n translateY: number;\n showAllCardsMobile: boolean;\n}\n//max-height: 100vh;\n//overflow-y: scroll;\nconst InnerCard = styled.div`\n background-color: #001e50;\n border-radius: 12px 12px 0px;\n height: 100%;\n left: 50%;\n\n position: absolute;\n top: 53%;\n transform: translate(-50%, -50%) translateY(${(props) => props.translateY}px);\n width: 100%;\n z-index: 1000;\n`;\n\ninterface CardProps {\n children: React.ReactNode;\n closeCard: () => void;\n showCard: boolean;\n selectedPoint: Points;\n showAllCardsMobile: boolean;\n}\n\nconst fullLayout = [{ name: 'a', columns: 24 }];\nconst layoutWithMargins = [\n { name: '.', columns: 2 },\n { name: 'a', columns: 20 },\n { name: '.', columns: 2 },\n];\n\nexport function Card(props: CardProps) {\n const { closeCard, children, showCard, selectedPoint, showAllCardsMobile } = props;\n const [isCardOpen, setIsCardOpen] = useState(false);\n const [animateCarousell, setAnimateCarousell] = useState(false);\n const [initialValue, setInitialValue] = useState(null);\n const [translateY, setTranslateY] = useState(null);\n const [initialY, setInitialY] = useState(null);\n const cardRef = useRef(null);\n\n useEffect(() => {\n if (selectedPoint && !showAllCardsMobile) {\n if (window.innerHeight > 400) {\n setTranslateY(window ? window.innerHeight - 420 : 344);\n setInitialY(window ? window.innerHeight - 420 : 344);\n } else {\n setTranslateY(0);\n setInitialY(0);\n }\n } else {\n setTranslateY(0);\n setInitialY(0);\n }\n }, [selectedPoint, showAllCardsMobile]);\n\n useEffect(() => {\n setIsCardOpen(true);\n // document.body.style.overflow = 'hidden';\n return () => {\n // document.body.style.overflow = 'visible';\n };\n }, []);\n\n useLayoutEffect(() => {\n if (isCardOpen) setTimeout(() => setAnimateCarousell(true), 0);\n }, [isCardOpen]);\n\n const handleTouchStart = (e: React.TouchEvent) => {\n e.preventDefault();\n const x = e.nativeEvent.touches[0].clientY;\n setInitialValue(x);\n };\n\n const handleTouchEnd = (e: React.TouchEvent) => {\n e.preventDefault();\n const finalValue = e.nativeEvent.changedTouches[0].clientY;\n finalValue < (initialValue - initialY) * 6 ? more() : less();\n\n setInitialValue(null);\n };\n const handleMoveStartCard = (e: React.TouchEvent) => {\n e.preventDefault();\n if (!initialValue) {\n return;\n }\n\n const y = e.nativeEvent.changedTouches[0].clientY;\n const result = y - initialValue;\n\n result >= 0 ? setTranslateY(result + initialY) : setTranslateY(initialY);\n };\n\n const more = () => {\n setTranslateY(initialY);\n };\n\n const less = () => {\n closeCard();\n setIsCardOpen(false);\n setAnimateCarousell(false);\n };\n\n const handleOnClickMap = (e: any) => {\n const innerCard = document.getElementById('inner-card-container');\n\n if (e.target != innerCard && !innerCard.contains(e.target) && !showAllCardsMobile) {\n closeCard();\n setIsCardOpen(false);\n setAnimateCarousell(false);\n }\n };\n\n return (\n <>\n \n {\n handleTouchStart(e);\n }}\n onTouchEnd={(e) => {\n handleTouchEnd(e);\n }}\n onTouchMove={(e) => {\n handleMoveStartCard(e);\n }}\n translateY={translateY}\n showAllCardsMobile={showAllCardsMobile}\n >\n \n \n \n \n \n {\n e.preventDefault;\n handleOnClickMap(e);\n }}\n >\n \n \n \n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onTouchStart={(e) => {\n handleTouchStart(e);\n }}\n onTouchEnd={(e) => {\n handleTouchEnd(e);\n }}\n onTouchMove={(e) => {\n handleMoveStartCard(e);\n }}\n />\n \n {children}\n \n \n \n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useRef, ReactElement, useEffect, useState } from 'react';\nimport Slider from 'react-slick';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\nconst OfferPadding = styled.div`\n padding: 0 16px;\n`;\ninterface CarouselProps {\n renderList: (list: any) => JSX.Element[];\n list: any;\n}\n\nexport const CarouselComponent = (props: CarouselProps) => {\n const { renderList, list } = props;\n\n //carousel thigs\n\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '6%',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n };\n\n return (\n \n \n {renderList(list)}\n \n \n );\n};\n","import { Close } from 'src/icons-core-imports';\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\n\nexport const CloseButton = () => {\n const { handleAreYouSureLayer } = useOneFormContext();\n const { screenIndex } = useSelector(\n (state: OneFormState) => state.formInfo\n );\n\n const trackingManager = useTrackingManager();\n\n return (\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n handleAreYouSureLayer();\n }}\n >\n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError, TextInputExtended } from 'src/components';\n\n\nconst Wrapper = styled.div`\n width: 100%;\n margin-top: 12px;\n label {\n width: 100%;\n @media screen and (min-width: 960px) {\n width: 170px;\n }\n }\n`;\n\ninterface CodigoPostalProps {\n setFieldValue?: boolean;\n}\n\nexport const CodigoPostal = ({ setFieldValue = false }: CodigoPostalProps) => {\n const { register } = useFormContext();\n\n // PostalCode\n const [inputValuePostalCode, setInputValuePostalCode] = useState('');\n const [pristinePostalCode, setPristinePostalCode] = useState(true);\n const [errorPostalCode, setErrorPostalCode] = useState(false);\n const regExpPostalCode = /\\d{5}/gi;\n const dispatch = useDispatch();\n\n const handleChangePostalCode = (e: any) => {\n if (setFieldValue) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['postalCode']: e.target.value } });\n }\n setInputValuePostalCode(e.target.value);\n setPristinePostalCode(false);\n };\n\n useEffect(() => {\n if (!pristinePostalCode && inputValuePostalCode.match(regExpPostalCode) === null) {\n setErrorPostalCode(true);\n } else {\n setErrorPostalCode(false);\n }\n }, [inputValuePostalCode, pristinePostalCode]);\n\n return (\n \n handleChangePostalCode(e)}\n required\n maxLength={5}\n />\n {errorPostalCode && Solo se aceptan números}\n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState, useCallback } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { Store } from 'redux';\nimport {\n createNoDmsSlotAndAssessor,\n getFranjaAndDayFrom,\n weekDay_DayNumber_De_Month,\n useFeatureAppConfig,\n weekDay_Day_Hour,\n} from 'src/feature-app';\nimport { DealersData, OneFormState, Slot, Horario } from 'src/types';\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst CTAWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n text-align: left;\n > div {\n text-align: left;\n }\n > button {\n @media screen and (min-width: 560px) {\n width: auto;\n }\n }\n`;\n\ninterface InvalidFormProps {\n notSavedField?: string;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport const InvalidForm = (props: InvalidFormProps) => {\n const { notSavedField, closeLayerCallback } = props;\n return (\n \n \n ¿Quieres conservar estos últimos cambios?\n \n \n \n Si es así, necesitamos que guardes los cambios que has hecho {notSavedField} antes de confirmar tu cita.\n \n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Entendido\n \n \n \n \n );\n};\n\ninterface loadingSreenProps {\n isleads?: boolean;\n copy?: string;\n}\n\nexport const LoadingScreen = (props: loadingSreenProps) => {\n return (\n \n \n {props.copy ? {props.copy} : Enviando tu petición}\n \n );\n};\n\ninterface KoScreenProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n title?:string;\n bodyCopy?:string;\n isLEM?: boolean;\n hideSecondCTA?: boolean;\n}\n\nexport const KoScreen = (props: KoScreenProps) => {\n const { retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA } = props;\n\n return (\n \n \n
\n \n
\n \n {title? title : 'Uy, algo ha pasado'}\n \n \n \n {bodyCopy? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n
\n \n Ir a la web\n \n
\n ) : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir navegando\n \n
\n )\n }\n
\n
\n \n \n \n
\n );\n};\n\ninterface IntermitenciaDMSKoProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport const IntermitenciaDMSKo = (props: IntermitenciaDMSKoProps) => {\n const { retrySubmit, closeLayerCallback } = props;\n const [dmsFailed, setDmsFailed] = useState(false);\n const store: Store = useStore();\n const dispatch = useDispatch();\n const config = useFeatureAppConfig();\n\n const [day, setDay] = useState(null);\n const [franjaHoraria, setFranjaHoraria] = useState(null);\n const [name, setName] = useState(null);\n const [selectedPoint, setSelectedPoint] = useState(null);\n const { horario }: { horario: Horario } = store.getState().formData.fields;\n\n useEffect(() => {\n const { sendDmsFailed } = store.getState().formInfo;\n let { slot, dealer }: { slot: Slot; dealer: DealersData } = store.getState().formData.fields;\n\n setDmsFailed(sendDmsFailed);\n const { franjaHoraria } = getFranjaAndDayFrom(slot.from);\n\n setDay(weekDay_DayNumber_De_Month(slot.from));\n setFranjaHoraria(franjaHoraria.toLowerCase());\n setName(dealer.name);\n setSelectedPoint(slot);\n }, []);\n\n const handleShowSlots = useCallback((): string | null => {\n let { slot }: { slot: Slot } = store.getState().formData.fields;\n\n const finalSlot = getFinalSlot(slot.from);\n\n return finalSlot ? finalSlot : null;\n }, []);\n\n const getFinalSlot = (from: number) => {\n const momentSlot = weekDay_Day_Hour(from);\n const capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n return capitalizedSlot.replace('-', ' a las ').concat('h');\n };\n\n const createNoDmsSlot = async (e: any) => {\n let { slot, dealer }: { slot: Slot; dealer: DealersData } = store.getState().formData.fields;\n dealer = {\n ...dealer,\n dmsInfo: {\n ...dealer.dmsInfo,\n dmsAvailable: false,\n },\n };\n const { franjaHoraria, day } = getFranjaAndDayFrom(slot.from);\n const { slot: newSlot, assessor } = createNoDmsSlotAndAssessor(franjaHoraria, day);\n dispatch({ type: 'UPDATE_FIELDS', payload: { slot: newSlot, assessor, dealer } });\n\n retrySubmit(e);\n };\n return (\n \n \n \n No hemos podido confirmar tu cita para el{' '}\n {handleShowSlots()}\n \n \n \n ¿Quieres que {name} se ponga en contacto contigo para\n cerrar tu cita el {day} por la {franjaHoraria}?\n \n \n {\n e.preventDefault();\n await createNoDmsSlot(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Consultar con mi taller\n \n {\n config.trigger === 'cita-posventa-dealer' ? null : (\n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Buscar una nueva cita\n \n
\n )\n }\n
\n \n \n
\n );\n};\n","import {\n Text,\n styled,\n Container,\n ContainerGutter,\n CTA,\n TokenTextAppearance,\n TokenTextColor,\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\ninterface LegalesProps {\n linkBasesLegales?: string;\n}\nexport const LegalFullScreenSinConsentmientos = (props: LegalesProps) => {\n return (\n \n \n \n Texto legal de Volkswagen\n \n \n El responsable de tus datos es Volkswagen Group España Distribución, S.A.U. Vamos a utilizar tus datos para realizar un control de calidad sobre los productos y servicios contratados, mediante la realización de la presente encuesta de satisfacción, y contactarte para resolución de incidencias, reclamaciones o quejas. Tus datos podrán ser comunicados a las empresas del grupo para las finalidades de controlar la calidad de los productos y servicios, así como contactarte para resolución de incidencias, reclamaciones o quejas.\n \n \n En el supuesto de haber consentido, tus datos y las respuestas de la presente encuesta de satisfacción serán comunicadas al Concesionario. Tienes derecho a oponerte al tratamiento, limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu derecho a portabilidad, mediante el envío de un correo electrónico a:{' '}\n \n atencioncliente@volkswagen.es\n \n .\n \n \n Puedes consultar la información adicional en la{' '}\n \n política de privacidad\n \n .\n \n {props.linkBasesLegales ? (\n \n Consulta las{' '}\n \n Bases Legales\n {' '}\n de la promoción.\n \n ) : null}\n \n \n );\n};\n","import {\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport React, { useState, useEffect } from 'react';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError } from 'src/components';\nimport { CustomSwitch } from '../inputs';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { Info } from 'src/icons-core-imports';\n\n\nconst CTAsWrapper = styled.div`\n .error-field {\n width: fit-content !important;\n }\n \n > button {\n width: 81px;\n height: 33px;\n &:first-of-type {\n margin-right: 44px;\n }\n }\n \n`;\n\nconst PaddingWrapper = styled.div<{ noCompra?: boolean }>`\n width: 100%;\n padding-bottom: 32px;\n`;\n\nconst QuestionWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n flex-wrap: nowrap;\n`;\n\nconst ItemWrapper = styled.div`\n padding-bottom: 44px;\n`;\n\ninterface InfoWrapperProps {\n themeColor?: 'main' | 'inverted';\n}\n\nconst InfoWrapper = styled.div`\n margin-left: 16px;\n cursor: pointer;\n svg {\n fill: ${(props) => (props.themeColor === 'inverted' ? '#ffffff' : '#001E50')};\n }\n`;\n\n\nexport const LegalItem = ({ title, onClick, themeColor, name }: any) => {\n const [currentValue, setCurrentValue] = useState(null);\n const { register, setValue, errors } = useFormContext();\n const [isSelected, setIsSelected] = useState(null);\n const getValue = (isSelected: boolean) => isSelected ? 'PERMITE' : 'NO INFORMADO';\n const isComerciales = useIsComerciales();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: getValue(isSelected) } });\n }, [isSelected]);\n\n useEffect(() => {\n !isComerciales && setIsSelected(false);\n }, [])\n\n function checkCurrentValue(label: string, name: string) {\n const value = label === 'Sí' ? 'PERMITE' : 'NO PERMITE';\n setCurrentValue(label);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: value } });\n setValue(name, value);\n }\n\n return (\n \n \n \n {title}\n \n \n \n \n \n {isComerciales ? (\n \n {\n CTAsSiNo.map((cta: { label: string }, index: number) => (\n {\n register(ref, { required: true });\n }}\n onClick={\n (e) => {\n e.preventDefault();\n checkCurrentValue(cta.label, name);\n }\n }\n size={'small'}\n >\n {cta.label}\n \n ))\n }\n {errors[name] ? Este campo es obligatorio : null}\n \n ) : (\n \n \n {isSelected ? 'Aceptado' : 'Aceptar'}\n \n )}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\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\ninterface LegalesProps {\n linkBasesLegales?: string;\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 Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U., en calidad de responsable del tratamiento, 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, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. 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 Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n política de privacidad\n \n .\n \n {props.linkBasesLegales ? (\n \n Consulta las{' '}\n \n Bases Legales\n {' '}\n de la promoción.\n \n ) : null}\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 Te informamos de que tus datos personales serán tratados por Volkswagen Group España Distribución S.A.U., en calidad de responsable del tratamiento, con la finalidad de poder cursar tu petición y, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. Informarte que 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 Puedes consultar la información adicional sobre el tratamiento de tus datos en nuestra{' '}\n \n política de privacidad\n \n .\n \n {props.linkBasesLegales ? (\n \n Consulta las{' '}\n \n Bases Legales\n {' '}\n de la promoción.\n \n ) : null}\n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n }\n`;\n\ninterface legalesFormatoLayerProps {\n noPadding?: boolean;\n showTitle?: boolean;\n linkBasesLegales?: 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.showTitle ? (\n \n Texto legal de Volkswagen\n \n ) : null}\n\n \n {props.linkBasesLegales ? (\n <>\n Te esponsable 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. 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., en calidad de responsable del tratamiento, 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, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. 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.linkBasesLegales ? (\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.showTitle ? (\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., en calidad de responsable del tratamiento, con la finalidad de poder cursar tu petición y, en caso de que nos hayas dado tu consentimiento expreso, para las finalidades descritas en los consentimientos adicionales. Informarte que 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 LegalesMontmelo = (props: legalesFormatoLayerProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{props.showTitle ? (\n\t\t\t\t\t\n\t\t\t\t\t\tTexto legal de Volkswagen\n\t\t\t\t\t\n\t\t\t\t) : null}\n\n\t\t\t\t\n\t\t\t\t\tTe 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 y gestionar tu participación gratuita en la Promoción Driving Experience Montmeló comunicada durante el proceso de cita previa.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tPara más información sobre el tratamiento de los datos pulsa{' '}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\taquí\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t.\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import React from 'react';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { LssiTkmQuestionsComerciales, LssiTkmQuestionsTurismos } from '.';\n\nexport interface LssiTkmQuestionsProps {\n showTitle: boolean;\n themeColor?: 'main' | 'inverted';\n noCompra?: boolean;\n}\n\nexport function LssiTkmQuestions(props: LssiTkmQuestionsProps) {\n const isComerciales = useIsComerciales();\n\n return isComerciales ? : ;\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { LssiTkmQuestionsProps, LegalItem } from '.';\nimport { useGetIdPerson } from 'src/feature-app';\n\nconst getLssiTitle = (isOfertas: boolean) => {\n return isOfertas ? (\n \n ¿Te gustaría recibir comunicaciones comerciales sobre productos y servicios de nuestra{' '}\n \n marca?*\n \n \n ) : (\n \n ¿Te gustaría recibir descuentos y novedades de{' '}\n \n Volkswagen?*\n \n \n );\n};\n\nconst getLssiText = (isOfertas: boolean) => {\n return isOfertas\n ? 'Te enviaremos por cualquier medio información sobre descuentos, novedades, próximos lanzamientos, invitaciones a eventos y/o promociones especiales'\n : 'Si quieres, podemos enviarte información sobre próximos lanzamientos, invitaciones a eventos y promociones especiales.';\n};\n\nconst getTmkTitle = (isOfertas: boolean) => {\n return isOfertas ? (\n \n ¿Consientes que elaboremos un perfil tuyo como usuario para poder enviarte información comercial sobre los 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 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 = ({ showTitle, 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 {showTitle && (\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 {showTitle && (\n
\n \n ¿Listo para enviar?\n \n
\n )}\n \n }\n
\n\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { useGetIdPerson } from 'src/feature-app/hooks';\nimport { LssiTkmQuestionsProps, LegalItem } from '.';\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n tmk: {\n title: '¡Adiós mensajes genéricos!',\n body: 'Activando esta opción podremos enviarte información y ofertas personalizadas de productos y servicios adecuadas a tu perfil. Para ello nos basaremos en tu comportamiento, preferencias personales y cómo usas nuestros productos y servicios.',\n }\n};\n\nconst legalItemTitles = {\n lssi: '¿Te gustaría recibir descuentos y novedades de Volkswagen?',\n tmk: '¿Te gustaría que elaboremos un perfil tuyo para ofrecerte información comercial sobre productos y servicios de nuestras marcas que creamos que te puedan interesar más según tus preferencias?',\n};\n\nexport const LssiTkmQuestionsTurismos = ({ showTitle, 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 {showTitle && (\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 {showTitle && !isLead && (\n
\n \n ¿Listo para enviar?\n \n
\n )}\n {showTitle && isLead && (\n
\n \n \n Y una última pregunta\n \n \n \n \n Y una última pregunta\n \n \n
\n )}\n \n }\n
\n );\n};\n","import { BreakpointWrapper, Breakpoints, CTA, Container, ContainerGutter, ContainerPadding, Layout, TextAlignment, TokenTextAppearance, styled } from \"@volkswagen-onehub/components-core\";\nimport { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from \"react\";\nimport iconlssi from \"./iconlssi.svg\"\nimport icontmk from \"./icontmk.svg\"\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useOneFormContext } from \"src/feature-app\";\nimport { useWindowHeight } from \"@react-hook/window-size\";\nimport { useGetBoundingClientRect } from 'src/feature-app/hooks';\nimport { OneFormState } from \"src/types\";\n\nconst CTAsWrapper = styled.div`\n padding: var(--size-grid002) 0;\n display: flex;\n justify-content: center;\n gap: var(--size-grid001);\n width: 100%;\n @media (min-width: 960px) {\n padding: var(--size-grid001) 0;\n }\n`\nconst returnLinearGradient = (formType: string) => {\n if (formType === 'layer') {\n return 'linear-gradient(180deg, rgba(7, 29, 77, 0.5) 0%, #071D4D 77.06%);'\n } else {\n return 'linear-gradient(180deg, rgba(255, 255, 255, 0.5) -25.89%, #FFFFFF 50%)'\n }\n}\n\nconst CTAsWrapperMobile = styled.div<{ navPosition: string, formType: string }>`\n padding: ${(props) => props.navPosition === 'fixed' ? '45px 0 110px 0' : '50px 0'};\n display: flex;\n justify-content: center;\n gap: var(--size-grid001);\n position: ${(props) => props.navPosition};\n height: 130px;\n right: 0px;\n width: 100%;\n bottom: ${(props) => props.navPosition === 'fixed' ? '31px' : '-27px'};\n background: ${(props) => returnLinearGradient(props.formType)};\n`\n\ninterface ConsentQuestionProps {\n questionType: 'lssi' | 'tmk';\n}\n\nconst questions = {\n lssi: {\n title: <>¿Te gustaría recibir descuentos y novedades de Volkswagen?,\n subtitle: 'Estarás mejor informado.',\n copy: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n icon: iconlssi,\n },\n tmk: {\n title: <>¿Te gustaría que elaboremos un perfil tuyo para ofrecerte información comercial sobre productos y servicios de nuestras marcas que creamos que te puedan interesar más según tus preferencias?,\n subtitle: '¡Adiós mensajes genéricos!',\n copy: 'Activando esta opción podremos enviarte información y ofertas personalizadas de productos y servicios adecuadas a tu perfil. Para ello nos basaremos en tu comportamiento, preferencias personales y cómo usas nuestros productos y servicios.',\n icon: icontmk,\n }\n}\n\n\nexport const ConsentQuestion = (ConsentQuestionProps: ConsentQuestionProps) => {\n const { questionType } = ConsentQuestionProps;\n const [currentValue, setCurrentValue] = React.useState('');\n const { register, setValue, errors } = useFormContext();\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n const [navPosition, setNavPosition] = React.useState('fixed');\n const viewportHeight = useWindowHeight();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { setShowPreviousStep } = useOneFormContext();\n\n setShowPreviousStep(false);\n\n const { bottom: bottomContent, getAndUpdateState: getAndUpdateStateContent } = useGetBoundingClientRect(\n '.content-controller-fullScreen'\n );\n\n const { top: topNavigation, getAndUpdateState: getAndUpdateStateNavigation } =\n useGetBoundingClientRect('.navigation-wrapper');\n\n useEffect(() => {\n if (bottomContent === null) {\n setNavPosition('fixed');\n } else if (bottomContent <= viewportHeight - 100) {\n setNavPosition('absolute');\n } else {\n setNavPosition('fixed');\n }\n }, [topNavigation, bottomContent]);\n\n const handlePosition = () => {\n getAndUpdateStateNavigation();\n getAndUpdateStateContent();\n };\n\n useEffect(() => {\n document.addEventListener('scroll', handlePosition);\n return () => {\n document.removeEventListener('scroll', handlePosition);\n };\n\n }, []);\n\n const renderCTAs = () => {\n return (\n <>\n {\n e.preventDefault()\n checkCurrentValue('aceptar', questionType)\n }}\n ariaLabel=\"aceptar\"\n >\n Aceptar\n \n {\n e.preventDefault()\n checkCurrentValue('omitir', questionType)\n }}\n ariaLabel=\"omitir\"\n >\n Omitir\n \n \n \n )\n }\n\n function checkCurrentValue(label: string, name: string) {\n const value = label === 'aceptar' ? 'PERMITE' : 'NO INFORMADO';\n setCurrentValue(label);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionType]: value } });\n\n setValue(name, value);\n handleNextStep();\n }\n\n return (\n <>\n \n \n\n
\n \"icon\"\n
\n \n {questions[questionType].title}\n \n \n {questions[questionType].subtitle}\n \n \n {questions[questionType].copy}\n \n \n \n \n {renderCTAs()}\n \n \n \n \n {renderCTAs()}\n \n \n \n \n )\n}\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Calendar } from 'src/icons-core-imports';\n\nimport React from 'react';\nimport { useSelector } from 'react-redux';\nimport { Center, getDistanceFromCenter, Points } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { Horario, OneFormState } from 'src/types';\n\nconst CTAWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding-top: 32px;\n`;\n\ninterface DealerCardProps {\n handleShowSlots?: any;\n point?: Points;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n center: Center;\n}\n\nexport const DealerCard = (props: DealerCardProps) => {\n const { point, center } = props;\n const { name, address, city, zipCode } = point.properties.dealer.markerInfo.dealerInfo;\n const { distanceFromCenter, dealer } = point.properties;\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario: Horario } = formData.fields;\n\n return (\n <>\n \n \n {props.handleShowSlots(point) === null ? null : (\n \n \n {props.handleShowSlots(point)}\n \n \n )}\n\n \n \n {name ? name : null}\n \n \n {address}, {zipCode} {city}\n \n \n \n \n \n {distanceFromCenter ? distanceFromCenter : getDistanceFromCenter(center, point)}km\n \n \n \n\n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar día y franja horaria',\n },\n dealer\n );\n props.handleShowCalendarOnClick(point);\n }}\n >\n Seleccionar día y franja horaria\n \n \n ) : (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealer\n );\n if (\n (horario !== 'before' && dealer.slots[horario] === null) ||\n (horario === 'before' && !point.properties.hasOwnProperty('earliestSlot'))\n ) {\n props.handleShowCalendarOnClick(point);\n } else {\n props.handleSeleccionarOnClick(point);\n }\n }}\n >\n Seleccionar\n \n }\n onClick={(e) => {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealer\n );\n props.handleShowCalendarOnClick(point);\n }}\n >\n Ver más horas\n \n \n )}\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { InputButton, TextAreaExtended, PaddingWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { FieldType } from 'src/feature-service/es-oneform-core-feature-service/types';\n\ninterface DetalleMotivoProps {\n hideCTA?: boolean;\n CTALabel?: string;\n name?: FieldType;\n label?: string;\n limitedCharacters?: boolean;\n numberOfMaxLength?: number;\n showRecomendation?: string | JSX.Element;\n required?: boolean;\n}\n\nexport function DetalleMotivo(props: DetalleMotivoProps) {\n const { hideCTA, CTALabel, name, label, limitedCharacters, numberOfMaxLength, showRecomendation, required } = props;\n const { register, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const [showButton, setShowButton] = useState(true);\n const [currentValue, setCurrentValue] = useState('');\n\n const adMaxLength = (max: number) => {\n const aux = document.getElementsByTagName('textarea');\n aux[0].setAttribute('maxlength', `${max}`);\n };\n\n useEffect(() => {\n if (limitedCharacters) adMaxLength(numberOfMaxLength);\n }, []);\n\n useEffect(() => {\n if (hideCTA) {\n setShowButton(false);\n }\n }, []);\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n if (!hideCTA && (aux.length <= 2 || aux === '')) {\n setShowButton(true);\n } else {\n setShowButton(false);\n }\n };\n\n return (\n \n \n
\n handleChange(e)}\n appearance={'default'}\n isFloating\n innerRef={register({\n required: {\n value: required ? required : false,\n message: '',\n },\n })}\n maxLength={numberOfMaxLength}\n alternateCTAText={CTALabel ? CTALabel : 'No, eso es todo'}\n />\n {\n showRecomendation ? (\n \n \n {showRecomendation}\n \n \n ) : null\n }\n
\n {\n hideCTA ? null :(\n <>\n {showButton ? (\n {\n setValue('masInformacion', '');\n handleNextStep(e);\n }}\n innerRef={register({\n required: {\n value: required ? required : false,\n message: '',\n },\n })}\n />\n ) : (\n
\n )}\n \n )\n } \n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { SelectExtended } from '.';\nimport { getActualYearNumber } from 'src/feature-app';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { meses } from 'src/feature-app/InputsValues/OtherInputTypesObjects';\ninterface FechaCompraProps {\n notALayer: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: 4px;\n display: flex;\n flex-wrap: wrap;\n width: var(--size-grid020);\n @media all and (min-width: 560px) {\n width: var(--size-grid013);\n }\n @media screen and (min-width: 960px) {\n margin-top: 0; \n width: var(--size-grid008);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid005);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid004);\n }\n label {\n margin-top: 40px;\n width: var(--size-grid009);\n\n @media all and (max-height: 624px) {\n margin-top: 20px;\n }\n\n @media all and (min-width: 560px) {\n width: var(--size-grid006);\n }\n @media screen and (min-width: 960px) {\n width: calc( var(--size-grid003) + (var(--size-grid001)/2) );\n }\n @media all and (min-width: 1280px) {\n width: calc( var(--size-grid002) + (var(--size-grid001)/2) );\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid002);\n }\n @media all and (min-width: 2560px) {\n width: calc( var(--size-grid001) + (var(--size-grid001)/2) );\n }\n }\n`;\nconst MarginDiv = styled.div`\n width: var(--size-grid002);\n @media all and (min-width: 560px) {\n width: var(--size-grid001);\n }\n`;\n\nexport const FechaCompra = (props: FechaCompraProps ) => {\n\n const { notALayer } = props;\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const { fecha } = formData.fields;\n\n //month\n const [ month, setMonth ] = useState('Enero');\n\n const handleChangeMonth = (e:any) => {\n e.preventDefault();\n setMonth(e.target.value);\n };\n\n //year\n\n const actualYear = getActualYearNumber();\n const [ yearsArray, setYearsArray ] = useState(null);\n\n useEffect(()=>{\n const previousYear = dayjs(actualYear).subtract(1, 'y').locale('es').format('YYYY');\n\n setYearsArray([previousYear, actualYear]);\n }, [actualYear]);\n\n const [ year, setYear ] = useState(actualYear);\n\n const handleChangeYear = (e:any) => {\n e.preventDefault();\n setYear(e.target.value);\n };\n\n //previous value\n\n useEffect(()=>{\n if(fecha) {\n const aux = fecha.split('/');\n const auxMonth = meses.find((m)=> m.number === aux[1]); \n setMonth(auxMonth.name);\n setYear(aux[2]);\n }\n }, []);\n\n //send value\n\n const [ finalDate, setFinalDate ] = useState(null);\n\n useEffect(()=>{\n const aux = meses.find((m)=> m.name === month);\n\n setFinalDate(`01/${aux.number}/${year}`);\n }, [month, year]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { fecha: finalDate } });\n if(finalDate) {\n const aux = finalDate.split('/');\n const mes = meses.find((m) => m.number === aux[1]);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { fechaCompra : mes.name + ' / ' + aux[2] } });\n }\n }, [finalDate]);\n\n \n\n \n\n return (\n \n m.name)}\n name='month'\n isRequired={true}\n handleChange={handleChangeMonth}\n value={month}\n onClick={() => null}\n setOption={setMonth}\n />\n \n { yearsArray ? (\n null}\n setOption={setYear}\n />\n ) : null}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n Text,\n styled,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { CustomSlider, PaddingWrapper } from '.';\n\nconst KilContentWrapper = styled.div`\n padding-left: 32px;\n padding-right: 8px;\n width: 100vw;\n\n @media all and (min-width: 560px) {\n padding-left: 46px;\n padding-right: 32px;\n }\n @media all and (min-width: 960px) {\n padding-left: 120px;\n padding-right: 81px;\n width: 960px;\n }\n`;\n\nexport function Kilometros() {\n const isCommerciales = useIsComerciales();\n const jumpRange = isCommerciales ? 50000 : 30000;\n const maxValue = isCommerciales ? 400000 : 180000;\n const numberOfSteps = isCommerciales ? 9 : 7;\n const [value, setValue] = useState(1);\n const [millageValue, setMillageValue] = useState([0, jumpRange]);\n const [rangoKilometros, setRangoKilometros] = useState(`0km - ${formatNumber(jumpRange)}km`);\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n // convertir int a string con '.' de separacion para los miles. ej: 30000 --> 30.000\n function formatNumber(num: number | number[]) {\n return num.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1.');\n }\n const handleInputChange = (event: any) => {\n setValue(event.target.value);\n };\n\n useEffect(() => {\n const aux = jumpRange;\n const lowValue = aux * value - jumpRange;\n const highValue = aux * value;\n let stringRange;\n\n if (highValue > maxValue) {\n stringRange = isCommerciales ? 'Más de 400.000km' : 'Más de 180.000km';\n setMillageValue([lowValue, highValue]);\n } else {\n stringRange = `${formatNumber(lowValue)}km - ${formatNumber(highValue)}km`;\n setMillageValue([lowValue, highValue]);\n }\n setRangoKilometros(stringRange);\n\n trackingManager.trackFormFilterSelect(\n {\n contentId: 'Kilometros',\n },\n {\n type: 'range',\n name: 'Kilometros',\n lowerbound: String(lowValue),\n upperbound: String(highValue),\n values: undefined,\n },\n { FormFieldName: 'kilometros' }\n );\n }, [value]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { kilometros: millageValue } });\n }, [millageValue]);\n\n return (\n \n \n \n \n {rangoKilometros}\n \n \n \n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'No estoy seguro',\n });\n setMillageValue(0);\n handleNextStep(e);\n }}\n ariaLabel=\"aria label\"\n >\n No estoy seguro\n \n \n \n \n );\n}\n","import { Breakpoints, BreakpointWrapper, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen, IntermitenciaDMSKo, InvalidForm } from 'src/components';\n\nconst PositionWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`;\n\ninterface LastNavigationProps {\n compartir?: string;\n setCompartirError?: React.Dispatch>;\n setPrivacidadError?: React.Dispatch>;\n label?: string;\n KoTitle?: string;\n KoBody?: string;\n loadingCopy?: string;\n ContentID?: string;\n checkNotSavedFields?: () => string;\n ActivarCheckNotSavedFields?: boolean;\n}\n\n\nexport const LastNavigation = (props: LastNavigationProps) => {\n const {\n label,\n KoTitle,\n KoBody,\n loadingCopy,\n setCompartirError,\n ContentID,\n checkNotSavedFields,\n ActivarCheckNotSavedFields,\n } = props;\n\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation, errors } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [notSavedField, setNotSavedField] = useState(null);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const [intermitenciaLayerLayer, setIntermitenciaLayerLayer] = useState>(null);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleIntermitenciaDMSKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderIntermitenciaDMSKoLayer, {}, { size: FocusLayerSizeV2.A });\n setIntermitenciaLayerLayer(layer);\n // return layer;\n };\n\n const renderIntermitenciaDMSKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleInvalidFormLayer = () => {\n const layer = layerManager.openFocusLayer(renderInvalidFormLayer, {}, { size: FocusLayerSizeV2.A });\n // setConfirmacionLayer(layer);\n\n // return layer;\n };\n const renderInvalidFormLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmar(e: any) {\n if (formData.fields.formName === 'no_compra-no_tengo' && formData.fields.quieroContacto === 'true' ||\n formData.fields.formName === 'no_renovacion-no_tengo' && formData.fields.quieroContacto === 'true') {\n if (!formData.fields.compartir) {\n setCompartirError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: ContentID ? ContentID : 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n } else {\n const isValid = await triggerValidation();\n if (setCompartirError && !isValid) {\n setCompartirError(true);\n }\n \n if (!isValid) return;\n\n trackingManager.trackFormCTAClick({\n contentId: ContentID ? ContentID : 'Enviar',\n });\n\n if (ActivarCheckNotSavedFields) {\n const someNotSavedField = checkNotSavedFields();\n setNotSavedField(someNotSavedField);\n\n if (someNotSavedField === null) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n const { sendDmsFailed } = store.getState().formInfo;\n if (sendDmsFailed) {\n handleIntermitenciaDMSKoLayer();\n } else {\n handleKoLayer();\n }\n }\n } else {\n handleInvalidFormLayer();\n }\n } else {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n {\n e.preventDefault();\n handleConfirmar(e);\n }}\n stretchContent\n >\n {label ? label : 'Enviar'}\n \n \n \n {\n e.preventDefault();\n handleConfirmar(e);\n }}\n >\n {label ? label : 'Enviar'}\n \n \n \n );\n};\n","import {\n Container,\n CTA,\n Text,\n TextAlignment,\n ContainerGutter,\n styled,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n isGooglePlace,\n Suggest,\n Suggestion,\n useOneFormContext\n} from 'src/feature-app';\nimport { useLocateUser } from 'src/feature-app/hooks';\nimport { Installation, isDealerData, OneFormState } from 'src/types';\n\nconst LocateWrapper = styled.div<{ paddingTop?: string }>`\n overflow: visible;\n padding-top: ${(props) => props.paddingTop ? props.paddingTop : '44px'};\n`;\nconst LocationDisabledWrapper = styled.div<{ paddingTopLocation?: string }>`\n padding-top: ${(props) => props.paddingTopLocation ? props.paddingTopLocation : '44px'};\n`;\ninterface LocateUserProps {\n isFiltrosSuggest?: boolean;\n onSuggestionSelectedFnAlternative?: (suggestion: Suggestion) => void;\n theme?: 'main' | 'inverted';\n paddingTop?: string;\n paddingTopLocation?: string;\n autoWidth?: boolean;\n noTengoDudasButton?: boolean;\n}\n\nexport function LocateUserFullScreen(props: LocateUserProps) {\n const { isFiltrosSuggest, onSuggestionSelectedFnAlternative, theme, paddingTop, paddingTopLocation, autoWidth } = props;\n const { register } = useFormContext();\n const { nextStep } = useOneFormContext();\n const {\n value,\n setValue,\n suggestion,\n setSuggestion,\n icon,\n locationSuccess,\n setLocationSuccess,\n handleLocate,\n loading,\n locationDisabled,\n isLocating,\n onSuggestionSelectedFn,\n } = useLocateUser();\n const dispatch = useDispatch();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n\n const getSuggestionValue = (suggestion: Suggestion) => {\n if (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n return (suggestion as Installation).VGED_CommercialName__c;\n } else {\n return suggestion.name;\n }\n };\n\n return (\n \n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) handleLocate();\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n \n \n Tu localización está deshabilitada\n \n \n ) : null}\n \n {props.noTengoDudasButton ? (\n {\n e.preventDefault();\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'false' } });\n nextStep();\n }}\n size=\"small\"\n >\n No tengo dudas\n \n ) : null}\n
\n \n
\n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { InputError, TextInputExtended, CarlineSelect, PaddingWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { CitaFormDataFields } from 'src/forms/CitaPosventa/types';\nimport { SelectExtended } from '.';\n\nconst arrCountries = [\n {\n name: 'ES',\n code: 'ES',\n regex: [/\\d{4}[b-df-hj-npr-tv-zB-DF-HJ-NPR-TV-Z]{3}/, /[A-Za-z]{1,2}\\d{4}[A-Za-z]{1,2}/],\n errorMessage: 'Ejemplo: 0000BCD o AA0000AA',\n },\n {\n name: 'DE',\n code: 'DE',\n regex: [/[a-zA-Z]{2,5}\\d{1,4}/],\n errorMessage: 'Ejemplo: AAABB0000',\n },\n {\n name: 'FR',\n code: 'FR',\n regex: [\n /[a-hj-np-tv-zA-HJ-NP-TV-Z]{2}\\d{3}[a-hj-np-tv-zA-HJ-NP-TV-Z]{2}/,\n /\\d{2,4}[a-zA-Z]{2,3}\\d{2,3}/,\n /\\d{2,4}[a-zA-Z]{2,3}\\d{1}(a|b|A|B)/,\n ],\n errorMessage: 'Ejemplo: AA000AA o 00000AA00',\n },\n {\n name: 'GB',\n code: 'GB',\n regex: [/[a-zA-Z]{1,2}\\d{2}[a-zA-Z]{3}/, /[a-zA-Z]{1}\\d{3}[a-zA-Z]{3}/],\n errorMessage: 'Ejemplo: AA00AAA',\n },\n {\n name: 'IT',\n code: 'IT',\n regex: [/[a-zA-Z]{2}\\d{3}[a-zA-Z]{2}/],\n errorMessage: 'Ejemplo: AA000AA',\n },\n {\n name: 'PT',\n code: 'PT',\n regex: [/[a-zA-Z]{2}\\d{2}[a-zA-Z]{2}/, /\\d{2}[a-zA-Z]{2}\\d{2}/],\n errorMessage: 'Ejemplo: AA00AA',\n },\n {\n name: 'Otros',\n code: 'Otros',\n regex: [/[a-zA-Z\\d\\s]{3,}/],\n errorMessage: 'Solo números, letras y espacios',\n },\n];\n\ninterface paginaConfirmacionProps {\n paginaConfirmacion: boolean;\n}\n\nconst ContentWrapper = styled.div`\n\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: ${(props) => (props.paginaConfirmacion ? 'flex-start' : 'space-between')};\n flex-wrap: wrap;\n padding-top: 0;\n }\n /* Eliminar flechas del input type number porque descuadra el layout un poco */\n /* Chrome, Safari, Edge, Opera */\n input::-webkit-outer-spin-button,\n input::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n input[type='number'] {\n -moz-appearance: textfield;\n }\n`;\n\nconst MatriculaAndCountriesWrapper = styled.div`\n width: 100%;\n display: flex;\n height: max-content;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n margin-right:${(props) => (props.paginaConfirmacion ? '88px' : '0px')};\n }\n`;\nconst MatriculaWrapper = styled.div`\n width: 100%;\n label {\n width: 100%;\n @media screen and (min-width: 960px) {\n width: 170px;\n }\n }\n`;\nconst CoutryWrapper = styled.div`\n margin-right: 24px;\n label {\n width: 109px;\n @media screen and (min-width: 560px) {\n width: 116px;\n }\n @media screen and (min-width: 960px) {\n width: 120px;\n }\n }\n`;\nconst InputErrorWrapper = styled.div`\n &.matricula-error-wrapper {\n p {\n max-width: 179px;\n @media all and (min-width: 560px) {\n max-width: 163px;\n }\n @media all and (min-width: 960px) {\n max-width: 176px;\n }\n }\n }\n`;\nconst AnoMatriculacionWrapper = styled.div<{ paginaConfirmacion: boolean }>`\n margin-top: ${(props) => (props.paginaConfirmacion ? '40px' : null)};\n @media all and (min-width: 960px) {\n margin-top: 0;\n }\n`;\n\ninterface inputWidthWrapperProps {\n noPaddingTop?: boolean;\n}\n\nconst InputWidthWrapper = styled.div`\n width: 100%;\n padding-top: ${(props) => (props.noPaddingTop ? null : '40px')};\n\n @media all and (max-height: 624px) {\n padding-top: ${(props) => (props.noPaddingTop ? null : '24px')};\n }\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n padding-top: 0;\n width: 320px;\n }\n`;\n\ninterface MatriculaProps {\n formData: CitaFormDataFields;\n paginaConfirmacion: boolean;\n noPaddingTop?: boolean;\n}\n\nconst MatriculaYModelo = (props: MatriculaProps) => {\n const { register, errors } = useFormContext();\n const { error, setError } = useOneFormContext();\n const [inputValueAno, setInputValueAno] = useState('');\n const [pristineMatricula, setPristineMatricula] = useState(true);\n const [pristineAno, setPristineAno] = useState(true);\n const [inputValueMatricula, setInputValueMatricula] = useState('');\n const [errorMatricula, setErrorMatricula] = useState(false);\n const [errorAno, setErrorAno] = useState(false);\n const [errorCountry, setErrorCountry] = useState(false);\n const [country, setCountry] = useState('ES');\n const [countryObject, setCountryObject] = useState(null);\n const regExpAno = /^(19|20)\\d{2}$/;\n const [regExCounty, setRegExCounty] = useState(null);\n const { formData, paginaConfirmacion, noPaddingTop } = props;\n\n useEffect(() => {\n if (formData.countryPlate) {\n setCountry(formData.countryPlate);\n const countryObject = arrCountries.find((c) => c.name === formData.countryPlate);\n setCountryObject(countryObject);\n setRegExCounty(countryObject.regex);\n } else {\n setCountry('ES');\n setCountryObject(arrCountries[0]);\n setRegExCounty(arrCountries[0].regex);\n }\n if (formData.matricula) {\n setInputValueMatricula(formData.matricula);\n setPristineMatricula(false);\n }\n if (formData.anoMatriculacion) {\n setInputValueAno(formData.anoMatriculacion);\n setPristineAno(false);\n }\n }, []);\n\n const validateMatricula = (input: string) => {\n const isValid = regExCounty.some((regEx) => regEx.test(input));\n\n if (isValid) {\n setErrorMatricula(false);\n return true;\n } else {\n setErrorMatricula(true);\n return false;\n }\n };\n\n const handleChangeCountry = (event: any) => {\n setCountry(event.currentTarget.value);\n const countryObject = arrCountries.find((c) => c.name === event.currentTarget.value);\n setCountryObject(countryObject);\n setRegExCounty(countryObject.regex);\n if (countryObject.name !== '') setErrorCountry(false);\n };\n\n const handleChangeAno = (e: any) => {\n setInputValueAno(e.target.value);\n setPristineAno(false);\n };\n\n const handleChangeMatricula = (e: any) => {\n setInputValueMatricula(e.target.value);\n setPristineMatricula(false);\n };\n\n useEffect(() => {\n if (inputValueAno.length < 4) {\n return;\n } else {\n if (!pristineAno && inputValueAno.match(regExpAno) === null) {\n setErrorAno(true);\n } else if (inputValueAno === '') {\n setPristineAno(true);\n setErrorAno(false);\n } else {\n setErrorAno(false);\n }\n }\n }, [inputValueAno, pristineAno]);\n\n useEffect(() => {\n if (error) {\n errorAno || pristineAno ? setErrorAno(true) : setErrorAno(false);\n errorMatricula || pristineMatricula ? setErrorMatricula(true) : setErrorMatricula(false);\n }\n }, [error]);\n\n useEffect(() => {\n if (!errorMatricula && !errorMatricula) setError(false);\n }, [errorMatricula, errorMatricula]);\n\n return (\n \n \n \n \n null}\n updateFields\n setOption={setCountry}\n isRequired={true}\n />\n \n \n validateMatricula(input),\n required: {\n value: true,\n message: 'Requerido',\n },\n maxLength: 100,\n })}\n isFloating\n onChange={(e) => handleChangeMatricula(e)}\n required\n />\n {errorMatricula && (\n \n {countryObject.errorMessage}\n \n )}\n \n \n \n \n handleChangeAno(e)}\n required\n />\n {errorAno && Ejemplo: 2010}\n \n \n {!paginaConfirmacion ? (\n \n \n \n ) : null}\n \n \n );\n};\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData.fields,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(MatriculaYModelo);\n\nexport { ConnectedComponent as MatriculaYModelo };\n","import React, { useState} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { styled, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { InputButton } from 'src/components/inputs/InputButton';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n & > button {\n margin: 12px;\n }\n`;\n\ninterface CTAValues {\n value?: string | boolean;\n label: string;\n}\n\ninterface NoClienteProps {\n name: string;\n nextOnClick?: boolean;\n bodyCopy: string;\n}\n\nexport const NoCliente = (props: NoClienteProps) => {\n const dispatch = useDispatch();\n const { name, nextOnClick, bodyCopy } = props;\n\n const { register, setValue } = useFormContext();\n const { handleNextStep, closeLayer } = useOneFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n\n return (\n <>\n \n {bodyCopy} \n \n \n {\n if ('Claro' !== selectedValue) {\n setSelectedValue('Claro');\n setValue(name, true);\n\n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n {\n\n if ('Salir del formulario' !== selectedValue) {\n setSelectedValue('Salir del formulario');\n setValue(name,false);\n dispatch({ type: 'RESET_STATE' });\n closeLayer();\n\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n \n \n );\n};\n","import React from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n CTA,\n ContainerGutter,\n Layout,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\ninterface IntroduccioStarsProps {\n bodyCopy?: string;\n label?: string;\n}\n\nexport const PantallaIntroduccionStars = (props:IntroduccioStarsProps) => {\n const { bodyCopy, label } = props;\n const { nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n \n \n \n {bodyCopy ? bodyCopy : 'Valora del 1 al 5 las siguientes experiencias con nosotros.'}\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n {label ? label : 'Empezar'}\n \n \n \n );\n};\n","import * as React from 'react';\nexport var ChevronDown = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m1.216 2.805 4.746 4.962.043.046.04-.041 4.738-4.966.962.918L7.01 8.686A1.4 1.4 0 0 1 6 9.195a1.37 1.37 0 0 1-1.004-.514L.255 3.725z\" }));\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: \"M3.698 12.641 22.655 32.46c1.085 1.159 1.482 1.338 2.732.005l18.912-19.822 1.447 1.381L26.84 33.839a3.94 3.94 0 0 1-2.842 1.52 3.88 3.88 0 0 1-2.797-1.526L2.252 14.023z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 18.999c-.45 0-.873-.178-1.189-.5L1.025 8.502l.95-.93 9.785 9.996a.34.34 0 0 0 .48-.001l9.784-9.995.951.93-9.785 9.996c-.317.324-.74.501-1.19.501\" }));\n }\n return null;\n}, { displayName: 'ChevronDown' }));\n","import * as React from 'react';\nimport { ChevronDown } from '@volkswagen-onehub/icons-core';\nimport { styled, css } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { getAuxillaryColor } from '../helpers/input';\nimport { InputNotification } from '../helpers/input-notification';\nconst ANIMATION_FUNCTION = '0.3s cubic-bezier(0.14, 1.12, 0.67, 0.99)';\nconst selectHeight = '50'; // static size of the input field, we don't have a token to represent this number currently; add in the future if needed\nconst iconDefaultVariantSize = '24'; // default icon size, 24x24px\n// the icon needs to be moved up by the size of the wrapper's bottom padding\nconst StyledIconWrapper = styled.span.withConfig({ displayName: \"StyledIconWrapper\", componentId: \"sc-jne68a\" }) `position:absolute;top:${(parseInt(selectHeight) - parseInt(iconDefaultVariantSize)) / 2}px;right:${({ theme }) => theme.size.static250};display:flex;justify-content:flex-end;pointer-events:none;transition:${({ theme }) => `transform ${ANIMATION_FUNCTION}, color ${theme.animation.timingFunction.cubicOut} ${theme.animation.duration.color}`};align-items:center;white-space:nowrap;`;\nconst StyledLabelText = styled.span.withConfig({ displayName: \"StyledLabelText\", componentId: \"sc-62bnde\" }) `font-size:${({ theme }) => theme.fonts.label[100].fontSize};width:100%;display:block;margin:0;padding:0;color:${({ isFloating, theme }) => isFloating ? 'transparent' : theme.colors.content.active};pointer-events:none;visibility:${({ isFloating }) => (isFloating ? 'hidden' : 'initial')};max-height:${({ isFloating, theme }) => isFloating ? '0' : `${theme.size.static250}`};transition:${({ theme }) => `max-height ${theme.animation.timingFunction.cubicOut} ${theme.animation.duration.color}`};`;\nconst StyledSelect = styled.select.withConfig({ displayName: \"StyledSelect\", componentId: \"sc-131xm3f\" }) `appearance:none;box-shadow:none;opacity:unset;pointer-events:auto;height:auto;width:100%;padding:0;padding-top:1px;${({ theme }) => theme.direction === 'rtl'\n ? css `\n\t\t\t\t\tpadding-left: ${theme.size.static400};\n\t\t\t\t`\n : css `\n\t\t\t\t\tpadding-right: ${theme.size.static400};\n\t\t\t\t`} color:inherit;background:transparent;font-size:${({ theme }) => theme.fonts.copy[200].fontSize};font-family:${({ theme }) => theme.fonts.copy[200].fontFamily};outline:none;border:none;cursor:${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};transition:${({ theme }) => `all ${theme.animation.timingFunction.cubicOut} ${theme.animation.duration.color}`};&:focus{color:${({ theme }) => theme.colors.content.primary};}option{color:initial;&:disabled{color:revert;}}`;\nconst StyledLabelTextWithFloating = styled.span.withConfig({ displayName: \"StyledLabelTextWithFloating\", componentId: \"sc-e96ov\" }) `transition:${({ theme }) => `all ${theme.animation.timingFunction.cubicOut} ${theme.animation.duration.color}`};position:absolute;bottom:0;left:0;color:inherit;${({ hasValue, theme }) => {\n // Label-style, above the input\n if (hasValue) {\n return css `\n\t\t\t\tbottom: 100%;\n\t\t\t\tcursor: initial;\n\t\t\t\tfont-size: ${theme.fonts.label[100].fontSize};\n\t\t\t\tpadding: 0;\n\t\t\t`;\n }\n // Placeholder style, \"inside\" the input\n return css `\n\t\t\tbottom: 0;\n\t\t\tcursor: text;\n\t\t\tfont-size: ${theme.fonts.copy[200].fontSize};\n\t\t\tpadding: ${theme.size.static100} 0;\n\t\t`;\n}} ${StyledSelect}:focus ~ &{bottom:100%;}`;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-1wmcxnr\" }) `position:relative;display:flex;flex-direction:column;justify-content:center;gap:2px;height:${selectHeight}px;color:${({ disabled, theme }) => theme.colors.content[disabled ? 'disabled' : 'primary']};pointer-events:none;cursor:${({ disabled }) => (disabled ? 'not-allowed' : 'auto')};padding:0 ${({ theme }) => theme.size.static250};box-shadow:0 0 0 ${({ theme }) => theme.size.border.light} ${getAuxillaryColor};border-radius:${({ theme }) => theme.size.static150};${({ appearance }) => !appearance &&\n css `\n\t\t\t&:focus-within {\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t\t${({ theme }) => theme.colors.focus.main};\n\t\t\t}\n\t\t`} &:focus-within ${StyledLabelTextWithFloating},&:focus-within ${StyledLabelText}{padding:${({ theme }) => theme.size.static0};font-size:${({ theme }) => theme.fonts.label[100].fontSize};}${({ appearance }) => (appearance === 'success' || appearance === 'error') &&\n css `\n\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t${getAuxillaryColor};\n\t\t`} ${({ hasValue, theme }) => hasValue &&\n css `\n\t\t\t${StyledLabelText} {\n\t\t\t\tmax-height: ${theme.size.static250};\n\t\t\t}\n\t\t`} ${({ theme, disabled, appearance }) => !disabled &&\n !appearance &&\n css `\n\t\t\t:hover,\n\t\t\t:focus-within {\n\t\t\t\tcolor: ${theme.colors.content.hover};\n\t\t\t}\n\t\t\t:hover {\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.light}\n\t\t\t\t\t${({ theme }) => theme.colors.border.hover};\n\t\t\t}\n\t\t\t:hover ${StyledLabelText} {\n\t\t\t\tcolor: ${theme.colors.content.hover};\n\t\t\t}\n\t\t`} ${({ isFloatingLabel, theme }) => isFloatingLabel &&\n css `\n\t\t\t/* On focus / while typing: Label-style, above the input */\n\t\t\t&:focus-within ${StyledLabelText} {\n\t\t\t\tmax-height: ${theme.size.static250};\n\t\t\t}\n\t\t`}`;\nconst StyledSelectWrapper = styled.div.withConfig({ displayName: \"StyledSelectWrapper\", componentId: \"sc-1jc3d6n\" }) `position:relative;`;\nexport const Select = (props) => {\n const ref = React.createRef();\n const labelRef = React.createRef();\n const { appearance, children, disabled, label, defaultValue, value, message, onFocus, onChange, onBlur, required, name, autoComplete, autoFocus, isFloating, } = props;\n const [hasValue, setHasValue] = React.useState(false);\n const [labelHeight, setLabelHeight] = React.useState(0);\n const [isFocused, setIsFocused] = React.useState(false);\n const handleChange = React.useCallback((e) => {\n if (onChange) {\n onChange(e, props);\n }\n setHasValue(true);\n }, [onChange, props]);\n React.useEffect(() => {\n if (ref.current &&\n ref.current.selectedIndex <= 0 &&\n ref.current.querySelector('option:first-child:disabled')) {\n ref.current.selectedIndex = -1;\n }\n else {\n setHasValue(true);\n }\n }, [ref]);\n React.useEffect(() => {\n var _a;\n setLabelHeight(((_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0);\n }, [labelRef]);\n const handleResize = React.useCallback(() => { var _a; return setLabelHeight(((_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0); }, [labelRef]);\n React.useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize]);\n const handleFocus = (event) => {\n setIsFocused(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n const commonProps = getCommonProps(props);\n const errorMessage = appearance && message ? (React.createElement(InputNotification, { appearance: appearance, text: message, isFocused: isFocused, hideIcon: true })) : undefined;\n return (React.createElement(React.Fragment, null,\n React.createElement(StyledLabel, Object.assign({ disabled: disabled, isFloatingLabel: isFloating, appearance: appearance, hasValue: hasValue }, commonProps),\n label && (React.createElement(StyledLabelText, { \"aria-hidden\": true, ref: labelRef, isFloating: isFloating },\n label,\n required && '*')),\n React.createElement(StyledSelectWrapper, null,\n React.createElement(StyledSelect, { autoComplete: autoComplete, disabled: disabled, required: required, ref: ref || undefined, defaultValue: defaultValue, value: value, onChange: handleChange, onFocus: handleFocus, onBlur: onBlur, name: name, autoFocus: autoFocus }, children),\n label && isFloating && (React.createElement(StyledLabelTextWithFloating, { hasValue: hasValue, labelHeight: labelHeight },\n label,\n required && '*'))),\n React.createElement(StyledIconWrapper, null,\n React.createElement(ChevronDown, { variant: \"default\", ariaHidden: true }))),\n errorMessage));\n};\n","/* eslint-disable react/display-name */\nimport React, { useState, useEffect, useRef } from 'react';\nimport { styled, Select, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useDispatch } from 'react-redux';\nimport { useOneFormContext, useTrackingManager } from 'src/feature-app';\nimport { SelectExtendedList } from './CarlineSelect';\nimport { useFormContext } from 'react-hook-form';\n\ntype WrapperProps = {\n disabled?: boolean;\n themeColor?: string;\n};\n\nconst SelectWrapper = styled.div`\n\n opacity: ${(props) => (props.disabled ? '0.5' : '1')};\n & span::before {\n display: none;\n }\n svg {\n fill: ${(props) => (props.themeColor === 'inverted' ? '#ffffff' : '#001E50')};\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 {\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});\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { fetchTreatment, fetchTreatmentLegacy } from 'src/bff';\nimport { SelectExtendedList } from './CarlineSelect';\nimport { SelectExtended } from './SelectExtended';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nexport const Trato = () => {\n const [options, setOptions] = useState([]);\n const dispatch = useDispatch();\n const isComerciales = useIsComerciales();\n\n useEffect(() => {\n const getTreatment = async () => {\n const response = isComerciales ? await fetchTreatment('LCV_DDB_FRM_LEM_REC_LEM') : await fetchTreatment('VW_DDB_FRM_LEM_REC_LEM');\n const options: SelectExtendedList[] = response.content.map((att, indx) => ({ name: att.attributes[0].value, code: att.attributes[0].name, 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 ? \n\t\t\n\t\t\t\n\t\t : null}\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { Checkbox, CTA, styled, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { InputError } from 'src/components';\nimport { OneFormState } from 'src/types';\n\nexport const PoliticaPrivacidad = () => {\n const { register, errors, clearError } = useFormContext();\n const isComerciales = useIsComerciales();\n const { formInfo } = useSelector((state: OneFormState) => state);\n return (\n
\n
\n \n Enviando este formulario declaras estar informado de la{' '}\n \n política de privacidad.\n \n \n
\n {errors && errors.politicaPrivacidad ? (\n Necesitamos esta información para seguir\n ) : null}\n
\n );\n};\n","import React, {useState, useEffect} from 'react';\nimport { useDispatch } from 'react-redux';\nimport { \n styled, \n Text, \n TextAlignment, \n BreakpointWrapper, \n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\nconst CustomInputRange = styled.input`\n width: 100%;\n height: 30px;\n background: transparent;\n font-size: 1em;\n cursor: pointer; \n -webkit-appearance: none;\n\n &::-webkit-slider-runnable-track, &::-webkit-slider-thumb {\n -webkit-appearance: none;\n };\n &::-webkit-slider-runnable-track{\n position: relative;\n width: 100%;\n height: 1px;\n background: transparent; \n };\n &::-moz-range-track {\n width: 100%;\n height: 1px;\n background: transparent;\n };\n &::-ms-track {\n border: none;\n width: 100%;\n height: 1px;\n background: transparent;\n color: transparent;\n };\n &::-ms-fill-lower {\n display: none;\n };\n &::-webkit-slider-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-moz-range-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-ms-thumb {\n box-sizing: border-box;\n width: 24px; \n height: 24px;\n border-radius: 50%;\n background: #001e50;\n transform: translateY(-12px);\n };\n &::-webkit-slider-runnable-track:before, &::-webkit-slider-runnable-track:after, & /deep/ #track:before, &/deep/ #track:after {\n position: absolute;\n bottom: 100%;\n color: #2c2c2b;\n font: 700 0.875em / 2 arial, sans-serif;\n background: #001e50;\n };\n &::-webkit-slider-runnable-track:before, & /deep/ #track:before {\n left: 0.8125em;\n word-spacing: 1.4375em;\n content: '1 2 3 4 5 6 7 8 9';\n };\n &::-webkit-slider-runnable-track:after, & /deep/ #track:after {\n right: 0.625em;\n word-spacing: 0.875em;\n content: '10 11 12 13 14 15 16';\n };\n &:focus{\n outline: none;\n }\n\n`;\nconst Mark = styled.div`\n height: 9px;\n width: 1px;\n background-color: #001e50;\n`;\nconst MarksPosition = styled.div`\n display: flex;\n display:-webkit-flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -19.5px;\n z-index: 3;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 0;\n width: 97%;\n }\n`;\nconst SliderPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SlideLabelsPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst SliderAndMarksPosition = styled.div`\n width: 96%;\n padding-right: 20px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n @media all and (min-width: 960px) {\n width: 99%;\n padding-right: 0px;\n }\n`;\ninterface CustomSliderProps {\n mobileLabels: Array;\n desktopLabels: Array;\n name: string;\n}\n\nexport const SlideEncuestas = (props: CustomSliderProps ) => {\n\n const {name, mobileLabels, desktopLabels} = props;\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n const numberOfSteps = 5;\n const sliderMarks= [];\n const [value, setValue] = useState(3);\n\n\n const handleInputChange = (event: any) => {\n setValue(event.target.value);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: `${value}` } });\n }, [value]);\n\n for(let i = 0; i < 5; i++) {\n sliderMarks.push();\n }\n \n document.documentElement.classList.add('js');\n \n return (\n
\n \n
\n \n {sliderMarks ? sliderMarks : null}\n \n \n handleInputChange(e)}\n value={value}\n />\n \n \n \n \n {mobileLabels[0]}\n {mobileLabels[1]}\n \n \n {desktopLabels[0]}\n {desktopLabels[1]}\n {desktopLabels[2]}\n {desktopLabels[3]}\n {desktopLabels[4]}\n \n \n \n\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Sin respuesta',\n });\n setValue(3);\n handleNextStep(e);\n }}\n ariaLabel=\"aria label\"\n >\n Sin respuesta\n \n \n
\n );\n};\n\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Autosuggest from 'react-autosuggest';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from 'src/feature-app/NewMap';\nimport { Close, Magnifier } from 'src/icons-core-imports';\nimport { Text, ThemeProvider, TokenTextAppearance, TokenTextColor, styled } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { getVehiculosModelo } from 'src/bff';\nimport { modelCar, OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\nimport { useDropdowPosition } from 'src/feature-app/hooks';\n\ninterface SuggestModeloProps {\n notALayer: boolean;\n marginTop?: string;\n fieldsName: string;\n required: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: ${(props) => props.marginTop ? props.marginTop : '44px'};\n width: var(--size-grid020);\n position:relative;\n overflow: visible ;\n @media all and (max-height: 624px) {\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '24px')};\n }\n\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n// Teach Autosuggest how to calculate suggestions for any given input value.\nconst getSuggestions = (value: string, list: modelCar[]) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n\n const regex = new RegExp(escapedValue, 'i');\n\n return list.filter((car: modelCar) => regex.test(car.title));\n};\n\n// When suggestion is clicked, Autosuggest needs to populate the input\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\n// input value for every given suggestion.\nconst getSuggestionValue = (suggestion: modelCar) => suggestion.title;\n\n// Use your imagination to render suggestions.\nconst renderSuggestion = (suggestion: modelCar) => (\n \n \n {suggestion.title}\n \n \n);\n\nexport const SuggestMarca = (props: SuggestModeloProps) => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { notALayer, marginTop, fieldsName, required } = props;\n const dispatch = useDispatch();\n const [suggestions, setSuggestions] = useState([]);\n const [list, setList] = useState(null);\n const { register, clearError } = useFormContext();\n const [value, setValue] = useState('');\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const suggestRef = useRef(null);\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n const [suggestion, setSuggestion] = useState(null);\n const [inputFocus, setInputFocus] = useState(false);\n\n const { setDisableIntroNextStep, setError } = useOneFormContext();\n\n useEffect(() => {\n getVehiculosModelo().then((modelos) => {\n setList(modelos);\n if (formData.fields[fieldsName]) {\n const modeloSuggestion = modelos.find((model) => model.title === formData.fields[fieldsName]);\n setValue(formData.fields[fieldsName]);\n setSuggestion(modeloSuggestion);\n }\n });\n }, []);\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n if (newValue === '') {\n setSuggestion(null);\n setSelectedValue(true);\n }\n setError(false);\n setValue(newValue);\n };\n \n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const suggestions = getSuggestions(value, list);\n setSuggestions(suggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const inputPlaceholder = 'Escribe aquí la Marca';\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n onBlur: () => { setDisableIntroNextStep(false); },\n disabled: false,\n };\n\n \n \n\n return (\n \n {\n {/*setTimeout(() => {\n suggestRef.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }, 400);*/}\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isLocating={false}\n isFiltrosSuggest={false}\n isModeloSuggest={true}\n goUp={goUp}\n >\n \n \n \n {\n setSuggestion(suggestion);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [fieldsName]: suggestion.name } });\n setSelectedValue(true);\n }}\n\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault(); \n setValue('');\n // setFormValue(fieldsName, '')\n setSuggestion(null);\n }}\n >\n \n \n \n )}\n \n \n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Autosuggest from 'react-autosuggest';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from 'src/feature-app/NewMap';\nimport { Close, Magnifier } from 'src/icons-core-imports';\nimport { Text, ThemeProvider, styled, CTA, TokenTextAppearance, TokenTextColor, Emphasis } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { getVehiculosModelo } from 'src/bff';\nimport { modelCar, OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\nimport { useDropdowPosition } from 'src/feature-app/hooks';\n\ninterface SuggestModeloProps {\n notALayer: boolean;\n marginTop?: string;\n fieldsName: string;\n required: boolean;\n outputsSeparados?: boolean;\n filterVW?:boolean;\n nextOnClick?: boolean;\n alternatCTA?: boolean;\n}\n\nconst FechaCompraWrapper = styled.div`\n margin-top: ${(props) => props.marginTop ? props.marginTop : '44px'};\n width: var(--size-grid020);\n position:relative;\n overflow: visible ;\n margin-left: ${(props) => (props.notALayer ? null : 'var(--size-grid002)')};\n\n @media all and (max-height: 624px) {\n margin-top: ${(props) => (props.marginTop ? props.marginTop : '24px')};\n }\n\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n margin-left: ${(props) => (props.notALayer ? null : '122px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst ModeloInteresWrapper = styled.div`\n display: ${(props)=> props.alternatCTA ? 'flex' : null};\n flex-wrap: ${(props)=> props.alternatCTA ? 'wrap' : null};\n\n @media all and (min-width: 560px) {\n gap: ${(props)=> props.alternatCTA ? '44px' : null};\n }\n`;\n\nconst ButtonWidth = styled.div`\n margin-top: 44px;\n\n button {\n width: 81px;\n }\n`;\n\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n// Teach Autosuggest how to calculate suggestions for any given input value.\nconst getSuggestions = (value: string, list: modelCar[]) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n\n const regex = new RegExp(escapedValue, 'i');\n\n return list.filter((car: modelCar) => regex.test(car.title));\n};\n\n// When suggestion is clicked, Autosuggest needs to populate the input\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\n// input value for every given suggestion.\nconst getSuggestionValue = (suggestion: modelCar) => suggestion.title;\n\n// Use your imagination to render suggestions.\nconst renderSuggestion = (suggestion: modelCar) => (\n \n \n {suggestion.title}\n \n \n);\n\nexport const SuggestModelo = (props: SuggestModeloProps) => {\n const { notALayer, marginTop, fieldsName, required, outputsSeparados, filterVW, nextOnClick, alternatCTA } = props;\n const dispatch = useDispatch();\n const [suggestions, setSuggestions] = useState([]);\n const [list, setList] = useState(null);\n const { register, clearError } = useFormContext();\n const [value, setValue] = useState('');\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const suggestRef = useRef(null);\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { formTheme } = formInfo;\n const [suggestion, setSuggestion] = useState(null);\n const [inputFocus, setInputFocus] = useState(false);\n const [ isNotAnswered, setIsNotAnswered ] = useState(true);\n const [ buttonEmphasis, setButtonEmphasis ] = useState('secondary');\n const { setIsValueSelected } = useOneFormContext();\n\n const { setDisableIntroNextStep, setError, handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n\n getVehiculosModelo().then((modelos) => {\n let modelosToSet = modelos;\n if (filterVW) {\n modelosToSet = modelos.filter(modelo => modelo.brand !== 'Volkswagen');\n }\n setList(modelosToSet);\n if (formData.fields[fieldsName]) {\n if(formData.fields.brand === 'false' && formData.fields.model === 'false') {\n setButtonEmphasis('primary');\n setSuggestion(null);\n setValue('');\n setIsNotAnswered(false);\n } else {\n const modeloSuggestion = modelosToSet.find((model) => model.title === formData.fields[fieldsName]);\n setValue(formData.fields[fieldsName]);\n setSuggestion(modeloSuggestion);\n }\n }\n });\n }, []);\n\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n if (newValue === '') {\n setSuggestion(null);\n setSelectedValue(true);\n }\n setError(false);\n setValue(newValue);\n };\n \n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const suggestions = getSuggestions(value, list);\n setSuggestions(suggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const inputPlaceholder = 'Escribe aquí el modelo';\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n onBlur: () => { setDisableIntroNextStep(false); },\n disabled: false,\n };\n\n const handleDispatch = (outputsSeparados: boolean, suggestion: modelCar)=> {\n if(outputsSeparados) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'brand': suggestion.brand } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'model': suggestion.model } });\n } else {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [fieldsName]: suggestion.name } });\n }\n };\n \n \n\n return (\n \n \n {\n {/*setTimeout(() => {\n suggestRef.current.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }, 400);*/}\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isLocating={false}\n isFiltrosSuggest={false}\n isModeloSuggest={true}\n goUp={goUp}\n notALayer={notALayer}\n >\n \n \n \n {\n setSuggestion(suggestion);\n handleDispatch(outputsSeparados, suggestion);\n setSelectedValue(true);\n if(nextOnClick) {\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n }}\n\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault(); \n setValue('');\n // setFormValue(fieldsName, '')\n setSuggestion(null);\n }}\n >\n \n \n \n )}\n \n \n \n \n { alternatCTA ? (\n \n {\n e.preventDefault();\n setSuggestion({brand:'false', id: null, name: 'false', model: 'false', title: 'false'});\n handleDispatch(outputsSeparados, {brand:'false', id: null, name: 'false', model: 'false', title: 'Escribe aquí el modelo'});\n setSelectedValue(true);\n if(nextOnClick) {\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n }}\n >No\n \n ) : null}\n \n );\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { SelectExtended } from '.';\nimport { styled, CTA } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { fetchMarcas, fetchModelos } from 'src/bff';\nimport { OneFormState } from 'src/types';\nimport { useFormContext } from 'react-hook-form';\n\ninterface BrandModelProps {\n\tstepName: string;\n\tbrandName?: string;\n\tmodelName?: string;\n\tmarginTop?: string;\n\tnotALayer?: boolean;\n\trequired: boolean;\n\tformToken?: string;\n\tnextOnClick?: boolean;\n\talternatCTA?: boolean;\n}\n\nconst SelectsWrapper = styled.div`\n\tmargin-top: 4px;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\twidth: var(--size-grid020);\n\t@media all and (min-width: 560px) {\n\t\twidth: var(--size-grid013);\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tmargin-top: 0; \n\t\twidth: var(--size-grid008);\n\t}\n\t@media all and (min-width: 1280px) {\n\t\twidth: var(--size-grid006);\n\t}\n\t@media all and (min-width: 1920px) {\n\t\twidth: var(--size-grid005);\n\t}\n\t@media all and (min-width: 2560px) {\n\t\twidth: var(--size-grid004);\n\t}\n\tlabel {\n\t\tmargin-top: 40px;\n\t\twidth: var(--size-grid009);\n\n\t\t@media all and (max-height: 624px) {\n\t\t\tmargin-top: 20px;\n\t\t}\n\n\t\t@media all and (min-width: 560px) {\n\t\t\twidth: var(--size-grid006);\n\t\t}\n\t\t@media screen and (min-width: 960px) {\n\t\t\twidth: calc( var(--size-grid003) + (var(--size-grid001)/2) );\n\t\t}\n\t\t@media all and (min-width: 1280px) {\n\t\t\twidth: calc( var(--size-grid002) + (var(--size-grid001)/2) );\n\t\t}\n\t\t@media all and (min-width: 1920px) {\n\t\t\twidth: var(--size-grid002);\n\t\t}\n\t\t@media all and (min-width: 2560px) {\n\t\t\twidth: calc( var(--size-grid001) + (var(--size-grid001)/2) );\n\t\t}\n\t}\n`;\nconst MarginDiv = styled.div`\n\twidth: var(--size-grid002);\n\t@media all and (min-width: 560px) {\n\t\t\twidth: var(--size-grid001);\n\t\t}\n`;\n\nconst ButtonWidth = styled.div`\n margin-top: 58px;\n margin-left: 10px;\n\n button {\n width: 81px;\n }\n`;\n\nconst ModeloInteresWrapper = styled.div`\n display: ${(props)=> props.alternatCTA ? 'flex' : null};\n flex-wrap: ${(props)=> props.alternatCTA ? 'wrap' : null};\n\n @media all and (min-width: 560px) {\n gap: ${(props)=> props.alternatCTA ? '58px' : null};\n }\n`;\n\nexport const SelectMarcaModelo = (props: BrandModelProps) => {\n\tconst { stepName, brandName = 'brand', modelName = 'model', notALayer, marginTop, required, formToken, nextOnClick, alternatCTA } = props;\n\tconst { handleNextStep } = useOneFormContext();\n\tconst { formData, vehiclesInfo } = useSelector((state: OneFormState) => state);\n\tconst dispatch = useDispatch();\n\tconst { register } = useFormContext();\n\tconst [isAnswered, setIsAnswered] = useState(false);\n\tconst [brand, setBrand] = useState(null);\n\tconst [model, setModel] = useState(null);\n\tconst [brands, setBrands] = useState(null);\n\tconst [models, setModels] = useState(null);\n\n\tconst getBrandByName = (name) => {\n\t\treturn brands ? brands.find(obj => obj.name == name) : null;\n\t}\n\n\tconst getBrandByCode = (code) => {\n\t\treturn brands ? brands.find(obj => obj.code == code) : null;\n\t}\n\n\tconst getModelByName = (name) => {\n\t\treturn models ? models.find(obj => obj.name == name) : null;\n\t}\n\n\tconst getModelByCode = (code) => {\n\t\treturn models ? models.find(obj => obj.code == code) : null;\n\t}\n\n\tconst convertToOption = (arr: any) => {\n\t\tconst name = arr['attributes'].find(obj => obj.name == 'NAME');\n\t\tconst code = arr['attributes'].find(obj => obj.name == 'CODE');\n\t\treturn {\n\t\t\tcode: code ? code.value : null,\n\t\t\tname: name ? name.value : null,\n\t\t}\n\t}\n\n\tconst fillBrandsCombo = () => {\n\t\tif (!brands) {\n\t\t\tsetModels(null);\n\t\t\tif (vehiclesInfo.brands) {\n\t\t\t\tsetBrands(vehiclesInfo.brands);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst brands = [];\n\t\t\t\tfetchMarcas(formToken).then((result) => {\n\t\t\t\t\tif (result?.content) {\n\t\t\t\t\t\tresult.content = namesSort(result.content);\n\t\t\t\t\t\tresult.content.forEach((arr) => {\n\t\t\t\t\t\t\tbrands.push(convertToOption(arr));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tsetBrands(brands);\n\t\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brands: brands } });\n\t\t\t}\n\t\t}\n\t}\n\n\tconst fillModelsCombo = (brandCode: string) => {\n\t\tsetModels(null);\n\t\tif (brandCode == vehiclesInfo.brandSelected) {\n\t\t\tsetModels(vehiclesInfo.models);\n\t\t}\n\t\telse {\n\t\t\tconst models = [];\n\t\t\tfetchModelos(brandCode, formToken).then((result) => {\n\t\t\t\tif (result?.content) {\n\t\t\t\t\tresult.content = namesSort(result.content);\n\t\t\t\t\tresult.content.forEach((arr) => {\n\t\t\t\t\t\tmodels.push(convertToOption(arr));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tsetModels(models);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { models: models } });\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tfillBrandsCombo();\n\t\t\n\t\tif (vehiclesInfo.brandSelected) {\n\t\t\tsetBrand(vehiclesInfo.brandSelected);\n\t\t\tfillModelsCombo(vehiclesInfo.brandSelected);\n\t\t\tif (vehiclesInfo.modelSelected) {\n\t\t\t\tsetModel(vehiclesInfo.modelSelected);\n\t\t\t}\n\t\t}\n\t}, []);\n\n\tconst handleChangeBrand = (e: any) => {\n\t\te.preventDefault();\n\t\tif (e.target.value) {\n\t\t\tconst brand = getBrandByName(e.target.value);\n\t\t\tsetBrand(brand);\n\t\t\tsetModel(null);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brandSelected: brand, modelSelected: null } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [brandName]: brand.code } });\n\t\t\tfillModelsCombo(brand.code);\n\t\t}\n\t};\n\n\tconst handleChangeModel = (e: any) => {\n\t\te.preventDefault();\n\t\tif (e.target.value) {\n\t\t\tconst model = getModelByName(e.target.value);\n\t\t\tsetModel(model);\n\t\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { modelSelected: model } });\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [modelName]: model.code } });\n\t\t\tdispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [stepName]: brand.name + ' ' + model.name } });\n\t\t}\n\t};\n\n\tconst namesSort = (data) => {\n\t\tdata.sort((a, b) => {\n\t\t\tconst nameA = a.attributes.find(attr => attr.name === 'NAME').value;\n\t\t\tconst nameB = b.attributes.find(attr => attr.name === 'NAME').value;\n\t\t\tif (nameA < nameB) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif (nameA > nameB) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn 0;\n\t\t});\n\t\treturn data;\n\t}\n\n\tconst handleNoModel = () => {\n\t\tsetBrand(null);\n\t\tsetModel(null);\n\t\tdispatch({ type: 'UPDATE_VEHICLES', payload: { brandSelected: null, modelSelected: null} });\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [brandName]: null } });\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [modelName]: null } });\n\t\tdispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [stepName]: 'No' } });\n\t\tsetIsAnswered(true);\n\t}\n\n\treturn (\n\t\t\n\t\t\t{brands ? (\n\t\t\t\t\n\t\t\t\t\t 0 ? brands : []}\n\t\t\t\t\t\tname={brandName}\n\t\t\t\t\t\tisRequired={required}\n\t\t\t\t\t\trequired\n\t\t\t\t\t\thandleChange={handleChangeBrand}\n\t\t\t\t\t\tvalue={brand ? brand.name : \"\"}\n\t\t\t\t\t\tdefaultValue=\"\"\n\t\t\t\t\t\tonClick={() => null}\n\t\t\t\t\t\tsetOption={setBrand}\n\t\t\t\t\t\tisFloating={true}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t 0 ? models : []}\n\t\t\t\t\t\tname={modelName}\n\t\t\t\t\t\tisRequired={required}\n\t\t\t\t\t\trequired\n\t\t\t\t\t\thandleChange={handleChangeModel}\n\t\t\t\t\t\tvalue={model ? model.name : \"\"}\n\t\t\t\t\t\tdefaultValue=\"\"\n\t\t\t\t\t\tonClick={() => null}\n\t\t\t\t\t\tsetOption={setModel}\n\t\t\t\t\t\tisFloating={true}\n\t\t\t\t\t/>\n\t\t\t\t) : null}\n\t\t\t\n\t\t\t{ alternatCTA ? (\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleNoModel();\n\t\t\t\t\t\t\tif(nextOnClick) {\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\thandleNextStep();\n\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t>No\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};","import { styled } from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\n\nconst lineKeyframe = keyframes`\n from {\n transform: translateY(-40%);\n }\n to {\n transform: translateY(100%);\n }\n`;\n\nexport const VerticalLine = styled.div`\n height: 35px;\n width: 2px;\n background-color: #FFFFFF;\n animation: ${lineKeyframe} 1.75s infinite;\n`;\n","import React from 'react';\nimport { MultipleCTASelection } from 'src/components';\nimport {\n Container,\n ContainerGutter,\n Text,\n TextAlignment,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport const YaTienesVolkswagen = () => {\n return (\n \n \n \n 1{' '}Recuerda que para participar en el sorteo debes formar parte de la familia Volkswagen. \n \n \n );\n};\n","import { CarlineBase } from 'src/types';\n/**\n * En el caso de CEM Venta tenemos que eliminar el \"Nuevo\" del título, ordenar alfabéticamente los carlines y eliminar los duplicados en caso de que haya\n * dos generaciones de carlines en el selector conviviendo como \"Nuevo Arteon\" y \"Arteon\".\n * @param carlines\n * @returns\n */\n export const formatCEMVenta = (carlines: CarlineBase[]) => {\n return carlines\n .map((carline) => {\n return {\n code: String(carline.code),\n name: carline.title,\n key: carline.title,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }))\n .filter((carline, index, self) => index === self.findIndex((t) => t.name === carline.name));\n };\n","import { CarlineBase } from 'src/types';\nimport { SelectExtendedList } from 'src/components/CarlineSelect';\n\n/**\n * Devuelve el carline con el formato necesario para usar el select.\n * @param carline\n * @returns\n */\n export const formatCarlineSelectExtendedList = (carline: CarlineBase): SelectExtendedList => {\n if (!carline) {\n return null;\n }\n return {\n code: String(carline.code),\n name: `${carline.nuevo ? 'Nuevo ' : ''}${carline.title}`,\n key: carline.title,\n };\n };\n","import { CarlineBase } from 'src/types';\nimport { formatAlphabetical, formatCarlineSelectExtendedList } from '.';\n\n/**\n * Devuelve los carlines con el formato necesario\n * @param carlines\n * @returns\n */\n export const formatAllCarlines = (carlines: CarlineBase[], alphabetical?: boolean) => {\n if (alphabetical) {\n return formatAlphabetical(carlines);\n } else {\n return carlines.map((carline) => formatCarlineSelectExtendedList(carline)).filter((c) => c !== null);\n }\n};\n","import { CarlineBase, CarlinesWithSalesgroups, FormularioFlagType, OneFormState, Salesgroup } from 'src/types';\nimport { formatCarlineSelectExtendedList } from '.';\n\nexport const formatAlphabetical = (carlines: CarlineBase[]) => {\n return carlines\n .map((carline) => formatCarlineSelectExtendedList(carline))\n .map((carline) => {\n if (carline.name.includes('Nuevo')) {\n // Pasamos de Nuevo T-Roc a T-Roc ZNuevo para que el \"Nuevo\" no interfiera al ordenar y la parte de Nuevo no tenga preferencia sobre otras.\n carline.name = carline.name.replace('Nuevo ', '').concat(' ZNuevo');\n return carline;\n }\n return carline;\n })\n .filter((c) => c !== null)\n .sort((a, b) => a.name.localeCompare(b.name, undefined, { sensitivity: 'base' }))\n .map((carline) => {\n if (carline.name.includes('ZNuevo')) {\n // Hacemos la operación contraria para devolver el orden correcto.\n carline.name = `Nuevo ${carline.name.replace(' ZNuevo', '')}`;\n return carline;\n }\n return carline;\n });\n};\n","import { formatSalesgroupsSelectExtendedList } from '.';\nimport { Salesgroup } from 'src/types';\n\nexport const formatAllSalesgroups = (carlines: Salesgroup[]) =>\ncarlines.map((carline) => formatSalesgroupsSelectExtendedList(carline)).filter((c) => c !== null);\n","import { Salesgroup } from 'src/types';\nimport { SelectExtendedList } from 'src/components/CarlineSelect';\n/**\n * Devuelve los salesgroups con el formato necesario para usar el select.\n * @param carline\n * @returns\n */\n export const formatSalesgroupsSelectExtendedList = (carline: Salesgroup): SelectExtendedList => {\n if (!carline) {\n return null;\n }\n return {\n code: String(carline.code),\n name: carline.name,\n key: carline.name,\n };\n};\n","import { CarlineBase, CarlinesWithSalesgroups, FormularioFlagType } from 'src/types';\n/**\n * Devuelve únicamente los carlines con el flag del formulario correspondiente.\n * @param carlines\n * @param formularioFlag\n * @returns\n */\n export const filterCarlineFlag = (carlines: CarlineBase[] | CarlinesWithSalesgroups[], formularioFlag: FormularioFlagType) => {\n if (!formularioFlag) {\n return carlines;\n }\n\n return carlines\n .map((carline: CarlineBase | CarlinesWithSalesgroups) => {\n if (carline.formularios[formularioFlag] === 1) {\n return carline;\n }\n })\n .filter((carline) => carline !== undefined);\n};\n","import { CarlinesWithSalesgroups } from 'src/types';\n\nexport const getSalesgroupsFromCarlines = (carlines: CarlinesWithSalesgroups[]) => {\n return carlines\n .map((carline) => carline.salesGroups)\n .filter((c) => c !== null)\n .flat();\n};\n","import { CarlinesWithSalesgroups } from 'src/types';\nimport { getSalesgroupsFromCarlines, formatAllSalesgroups } from '.';\n/**\n * Se agrupan todas las operaciones que se realizan a los carlines con salesgroups (filtrar por flag, obtener solo los salesgroups y formatearlos) para no hacerlas dos veces.\n * @param carlines\n * @param formularioFlag\n * @returns\n */\nexport const getFormattedSalesgroups = (carlines: CarlinesWithSalesgroups[]) => {\n const salesgroups = getSalesgroupsFromCarlines(carlines);\n return formatAllSalesgroups(salesgroups);\n};\n","import { CarlineBase } from 'src/types';\n/**\n * Devuelve únicamente los carlines preseleccionados desde el cms en una array con carlineCodes tipo [30155, 30205].\n * @param carlines\n * @param faContentCarlines\n * @returns\n */\nexport const filterPreselectedFaContent = (carlines: CarlineBase[], faContentCarlines: number[] | string[]) => {\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, getEapiCarlines} 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\tformatCEMVenta,\n\tformatAllSalesgroups,\n\tformatAllCarlines,\n\tfilterCarlineFlag,\n\tgetFormattedSalesgroups,\n\tfilterPreselectedFaContent,\n\tfilterPreselectedFaContentSalesgroups,\n\tfindCarline,\n\tfindCarlineFromSalesgroup,\n\tthereIsCarlinesInFaContent,\n\tthereIsSalesgroupsInFaContent,\n\tisSalesGroupMode,\n\tisMixedMode,\n} from 'src/components/CarlineSelect';\nexport interface SelectExtendedList {\n\tcode: string;\n\tname: string;\n\tkey: string;\n}\ninterface CarlineSelectProps {\n\tuseCarline?: boolean;\n\tisCEMVenta?: boolean;\n\tnotALayer?: boolean;\n\tnoPaddingTop?: boolean;\n\talphabetical?: boolean;\n\tnextOnSelect?: boolean;\n}\n\nexport function CarlineSelect(props: CarlineSelectProps) {\n\tconst {useCarline, notALayer, noPaddingTop, isCEMVenta, alphabetical, nextOnSelect} = props;\n\tconst {register, errors} = useFormContext();\n\tconst [errorModelo, setErrorModelo] = useState(false);\n\tconst {formData, dealersInfo, formInfo} = useSelector((state: OneFormState) => state);\n\tconst {fields} = formData;\n\tconst {screenIndex} = formInfo;\n\tconst {carlines} = dealersInfo;\n\tconst {error, handleNextStep} = useOneFormContext();\n\tconst [list, setList] = useState(null);\n\tconst dispatch = useDispatch();\n\tconst [modelo, setModelo] = useState(null);\n\tconst faContent = useFaContent();\n\tconst screenIndexRef = useRef(null);\n\tconst isComerciales = useIsComerciales();\n\n\t/**\n\t * 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\t */\n\tconst dispatchEmptySalesgroup = () => dispatchSetSalesgroup(null, null);\n\tconst dispatchSalesgroup = (id: number, name: string) => dispatchSetSalesgroup(id, name);\n\n\tconst dispatchSetSalesgroup = (id: number, name: string) => {\n\t\tdispatch({\n\t\t\ttype: 'SET_SALESGROUP',\n\t\t\tpayload: {\n\t\t\t\tsalesGroupId: id,\n\t\t\t\tsalesGroupName: name,\n\t\t\t},\n\t\t});\n\t};\n\n\tconst updateCarlineCode = (carlineCode: number, salesgroupName?: string) => {\n\t\tif (carlines) {\n\t\t\tlet carline: CarlineBase | CarlinesWithSalesgroups;\n\n\t\t\tif (isSalesGroupMode(faContent)) {\n\t\t\t\tcarline = findCarlineFromSalesgroup(carlines, carlineCode);\n\t\t\t\tif (carline) {\n\t\t\t\t\tdispatchSalesgroup(carlineCode, salesgroupName);\n\t\t\t\t} else {\n\t\t\t\t\tcarline = findCarline(carlines, carlineCode);\n\t\t\t\t}\n\t\t\t} else if (isMixedMode(faContent)) {\n\t\t\t\t// Primero buscamos carline\n\t\t\t\tcarline = findCarline(carlines, carlineCode);\n\n\t\t\t\tdispatchEmptySalesgroup();\n\n\t\t\t\tif (!carline) {\n\t\t\t\t\t// Buscamos salesgroup\n\t\t\t\t\tcarline = findCarlineFromSalesgroup(carlines, carlineCode);\n\t\t\t\t\tdispatchSalesgroup(carlineCode, salesgroupName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcarline = findCarline(carlines, carlineCode);\n\t\t\t\t// dispatchEmptySalesgroup();\n\t\t\t}\n\t\t\tdispatch({type: 'SET_SELECTED_CARLINE', payload: carline});\n\t\t\tif (!isCEMVenta) {\n\t\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: {carlineCode: carline.code}});\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * Inicializa la lista del selector\n\t * @param list\n\t */\n\tconst handleUpdateList = (list: SelectExtendedList[]) => {\n\t\tif (!list) {\n\t\t\treturn;\n\t\t}\n\t\tsetList(list);\n\t\tif (fields.modelo) {\n\t\t\tconst modeloInList = list.find((listValue) => listValue.name === fields.modelo);\n\t\t\t// setModelo(modeloInList.name);\n\t\t\tchangeModeloFields(modeloInList.name, list);\n\t\t\tupdateCarlineCode(Number(modeloInList.code));\n\t\t} else {\n\t\t\t// Valor inicial del modelo vacío\n\t\t\tchangeModeloFields('', list);\n\t\t}\n\t};\n\n\tconst initializeSelectWithCarline = async () => {\n\t\t// Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n\t\tconst filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n\t\tlet carlinesFromFaContent: CarlineBase[];\n\t\tlet allCarlines: any[];\n\n\t\tif (thereIsCarlinesInFaContent(faContent)) {\n\t\t\t// Filtramos los carlines del FA Content.\n\t\t\tallCarlines = faContent.carlines.filter((c) => c.toString() != '');\n\n\t\t\tif (/[0-9]/.test(allCarlines[0])) {\n\t\t\t\tcarlinesFromFaContent = filteredCarlines.filter((c) => allCarlines.map(Number).includes(c.code));\n\t\t\t} else {\n\t\t\t\tcarlinesFromFaContent = filteredCarlines.filter((c) => allCarlines.map(String).includes(c.name));\n\t\t\t}\n\t\t\t// const carlinesFromFaContent = filterPreselectedFaContent(filteredCarlines, faContent.carlines);\n\t\t\tconst carlinesFormatted = formatAllCarlines(carlinesFromFaContent, alphabetical);\n\t\t\thandleUpdateList(carlinesFormatted);\n\t\t\treturn;\n\t\t} else if (useCarline) {\n\t\t\tif (!carlines) {\n\t\t\t\tconst newCarlines = await getCarlines();\n\t\t\t\tconst newfilteredCarlines = filterCarlineFlag(newCarlines, fields.formularioFlag);\n\t\t\t\tconst carlinesFormatted = formatAllCarlines(newfilteredCarlines, alphabetical);\n\t\t\t\thandleUpdateList(carlinesFormatted);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// En caso de que se necesiten los carlines de getCarlines de forma genérica.\n\t\t\tconst carlinesFormatted = formatAllCarlines(filteredCarlines, alphabetical);\n\t\t\thandleUpdateList(carlinesFormatted);\n\t\t\treturn;\n\t\t} else {\n\t\t\t// Para la pantalla de modelo y matrícula de cita se necesitan unos modelos específicos.\n\t\t\tconst response = await getEapiCarlines();\n\t\t\thandleUpdateList(response.data.content);\n\t\t}\n\t};\n\n\tconst initializeSelectWithSalesgroup = async () => {\n\t\t// Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n\t\tconst filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n\n\t\tif (thereIsSalesgroupsInFaContent(faContent)) {\n\t\t\tconst salesgroupsFromFaContent = filterPreselectedFaContentSalesgroups(filteredCarlines, faContent.salesgroups);\n\t\t\tconst formatedSalesgroups = formatAllSalesgroups(salesgroupsFromFaContent);\n\t\t\tif (!formatedSalesgroups || formatedSalesgroups.length === 0) {\n\t\t\t\tinitializeSelectWithCarline();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandleUpdateList(formatedSalesgroups);\n\t\t\treturn;\n\t\t} else if (useCarline) {\n\t\t\t// En caso de que se necesiten los carlines de getSalesgroup.\n\t\t\tconst formatedSalesgroups = getFormattedSalesgroups(filteredCarlines);\n\t\t\tif (!formatedSalesgroups || formatedSalesgroups.length === 0) {\n\t\t\t\tinitializeSelectWithCarline();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thandleUpdateList(formatedSalesgroups);\n\t\t\treturn;\n\t\t}\n\t};\n\tconst initializeSelectWithMixed = async () => {\n\t\t// Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n\t\tconst filteredCarlines = filterCarlineFlag(carlines, fields.formularioFlag);\n\n\t\tlet result: SelectExtendedList[] = [];\n\n\t\tif (thereIsSalesgroupsInFaContent(faContent)) {\n\t\t\tconst salesgroupsFromFaContent = filterPreselectedFaContentSalesgroups(filteredCarlines, faContent.salesgroups);\n\t\t\tconst formatedSalesgroups = formatAllSalesgroups(salesgroupsFromFaContent);\n\t\t\tresult = [...result, ...formatedSalesgroups];\n\t\t}\n\t\tif (thereIsCarlinesInFaContent(faContent)) {\n\t\t\tconst carlinesFromFaContent = filterPreselectedFaContent(filteredCarlines, faContent.carlines);\n\t\t\tconst carlinesFormatted = formatAllCarlines(carlinesFromFaContent, alphabetical);\n\t\t\tresult = [...result, ...carlinesFormatted];\n\t\t}\n\t\tif (!result || result.length === 0) {\n\t\t\tinitializeSelectWithCarline();\n\t\t}\n\t\thandleUpdateList(result);\n\t};\n\n\tconst initializeSelectWithCEMVenta = async () => {\n\t\t// Eliminamos todos los carlines que no tienen el flag correspondiente del formulario activado.\n\t\tconst newCarlines = await getCarlines();\n\t\tconst newfilteredCarlines = filterCarlineFlag(newCarlines, fields.formularioFlag);\n\t\tconst carlinesFormatted = formatCEMVenta(newfilteredCarlines);\n\n\t\thandleUpdateList(carlinesFormatted);\n\t\treturn;\n\t};\n\n\tuseEffect(() => {\n\t\tif (isSalesGroupMode(faContent)) {\n\t\t\tinitializeSelectWithSalesgroup();\n\t\t} else if (isMixedMode(faContent)) {\n\t\t\tinitializeSelectWithMixed();\n\t\t} else if (isCEMVenta) {\n\t\t\tinitializeSelectWithCEMVenta();\n\t\t} else {\n\t\t\tinitializeSelectWithCarline();\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\t// Hack para guardar la información del carline únicamente al pasar a la siguiente pantalla y no enviar datos\n\t\t// de analítica del carline seleccionado por defecto.\n\n\t\tif (isNull(screenIndexRef.current)) {\n\t\t\tscreenIndexRef.current = screenIndex;\n\t\t} else {\n\t\t\tif (useCarline) {\n\t\t\t\tconst carline = list.find((carline: any) => carline.name === modelo);\n\t\t\t\tif (carline) {\n\t\t\t\t\tif (isSalesGroupMode(faContent) || isMixedMode(faContent)) {\n\t\t\t\t\t\tupdateCarlineCode(Number(carline.code), carline.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tupdateCarlineCode(Number(carline.code));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [screenIndex]);\n\n\tuseEffect(() => {\n\t\terrors.modelo || (error && !modelo) ? setErrorModelo(true) : setErrorModelo(false);\n\t}, [errors, error]);\n\n\tconst changeModeloFields = (model: string, list: SelectExtendedList[]) => {\n\t\tsetModelo(model);\n\t\tconst modeloList = list?.find((element) => element.name === model);\n\t\tdispatch({type: 'UPDATE_FIELDS', payload: {modeloList}});\n\t};\n\n\tfunction handleChangeModelo(event: any) {\n\t\tconst newModelo = event.currentTarget.value;\n\n\t\tif (newModelo) {\n\t\t\tchangeModeloFields(newModelo, list);\n\t\t}\n\n\t\tif (newModelo !== '') {\n\t\t\tsetErrorModelo(false);\n\t\t}\n\n\t\tif (nextOnSelect) {\n\t\t\thandleNextStep();\n\t\t}\n\t}\n\n\treturn (\n\t\t\n\t\t\t{isComerciales && fields?.idBuzzExclusive ? (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : list ? (\n\t\t\t\t<>\n\t\t\t\t\t {}}\n\t\t\t\t\t\tupdateFields\n\t\t\t\t\t\tsetOption={setModelo}\n\t\t\t\t\t\tisRequired={true}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{errorModelo ? Este campo es obligatorio : null}\n\t\t\t{}\n\t\t
\n\t);\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\n\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nexport const LoadingEncuestas = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\ninterface ThankYouTitleProps {\n notALayer?: boolean;\n regularCopyFirst?: string;\n boldCopyFirst?: string;\n regularCopySecond?: string;\n boldCopySecond?: string;\n}\n\nexport const ThankYouTitle = (props: ThankYouTitleProps) => {\n const { regularCopyFirst, boldCopyFirst, notALayer, regularCopySecond, boldCopySecond } = props;\n return (\n <>\n { notALayer ? (\n <>\n {' '}\n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst}{' '} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n ) : (\n <>\n \n \n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n \n \n \n {regularCopyFirst ? <>{regularCopyFirst}{' '} : null}\n {\n boldCopyFirst ? {boldCopyFirst} : null\n }\n {regularCopySecond ? <>{regularCopySecond}{' '} : null}\n {\n boldCopySecond ? {boldCopySecond} : null\n }\n \n \n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n CTA,\n styled\n} from '@volkswagen-onehub/components-core';\n\nexport type CTAThankYou = {\n emphasis?: string;\n label: string;\n url?: string;\n}\n\ninterface CTAThankYouPageProps {\n firstCTA: CTAThankYou;\n secondCTA?: boolean;\n secondCTACopies?: CTAThankYou;\n}\n\nconst CtasWrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n align-items: flex-start;\n @media all and (min-width: 560px) {\n flex-direction: row;\n gap: 44px;\n }\n button {\n align-self: flex-start;\n }\n`;\n\nexport const CTAThankYouPage = (props: CTAThankYouPageProps) => {\n const { firstCTA, secondCTA, secondCTACopies } = props;\n\n return (\n \n \n {firstCTA.label}\n \n {\n secondCTA ? (\n \n {secondCTACopies.label}\n \n ) : null\n }\n \n \n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n ContainerGutter,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAThankYouPage, CTAThankYou, CTAThankYouPageAction, CTAAction, LeadsCTAs } from '.';\nimport { OneFormState } from 'src/types';\nimport { useSelector } from 'react-redux';\n\n\ninterface FieldProps {\n copyBook?: any;\n copyBookSecond?: any;\n notALayer?: boolean;\n CTAFields?: boolean;\n firstCTA?: CTAThankYou;\n secondCTA?: boolean;\n secondCTACopies?: CTAThankYou;\n CTAAction?: CTAAction;\n ctaFunction?: any;\n ctaUrl?: string;\n}\n\nexport const ThankYouFields = (props: FieldProps) => {\n const{ \n notALayer , \n copyBook, \n CTAFields, \n copyBookSecond, \n firstCTA, \n secondCTA, \n secondCTACopies, \n CTAAction,\n ctaFunction,\n ctaUrl\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n const { formName } = formData.fields;\n\n return (\n <>\n {\n notALayer ? (\n \n
\n \n \n {copyBook}\n \n {\n copyBookSecond ? (\n \n {copyBookSecond}\n \n ) : null\n }\n \n {\n CTAFields ? : null\n }\n {\n CTAAction? : null\n }\n {\n formName && formName === 'lead-oferta' || formName === 'lead-match' ? ( \n \n ) : null\n }\n
\n \n\n ) : (\n \n
\n \n \n {copyBook}\n \n {\n copyBookSecond ? (\n \n {copyBookSecond}\n \n ) : null\n }\n \n {\n CTAFields ? : null\n }\n {\n CTAAction? : null\n }\n {\n formName && formName === 'lead-oferta' || formName === 'lead-match' ? ( \n \n ) : null\n }\n
\n \n )}\n \n );\n};\n","import React from 'react';\nimport {\n CTA,\n} from '@volkswagen-onehub/components-core';\n\nexport type CTAAction = {\n label: string,\n emphasis: string,\n}\n\ninterface CTAThankYouPageActionProps {\n ctaInfo: CTAAction;\n ctaFunction: any;\n}\n\nexport const CTAThankYouPageAction = (props: CTAThankYouPageActionProps) => {\n const { ctaInfo, ctaFunction } = props;\n\n return (\n {\n e.preventDefault();\n ctaFunction();\n }}\n >\n {ctaInfo.label}\n \n );\n};\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useOneFormContext } from 'src/feature-app';\n\ninterface CTAFieldsProps {\n url: string;\n}\n\nexport const LeadsCTAs = (props: CTAFieldsProps) => {\n const { url } = props;\n const { closeLayer } = useOneFormContext();\n\n \n return (\n \n \n Conócelo\n \n {\n e.preventDefault();\n closeLayer();\n }}\n >\n Seguir navegando\n \n \n );\n};\n","import * as React from 'react';\nexport var Info = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 6.493c.442 0 .774.295.774.811s-.332.811-.774.811-.774-.295-.774-.811.332-.811.774-.811zM12.783 15.656v-5.649H9.414v1.33h2.039v4.319H8.419v1.33l6.967-.001v-1.33z\" }),\n React.createElement(\"path\", { d: \"M12 2.33c5.603 0 9.67 4.067 9.67 9.67s-4.067 9.67-9.67 9.67S2.33 17.603 2.33 12 6.397 2.33 12 2.33M12 1C5.626 1 1 5.626 1 12s4.626 11 11 11 11-4.626 11-11S18.374 1 12 1z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M5.33 6h1.33v3H5.33z\" }),\n React.createElement(\"path\", { d: \"M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm0 10.65A4.65 4.65 0 1 1 10.65 6 4.66 4.66 0 0 1 6 10.65z\" }),\n React.createElement(\"circle\", { cx: \"6\", cy: \"4\", r: \".75\" }));\n }\n return null;\n}, { displayName: 'Info' }));\n","import React, { useState, useEffect, useRef } from 'react';\nimport { styled, Text, TextInput, Layout, Breakpoints, Container, ContainerGutter, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useOneFormContext } from 'src/feature-app';\nimport { Info } from '@volkswagen-onehub/icons-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { Close } from '@volkswagen-onehub/icons-core';\n\n\ntype WrapperProps = {\n disabled?: boolean;\n themeColor?: string;\n};\n\nconst SVGSize = styled.div`\n position: relative;\n top: 41px;\n width: 100%;\n display: flex;\n justify-content: flex-end;\n z-index: 1000;\n\n \n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n div{\n cursor:pointer;\n }\n svg {\n height: 20px;\n width: auto;\n }\n`;\n\n\n\nconst SelectWrapper = styled.div`\n & span::before {\n display: none;\n }\n svg {\n fill: ${(props) => (props.themeColor === 'inverted' ? '#ffffff' : '#001E50')};\n }\n\n label {\n color: ${(props) => (props.themeColor === 'inverted' ? '#ffffff' : '#001E50')};\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: #ffffff;\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: #C2CACF;\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, TextInputProps, styled } 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?: 'color' | 'email' | 'file' | 'hidden' | 'image' | 'month' | 'number' | 'password' | 'range' | 'search' | 'tel' | 'text' | 'time' | 'url' | 'week';\n disabled?: boolean;\n // errors: any;\n isFloating?: boolean;\n}\n\nexport function TextInputExtended(props: TextInputExtendedProps) {\n const { innerRef, name, onBlur, required, alternateCTAText, onChange, label, type, onFocus, disabled, isFloating } = props;\n const { errors, register, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n const oneFormFeatureService = useFeatureServices()['es:oneform-core'];\n const { formData } = useSelector((state: OneFormState) => state);\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n const value = formData.fields[name];\n\n if (value && value !== alternateCTAText && value != 'null' && value != 'false' && value != '0') {\n setCurrentValue(value);\n }\n }, []);\n\n const centerInputInMobile = (target: EventTarget & HTMLInputElement) => {\n if (target && window.innerWidth < 959) {\n target.scrollIntoView({ block: 'center' });\n }\n };\n\n return (\n ) => {\n setCurrentValue(e.currentTarget.value);\n if (onChange) {\n onChange(e);\n }\n }}\n onBlur={(e: SyntheticEvent) => {\n if (onBlur) onBlur(e);\n setValue(name, e.currentTarget.value);\n oneFormFeatureService.setField(name, e.currentTarget.value);\n }}\n onFocus={(e: any) => {\n centerInputInMobile(e.target);\n trackingManager.trackFormFieldClick(\n {\n contentId: label,\n },\n {\n FormFieldName: name,\n }\n );\n if (onFocus) {\n onFocus(e);\n }\n }}\n type={type ? type : 'text'}\n isFloating={!currentValue && isFloating ? true : false}\n value={currentValue}\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError } from 'src/components';\nimport { TextInputExtended } from './TextInputExtended';\nimport { useOnlyLettersControl } from './use-only-letters-control';\nimport { useDispatch } from 'react-redux';\n\ninterface ApellidoProps {\n name?: 'surname' | 'secondSurname';\n label?: string;\n required?: boolean;\n setFieldValue?: boolean;\n}\n\nexport function Apellido(props: ApellidoProps) {\n const { register, errors } = useFormContext();\n const { name, label, required, setFieldValue } = props;\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n const dispatch = useDispatch();\n\n const innerRef = required\n ? register({\n required: {\n value: true,\n message: 'Requerido',\n },\n pattern: {\n value: regExp,\n message: 'Solo se aceptan letras',\n },\n })\n : register;\n\n const handleChange = (e: any) => {\n if (setFieldValue && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.target.value } });\n }\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n
\n handleChange(e)}\n required={required}\n />\n {error && Solo se aceptan letras}\n
\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch } from 'react-redux';\nimport { InputError } from 'src/components';\nimport { TextInputExtended } from 'src/components';\nimport { GeneralInputWidthWrapper } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ninterface emailProps {\n paginaConfirmacion?: boolean;\n ignoreValidation?: boolean;\n required?: boolean;\n notALayer?: boolean;\n name?: string;\n label?: string;\n disabled?: boolean;\n paddingTop?: string;\n setEmail?: (email: string) => void;\n setShowError?: (showError: boolean) => void;\n setEmailField?: boolean;\n}\n\nexport function Email(props: emailProps) {\n const { paginaConfirmacion, ignoreValidation, required, notALayer, name, label, disabled, paddingTop, setEmail, setShowError, setEmailField } = props;\n\n const { register, errors } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const [emailError, setEmailError] = useState(false);\n const regExp =\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\n const { error, setError } = useOneFormContext();\n const dispatch = useDispatch();\n\n const checkEmailError = (value: string) => !pristine && !regExp.test(value) && value?.length > 2;\n const handleChange = (e: any) => {\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n useEffect(() => {\n if (checkEmailError(inputValue)) {\n setEmailError(true);\n if(setShowError) setShowError(true);\n } else {\n if (setEmail && !error){ \n setEmail(inputValue)\n setShowError(false);\n };\n if (setEmailField && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email: inputValue } });\n }\n setEmailError(false);\n setError(false);\n }\n }, [inputValue, pristine]);\n\n useEffect(() => {\n if ((!inputValue && error) || (error && checkEmailError(inputValue))) {\n setEmailError(true);\n } else {\n setEmailError(false);\n }\n }, [error]);\n\n return (\n \n handleChange(e)}\n required={required}\n disabled={disabled}\n />\n {emailError && Ejemplo: nombre@email.com}\n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\n\ntype InputErrorProps = {\n relative?: boolean;\n maxWidth?: string;\n};\n\nexport const InputError = styled.p`\n position: relative;\n margin-top: 6px;\n background-color: #e4002c;\n color: #FFFFFF;\n /* width: max-content; */\n width: 100%;\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '280px'};\n padding: 4px 8px;\n min-height: 24px;\n border-radius: 4px;\n font-size: 12px;\n text-align: left;\n @media all and (min-width: 560px) {\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '303px'};\n }\n @media all and (min-width: 960px) {\n max-width: ${(props) => props.maxWidth ? props.maxWidth : '320px'};\n }\n`;\n","import React, { useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended } from 'src/components';\nimport { useOnlyLettersControl } from './use-only-letters-control';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\ninterface NombreProps {\n setFieldValue?: boolean;\n idPerson?: IdPerson;\n}\n\nexport function Nombre(props: NombreProps) {\n const { setFieldValue } = props;\n const dispatch = useDispatch();\n const { register } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n\n const handleChange = (e: any) => {\n if (setFieldValue && !error) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['name']: e.target.value } });\n }\n\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n
\n handleChange(e)}\n required\n />\n {error && Solo se aceptan letras}\n
\n );\n}\n","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { Metadata as _Metadata } from '../../core/index.js'\r\n\r\nexport function Metadata() {\r\n\treturn _Metadata.call(this, metadata)\r\n}\r\n\r\nMetadata.prototype = Object.create(_Metadata.prototype, {})\r\nMetadata.prototype.constructor = Metadata","// This \"state\" object simply holds the state of the \"AsYouType\" parser:\r\n//\r\n// * `country?: string`\r\n// * `callingCode?: string`\r\n// * `digits: string`\r\n// * `international: boolean`\r\n// * `missingPlus: boolean`\r\n// * `IDDPrefix?: string`\r\n// * `carrierCode?: string`\r\n// * `nationalPrefix?: string`\r\n// * `nationalSignificantNumber?: string`\r\n// * `nationalSignificantNumberMatchesInput: boolean`\r\n// * `complexPrefixBeforeNationalSignificantNumber?: string`\r\n//\r\n// `state.country` and `state.callingCode` aren't required to be in sync.\r\n// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n// So `state.country` and `state.callingCode` are totally independent.\r\n//\r\nexport default class AsYouTypeState {\r\n\tconstructor({ onCountryChange, onCallingCodeChange }) {\r\n\t\tthis.onCountryChange = onCountryChange\r\n\t\tthis.onCallingCodeChange = onCallingCodeChange\r\n\t}\r\n\r\n\treset({ country, callingCode }) {\r\n\t\tthis.international = false\r\n\t\tthis.missingPlus = false\r\n\t\tthis.IDDPrefix = undefined\r\n\t\tthis.callingCode = undefined\r\n\t\tthis.digits = ''\r\n\t\tthis.resetNationalSignificantNumber()\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tresetNationalSignificantNumber() {\r\n\t\tthis.nationalSignificantNumber = this.getNationalDigits()\r\n\t\tthis.nationalSignificantNumberMatchesInput = true\r\n\t\tthis.nationalPrefix = undefined\r\n\t\tthis.carrierCode = undefined\r\n\t\tthis.complexPrefixBeforeNationalSignificantNumber = undefined\r\n\t}\r\n\r\n\tupdate(properties) {\r\n\t\tfor (const key of Object.keys(properties)) {\r\n\t\t\tthis[key] = properties[key]\r\n\t\t}\r\n\t}\r\n\r\n\tinitCountryAndCallingCode(country, callingCode) {\r\n\t\tthis.setCountry(country)\r\n\t\tthis.setCallingCode(callingCode)\r\n\t}\r\n\r\n\tsetCountry(country) {\r\n\t\tthis.country = country\r\n\t\tthis.onCountryChange(country)\r\n\t}\r\n\r\n\tsetCallingCode(callingCode) {\r\n\t\tthis.callingCode = callingCode\r\n\t\tthis.onCallingCodeChange(callingCode, this.country)\r\n\t}\r\n\r\n\tstartInternationalNumber(country, callingCode) {\r\n\t\t// Prepend the `+` to parsed input.\r\n\t\tthis.international = true\r\n\t\t// If a default country was set then reset it\r\n\t\t// because an explicitly international phone\r\n\t\t// number is being entered.\r\n\t\tthis.initCountryAndCallingCode(country, callingCode)\r\n\t}\r\n\r\n\tappendDigits(nextDigits) {\r\n\t\tthis.digits += nextDigits\r\n\t}\r\n\r\n\tappendNationalSignificantNumberDigits(nextDigits) {\r\n\t\tthis.nationalSignificantNumber += nextDigits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the part of `this.digits` that corresponds to the national number.\r\n\t * Basically, all digits that have been input by the user, except for the\r\n\t * international prefix and the country calling code part\r\n\t * (if the number is an international one).\r\n\t * @return {string}\r\n\t */\r\n\tgetNationalDigits() {\r\n\t\tif (this.international) {\r\n\t\t\treturn this.digits.slice(\r\n\t\t\t\t(this.IDDPrefix ? this.IDDPrefix.length : 0) +\r\n\t\t\t\t(this.callingCode ? this.callingCode.length : 0)\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n\r\n\tgetDigitsWithoutInternationalPrefix() {\r\n\t\tif (this.international) {\r\n\t\t\tif (this.IDDPrefix) {\r\n\t\t\t\treturn this.digits.slice(this.IDDPrefix.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.digits\r\n\t}\r\n}","// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\r\nexport const DIGIT_PLACEHOLDER = 'x' // '\\u2008' (punctuation space)\r\nconst DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER)\r\n\r\n// Counts all occurences of a symbol in a string.\r\n// Unicode-unsafe (because using `.split()`).\r\nexport function countOccurences(symbol, string) {\r\n\tlet count = 0\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for counting brackets it is safe.\r\n\t// for (const character of string)\r\n\tfor (const character of string.split('')) {\r\n\t\tif (character === symbol) {\r\n\t\t\tcount++\r\n\t\t}\r\n\t}\r\n\treturn count\r\n}\r\n\r\n// Repeats a string (or a symbol) N times.\r\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\r\nexport function repeat(string, times) {\r\n\tif (times < 1) {\r\n\t\treturn ''\r\n\t}\r\n\tlet result = ''\r\n\twhile (times > 1) {\r\n\t\tif (times & 1) {\r\n\t\t\tresult += string\r\n\t\t}\r\n\t\ttimes >>= 1\r\n\t\tstring += string\r\n\t}\r\n\treturn result + string\r\n}\r\n\r\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\r\n\tif (string[cutBeforeIndex] === ')') {\r\n\t\tcutBeforeIndex++\r\n\t}\r\n\treturn stripNonPairedParens(string.slice(0, cutBeforeIndex))\r\n}\r\n\r\nexport function closeNonPairedParens(template, cut_before) {\r\n\tconst retained_template = template.slice(0, cut_before)\r\n\tconst opening_braces = countOccurences('(', retained_template)\r\n\tconst closing_braces = countOccurences(')', retained_template)\r\n\tlet dangling_braces = opening_braces - closing_braces\r\n\twhile (dangling_braces > 0 && cut_before < template.length) {\r\n\t\tif (template[cut_before] === ')') {\r\n\t\t\tdangling_braces--\r\n\t\t}\r\n\t\tcut_before++\r\n\t}\r\n\treturn template.slice(0, cut_before)\r\n}\r\n\r\nexport function stripNonPairedParens(string) {\r\n\tconst dangling_braces =[]\r\n\tlet i = 0\r\n\twhile (i < string.length) {\r\n\t\tif (string[i] === '(') {\r\n\t\t\tdangling_braces.push(i)\r\n\t\t}\r\n\t\telse if (string[i] === ')') {\r\n\t\t\tdangling_braces.pop()\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\tlet start = 0\r\n\tlet cleared_string = ''\r\n\tdangling_braces.push(string.length)\r\n\tfor (const index of dangling_braces) {\r\n\t\tcleared_string += string.slice(start, index)\r\n\t\tstart = index + 1\r\n\t}\r\n\treturn cleared_string\r\n}\r\n\r\nexport function populateTemplateWithDigits(template, position, digits) {\r\n\t// Using `.split('')` to iterate through a string here\r\n\t// to avoid requiring `Symbol.iterator` polyfill.\r\n\t// `.split('')` is generally not safe for Unicode,\r\n\t// but in this particular case for `digits` it is safe.\r\n\t// for (const digit of digits)\r\n\tfor (const digit of digits.split('')) {\r\n\t\t// If there is room for more digits in current `template`,\r\n\t\t// then set the next digit in the `template`,\r\n\t\t// and return the formatted digits so far.\r\n\t\t// If more digits are entered than the current format could handle.\r\n\t\tif (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tposition = template.search(DIGIT_PLACEHOLDER_MATCHER)\r\n\t\ttemplate = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit)\r\n\t}\r\n\treturn [template, position]\r\n}","import checkNumberLength from './helpers/checkNumberLength.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js'\r\n\r\nexport default function formatCompleteNumber(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tconst matcher = new RegExp(`^(?:${format.pattern()})$`)\r\n\tif (matcher.test(state.nationalSignificantNumber)) {\r\n\t\treturn formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(\r\n\t\t\tstate,\r\n\t\t\tformat,\r\n\t\t\t{\r\n\t\t\t\tmetadata,\r\n\t\t\t\tshouldTryNationalPrefixFormattingRule,\r\n\t\t\t\tgetSeparatorAfterNationalPrefix\r\n\t\t\t}\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\r\n\treturn checkNumberLength(nationalSignificantNumber, metadata) === 'IS_POSSIBLE'\r\n}\r\n\r\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\r\n\tmetadata,\r\n\tshouldTryNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\t// `format` has already been checked for `nationalPrefix` requirement.\r\n\r\n\tconst {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode\r\n\t} = state\r\n\r\n\t// Format the number with using `national_prefix_formatting_rule`.\r\n\t// If the resulting formatted number is a valid formatted number, then return it.\r\n\t//\r\n\t// Google's AsYouType formatter is different in a way that it doesn't try\r\n\t// to format using the \"national prefix formatting rule\", and instead it\r\n\t// simply prepends a national prefix followed by a \" \" character.\r\n\t// This code does that too, but as a fallback.\r\n\t// The reason is that \"national prefix formatting rule\" may use parentheses,\r\n\t// which wouldn't be included has it used the simpler Google's way.\r\n\t//\r\n\tif (shouldTryNationalPrefixFormattingRule(format)) {\r\n\t\tconst formattedNumber = formatNationalNumber(state, format, {\r\n\t\t\tuseNationalPrefixFormattingRule: true,\r\n\t\t\tgetSeparatorAfterNationalPrefix,\r\n\t\t\tmetadata\r\n\t\t})\r\n\t\tif (formattedNumber) {\r\n\t\t\treturn formattedNumber\r\n\t\t}\r\n\t}\r\n\r\n\t// Format the number without using `national_prefix_formatting_rule`.\r\n\treturn formatNationalNumber(state, format, {\r\n\t\tuseNationalPrefixFormattingRule: false,\r\n\t\tgetSeparatorAfterNationalPrefix,\r\n\t\tmetadata\r\n\t})\r\n}\r\n\r\nfunction formatNationalNumber(state, format, {\r\n\tmetadata,\r\n\tuseNationalPrefixFormattingRule,\r\n\tgetSeparatorAfterNationalPrefix\r\n}) {\r\n\tlet formattedNationalNumber = formatNationalNumberUsingFormat(\r\n\t\tstate.nationalSignificantNumber,\r\n\t\tformat,\r\n\t\t{\r\n\t\t\tcarrierCode: state.carrierCode,\r\n\t\t\tuseInternationalFormat: state.international,\r\n\t\t\twithNationalPrefix: useNationalPrefixFormattingRule,\r\n\t\t\tmetadata\r\n\t\t}\r\n\t)\r\n\tif (!useNationalPrefixFormattingRule) {\r\n\t\tif (state.nationalPrefix) {\r\n\t\t\t// If a national prefix was extracted, then just prepend it,\r\n\t\t\t// followed by a \" \" character.\r\n\t\t\tformattedNationalNumber = state.nationalPrefix +\r\n\t\t\t\tgetSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t} else if (state.complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\tformattedNationalNumber = state.complexPrefixBeforeNationalSignificantNumber +\r\n\t\t\t\t' ' +\r\n\t\t\t\tformattedNationalNumber\r\n\t\t}\r\n\t}\r\n\tif (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n}\r\n\r\n// Check that the formatted phone number contains exactly\r\n// the same digits that have been input by the user.\r\n// For example, when \"0111523456789\" is input for `AR` country,\r\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\r\n// which means that the national part of `this.digits` isn't simply equal to\r\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\r\n//\r\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\r\n// being formatted via `metadata[country].national_prefix_transform_rule`.\r\n// For example, for `VI` country, it prepends `340` to the national number,\r\n// and if this check hasn't been implemented, then there would be a bug\r\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\r\n//\r\n// So, all these \"gotchas\" are filtered out.\r\n//\r\n// In the original Google's code, the comments say:\r\n// \"Check that we didn't remove nor add any extra digits when we matched\r\n// this formatting pattern. This usually happens after we entered the last\r\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\r\n// formatted but AYTF should retain all the number entered and not change\r\n// in order to match a format (of same leading digits and length) display\r\n// in that way.\"\r\n// \"If it's the same (i.e entered number and format is same), then it's\r\n// safe to return this in formatted number as nothing is lost / added.\"\r\n// Otherwise, don't use this format.\r\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\r\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\r\n//\r\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\r\n\treturn parseDigits(formattedNationalNumber) === state.getNationalDigits()\r\n}","export default class PatternParser {\r\n\tparse(pattern) {\r\n\t\tthis.context = [{\r\n\t\t\tor: true,\r\n\t\t\tinstructions: []\r\n\t\t}]\r\n\r\n\t\tthis.parsePattern(pattern)\r\n\r\n\t\tif (this.context.length !== 1) {\r\n\t\t\tthrow new Error('Non-finalized contexts left when pattern parse ended')\r\n\t\t}\r\n\r\n\t\tconst { branches, instructions } = this.context[0]\r\n\r\n\t\tif (branches) {\r\n\t\t\treturn {\r\n\t\t\t\top: '|',\r\n\t\t\t\targs: branches.concat([\r\n\t\t\t\t\texpandSingleElementArray(instructions)\r\n\t\t\t\t])\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* istanbul ignore if */\r\n\t\tif (instructions.length === 0) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tif (instructions.length === 1) {\r\n\t\t\treturn instructions[0]\r\n\t\t}\r\n\r\n\t\treturn instructions\r\n\t}\r\n\r\n\tstartContext(context) {\r\n\t\tthis.context.push(context)\r\n\t}\r\n\r\n\tendContext() {\r\n\t\tthis.context.pop()\r\n\t}\r\n\r\n\tgetContext() {\r\n\t\treturn this.context[this.context.length - 1]\r\n\t}\r\n\r\n\tparsePattern(pattern) {\r\n\t\tif (!pattern) {\r\n\t\t\tthrow new Error('Pattern is required')\r\n\t\t}\r\n\r\n\t\tconst match = pattern.match(OPERATOR)\r\n\t\tif (!match) {\r\n\t\t\tif (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\r\n\t\t\t\tthrow new Error(`Illegal characters found in a pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tthis.getContext().instructions = this.getContext().instructions.concat(\r\n\t\t\t\tpattern.split('')\r\n\t\t\t)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst operator = match[1]\r\n\t\tconst before = pattern.slice(0, match.index)\r\n\t\tconst rightPart = pattern.slice(match.index + operator.length)\r\n\r\n\t\tswitch (operator) {\r\n\t\t\tcase '(?:':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\tor: true,\r\n\t\t\t\t\tinstructions: [],\r\n\t\t\t\t\tbranches: []\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ')':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\")\" operator must be preceded by \"(?:\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tif (this.getContext().instructions.length === 0) {\r\n\t\t\t\t\tthrow new Error('No instructions found after \"|\" operator in an \"or\" group')\r\n\t\t\t\t}\r\n\t\t\t\tconst { branches } = this.getContext()\r\n\t\t\t\tbranches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '|',\r\n\t\t\t\t\targs: branches\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '|':\r\n\t\t\t\tif (!this.getContext().or) {\r\n\t\t\t\t\tthrow new Error('\"|\" operator can only be used inside \"or\" groups')\r\n\t\t\t\t}\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\t// The top-level is an implicit \"or\" group, if required.\r\n\t\t\t\tif (!this.getContext().branches) {\r\n\t\t\t\t\t// `branches` are not defined only for the root implicit \"or\" operator.\r\n\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\tif (this.context.length === 1) {\r\n\t\t\t\t\t\tthis.getContext().branches = []\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow new Error('\"branches\" not found in an \"or\" group context')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.getContext().branches.push(\r\n\t\t\t\t\texpandSingleElementArray(\r\n\t\t\t\t\t\tthis.getContext().instructions\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t\tthis.getContext().instructions = []\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase '[':\r\n\t\t\t\tif (before) {\r\n\t\t\t\t\tthis.parsePattern(before)\r\n\t\t\t\t}\r\n\t\t\t\tthis.startContext({\r\n\t\t\t\t\toneOfSet: true\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\tcase ']':\r\n\t\t\t\tif (!this.getContext().oneOfSet) {\r\n\t\t\t\t\tthrow new Error('\"]\" operator must be preceded by \"[\" operator')\r\n\t\t\t\t}\r\n\t\t\t\tthis.endContext()\r\n\t\t\t\tthis.getContext().instructions.push({\r\n\t\t\t\t\top: '[]',\r\n\t\t\t\t\targs: parseOneOfSet(before)\r\n\t\t\t\t})\r\n\t\t\t\tbreak\r\n\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(`Unknown operator: ${operator}`)\r\n\t\t}\r\n\r\n\t\tif (rightPart) {\r\n\t\t\tthis.parsePattern(rightPart)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction parseOneOfSet(pattern) {\r\n\tconst values = []\r\n\tlet i = 0\r\n\twhile (i < pattern.length) {\r\n\t\tif (pattern[i] === '-') {\r\n\t\t\tif (i === 0 || i === pattern.length - 1) {\r\n\t\t\t\tthrow new Error(`Couldn't parse a one-of set pattern: ${pattern}`)\r\n\t\t\t}\r\n\t\t\tconst prevValue = pattern[i - 1].charCodeAt(0) + 1\r\n\t\t\tconst nextValue = pattern[i + 1].charCodeAt(0) - 1\r\n\t\t\tlet value = prevValue\r\n\t\t\twhile (value <= nextValue) {\r\n\t\t\t\tvalues.push(String.fromCharCode(value))\r\n\t\t\t\tvalue++\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalues.push(pattern[i])\r\n\t\t}\r\n\t\ti++\r\n\t}\r\n\treturn values\r\n}\r\n\r\nconst ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/\r\n\r\nconst OPERATOR = new RegExp(\r\n\t// any of:\r\n\t'(' +\r\n\t\t// or operator\r\n\t\t'\\\\|' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group start\r\n\t\t'\\\\(\\\\?\\\\:' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// or group end\r\n\t\t'\\\\)' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set start\r\n\t\t'\\\\[' +\r\n\t\t// or\r\n\t\t'|' +\r\n\t\t// one-of set end\r\n\t\t'\\\\]' +\r\n\t')'\r\n)\r\n\r\nfunction expandSingleElementArray(array) {\r\n\tif (array.length === 1) {\r\n\t\treturn array[0]\r\n\t}\r\n\treturn array\r\n}","import PatternParser from './AsYouTypeFormatter.PatternParser.js'\r\n\r\nexport default class PatternMatcher {\r\n\tconstructor(pattern) {\r\n\t\tthis.matchTree = new PatternParser().parse(pattern)\r\n\t}\r\n\r\n\tmatch(string, { allowOverflow } = {}) {\r\n\t\tif (!string) {\r\n\t\t\tthrow new Error('String is required')\r\n\t\t}\r\n\t\tconst result = match(string.split(''), this.matchTree, true)\r\n\t\tif (result && result.match) {\r\n\t\t\tdelete result.matchedChars\r\n\t\t}\r\n\t\tif (result && result.overflow) {\r\n\t\t\tif (!allowOverflow) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result\r\n\t}\r\n}\r\n\r\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\r\nfunction match(characters, tree, last) {\r\n\t// If `tree` is a string, then `tree` is a single character.\r\n\t// That's because when a pattern is parsed, multi-character-string parts\r\n\t// of a pattern are compiled into arrays of single characters.\r\n\t// I still wrote this piece of code for a \"general\" hypothetical case\r\n\t// when `tree` could be a string of several characters, even though\r\n\t// such case is not possible with the current implementation.\r\n\tif (typeof tree === 'string') {\r\n\t\tconst characterString = characters.join('')\r\n\t\tif (tree.indexOf(characterString) === 0) {\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (characters.length === tree.length) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tmatch: true,\r\n\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// `tree` is always a single character.\r\n\t\t\t// If `tree.indexOf(characterString) === 0`\r\n\t\t\t// then `characters.length === tree.length`.\r\n\t\t\t/* istanbul ignore next */\r\n\t\t\treturn {\r\n\t\t\t\tpartialMatch: true,\r\n\t\t\t\t// matchedChars: characters\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (characterString.indexOf(tree) === 0) {\r\n\t\t\tif (last) {\r\n\t\t\t\t// The `else` path is not possible because `tree` is always a single character.\r\n\t\t\t\t// The `else` case for `characters.length > tree.length` would be\r\n\t\t\t\t// `characters.length <= tree.length` which means `characters.length <= 1`.\r\n\t\t\t\t// `characters` array can't be empty, so that means `characters === [tree]`,\r\n\t\t\t\t// which would also mean `tree.indexOf(characterString) === 0` and that'd mean\r\n\t\t\t\t// that the `if (tree.indexOf(characterString) === 0)` condition before this\r\n\t\t\t\t// `if` condition would be entered, and returned from there, not reaching this code.\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (characters.length > tree.length) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tmatch: true,\r\n\t\t\t\tmatchedChars: characters.slice(0, tree.length)\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn\r\n\t}\r\n\r\n\tif (Array.isArray(tree)) {\r\n\t\tlet restCharacters = characters.slice()\r\n\t\tlet i = 0\r\n\t\twhile (i < tree.length) {\r\n\t\t\tconst subtree = tree[i]\r\n\t\t\tconst result = match(restCharacters, subtree, last && (i === tree.length - 1))\r\n\t\t\tif (!result) {\r\n\t\t\t\treturn\r\n\t\t\t} else if (result.overflow) {\r\n\t\t\t\treturn result\r\n\t\t\t} else if (result.match) {\r\n\t\t\t\t// Continue with the next subtree with the rest of the characters.\r\n\t\t\t\trestCharacters = restCharacters.slice(result.matchedChars.length)\r\n\t\t\t\tif (restCharacters.length === 0) {\r\n\t\t\t\t\tif (i === tree.length - 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t\t// matchedChars: characters\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\t// If `last` then overflow has already been checked\r\n\t\t// by the last element of the `tree` array.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (last) {\r\n\t\t\treturn {\r\n\t\t\t\toverflow: true\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tmatch: true,\r\n\t\t\tmatchedChars: characters.slice(0, characters.length - restCharacters.length)\r\n\t\t}\r\n\t}\r\n\r\n\tswitch (tree.op) {\r\n\t\tcase '|':\r\n\t\t\tlet partialMatch\r\n\t\t\tfor (const branch of tree.args) {\r\n\t\t\t\tconst result = match(characters, branch, last)\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tif (result.overflow) {\r\n\t\t\t\t\t\treturn result\r\n\t\t\t\t\t} else if (result.match) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: result.matchedChars\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* istanbul ignore else */\r\n\t\t\t\t\t\tif (result.partialMatch) {\r\n\t\t\t\t\t\t\tpartialMatch = true\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthrow new Error(`Unsupported match result:\\n${JSON.stringify(result, null, 2)}`)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (partialMatch) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tpartialMatch: true,\r\n\t\t\t\t\t// matchedChars: ...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Not even a partial match.\r\n\t\t\treturn\r\n\r\n\t\tcase '[]':\r\n\t\t\tfor (const char of tree.args) {\r\n\t\t\t\tif (characters[0] === char) {\r\n\t\t\t\t\tif (characters.length === 1) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\t\tmatchedChars: characters\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (last) {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\toverflow: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tmatch: true,\r\n\t\t\t\t\t\tmatchedChars: [char]\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// No character matches.\r\n\t\t\treturn\r\n\r\n\t\t/* istanbul ignore next */\r\n\t\tdefault:\r\n\t\t\tthrow new Error(`Unsupported instruction tree: ${tree}`)\r\n\t}\r\n}","import {\r\n\tDIGIT_PLACEHOLDER,\r\n\tcountOccurences,\r\n\trepeat,\r\n\tcutAndStripNonPairedParens,\r\n\tcloseNonPairedParens,\r\n\tstripNonPairedParens,\r\n\tpopulateTemplateWithDigits\r\n} from './AsYouTypeFormatter.util.js'\r\n\r\nimport formatCompleteNumber, {\r\n\tcanFormatCompleteNumber\r\n} from './AsYouTypeFormatter.complete.js'\r\n\r\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js'\r\n\r\nimport parseDigits from './helpers/parseDigits.js'\r\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js'\r\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js'\r\nimport { VALID_PUNCTUATION } from './constants.js'\r\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js'\r\n\r\n// Used in phone number format template creation.\r\n// Could be any digit, I guess.\r\nconst DUMMY_DIGIT = '9'\r\n// I don't know why is it exactly `15`\r\nconst LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15\r\n// Create a phone number consisting only of the digit 9 that matches the\r\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\r\nconst LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH)\r\n\r\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\r\n// us that we should separate the national prefix from the number when formatting.\r\nconst NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/\r\n\r\n// Deprecated: Google has removed some formatting pattern related code from their repo.\r\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\r\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\r\n// Because this library supports generating custom metadata\r\n// some users may still be using old metadata so the relevant\r\n// code seems to stay until some next major version update.\r\nconst SUPPORT_LEGACY_FORMATTING_PATTERNS = true\r\n\r\n// A pattern that is used to match character classes in regular expressions.\r\n// An example of a character class is \"[1-4]\".\r\nconst CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\[([^\\[\\]])*\\]/g)\r\n\r\n// Any digit in a regular expression that actually denotes a digit. For\r\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\r\n// (8 and 0) are standalone digits, but the rest are not.\r\n// Two look-aheads are needed because the number following \\\\d could be a\r\n// two-digit number, since the phone number can be as long as 15 digits.\r\nconst CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && (() => /\\d(?=[^,}][^,}])/g)\r\n\r\n// A regular expression that is used to determine if a `format` is\r\n// suitable to be used in the \"as you type formatter\".\r\n// A `format` is suitable when the resulting formatted number has\r\n// the same digits as the user has entered.\r\n//\r\n// In the simplest case, that would mean that the format\r\n// doesn't add any additional digits when formatting a number.\r\n// Google says that it also shouldn't add \"star\" (`*`) characters,\r\n// like it does in some Israeli formats.\r\n// Such basic format would only contain \"valid punctuation\"\r\n// and \"captured group\" identifiers ($1, $2, etc).\r\n//\r\n// An example of a format that adds additional digits:\r\n//\r\n// Country: `AR` (Argentina).\r\n// Format:\r\n// {\r\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n// \"leading_digits_patterns\": [\"91\"],\r\n// \"national_prefix_formatting_rule\": \"0$1\",\r\n// \"format\": \"$2 15-$3-$4\",\r\n// \"international_format\": \"$1 $2 $3-$4\"\r\n// }\r\n//\r\n// In the format above, the `format` adds `15` to the digits when formatting a number.\r\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\r\n// has previously removed `15` from a national number, so re-adding `15` in `format`\r\n// doesn't actually result in any extra digits added to user's input.\r\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\r\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\r\n//\r\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\r\n// `libphonenumber` code.\r\n//\r\nconst NON_ALTERING_FORMAT_REG_EXP = new RegExp(\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t// Google developers say:\r\n\t// \"We require that the first matching group is present in the\r\n\t// output pattern to ensure no data is lost while formatting.\"\r\n\t'\\\\$1' +\r\n\t'[' + VALID_PUNCTUATION + ']*' +\r\n\t'(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' +\r\n\t'$'\r\n)\r\n\r\n// This is the minimum length of the leading digits of a phone number\r\n// to guarantee the first \"leading digits pattern\" for a phone number format\r\n// to be preemptive.\r\nconst MIN_LEADING_DIGITS_LENGTH = 3\r\n\r\nexport default class AsYouTypeFormatter {\r\n\tconstructor({\r\n\t\tstate,\r\n\t\tmetadata\r\n\t}) {\r\n\t\tthis.metadata = metadata\r\n\t\tthis.resetFormat()\r\n\t}\r\n\r\n\tresetFormat() {\r\n\t\tthis.chosenFormat = undefined\r\n\t\tthis.template = undefined\r\n\t\tthis.nationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplate = undefined\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t}\r\n\r\n\treset(numberingPlan, state) {\r\n\t\tthis.resetFormat()\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.isNANP = numberingPlan.callingCode() === '1'\r\n\t\t\tthis.matchingFormats = numberingPlan.formats()\r\n\t\t\tif (state.nationalSignificantNumber) {\r\n\t\t\t\tthis.narrowDownMatchingFormats(state)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.isNANP = undefined\r\n\t\t\tthis.matchingFormats = []\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Formats an updated phone number.\r\n\t * @param {string} nextDigits — Additional phone number digits.\r\n\t * @param {object} state — `AsYouType` state.\r\n\t * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n\t */\r\n\tformat(nextDigits, state) {\r\n\t\t// See if the phone number digits can be formatted as a complete phone number.\r\n\t\t// If not, use the results from `formatNationalNumberWithNextDigits()`,\r\n\t\t// which formats based on the chosen formatting pattern.\r\n\t\t//\r\n\t\t// Attempting to format complete phone number first is how it's done\r\n\t\t// in Google's `libphonenumber`, so this library just follows it.\r\n\t\t// Google's `libphonenumber` code doesn't explain in detail why does it\r\n\t\t// attempt to format digits as a complete phone number\r\n\t\t// instead of just going with a previoulsy (or newly) chosen `format`:\r\n\t\t//\r\n\t\t// \"Checks to see if there is an exact pattern match for these digits.\r\n\t\t// If so, we should use this instead of any other formatting template\r\n\t\t// whose leadingDigitsPattern also matches the input.\"\r\n\t\t//\r\n\t\tif (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\r\n\t\t\tfor (const format of this.matchingFormats) {\r\n\t\t\t\tconst formattedCompleteNumber = formatCompleteNumber(\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tformat,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmetadata: this.metadata,\r\n\t\t\t\t\t\tshouldTryNationalPrefixFormattingRule: (format) => this.shouldTryNationalPrefixFormattingRule(format, {\r\n\t\t\t\t\t\t\tinternational: state.international,\r\n\t\t\t\t\t\t\tnationalPrefix: state.nationalPrefix\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\tgetSeparatorAfterNationalPrefix: (format) => this.getSeparatorAfterNationalPrefix(format)\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\tif (formattedCompleteNumber) {\r\n\t\t\t\t\tthis.resetFormat()\r\n\t\t\t\t\tthis.chosenFormat = format\r\n\t\t\t\t\tthis.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state)\r\n\t\t\t\t\tthis.populatedNationalNumberTemplate = formattedCompleteNumber\r\n\t\t\t\t\t// With a new formatting template, the matched position\r\n\t\t\t\t\t// using the old template needs to be reset.\r\n\t\t\t\t\tthis.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER)\r\n\t\t\t\t\treturn formattedCompleteNumber\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t\t// Format the digits as a partial (incomplete) phone number\r\n\t\t// using the previously chosen formatting pattern (or a newly chosen one).\r\n\t\treturn this.formatNationalNumberWithNextDigits(nextDigits, state)\r\n\t}\r\n\r\n\t// Formats the next phone number digits.\r\n\tformatNationalNumberWithNextDigits(nextDigits, state) {\r\n\t\tconst previouslyChosenFormat = this.chosenFormat\r\n\r\n\t\t// Choose a format from the list of matching ones.\r\n\t\tconst newlyChosenFormat = this.chooseFormat(state)\r\n\r\n\t\tif (newlyChosenFormat) {\r\n\t\t\tif (newlyChosenFormat === previouslyChosenFormat) {\r\n\t\t\t\t// If it can format the next (current) digits\r\n\t\t\t\t// using the previously chosen phone number format\r\n\t\t\t\t// then return the updated formatted number.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(nextDigits)\r\n\t\t\t} else {\r\n\t\t\t\t// If a more appropriate phone number format\r\n\t\t\t\t// has been chosen for these \"leading digits\",\r\n\t\t\t\t// then re-format the national phone number part\r\n\t\t\t\t// using the newly selected format.\r\n\t\t\t\treturn this.formatNextNationalNumberDigits(state.getNationalDigits())\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tnarrowDownMatchingFormats({\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalPrefix,\r\n\t\tinternational\r\n\t}) {\r\n\t\tconst leadingDigits = nationalSignificantNumber\r\n\r\n\t\t// \"leading digits\" pattern list starts with a\r\n\t\t// \"leading digits\" pattern fitting a maximum of 3 leading digits.\r\n\t\t// So, after a user inputs 3 digits of a national (significant) phone number\r\n\t\t// this national (significant) number can already be formatted.\r\n\t\t// The next \"leading digits\" pattern is for 4 leading digits max,\r\n\t\t// and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\r\n\r\n\t\t// This implementation is different from Google's\r\n\t\t// in that it searches for a fitting format\r\n\t\t// even if the user has entered less than\r\n\t\t// `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\r\n\t\t// Because some leading digit patterns already match for a single first digit.\r\n\t\tlet leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH\r\n\t\tif (leadingDigitsPatternIndex < 0) {\r\n\t\t\tleadingDigitsPatternIndex = 0\r\n\t\t}\r\n\r\n\t\tthis.matchingFormats = this.matchingFormats.filter(\r\n\t\t\tformat => this.formatSuits(format, international, nationalPrefix)\r\n\t\t\t\t&& this.formatMatches(format, leadingDigits, leadingDigitsPatternIndex)\r\n\t\t)\r\n\r\n\t\t// If there was a phone number format chosen\r\n\t\t// and it no longer holds given the new leading digits then reset it.\r\n\t\t// The test for this `if` condition is marked as:\r\n\t\t// \"Reset a chosen format when it no longer holds given the new leading digits\".\r\n\t\t// To construct a valid test case for this one can find a country\r\n\t\t// in `PhoneNumberMetadata.xml` yielding one format for 3 ``\r\n\t\t// and yielding another format for 4 `` (Australia in this case).\r\n\t\tif (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t}\r\n\r\n\tformatSuits(format, international, nationalPrefix) {\r\n\t\t// When a prefix before a national (significant) number is\r\n\t\t// simply a national prefix, then it's parsed as `this.nationalPrefix`.\r\n\t\t// In more complex cases, a prefix before national (significant) number\r\n\t\t// could include a national prefix as well as some \"capturing groups\",\r\n\t\t// and in that case there's no info whether a national prefix has been parsed.\r\n\t\t// If national prefix is not used when formatting a phone number\r\n\t\t// using this format, but a national prefix has been entered by the user,\r\n\t\t// and was extracted, then discard such phone number format.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\r\n\t\tif (nationalPrefix &&\r\n\t\t\t!format.usesNationalPrefix() &&\r\n\t\t\t// !format.domesticCarrierCodeFormattingRule() &&\r\n\t\t\t!format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// If national prefix is mandatory for this phone number format\r\n\t\t// and there're no guarantees that a national prefix is present in user input\r\n\t\t// then discard this phone number format as not suitable.\r\n\t\t// In Google's \"AsYouType\" formatter code, the equivalent would be this part:\r\n\t\t// https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\r\n\t\tif (!international &&\r\n\t\t\t!nationalPrefix &&\r\n\t\t\tformat.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn true\r\n\t}\r\n\r\n\tformatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\r\n\t\tconst leadingDigitsPatternsCount = format.leadingDigitsPatterns().length\r\n\r\n\t\t// If this format is not restricted to a certain\r\n\t\t// leading digits pattern then it fits.\r\n\t\t// The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\r\n\t\tif (leadingDigitsPatternsCount === 0) {\r\n\t\t\treturn true\r\n\t\t}\r\n\r\n\t\t// Start narrowing down the list of possible formats based on the leading digits.\r\n\t\t// (only previously matched formats take part in the narrowing down process)\r\n\r\n\t\t// `leading_digits_patterns` start with 3 digits min\r\n\t\t// and then go up from there one digit at a time.\r\n\t\tleadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1)\r\n\t\tconst leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex]\r\n\r\n\t\t// Google imposes a requirement on the leading digits\r\n\t\t// to be minimum 3 digits long in order to be eligible\r\n\t\t// for checking those with a leading digits pattern.\r\n\t\t//\r\n\t\t// Since `leading_digits_patterns` start with 3 digits min,\r\n\t\t// Google's original `libphonenumber` library only starts\r\n\t\t// excluding any non-matching formats only when the\r\n\t\t// national number entered so far is at least 3 digits long,\r\n\t\t// otherwise format matching would give false negatives.\r\n\t\t//\r\n\t\t// For example, when the digits entered so far are `2`\r\n\t\t// and the leading digits pattern is `21` –\r\n\t\t// it's quite obvious in this case that the format could be the one\r\n\t\t// but due to the absence of further digits it would give false negative.\r\n\t\t//\r\n\t\t// Also, `leading_digits_patterns` doesn't always correspond to a single\r\n\t\t// digits count. For example, `60|8` pattern would already match `8`\r\n\t\t// but the `60` part would require having at least two leading digits,\r\n\t\t// so the whole pattern would require inputting two digits first in order to\r\n\t\t// decide on whether it matches the input, even when the input is \"80\".\r\n\t\t//\r\n\t\t// This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\r\n\t\t// even when there's only 1 or 2 digits of the national (significant) number.\r\n\t\t// To do that, it uses a non-strict pattern matcher written specifically for that.\r\n\t\t//\r\n\t\tif (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\r\n\t\t\t// Before leading digits < 3 matching was implemented:\r\n\t\t\t// return true\r\n\t\t\t//\r\n\t\t\t// After leading digits < 3 matching was implemented:\r\n\t\t\ttry {\r\n\t\t\t\treturn new PatternMatcher(leadingDigitsPattern).match(leadingDigits, { allowOverflow: true }) !== undefined\r\n\t\t\t} catch (error) /* istanbul ignore next */ {\r\n\t\t\t\t// There's a slight possibility that there could be some undiscovered bug\r\n\t\t\t\t// in the pattern matcher code. Since the \"leading digits < 3 matching\"\r\n\t\t\t\t// feature is not \"essential\" for operation, it can fall back to the old way\r\n\t\t\t\t// in case of any issues rather than halting the application's execution.\r\n\t\t\t\tconsole.error(error)\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\r\n\t\t// available then use the usual regular expression matching.\r\n\t\t//\r\n\t\t// The whole pattern is wrapped in round brackets (`()`) because\r\n\t\t// the pattern can use \"or\" operator (`|`) at the top level of the pattern.\r\n\t\t//\r\n\t\treturn new RegExp(`^(${leadingDigitsPattern})`).test(leadingDigits)\r\n\t}\r\n\r\n\tgetFormatFormat(format, international) {\r\n\t\treturn international ? format.internationalFormat() : format.format()\r\n\t}\r\n\r\n\tchooseFormat(state) {\r\n\t\t// When there are multiple available formats, the formatter uses the first\r\n\t\t// format where a formatting template could be created.\r\n\t\t//\r\n\t\t// For some weird reason, `istanbul` says \"else path not taken\"\r\n\t\t// for the `for of` line below. Supposedly that means that\r\n\t\t// the loop doesn't ever go over the last element in the list.\r\n\t\t// That's true because there always is `this.chosenFormat`\r\n\t\t// when `this.matchingFormats` is non-empty.\r\n\t\t// And, for some weird reason, it doesn't think that the case\r\n\t\t// with empty `this.matchingFormats` qualifies for a valid \"else\" path.\r\n\t\t// So simply muting this `istanbul` warning.\r\n\t\t// It doesn't skip the contents of the `for of` loop,\r\n\t\t// it just skips the `for of` line.\r\n\t\t//\r\n\t\t/* istanbul ignore next */\r\n\t\tfor (const format of this.matchingFormats.slice()) {\r\n\t\t\t// If this format is currently being used\r\n\t\t\t// and is still suitable, then stick to it.\r\n\t\t\tif (this.chosenFormat === format) {\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t\t// Sometimes, a formatting rule inserts additional digits in a phone number,\r\n\t\t\t// and \"as you type\" formatter can't do that: it should only use the digits\r\n\t\t\t// that the user has input.\r\n\t\t\t//\r\n\t\t\t// For example, in Argentina, there's a format for mobile phone numbers:\r\n\t\t\t//\r\n\t\t\t// {\r\n\t\t\t// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\r\n\t\t\t// \"leading_digits_patterns\": [\"91\"],\r\n\t\t\t// \"national_prefix_formatting_rule\": \"0$1\",\r\n\t\t\t// \"format\": \"$2 15-$3-$4\",\r\n\t\t\t// \"international_format\": \"$1 $2 $3-$4\"\r\n\t\t\t// }\r\n\t\t\t//\r\n\t\t\t// In that format, `international_format` is used instead of `format`\r\n\t\t\t// because `format` inserts `15` in the formatted number,\r\n\t\t\t// and `AsYouType` formatter should only use the digits\r\n\t\t\t// the user has actually input, without adding any extra digits.\r\n\t\t\t// In this case, it wouldn't make a difference, because the `15`\r\n\t\t\t// is first stripped when applying `national_prefix_for_parsing`\r\n\t\t\t// and then re-added when using `format`, so in reality it doesn't\r\n\t\t\t// add any new digits to the number, but to detect that, the code\r\n\t\t\t// would have to be more complex: it would have to try formatting\r\n\t\t\t// the digits using the format and then see if any digits have\r\n\t\t\t// actually been added or removed, and then, every time a new digit\r\n\t\t\t// is input, it should re-check whether the chosen format doesn't\r\n\t\t\t// alter the digits.\r\n\t\t\t//\r\n\t\t\t// Google's code doesn't go that far, and so does this library:\r\n\t\t\t// it simply requires that a `format` doesn't add any additonal\r\n\t\t\t// digits to user's input.\r\n\t\t\t//\r\n\t\t\t// Also, people in general should move from inputting phone numbers\r\n\t\t\t// in national format (possibly with national prefixes)\r\n\t\t\t// and use international phone number format instead:\r\n\t\t\t// it's a logical thing in the modern age of mobile phones,\r\n\t\t\t// globalization and the internet.\r\n\t\t\t//\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (!NON_ALTERING_FORMAT_REG_EXP.test(this.getFormatFormat(format, state.international))) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tif (!this.createTemplateForFormat(format, state)) {\r\n\t\t\t\t// Remove the format if it can't generate a template.\r\n\t\t\t\tthis.matchingFormats = this.matchingFormats.filter(_ => _ !== format)\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\t\t\tthis.chosenFormat = format\r\n\t\t\tbreak\r\n\t\t}\r\n\t\tif (!this.chosenFormat) {\r\n\t\t\t// No format matches the national (significant) phone number.\r\n\t\t\tthis.resetFormat()\r\n\t\t}\r\n\t\treturn this.chosenFormat\r\n\t}\r\n\r\n\tcreateTemplateForFormat(format, state) {\r\n\t\t// The formatter doesn't format numbers when numberPattern contains '|', e.g.\r\n\t\t// (20|3)\\d{4}. In those cases we quickly return.\r\n\t\t// (Though there's no such format in current metadata)\r\n\t\t/* istanbul ignore if */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Get formatting template for this phone number format\r\n\t\tconst template = this.getTemplateForFormat(format, state)\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (template) {\r\n\t\t\tthis.setNationalNumberTemplate(template, state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tgetSeparatorAfterNationalPrefix(format) {\r\n\t\t// `US` metadata doesn't have a `national_prefix_formatting_rule`,\r\n\t\t// so the `if` condition below doesn't apply to `US`,\r\n\t\t// but in reality there shoudl be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\t// So `US` national prefix separator is a \"special\" \"hardcoded\" case.\r\n\t\tif (this.isNANP) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// If a `format` has a `national_prefix_formatting_rule`\r\n\t\t// and that rule has a separator after a national prefix,\r\n\t\t// then it means that there should be a separator\r\n\t\t// between a national prefix and a national (significant) number.\r\n\t\tif (format &&\r\n\t\t\tformat.nationalPrefixFormattingRule() &&\r\n\t\t\tNATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\r\n\t\t\treturn ' '\r\n\t\t}\r\n\t\t// At this point, there seems to be no clear evidence that\r\n\t\t// there should be a separator between a national prefix\r\n\t\t// and a national (significant) number. So don't insert one.\r\n\t\treturn ''\r\n\t}\r\n\r\n\tgetInternationalPrefixBeforeCountryCallingCode({ IDDPrefix, missingPlus }, options) {\r\n\t\tif (IDDPrefix) {\r\n\t\t\treturn options && options.spacing === false ? IDDPrefix : IDDPrefix + ' '\r\n\t\t}\r\n\t\tif (missingPlus) {\r\n\t\t\treturn ''\r\n\t\t}\r\n\t\treturn '+'\r\n\t}\r\n\r\n\tgetTemplate(state) {\r\n\t\tif (!this.template) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// `this.template` holds the template for a \"complete\" phone number.\r\n\t\t// The currently entered phone number is most likely not \"complete\",\r\n\t\t// so trim all non-populated digits.\r\n\t\tlet index = -1\r\n\t\tlet i = 0\r\n\t\tconst internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, { spacing: false }) : ''\r\n\t\twhile (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\r\n\t\t\tindex = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1)\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn cutAndStripNonPairedParens(this.template, index + 1)\r\n\t}\r\n\r\n\tsetNationalNumberTemplate(template, state) {\r\n\t\tthis.nationalNumberTemplate = template\r\n\t\tthis.populatedNationalNumberTemplate = template\r\n\t\t// With a new formatting template, the matched position\r\n\t\t// using the old template needs to be reset.\r\n\t\tthis.populatedNationalNumberTemplatePosition = -1\r\n\t\t// For convenience, the public `.template` property\r\n\t\t// contains the whole international number\r\n\t\t// if the phone number being input is international:\r\n\t\t// 'x' for the '+' sign, 'x'es for the country phone code,\r\n\t\t// a spacebar and then the template for the formatted national number.\r\n\t\tif (state.international) {\r\n\t\t\tthis.template =\r\n\t\t\t\tthis.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) +\r\n\t\t\t\trepeat(DIGIT_PLACEHOLDER, state.callingCode.length) +\r\n\t\t\t\t' ' +\r\n\t\t\t\ttemplate\r\n\t\t} else {\r\n\t\t\tthis.template = template\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Generates formatting template for a national phone number,\r\n\t * optionally containing a national prefix, for a format.\r\n\t * @param {Format} format\r\n\t * @param {string} nationalPrefix\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplateForFormat(format, {\r\n\t\tnationalSignificantNumber,\r\n\t\tinternational,\r\n\t\tnationalPrefix,\r\n\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t}) {\r\n\t\tlet pattern = format.pattern()\r\n\r\n\t\t/* istanbul ignore else */\r\n\t\tif (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\r\n\t\t\tpattern = pattern\r\n\t\t\t\t// Replace anything in the form of [..] with \\d\r\n\t\t\t\t.replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\r\n\t\t\t\t// Replace any standalone digit (not the one in `{}`) with \\d\r\n\t\t\t\t.replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d')\r\n\t\t}\r\n\r\n\t\t// Generate a dummy national number (consisting of `9`s)\r\n\t\t// that fits this format's `pattern`.\r\n\t\t//\r\n\t\t// This match will always succeed,\r\n\t\t// because the \"longest dummy phone number\"\r\n\t\t// has enough length to accomodate any possible\r\n\t\t// national phone number format pattern.\r\n\t\t//\r\n\t\tlet digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0]\r\n\r\n\t\t// If the national number entered is too long\r\n\t\t// for any phone number format, then abort.\r\n\t\tif (nationalSignificantNumber.length > digits.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Get a formatting template which can be used to efficiently format\r\n\t\t// a partial number where digits are added one by one.\r\n\r\n\t\t// Below `strictPattern` is used for the\r\n\t\t// regular expression (with `^` and `$`).\r\n\t\t// This wasn't originally in Google's `libphonenumber`\r\n\t\t// and I guess they don't really need it\r\n\t\t// because they're not using \"templates\" to format phone numbers\r\n\t\t// but I added `strictPattern` after encountering\r\n\t\t// South Korean phone number formatting bug.\r\n\t\t//\r\n\t\t// Non-strict regular expression bug demonstration:\r\n\t\t//\r\n\t\t// this.nationalSignificantNumber : `111111111` (9 digits)\r\n\t\t//\r\n\t\t// pattern : (\\d{2})(\\d{3,4})(\\d{4})\r\n\t\t// format : `$1 $2 $3`\r\n\t\t// digits : `9999999999` (10 digits)\r\n\t\t//\r\n\t\t// '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\r\n\t\t//\r\n\t\t// template : xx xxxx xxxx\r\n\t\t//\r\n\t\t// But the correct template in this case is `xx xxx xxxx`.\r\n\t\t// The template was generated incorrectly because of the\r\n\t\t// `{3,4}` variability in the `pattern`.\r\n\t\t//\r\n\t\t// The fix is, if `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then `this.nationalSignificantNumber`\r\n\t\t// is used instead of `digits`.\r\n\r\n\t\tconst strictPattern = new RegExp('^' + pattern + '$')\r\n\t\tconst nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT)\r\n\r\n\t\t// If `this.nationalSignificantNumber` has already sufficient length\r\n\t\t// to satisfy the `pattern` completely then use it\r\n\t\t// instead of `digits`.\r\n\t\tif (strictPattern.test(nationalNumberDummyDigits)) {\r\n\t\t\tdigits = nationalNumberDummyDigits\r\n\t\t}\r\n\r\n\t\tlet numberFormat = this.getFormatFormat(format, international)\r\n\t\tlet nationalPrefixIncludedInTemplate\r\n\r\n\t\t// If a user did input a national prefix (and that's guaranteed),\r\n\t\t// and if a `format` does have a national prefix formatting rule,\r\n\t\t// then see if that national prefix formatting rule\r\n\t\t// prepends exactly the same national prefix the user has input.\r\n\t\t// If that's the case, then use the `format` with the national prefix formatting rule.\r\n\t\t// Otherwise, use the `format` without the national prefix formatting rule,\r\n\t\t// and prepend a national prefix manually to it.\r\n\t\tif (this.shouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix })) {\r\n\t\t\tconst numberFormatWithNationalPrefix = numberFormat.replace(\r\n\t\t\t\tFIRST_GROUP_PATTERN,\r\n\t\t\t\tformat.nationalPrefixFormattingRule()\r\n\t\t\t)\r\n\t\t\t// If `national_prefix_formatting_rule` of a `format` simply prepends\r\n\t\t\t// national prefix at the start of a national (significant) number,\r\n\t\t\t// then such formatting can be used with `AsYouType` formatter.\r\n\t\t\t// There seems to be no `else` case: everywhere in metadata,\r\n\t\t\t// national prefix formatting rule is national prefix + $1,\r\n\t\t\t// or `($1)`, in which case such format isn't even considered\r\n\t\t\t// when the user has input a national prefix.\r\n\t\t\t/* istanbul ignore else */\r\n\t\t\tif (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\r\n\t\t\t\tnumberFormat = numberFormatWithNationalPrefix\r\n\t\t\t\tnationalPrefixIncludedInTemplate = true\r\n\t\t\t\t// Replace all digits of the national prefix in the formatting template\r\n\t\t\t\t// with `DIGIT_PLACEHOLDER`s.\r\n\t\t\t\tif (nationalPrefix) {\r\n\t\t\t\t\tlet i = nationalPrefix.length\r\n\t\t\t\t\twhile (i > 0) {\r\n\t\t\t\t\t\tnumberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER)\r\n\t\t\t\t\t\ti--\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Generate formatting template for this phone number format.\r\n\t\tlet template = digits\r\n\t\t\t// Format the dummy phone number according to the format.\r\n\t\t\t.replace(new RegExp(pattern), numberFormat)\r\n\t\t\t// Replace each dummy digit with a DIGIT_PLACEHOLDER.\r\n\t\t\t.replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER)\r\n\r\n\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t// as just a basic national prefix, then just prepend such prefix\r\n\t\t// before the national (significant) number, optionally spacing\r\n\t\t// the two with a whitespace.\r\n\t\tif (!nationalPrefixIncludedInTemplate) {\r\n\t\t\tif (complexPrefixBeforeNationalSignificantNumber) {\r\n\t\t\t\t// Prepend the prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, complexPrefixBeforeNationalSignificantNumber.length) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\ttemplate\r\n\t\t\t} else if (nationalPrefix) {\r\n\t\t\t\t// Prepend national prefix to the template manually.\r\n\t\t\t\ttemplate = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) +\r\n\t\t\t\t\tthis.getSeparatorAfterNationalPrefix(format) +\r\n\t\t\t\t\ttemplate\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (international) {\r\n\t\t\ttemplate = applyInternationalSeparatorStyle(template)\r\n\t\t}\r\n\r\n\t\treturn template\r\n\t}\r\n\r\n\tformatNextNationalNumberDigits(digits) {\r\n\t\tconst result = populateTemplateWithDigits(\r\n\t\t\tthis.populatedNationalNumberTemplate,\r\n\t\t\tthis.populatedNationalNumberTemplatePosition,\r\n\t\t\tdigits\r\n\t\t)\r\n\r\n\t\tif (!result) {\r\n\t\t\t// Reset the format.\r\n\t\t\tthis.resetFormat()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.populatedNationalNumberTemplate = result[0]\r\n\t\tthis.populatedNationalNumberTemplatePosition = result[1]\r\n\r\n\t\t// Return the formatted phone number so far.\r\n\t\treturn cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\r\n\t\t// The old way which was good for `input-format` but is not so good\r\n\t\t// for `react-phone-number-input`'s default input (`InputBasic`).\r\n\t\t// return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\r\n\t\t// \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\r\n\t}\r\n\r\n\tshouldTryNationalPrefixFormattingRule(format, { international, nationalPrefix }) {\r\n\t\tif (format.nationalPrefixFormattingRule()) {\r\n\t\t\t// In some countries, `national_prefix_formatting_rule` is `($1)`,\r\n\t\t\t// so it applies even if the user hasn't input a national prefix.\r\n\t\t\t// `format.usesNationalPrefix()` detects such cases.\r\n\t\t\tconst usesNationalPrefix = format.usesNationalPrefix()\r\n\t\t\tif ((usesNationalPrefix && nationalPrefix) ||\r\n\t\t\t\t(!usesNationalPrefix && !international)) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import extractCountryCallingCode from './helpers/extractCountryCallingCode.js'\r\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js'\r\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js'\r\nimport stripIddPrefix from './helpers/stripIddPrefix.js'\r\nimport parseDigits from './helpers/parseDigits.js'\r\n\r\nimport {\r\n\tVALID_DIGITS,\r\n\tVALID_PUNCTUATION,\r\n\tPLUS_CHARS\r\n} from './constants.js'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART =\r\n\t'[' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+'\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i')\r\n\r\nconst VALID_FORMATTED_PHONE_NUMBER_PART =\r\n\t'(?:' +\r\n\t\t'[' + PLUS_CHARS + ']' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']*' +\r\n\t\t'|' +\r\n\t\t'[' +\r\n\t\t\tVALID_PUNCTUATION +\r\n\t\t\tVALID_DIGITS +\r\n\t\t']+' +\r\n\t')'\r\n\r\nconst AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp(\r\n\t'[^' +\r\n\t\tVALID_PUNCTUATION +\r\n\t\tVALID_DIGITS +\r\n\t']+' +\r\n\t'.*' +\r\n\t'$'\r\n)\r\n\r\n// Tests whether `national_prefix_for_parsing` could match\r\n// different national prefixes.\r\n// Matches anything that's not a digit or a square bracket.\r\nconst COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/\r\n\r\nexport default class AsYouTypeParser {\r\n\tconstructor({\r\n\t\tdefaultCountry,\r\n\t\tdefaultCallingCode,\r\n\t\tmetadata,\r\n\t\tonNationalSignificantNumberChange\r\n\t}) {\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.metadata = metadata\r\n\t\tthis.onNationalSignificantNumberChange = onNationalSignificantNumberChange\r\n\t}\r\n\r\n\tinput(text, state) {\r\n\t\tconst [formattedDigits, hasPlus] = extractFormattedDigitsAndPlus(text)\r\n\t\tconst digits = parseDigits(formattedDigits)\r\n\t\t// Checks for a special case: just a leading `+` has been entered.\r\n\t\tlet justLeadingPlus\r\n\t\tif (hasPlus) {\r\n\t\t\tif (!state.digits) {\r\n\t\t\t\tstate.startInternationalNumber()\r\n\t\t\t\tif (!digits) {\r\n\t\t\t\t\tjustLeadingPlus = true\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (digits) {\r\n\t\t\tthis.inputDigits(digits, state)\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number digits.\r\n\t * @param {string} digits\r\n\t * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n\t */\r\n\tinputDigits(nextDigits, state) {\r\n\t\tconst { digits } = state\r\n\t\tconst hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3\r\n\r\n\t\t// Append phone number digits.\r\n\t\tstate.appendDigits(nextDigits)\r\n\r\n\t\t// Attempt to extract IDD prefix:\r\n\t\t// Some users input their phone number in international format,\r\n\t\t// but in an \"out-of-country\" dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers as soon as there're at least 3 digits.\r\n\t\t// Google's library attempts to extract IDD prefix at 3 digits,\r\n\t\t// so this library just copies that behavior.\r\n\t\t// I guess that's because the most commot IDD prefixes are\r\n\t\t// `00` (Europe) and `011` (US).\r\n\t\t// There exist really long IDD prefixes too:\r\n\t\t// for example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t// An IDD prefix is extracted here, and then every time when\r\n\t\t// there's a new digit and the number couldn't be formatted.\r\n\t\tif (hasReceivedThreeLeadingDigits) {\r\n\t\t\tthis.extractIddPrefix(state)\r\n\t\t}\r\n\r\n\t\tif (this.isWaitingForCountryCallingCode(state)) {\r\n\t\t\tif (!this.extractCountryCallingCode(state)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tstate.appendNationalSignificantNumberDigits(nextDigits)\r\n\t\t}\r\n\r\n\t\t// If a phone number is being input in international format,\r\n\t\t// then it's not valid for it to have a national prefix.\r\n\t\t// Still, some people incorrectly input such numbers with a national prefix.\r\n\t\t// In such cases, only attempt to strip a national prefix if the number becomes too long.\r\n\t\t// (but that is done later, not here)\r\n\t\tif (!state.international) {\r\n\t\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisWaitingForCountryCallingCode({ international, callingCode }) {\r\n\t\treturn international && !callingCode\r\n\t}\r\n\r\n\t// Extracts a country calling code from a number\r\n\t// being entered in internatonal format.\r\n\textractCountryCallingCode(state) {\r\n\t\tconst { countryCallingCode, number } = extractCountryCallingCode(\r\n\t\t\t'+' + state.getDigitsWithoutInternationalPrefix(),\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (countryCallingCode) {\r\n\t\t\tstate.setCallingCode(countryCallingCode)\r\n\t\t\tstate.update({\r\n\t\t\t\tnationalSignificantNumber: number\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\treset(numberingPlan) {\r\n\t\tif (numberingPlan) {\r\n\t\t\tthis.hasSelectedNumberingPlan = true\r\n\t\t\tconst nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing()\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing)\r\n\t\t} else {\r\n\t\t\tthis.hasSelectedNumberingPlan = undefined\r\n\t\t\tthis.couldPossiblyExtractAnotherNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Extracts a national (significant) number from user input.\r\n\t * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n\t * and doesn't apply `national_prefix_transform_rule` after that.\r\n\t * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n\t * @return {boolean} [extracted]\r\n\t */\r\n\textractNationalSignificantNumber(nationalDigits, setState) {\r\n\t\tif (!this.hasSelectedNumberingPlan) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\tif (nationalNumber === nationalDigits) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\t/**\r\n\t * In Google's code this function is called \"attempt to extract longer NDD\".\r\n\t * \"Some national prefixes are a substring of others\", they say.\r\n\t * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n\t */\r\n\textractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\r\n\t\tif (!this.hasExtractedNationalSignificantNumber) {\r\n\t\t\treturn this.extractNationalSignificantNumber(nationalDigits, setState)\r\n\t\t}\r\n\t\tif (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tconst {\r\n\t\t\tnationalPrefix,\r\n\t\t\tnationalNumber,\r\n\t\t\tcarrierCode\r\n\t\t} = extractNationalNumberFromPossiblyIncompleteNumber(\r\n\t\t\tnationalDigits,\r\n\t\t\tthis.metadata\r\n\t\t)\r\n\t\t// If a national prefix has been extracted previously,\r\n\t\t// then it's always extracted as additional digits are added.\r\n\t\t// That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\r\n\t\t// doesn't do anything different from what it currently does.\r\n\t\t// So, just in case, here's this check, though it doesn't occur.\r\n\t\t/* istanbul ignore if */\r\n\t\tif (nationalNumber === prevNationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\tthis.onExtractedNationalNumber(\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalNumber,\r\n\t\t\tnationalDigits,\r\n\t\t\tsetState\r\n\t\t)\r\n\t\treturn true\r\n\t}\r\n\r\n\tonExtractedNationalNumber(\r\n\t\tnationalPrefix,\r\n\t\tcarrierCode,\r\n\t\tnationalSignificantNumber,\r\n\t\tnationalDigits,\r\n\t\tsetState\r\n\t) {\r\n\t\tlet complexPrefixBeforeNationalSignificantNumber\r\n\t\tlet nationalSignificantNumberMatchesInput\r\n\t\t// This check also works with empty `this.nationalSignificantNumber`.\r\n\t\tconst nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber)\r\n\t\t// If the extracted national (significant) number is the\r\n\t\t// last substring of the `digits`, then it means that it hasn't been altered:\r\n\t\t// no digits have been removed from the national (significant) number\r\n\t\t// while applying `national_prefix_transform_rule`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\r\n\t\tif (nationalSignificantNumberIndex >= 0 &&\r\n\t\t\tnationalSignificantNumberIndex === nationalDigits.length - nationalSignificantNumber.length) {\r\n\t\t\tnationalSignificantNumberMatchesInput = true\r\n\t\t\t// If a prefix of a national (significant) number is not as simple\r\n\t\t\t// as just a basic national prefix, then such prefix is stored in\r\n\t\t\t// `this.complexPrefixBeforeNationalSignificantNumber` property and will be\r\n\t\t\t// prepended \"as is\" to the national (significant) number to produce\r\n\t\t\t// a formatted result.\r\n\t\t\tconst prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex)\r\n\t\t\t// `prefixBeforeNationalNumber` is always non-empty,\r\n\t\t\t// because `onExtractedNationalNumber()` isn't called\r\n\t\t\t// when a national (significant) number hasn't been actually \"extracted\":\r\n\t\t\t// when a national (significant) number is equal to the national part of `digits`,\r\n\t\t\t// then `onExtractedNationalNumber()` doesn't get called.\r\n\t\t\tif (prefixBeforeNationalNumber !== nationalPrefix) {\r\n\t\t\t\tcomplexPrefixBeforeNationalSignificantNumber = prefixBeforeNationalNumber\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetState({\r\n\t\t\tnationalPrefix,\r\n\t\t\tcarrierCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tnationalSignificantNumberMatchesInput,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber\r\n\t\t})\r\n\t\t// `onExtractedNationalNumber()` is only called when\r\n\t\t// the national (significant) number actually did change.\r\n\t\tthis.hasExtractedNationalSignificantNumber = true\r\n\t\tthis.onNationalSignificantNumberChange()\r\n\t}\r\n\r\n\treExtractNationalSignificantNumber(state) {\r\n\t\t// Attempt to extract a national prefix.\r\n\t\t//\r\n\t\t// Some people incorrectly input national prefix\r\n\t\t// in an international phone number.\r\n\t\t// For example, some people write British phone numbers as `+44(0)...`.\r\n\t\t//\r\n\t\t// Also, in some rare cases, it is valid for a national prefix\r\n\t\t// to be a part of an international phone number.\r\n\t\t// For example, mobile phone numbers in Mexico are supposed to be\r\n\t\t// dialled internationally using a `1` national prefix,\r\n\t\t// so the national prefix will be part of an international number.\r\n\t\t//\r\n\t\t// Quote from:\r\n\t\t// https://www.mexperience.com/dialing-cell-phones-in-mexico/\r\n\t\t//\r\n\t\t// \"Dialing a Mexican cell phone from abroad\r\n\t\t// When you are calling a cell phone number in Mexico from outside Mexico,\r\n\t\t// it’s necessary to dial an additional “1” after Mexico’s country code\r\n\t\t// (which is “52”) and before the area code.\r\n\t\t// You also ignore the 045, and simply dial the area code and the\r\n\t\t// cell phone’s number.\r\n\t\t//\r\n\t\t// If you don’t add the “1”, you’ll receive a recorded announcement\r\n\t\t// asking you to redial using it.\r\n\t\t//\r\n\t\t// For example, if you are calling from the USA to a cell phone\r\n\t\t// in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\r\n\t\t// (Note that this is different to calling a land line in Mexico City\r\n\t\t// from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\r\n\t\t//\r\n\t\t// Google's demo output:\r\n\t\t// https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\r\n\t\t//\r\n\t\tif (this.extractAnotherNationalSignificantNumber(\r\n\t\t\tstate.getNationalDigits(),\r\n\t\t\tstate.nationalSignificantNumber,\r\n\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// If no format matches the phone number, then it could be\r\n\t\t// \"a really long IDD\" (quote from a comment in Google's library).\r\n\t\t// An IDD prefix is first extracted when the user has entered at least 3 digits,\r\n\t\t// and then here — every time when there's a new digit and the number\r\n\t\t// couldn't be formatted.\r\n\t\t// For example, in Australia the default IDD prefix is `0011`,\r\n\t\t// and it could even be as long as `14880011`.\r\n\t\t//\r\n\t\t// Could also check `!hasReceivedThreeLeadingDigits` here\r\n\t\t// to filter out the case when this check duplicates the one\r\n\t\t// already performed when there're 3 leading digits,\r\n\t\t// but it's not a big deal, and in most cases there\r\n\t\t// will be a suitable `format` when there're 3 leading digits.\r\n\t\t//\r\n\t\tif (this.extractIddPrefix(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t\t// Google's AsYouType formatter supports sort of an \"autocorrection\" feature\r\n\t\t// when it \"autocorrects\" numbers that have been input for a country\r\n\t\t// with that country's calling code.\r\n\t\t// Such \"autocorrection\" feature looks weird, but different people have been requesting it:\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/376\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/375\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/316\r\n\t\tif (this.fixMissingPlus(state)) {\r\n\t\t\tthis.extractCallingCodeAndNationalSignificantNumber(state)\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\textractIddPrefix(state) {\r\n\t\t// An IDD prefix can't be present in a number written with a `+`.\r\n\t\t// Also, don't re-extract an IDD prefix if has already been extracted.\r\n\t\tconst {\r\n\t\t\tinternational,\r\n\t\t\tIDDPrefix,\r\n\t\t\tdigits,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = state\r\n\t\tif (international || IDDPrefix) {\r\n\t\t\treturn\r\n\t\t}\r\n\t\t// Some users input their phone number in \"out-of-country\"\r\n\t\t// dialing format instead of using the leading `+`.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/185\r\n\t\t// Detect such numbers.\r\n\t\tconst numberWithoutIDD = stripIddPrefix(\r\n\t\t\tdigits,\r\n\t\t\tthis.defaultCountry,\r\n\t\t\tthis.defaultCallingCode,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\r\n\t\t\t// If an IDD prefix was stripped then convert the IDD-prefixed number\r\n\t\t\t// to international number for subsequent parsing.\r\n\t\t\tstate.update({\r\n\t\t\t\tIDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\r\n\t\t\t})\r\n\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\tcountry: undefined,\r\n\t\t\t\tcallingCode: undefined\r\n\t\t\t})\r\n\t\t\treturn true\r\n\t\t}\r\n\t}\r\n\r\n\tfixMissingPlus(state) {\r\n\t\tif (!state.international) {\r\n\t\t\tconst {\r\n\t\t\t\tcountryCallingCode: newCallingCode,\r\n\t\t\t\tnumber\r\n\t\t\t} = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\t\t\t\tstate.digits,\r\n\t\t\t\tthis.defaultCountry,\r\n\t\t\t\tthis.defaultCallingCode,\r\n\t\t\t\tthis.metadata.metadata\r\n\t\t\t)\r\n\t\t\tif (newCallingCode) {\r\n\t\t\t\tstate.update({\r\n\t\t\t\t\tmissingPlus: true\r\n\t\t\t\t})\r\n\t\t\t\tthis.startInternationalNumber(state, {\r\n\t\t\t\t\tcountry: state.country,\r\n\t\t\t\t\tcallingCode: newCallingCode\r\n\t\t\t\t})\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstartInternationalNumber(state, { country, callingCode }) {\r\n\t\tstate.startInternationalNumber(country, callingCode)\r\n\t\t// If a national (significant) number has been extracted before, reset it.\r\n\t\tif (state.nationalSignificantNumber) {\r\n\t\t\tstate.resetNationalSignificantNumber()\r\n\t\t\tthis.onNationalSignificantNumberChange()\r\n\t\t\tthis.hasExtractedNationalSignificantNumber = undefined\r\n\t\t}\r\n\t}\r\n\r\n\textractCallingCodeAndNationalSignificantNumber(state) {\r\n\t\tif (this.extractCountryCallingCode(state)) {\r\n\t\t\t// `this.extractCallingCode()` is currently called when the number\r\n\t\t\t// couldn't be formatted during the standard procedure.\r\n\t\t\t// Normally, the national prefix would be re-extracted\r\n\t\t\t// for an international number if such number couldn't be formatted,\r\n\t\t\t// but since it's already not able to be formatted,\r\n\t\t\t// there won't be yet another retry, so also extract national prefix here.\r\n\t\t\tthis.extractNationalSignificantNumber(\r\n\t\t\t\tstate.getNationalDigits(),\r\n\t\t\t\t(stateUpdate) => state.update(stateUpdate)\r\n\t\t\t)\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\r\nfunction extractFormattedPhoneNumber(text) {\r\n\t// Attempt to extract a possible number from the string passed in.\r\n\tconst startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART)\r\n\tif (startsAt < 0) {\r\n\t\treturn\r\n\t}\r\n\t// Trim everything to the left of the phone number.\r\n\ttext = text.slice(startsAt)\r\n\t// Trim the `+`.\r\n\tlet hasPlus\r\n\tif (text[0] === '+') {\r\n\t\thasPlus = true\r\n\t\ttext = text.slice('+'.length)\r\n\t}\r\n\t// Trim everything to the right of the phone number.\r\n\ttext = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '')\r\n\t// Re-add the previously trimmed `+`.\r\n\tif (hasPlus) {\r\n\t\ttext = '+' + text\r\n\t}\r\n\treturn text\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nfunction _extractFormattedDigitsAndPlus(text) {\r\n\t// Extract a formatted phone number part from text.\r\n\tconst extractedNumber = extractFormattedPhoneNumber(text) || ''\r\n\t// Trim a `+`.\r\n\tif (extractedNumber[0] === '+') {\r\n\t\treturn [extractedNumber.slice('+'.length), true]\r\n\t}\r\n\treturn [extractedNumber]\r\n}\r\n\r\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\r\nexport function extractFormattedDigitsAndPlus(text) {\r\n\tlet [formattedDigits, hasPlus] = _extractFormattedDigitsAndPlus(text)\r\n\t// If the extracted phone number part\r\n\t// can possibly be a part of some valid phone number\r\n\t// then parse phone number characters from a formatted phone number.\r\n\tif (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\r\n\t\tformattedDigits = ''\r\n\t}\r\n\treturn [formattedDigits, hasPlus]\r\n}","import Metadata from './metadata.js'\r\nimport PhoneNumber from './PhoneNumber.js'\r\nimport AsYouTypeState from './AsYouTypeState.js'\r\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js'\r\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js'\r\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js'\r\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js'\r\nimport isObject from './helpers/isObject.js'\r\n\r\nconst USE_NON_GEOGRAPHIC_COUNTRY_CODE = false\r\n\r\nexport default class AsYouType {\r\n\t/**\r\n\t * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n\t * @param {Object} metadata\r\n\t */\r\n\tconstructor(optionsOrDefaultCountry, metadata) {\r\n\t\tthis.metadata = new Metadata(metadata)\r\n\t\tconst [defaultCountry, defaultCallingCode] = this.getCountryAndCallingCode(optionsOrDefaultCountry)\r\n\t\t// `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\r\n\t\t// For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\r\n\t\t// So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\r\n\t\tthis.defaultCountry = defaultCountry\r\n\t\tthis.defaultCallingCode = defaultCallingCode\r\n\t\tthis.reset()\r\n\t}\r\n\r\n\tgetCountryAndCallingCode(optionsOrDefaultCountry) {\r\n\t\t// Set `defaultCountry` and `defaultCallingCode` options.\r\n\t\tlet defaultCountry\r\n\t\tlet defaultCallingCode\r\n\t\t// Turns out `null` also has type \"object\". Weird.\r\n\t\tif (optionsOrDefaultCountry) {\r\n\t\t\tif (isObject(optionsOrDefaultCountry)) {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry.defaultCountry\r\n\t\t\t\tdefaultCallingCode = optionsOrDefaultCountry.defaultCallingCode\r\n\t\t\t} else {\r\n\t\t\t\tdefaultCountry = optionsOrDefaultCountry\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\r\n\t\t\tdefaultCountry = undefined\r\n\t\t}\r\n\t\tif (defaultCallingCode) {\r\n\t\t\t/* istanbul ignore if */\r\n\t\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t\tif (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\r\n\t\t\t\t\tdefaultCountry = '001'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn [defaultCountry, defaultCallingCode]\r\n\t}\r\n\r\n\t/**\r\n\t * Inputs \"next\" phone number characters.\r\n\t * @param {string} text\r\n\t * @return {string} Formatted phone number characters that have been input so far.\r\n\t */\r\n\tinput(text) {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tjustLeadingPlus\r\n\t\t} = this.parser.input(text, this.state)\r\n\t\tif (justLeadingPlus) {\r\n\t\t\tthis.formattedOutput = '+'\r\n\t\t} else if (digits) {\r\n\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t// Match the available formats by the currently available leading digits.\r\n\t\t\tif (this.state.nationalSignificantNumber) {\r\n\t\t\t\tthis.formatter.narrowDownMatchingFormats(this.state)\r\n\t\t\t}\r\n\t\t\tlet formattedNationalNumber\r\n\t\t\tif (this.metadata.hasSelectedNumberingPlan()) {\r\n\t\t\t\tformattedNationalNumber = this.formatter.format(digits, this.state)\r\n\t\t\t}\r\n\t\t\tif (formattedNationalNumber === undefined) {\r\n\t\t\t\t// See if another national (significant) number could be re-extracted.\r\n\t\t\t\tif (this.parser.reExtractNationalSignificantNumber(this.state)) {\r\n\t\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\t\t// If it could, then re-try formatting the new national (significant) number.\r\n\t\t\t\t\tconst nationalDigits = this.state.getNationalDigits()\r\n\t\t\t\t\tif (nationalDigits) {\r\n\t\t\t\t\t\tformattedNationalNumber = this.formatter.format(nationalDigits, this.state)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.formattedOutput = formattedNationalNumber\r\n\t\t\t\t? this.getFullNumber(formattedNationalNumber)\r\n\t\t\t\t: this.getNonFormattedNumber()\r\n\t\t}\r\n\t\treturn this.formattedOutput\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis.state = new AsYouTypeState({\r\n\t\t\tonCountryChange: (country) => {\r\n\t\t\t\t// Before version `1.6.0`, the official `AsYouType` formatter API\r\n\t\t\t\t// included the `.country` property of an `AsYouType` instance.\r\n\t\t\t\t// Since that property (along with the others) have been moved to\r\n\t\t\t\t// `this.state`, `this.country` property is emulated for compatibility\r\n\t\t\t\t// with the old versions.\r\n\t\t\t\tthis.country = country\r\n\t\t\t},\r\n\t\t\tonCallingCodeChange: (callingCode, country) => {\r\n\t\t\t\tthis.metadata.selectNumberingPlan(country, callingCode)\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t\tthis.parser.reset(this.metadata.numberingPlan)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.formatter = new AsYouTypeFormatter({\r\n\t\t\tstate: this.state,\r\n\t\t\tmetadata: this.metadata\r\n\t\t})\r\n\t\tthis.parser = new AsYouTypeParser({\r\n\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\tdefaultCallingCode: this.defaultCallingCode,\r\n\t\t\tmetadata: this.metadata,\r\n\t\t\tstate: this.state,\r\n\t\t\tonNationalSignificantNumberChange: () => {\r\n\t\t\t\tthis.determineTheCountryIfNeeded()\r\n\t\t\t\tthis.formatter.reset(this.metadata.numberingPlan, this.state)\r\n\t\t\t}\r\n\t\t})\r\n\t\tthis.state.reset({\r\n\t\t\tcountry: this.defaultCountry,\r\n\t\t\tcallingCode: this.defaultCallingCode\r\n\t\t})\r\n\t\tthis.formattedOutput = ''\r\n\t\treturn this\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is being input in international format.\r\n\t * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisInternational() {\r\n\t\treturn this.state.international\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the \"calling code\" part of the phone number when it's being input\r\n\t * in an international format.\r\n\t * If no valid calling code has been entered so far, returns `undefined`.\r\n\t * @return {string} [callingCode]\r\n\t */\r\n\tgetCallingCode() {\r\n\t\t // If the number is being input in national format and some \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then `this.state.callingCode`\r\n\t\t // is equal to that \"default calling code\".\r\n\t\t //\r\n\t\t // If the number is being input in national format and no \"default calling code\"\r\n\t\t // has been passed to `AsYouType` constructor, then returns `undefined`,\r\n\t\t // even if a \"default country\" has been passed to `AsYouType` constructor.\r\n\t\t //\r\n\t\tif (this.isInternational()) {\r\n\t\t\treturn this.state.callingCode\r\n\t\t}\r\n\t}\r\n\r\n\t// A legacy alias.\r\n\tgetCountryCallingCode() {\r\n\t\treturn this.getCallingCode()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * Returns `undefined` if no phone number has been input yet.\r\n\t * @return {string} [country]\r\n\t */\r\n\tgetCountry() {\r\n\t\tconst { digits } = this.state\r\n\t\t// Return `undefined` if no digits have been input yet.\r\n\t\tif (digits) {\r\n\t\t\treturn this._getCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a two-letter country code of the phone number.\r\n\t * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n\t * @return {string} [country]\r\n\t */\r\n\t_getCountry() {\r\n\t\tconst { country } = this.state\r\n\t\t/* istanbul ignore if */\r\n\t\tif (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\r\n\t\t\t// `AsYouType.getCountry()` returns `undefined`\r\n\t\t\t// for \"non-geographic\" phone numbering plans.\r\n\t\t\tif (country === '001') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn country\r\n\t}\r\n\r\n\tdetermineTheCountryIfNeeded() {\r\n\t\t// Suppose a user enters a phone number in international format,\r\n\t\t// and there're several countries corresponding to that country calling code,\r\n\t\t// and a country has been derived from the number, and then\r\n\t\t// a user enters one more digit and the number is no longer\r\n\t\t// valid for the derived country, so the country should be re-derived\r\n\t\t// on every new digit in those cases.\r\n\t\t//\r\n\t\t// If the phone number is being input in national format,\r\n\t\t// then it could be a case when `defaultCountry` wasn't specified\r\n\t\t// when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\r\n\t\t// and that \"calling code\" could correspond to a \"non-geographic entity\",\r\n\t\t// or there could be several countries corresponding to that country calling code.\r\n\t\t// In those cases, `this.country` is `undefined` and should be derived\r\n\t\t// from the number. Again, if country calling code is ambiguous, then\r\n\t\t// `this.country` should be re-derived with each new digit.\r\n\t\t//\r\n\t\tif (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\r\n\t\t\tthis.determineTheCountry()\r\n\t\t}\r\n\t}\r\n\r\n\t// Prepends `+CountryCode ` in case of an international phone number\r\n\tgetFullNumber(formattedNationalNumber) {\r\n\t\tif (this.isInternational()) {\r\n\t\t\tconst prefix = (text) => this.formatter.getInternationalPrefixBeforeCountryCallingCode(this.state, {\r\n\t\t\t\tspacing: text ? true : false\r\n\t\t\t}) + text\r\n\t\t\tconst { callingCode } = this.state\r\n\t\t\tif (!callingCode) {\r\n\t\t\t\treturn prefix(`${this.state.getDigitsWithoutInternationalPrefix()}`)\r\n\t\t\t}\r\n\t\t\tif (!formattedNationalNumber) {\r\n\t\t\t\treturn prefix(callingCode)\r\n\t\t\t}\r\n\t\t\treturn prefix(`${callingCode} ${formattedNationalNumber}`)\r\n\t\t}\r\n\t\treturn formattedNationalNumber\r\n\t}\r\n\r\n\tgetNonFormattedNationalNumberWithPrefix() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcomplexPrefixBeforeNationalSignificantNumber,\r\n\t\t\tnationalPrefix\r\n\t\t} = this.state\r\n\t\tlet number = nationalSignificantNumber\r\n\t\tconst prefix = complexPrefixBeforeNationalSignificantNumber || nationalPrefix\r\n\t\tif (prefix) {\r\n\t\t\tnumber = prefix + number\r\n\t\t}\r\n\t\treturn number\r\n\t}\r\n\r\n\tgetNonFormattedNumber() {\r\n\t\tconst { nationalSignificantNumberMatchesInput } = this.state\r\n\t\treturn this.getFullNumber(\r\n\t\t\tnationalSignificantNumberMatchesInput\r\n\t\t\t\t? this.getNonFormattedNationalNumberWithPrefix()\r\n\t\t\t\t: this.state.getNationalDigits()\r\n\t\t)\r\n\t}\r\n\r\n\tgetNonFormattedTemplate() {\r\n\t\tconst number = this.getNonFormattedNumber()\r\n\t\tif (number) {\r\n\t\t\treturn number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER)\r\n\t\t}\r\n\t}\r\n\r\n\tisCountryCallingCodeAmbiguous() {\r\n\t\tconst { callingCode } = this.state\r\n\t\tconst countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\treturn countryCodes && countryCodes.length > 1\r\n\t}\r\n\r\n\t// Determines the country of the phone number\r\n\t// entered so far based on the country phone code\r\n\t// and the national phone number.\r\n\tdetermineTheCountry() {\r\n\t\tthis.state.setCountry(getCountryByCallingCode(\r\n\t\t\tthis.isInternational() ? this.state.callingCode : this.defaultCallingCode,\r\n\t\t\t{\r\n\t\t\t\tnationalNumber: this.state.nationalSignificantNumber,\r\n\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\tmetadata: this.metadata\r\n\t\t\t}\r\n\t\t))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a E.164 phone number value for the user's input.\r\n\t *\r\n\t * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n\t * it will return `\"+12223334444\"`.\r\n\t *\r\n\t * For international phone number input, it will also auto-correct\r\n\t * some minor errors such as using a national prefix when writing\r\n\t * an international phone number. For example, if the user inputs\r\n\t * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n\t * `\"+447400000000\"` phone number value.\r\n\t *\r\n\t * Will return `undefined` if no digits have been input,\r\n\t * or when inputting a phone number in national format and no\r\n\t * default country or default \"country calling code\" have been set.\r\n\t *\r\n\t * @return {string} [value]\r\n\t */\r\n\tgetNumberValue() {\r\n\t\tconst {\r\n\t\t\tdigits,\r\n\t\t\tcallingCode,\r\n\t\t\tcountry,\r\n\t\t\tnationalSignificantNumber\r\n\t\t} = this.state\r\n\r\n\t \t// Will return `undefined` if no digits have been input.\r\n\t\tif (!digits) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (this.isInternational()) {\r\n\t\t\tif (callingCode) {\r\n\t\t\t\treturn '+' + callingCode + nationalSignificantNumber\r\n\t\t\t} else {\r\n\t\t\t\treturn '+' + digits\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (country || callingCode) {\r\n\t\t\t\tconst callingCode_ = country ? this.metadata.countryCallingCode() : callingCode\r\n\t\t\t\treturn '+' + callingCode_ + nationalSignificantNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an instance of `PhoneNumber` class.\r\n\t * Will return `undefined` if no national (significant) number\r\n\t * digits have been entered so far, or if no `defaultCountry` has been\r\n\t * set and the user enters a phone number not in international format.\r\n\t */\r\n\tgetNumber() {\r\n\t\tconst {\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tcarrierCode,\r\n\t\t\tcallingCode\r\n\t\t} = this.state\r\n\r\n\t\t// `this._getCountry()` is basically same as `this.state.country`\r\n\t\t// with the only change that it return `undefined` in case of a\r\n\t\t// \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\r\n\t\tlet country = this._getCountry()\r\n\r\n\t\tif (!nationalSignificantNumber) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t// For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\r\n\t\t// So `country` and `callingCode` are totally independent.\r\n\r\n\t\tif (!country && !callingCode) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// By default, if `defaultCountry` parameter was passed when\r\n\t\t// creating `AsYouType` instance, `state.country` is gonna be\r\n\t\t// that `defaultCountry`, which doesn't entirely conform with\r\n\t\t// `parsePhoneNumber()`'s behavior where it attempts to determine\r\n\t\t// the country more precisely in cases when multiple countries\r\n\t\t// could correspond to the same `countryCallingCode`.\r\n\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\r\n\t\t//\r\n\t\t// Because `AsYouType.getNumber()` method is supposed to be a 1:1\r\n\t\t// equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\r\n\t\t// then it should also behave accordingly in cases of `country` ambiguity.\r\n\t\t// That's how users of this library would expect it to behave anyway.\r\n\t\t//\r\n\t\tif (country) {\r\n\t\t\tif (country === this.defaultCountry) {\r\n\t\t\t\t// `state.country` and `state.callingCode` aren't required to be in sync.\r\n\t\t\t\t// For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\r\n\t\t\t\t// So `state.country` and `state.callingCode` are totally independent.\r\n\t\t\t\tconst metadata = new Metadata(this.metadata.metadata)\r\n\t\t\t\tmetadata.selectNumberingPlan(country)\r\n\t\t\t\tconst callingCode = metadata.numberingPlan.callingCode()\r\n\t\t\t\tconst ambiguousCountries = this.metadata.getCountryCodesForCallingCode(callingCode)\r\n\t\t\t\tif (ambiguousCountries.length > 1) {\r\n\t\t\t\t\tconst exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\r\n\t\t\t\t\t\tcountries: ambiguousCountries,\r\n\t\t\t\t\t\tdefaultCountry: this.defaultCountry,\r\n\t\t\t\t\t\tmetadata: this.metadata.metadata\r\n\t\t\t\t\t})\r\n\t\t\t\t\tif (exactCountry) {\r\n\t\t\t\t\t\tcountry = exactCountry\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst phoneNumber = new PhoneNumber(\r\n\t\t\tcountry || callingCode,\r\n\t\t\tnationalSignificantNumber,\r\n\t\t\tthis.metadata.metadata\r\n\t\t)\r\n\t\tif (carrierCode) {\r\n\t\t\tphoneNumber.carrierCode = carrierCode\r\n\t\t}\r\n\t\t// Phone number extensions are not supported by \"As You Type\" formatter.\r\n\t\treturn phoneNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"possible\".\r\n\t * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisPossible() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isPossible()\r\n\t}\r\n\r\n\t/**\r\n\t * Returns `true` if the phone number is \"valid\".\r\n\t * Is just a shortcut for `PhoneNumber.isValid()`.\r\n\t * @return {boolean}\r\n\t */\r\n\tisValid() {\r\n\t\tconst phoneNumber = this.getNumber()\r\n\t\tif (!phoneNumber) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\treturn phoneNumber.isValid()\r\n\t}\r\n\r\n\t/**\r\n\t * @deprecated\r\n\t * This method is used in `react-phone-number-input/source/input-control.js`\r\n\t * in versions before `3.0.16`.\r\n\t */\r\n\tgetNationalNumber() {\r\n\t\treturn this.state.nationalSignificantNumber\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the phone number characters entered by the user.\r\n\t * @return {string}\r\n\t */\r\n\tgetChars() {\r\n\t\treturn (this.state.international ? '+' : '') + this.state.digits\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the template for the formatted phone number.\r\n\t * @return {string}\r\n\t */\r\n\tgetTemplate() {\r\n\t\treturn this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || ''\r\n\t}\r\n}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nimport { AsYouType as _AsYouType } from '../../core/index.js'\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js'\r\nimport ParseError from './ParseError.js'\r\nimport Metadata from './metadata.js'\r\nimport checkNumberLength from './helpers/checkNumberLength.js'\r\n\r\nexport default function validatePhoneNumberLength() {\r\n\tlet { text, options, metadata } = normalizeArguments(arguments)\r\n\toptions = {\r\n\t\t...options,\r\n\t\textract: false\r\n\t}\r\n\r\n\t// Parse phone number.\r\n\ttry {\r\n\t\tconst phoneNumber = parsePhoneNumberWithError(text, options, metadata)\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(phoneNumber.countryCallingCode)\r\n\t\tconst result = checkNumberLength(phoneNumber.nationalNumber, metadata)\r\n\t\tif (result !== 'IS_POSSIBLE') {\r\n\t\t\treturn result\r\n\t\t}\r\n\t} catch (error) {\r\n\t\t/* istanbul ignore else */\r\n\t\tif (error instanceof ParseError) {\r\n\t\t\treturn error.message\r\n\t\t} else {\r\n\t\t\tthrow error\r\n\t\t}\r\n\t}\r\n}","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { validatePhoneNumberLength as _validatePhoneNumberLength } from '../../core/index.js'\r\n\r\nexport function validatePhoneNumberLength() {\r\n\treturn withMetadataArgument(_validatePhoneNumberLength, arguments)\r\n}","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TextInputExtended, SelectExtended, PaddingWrapper, InputWidthWrapper } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { InputError } from './InputError';\nimport { callingCountriesOwn } from './';\nimport {\n isPossiblePhoneNumber,\n isValidPhoneNumber,\n validatePhoneNumberLength,\n Metadata,\n AsYouType,\n} from 'libphonenumber-js';\nimport parsePhoneNumber from 'libphonenumber-js';\n\ninterface TelefonoProps {\n paginaConfirmacion?: boolean;\n ignoreValidation?: boolean;\n required?: boolean;\n notALayer?: boolean;\n onFocusHandler?: () => void;\n onChangeHandler?: () => void;\n hidePrefijo?: boolean;\n name?: string;\n}\n\nconst DisplayWrapper = styled.div`\n display: flex;\n`;\n\nconst PrefWrapper = styled.div`\n label {\n width: 109px;\n @media screen and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '116px')};\n }\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '120px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '120px')};\n }\n @media screen and (min-width: 1600px) {\n /* padding-top: 0px; */\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '120px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid001)' : '120px')};\n }\n }\n`;\nconst TelfWrapper = styled.div`\n width: 100%;\n padding-left: ${(props) => (props.notALayer ? '20px' : '24px')};\n @media screen and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '192px')};\n padding-left: ${(props) => (props.hidePrefijo ? '0px' : props.notALayer ? '24px' : '20px')};\n }\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '212px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '212px')};\n }\n @media all and (min-width: 1600px) {\n padding-left: ${(props) => (props.hidePrefijo ? '0px' : props.notALayer ? '28px' : '20px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '212px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '212px')};\n }\n`;\n\nconst TelefonoFlex = styled.div`\n display: flex;\n flex-wrap: wrap;\n flex-direction: column;\n`;\n\nconst regExpNonDigit = /\\D/;\nexport const cellphoneIsInvalid = (value: string) =>\n regExpNonDigit.test(value) || !/[6|7|8|9][0-9]{8}/gi.test(value) || (value.length > 1 && value.length < 8);\n// Uso la regexp porque por alguna razón si la saco del componente y la exporto para otros componentes da error y no lo reconoce correctamente.\nexport const TelefonoInput = ({ ignoreValidation, required, onFocusHandler, onChangeHandler, name }: TelefonoProps) => {\n const { cellphone, prefix, raceCellphone, formName } = useSelector((state: OneFormState) => state.formData.fields);\n const [telefonoError, setTelefonoError] = useState(false);\n const [pristine, setPristine] = useState(true);\n const [telephone, setTelephone] = useState(null);\n const { error, setError } = useOneFormContext();\n const [minLength, setMinLength] = useState(9);\n const [maxLength, setMaxLength] = useState(9);\n const { register, errors, setError: setErrorForm, clearError } = useFormContext();\n const regExp = /[6|7|8|9][0-9]{8}/gi;\n const dispatch = useDispatch();\n\n const [inputName, setInputName ] = useState('cellphone');\n\n useEffect(()=> {\n if(name) {\n setInputName(name);\n }\n }, [name]);\n\n const handleChange = (e: any) => {\n setTelephone(e.target.value);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [inputName]: e.target.value } });\n\n if (isValidPhoneNumber(`${prefix}${e.target.value}`)) {\n setTelefonoError(false);\n } else {\n setTelefonoError(true);\n }\n setPristine(false);\n };\n\n useEffect(() => {\n if ((error && !pristine) || (error && !telephone)) {\n setTelefonoError(true);\n } else {\n setTelefonoError(false);\n }\n }, [error]);\n\n useEffect(() => {\n const metadata = new Metadata();\n const asYouType = new AsYouType();\n asYouType.reset();\n asYouType.input(prefix ? prefix : '+34');\n const possibleLengths = metadata.selectNumberingPlan(asYouType.country).possibleLengths();\n const maxLength = Math.max(...possibleLengths);\n const minLength = Math.min(...possibleLengths);\n setMaxLength(maxLength);\n setMinLength(minLength);\n handleChange({ target: { value: telephone } });\n }, [prefix]);\n\n useEffect(() => {\n if(formName === 'race' && raceCellphone) {\n setTelephone(raceCellphone);\n } else {\n if (cellphone) {\n setTelephone(cellphone);\n }\n }\n \n if (!prefix) {\n // En comerciales da error si no hay prefijo, por lo que lo seteamos directamente como +34 para que se pueda validar correctamente.\n dispatch({ type: 'UPDATE_FIELDS', payload: { prefix: '+34' } });\n }\n }, []);\n\n return (\n \n isValidPhoneNumber(`${prefix}${value}`),\n // pattern: {\n // value: regExp,\n // message: 'Solo se aceptan números',\n // },\n })}\n onChange={(e) => {\n handleChange(e);\n if (onChangeHandler) {\n onChangeHandler();\n }\n }}\n onFocus={() => {\n if (onFocusHandler) {\n onFocusHandler();\n }\n }}\n required={required}\n />\n\n {telephone && telephone.length > 1 && telefonoError && !isValidPhoneNumber(`${prefix}${telephone}`) ? (\n \n {validatePhoneNumberLength(`${prefix}${telephone}`) === 'TOO_LONG'\n ? `Máximo ${maxLength} dígitos`\n : validatePhoneNumberLength(`${prefix}${telephone}`) === 'TOO_SHORT'\n ? 'Faltan números'\n : validatePhoneNumberLength(`${prefix}${telephone}`) === 'NOT_A_NUMBER'\n ? 'Solo se aceptan números'\n : isValidPhoneNumber(`${prefix}${telephone}`)\n ? null\n : 'Número no válido'}\n \n ) : null}\n \n );\n};\n\nexport const PrefijoInput = ({ required, name }: TelefonoProps) => {\n const { prefix : prefixFromData, racePrefix: racePrefixFromData, formName} = useSelector((state: OneFormState) => state.formData.fields);\n const [prefix, setPrefix] = useState(null);\n const [prefixData, setPrefixData] = useState([]);\n const dispatch = useDispatch();\n\n const [inputName, setInputName ] = useState('prefix');\n\n useEffect(()=> {\n if(name) {\n setInputName(name);\n }\n }, [name]);\n\n useEffect(() => {\n if (prefix) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { prefix } });\n }\n }, [prefix]);\n\n useEffect(() => {\n if(formName === 'race' && racePrefixFromData) {\n setPrefix(racePrefixFromData);\n } else if (prefixFromData) {\n setPrefix(prefixFromData);\n } else {\n setPrefix('+34');\n dispatch({ type: 'UPDATE_FIELDS', payload: { [inputName]: '+34' } });\n }\n\n const merged = [].concat(...callingCountriesOwn);\n const prefixData = merged\n .map((code) => code.replace(/ |\\+/g, ''))\n .filter((elem, index, self) => index === self.indexOf(elem))\n .sort((a: any, b: any) => a - b)\n .map((code) => `+${code}`);\n\n setPrefixData(prefixData);\n }, []);\n\n function handleChangePrefix(event: any) {\n const newPrefix = event.currentTarget.value;\n setPrefix(newPrefix);\n }\n\n return (\n null}\n updateFields\n setOption={setPrefix}\n isRequired={required}\n />\n );\n};\n\nexport function TelefonoPrefijo(props: TelefonoProps) {\n return (\n <>\n {props.hidePrefijo ? null : (\n \n \n \n )}\n \n \n \n \n );\n}\n\nexport function Telefono(props: TelefonoProps) {\n return (\n \n \n \n \n \n \n \n );\n}\n","import * as React from 'react';\nimport { styled, css } from '../theme-provider';\nimport { CharacterCounter } from '../character-counter';\nimport { getAuxillaryColor, getAuxillaryTextColor, getMainColor, getLabelColor, } from '../helpers/input';\nimport { getCommonProps } from '../helpers/common-props';\nimport { InputNotification } from '../helpers/input-notification';\nconst StyledLabelText = styled.span.withConfig({ displayName: \"StyledLabelText\", componentId: \"sc-oyarl6\" }) `font-size:${({ theme, isFloating }) => isFloating\n ? theme.fonts.copy[200].fontSize\n : theme.fonts.label[100].fontSize};width:${(props) => `calc(100% - ${props.theme.size.static250})`};white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;pointer-events:none;position:absolute;margin:0;padding:0 0 ${({ theme }) => parseInt(theme.size.static100) / 2}px 0;background-color:${({ theme }) => theme.colors.background.primary};top:${({ theme }) => theme.size.static200};transition:font-size 0.15s ease-in-out;${({ appearance }) => appearance === 'readonly'\n ? css `\n\t\t\t\t\tbackground-color: ${({ theme }) => theme.colors.background.tertiary};\n\t\t\t\t`\n : css `\n\t\t\t\t\tbackground-color: ${({ theme }) => theme.colors.background.primary};\n\t\t\t\t`} ${({ hasValue, theme }) => hasValue &&\n css `\n\t\t\tfont-size: ${theme.fonts.label[100].fontSize};\n\t\t\tcolor: ${({ theme }) => theme.colors.content.tertiary};\n\t\t`}`;\nconst StyledTextArea = styled.textarea.withConfig({ displayName: \"StyledTextArea\", componentId: \"sc-119nu2n\" }) `width:100%;border-radius:0;min-height:${({ theme }) => `calc(${theme.size.static250} * 2 + ${theme.fonts.copy[200].lineHeight})`};background:transparent;border:0;color:${getMainColor};cursor:${({ appearance }) => (appearance === 'disabled' ? 'not-allowed' : '')};padding:${({ theme }) => theme.size.static250} ${({ theme }) => theme.size.static250} ${({ theme }) => theme.size.static200} 0;resize:vertical;outline:0;font-size:${({ theme }) => theme.fonts.copy[200].fontSize};line-height:${({ theme }) => theme.fonts.copy[200].lineHeight};font-family:inherit;transition:padding 0.15s ease-in-out;&::placeholder{opacity:1;color:${({ theme }) => theme.colors.content.secondary};}`;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-juh4hi\" }) `display:block;width:100%;position:relative;`;\nconst StyledLabelInner = styled.div.withConfig({ displayName: \"StyledLabelInner\", componentId: \"sc-bt9qv6\" }) `display:block;width:100%;position:relative;padding-top:${({ theme }) => theme.size.static200};padding-left:${({ theme }) => theme.size.static250};color:${getLabelColor};box-shadow:0 0 0 ${({ theme }) => theme.size.border.light} ${getAuxillaryColor};border-radius:${({ theme }) => theme.size.static150};:focus-within{padding-bottom:${({ theme }) => theme.size.static0};}${({ appearance }) => appearance !== 'disabled' &&\n appearance !== 'readonly' &&\n css `\n\t\t\t&:focus-within ${StyledLabelText} {\n\t\t\t\tcolor: ${({ theme }) => theme.colors.content.tertiary};\n\t\t\t\tfont-size: ${({ theme }) => theme.fonts.label[100].fontSize};\n\t\t\t}\n\t\t`} ${({ appearance }) => appearance === 'readonly' &&\n css `\n\t\t\tbackground-color: ${({ theme }) => theme.colors.background.tertiary};\n\t\t`} ${({ appearance }) => (appearance === 'success' ||\n appearance === 'error' ||\n appearance === 'information') &&\n css `\n\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t${getAuxillaryColor};\n\t\t`} ${({ appearance }) => (appearance === 'default' || appearance === 'validation') &&\n css `\n\t\t\t/* padding-bottom is enabled here and disabled on focus to prevent the block from changing height because of the border-width change */\n\t\t\tpadding-bottom: ${({ theme }) => parseInt(theme.size.static100) / 2}px; // we don't have a static050 token, add and replace later if needed\n\t\t\t&:hover {\n\t\t\t\ttransition: box-shadow 300ms ease;\n\t\t\t\t-webkit-transition: box-shadow 300ms ease;\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.light}\n\t\t\t\t\t${({ theme }) => theme.colors.border.hover};\n\t\t\t}\n\t\t\t&:focus-within {\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t\t${({ theme }) => theme.colors.focus.main};\n\t\t\t}\n\t\t`}`;\nconst StyledAdditionalInfo = styled.div.withConfig({ displayName: \"StyledAdditionalInfo\", componentId: \"sc-61bvzt\" }) `display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:${({ theme }) => theme.size.static150};padding-top:${({ theme }) => theme.size.static100};width:100%;color:${getAuxillaryTextColor};`;\nexport const TextArea = (props) => {\n const labelRef = React.createRef();\n const { label, appearance = 'default', name, onBlur, onChange, onFocus, value, defaultValue, placeholder, rows = 1, minLength, maxLength, required, isFloating, message, inputMode, characterCountLimit = maxLength, customId, } = props;\n const commonProps = getCommonProps(props);\n const [characterCount, setCharacterCount] = React.useState((value === null || value === void 0 ? void 0 : value.length) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) || 0);\n const [hasValue, setHasValue] = React.useState(false);\n const [labelHeight, setLabelHeight] = React.useState(0);\n const [isFocused, setIsFocused] = React.useState(false);\n React.useEffect(() => {\n setCharacterCount((value === null || value === void 0 ? void 0 : value.length) || 0);\n }, [value]);\n React.useEffect(() => {\n var _a;\n setLabelHeight(((_a = labelRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0);\n }, [labelRef]);\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 handleChange = React.useCallback((event) => {\n const currentValueLenght = event.currentTarget.value.length;\n setCharacterCount(currentValueLenght);\n setHasValue(currentValueLenght > 0);\n if (onChange) {\n onChange(event);\n }\n }, [onChange]);\n const handleFocus = (event) => {\n setIsFocused(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n const isNotificationAppearance = (appearance) => ['error', 'success', 'information'].includes(appearance);\n /*\n ariaInvalid and ariaDescribedBy are used to set the aria-invalid and aria-describedby attributes\n according to the appearance of the input. These properties are needed to make the input accessible.\n */\n const ariaInvalid = appearance === 'error';\n const ariaDescribedBy = isNotificationAppearance(appearance)\n ? `${appearance}-message${customId}`\n : undefined;\n return (React.createElement(StyledLabel, Object.assign({ appearance: appearance }, commonProps),\n React.createElement(StyledLabelInner, { appearance: appearance, hasValue: hasValue },\n label && (React.createElement(StyledLabelText, { \"aria-hidden\": true, appearance: appearance, ref: labelRef, isFloating: isFloating, hasValue: hasValue, labelHeight: labelHeight },\n label,\n required && '*')),\n React.createElement(StyledTextArea, { readOnly: appearance === 'readonly', disabled: appearance === 'disabled', \"aria-describedby\": ariaDescribedBy, \"aria-invalid\": ariaInvalid, rows: Math.max(2, rows), appearance: appearance, minLength: minLength, maxLength: maxLength, name: name, onChange: handleChange, onBlur: onBlur, onFocus: handleFocus, placeholder: placeholder, value: value, defaultValue: defaultValue, required: required, \"aria-required\": required, hasValue: characterCount > 0, inputMode: inputMode, labelHeight: labelHeight })),\n React.createElement(StyledAdditionalInfo, { appearance: appearance },\n message && isNotificationAppearance(appearance) && (React.createElement(InputNotification, { appearance: appearance, text: message, isFocused: isFocused, hideIcon: true, iconVariant: \"default\" })),\n characterCountLimit && (React.createElement(CharacterCounter, { value: characterCount, limit: characterCountLimit })))));\n};\n","import React, { Ref, useEffect, useState } from 'react';\nimport { TextArea, TextAreaProps } from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\nimport { useFeatureServices } from 'src/feature-app';\nimport { FieldType } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { useOneFormContext } from 'src/feature-app';\n\nexport interface TextAreaExtendedProps extends TextAreaProps {\n name: FieldType;\n innerRef?: Ref;\n /**\n * En caso de que el input esté junto con un CTA, se debe de pasar el label del CTA para en caso de que se seleccione el CTA no se refleje en el input.\n */\n alternateCTAText?: string;\n rows?: number;\n required?: boolean;\n maxLength?: number;\n}\n\nexport function TextAreaExtended(props: TextAreaExtendedProps) {\n const { innerRef, name, onBlur, alternateCTAText, onChange, label, rows, required, maxLength } = props;\n const { setValue } = useFormContext();\n const { error, setError } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const oneFormFeatureService = useFeatureServices()['es:oneform-core'];\n const { formData } = useSelector((state: OneFormState) => state);\n const [currentValue, setCurrentValue] = useState('');\n\n const addMaxLength = () => {\n const aux = document.getElementsByTagName('textarea');\n aux[0].setAttribute('maxlength', maxLength.toString());\n };\n\n useEffect(() => {\n if (maxLength) addMaxLength();\n const value = formData.fields[name];\n\n if (value && value !== alternateCTAText) {\n setCurrentValue(value);\n }\n\n }, []);\n\n return (\n <>\n {\n setCurrentValue(e.currentTarget.value);\n if(e.currentTarget.value.length > 3){\n setError(false);\n }\n if (onChange) {\n onChange(e);\n }\n }}\n onBlur={(e: any) => {\n if (onBlur) onBlur(e);\n setValue(name, e.currentTarget.value);\n oneFormFeatureService.setField(name, e.currentTarget.value);\n }}\n onFocus={() => {\n trackingManager.trackFormFieldClick(\n {\n contentId: label,\n },\n {\n FormFieldName: name,\n }\n );\n }}\n value={currentValue}\n rows={rows ? rows : 3}\n required={required ? required : false}\n maxLength={maxLength}\n />\n \n \n );\n}\n","export const callingCountriesOwn = [\n ['+247'],\n ['+376'],\n ['+971'],\n ['+93'],\n ['+1 268'],\n ['+1 264'],\n ['+355'],\n ['+374'],\n ['+244'],\n ['+672'],\n ['+54'],\n ['+1 684'],\n ['+43'],\n ['+61'],\n ['+297'],\n ['+358'],\n ['+994'],\n ['+387'],\n ['+1 246'],\n ['+880'],\n ['+32'],\n ['+226'],\n ['+359'],\n ['+973'],\n ['+257'],\n ['+229'],\n ['+590'],\n ['+1 441'],\n ['+673'],\n ['+591'],\n ['+599'],\n ['+55'],\n ['+1 242'],\n ['+975'],\n ['+267'],\n ['+375'],\n ['+501'],\n ['+1'],\n ['+61'],\n ['+243'],\n ['+236'],\n ['+242'],\n ['+41'],\n ['+225'],\n ['+682'],\n ['+56'],\n ['+237'],\n ['+86'],\n ['+57'],\n ['+506'],\n ['+53'],\n ['+238'],\n ['+599'],\n ['+61'],\n ['+357'],\n ['+420'],\n ['+49'],\n ['+253'],\n ['+45'],\n ['+1 767'],\n ['+1 809', '+1 829', '+1 849'],\n ['+213'],\n ['+593'],\n ['+372'],\n ['+20'],\n ['+212'],\n ['+291'],\n ['+34'],\n ['+251'],\n ['+388'],\n ['+358'],\n ['+679'],\n ['+500'],\n ['+691'],\n ['+298'],\n ['+33'],\n ['+241'],\n ['+241'],\n ['+44'],\n ['+473'],\n ['+995'],\n ['+594'],\n ['+44'],\n ['+233'],\n ['+350'],\n ['+299'],\n ['+220'],\n ['+224'],\n ['+590'],\n ['+240'],\n ['+30'],\n ['+502'],\n ['+1 671'],\n ['+245'],\n ['+592'],\n ['+852'],\n ['+504'],\n ['+385'],\n ['+509'],\n ['+36'],\n ['+62'],\n ['+353'],\n ['+972'],\n ['+44'],\n ['+91'],\n ['+246'],\n ['+964'],\n ['+98'],\n ['+354'],\n ['+39'],\n ['+44'],\n ['+1 876'],\n ['+962'],\n ['+81'],\n ['+254'],\n ['+996'],\n ['+855'],\n ['+686'],\n ['+269'],\n ['+1 869'],\n ['+850'],\n ['+82'],\n ['+965'],\n ['+1 345'],\n ['+7', '+7 6', '+7 7'],\n ['+856'],\n ['+961'],\n ['+1 758'],\n ['+423'],\n ['+94'],\n ['+231'],\n ['+266'],\n ['+370'],\n ['+352'],\n ['+371'],\n ['+218'],\n ['+212'],\n ['+377'],\n ['+373'],\n ['+382'],\n ['+590'],\n ['+261'],\n ['+692'],\n ['+389'],\n ['+223'],\n ['+95'],\n ['+976'],\n ['+853'],\n ['+1 670'],\n ['+596'],\n ['+222'],\n ['+1 664'],\n ['+356'],\n ['+230'],\n ['+960'],\n ['+265'],\n ['+52'],\n ['+60'],\n ['+258'],\n ['+264'],\n ['+687'],\n ['+227'],\n ['+672'],\n ['+234'],\n ['+505'],\n ['+31'],\n ['+47'],\n ['+977'],\n ['+674'],\n ['+683'],\n ['+64'],\n ['+968'],\n ['+507'],\n ['+51'],\n ['+689'],\n ['+675'],\n ['+63'],\n ['+92'],\n ['+48'],\n ['+508'],\n ['+872'],\n ['+1 787', '+1 939'],\n ['+970'],\n ['+351'],\n ['+680'],\n ['+595'],\n ['+974'],\n ['+262'],\n ['+40'],\n ['+381'],\n ['+7', '+7 3', '+7 4', '+7 8'],\n ['+250'],\n ['+966'],\n ['+677'],\n ['+248'],\n ['+249'],\n ['+46'],\n ['+65'],\n ['+290'],\n ['+386'],\n ['+47'],\n ['+421'],\n ['+232'],\n ['+378'],\n ['+221'],\n ['+252'],\n ['+597'],\n ['+211'],\n ['+239'],\n ['+503'],\n ['+1 721'],\n ['+963'],\n ['+268'],\n ['+290'],\n ['+1 649'],\n ['+235'],\n ['+228'],\n ['+66'],\n ['+992'],\n ['+690'],\n ['+670'],\n ['+993'],\n ['+216'],\n ['+676'],\n ['+90'],\n ['+1 868'],\n ['+688'],\n ['+886'],\n ['+255'],\n ['+380'],\n ['+256'],\n ['+1'],\n ['+1'],\n ['+598'],\n ['+998'],\n ['+379', '+39'],\n ['+1 784'],\n ['+58'],\n ['+1 284'],\n ['+1 340'],\n ['+84'],\n ['+678'],\n ['+681'],\n ['+685'],\n ['+383'],\n ['+967'],\n ['+262'],\n ['+27'],\n ['+260'],\n ['+263'],\n];\n","import React from 'react';\nimport { Text, styled, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\n\nconst Mark = styled.span`\n display: inline-block;\n position: relative;\n border: 1px solid #001e50;\n width: 24px;\n height: 24px;\n left: 0;\n border-radius: 50%;\n margin-right: 12px;\n vertical-align: middle;\n &::after {\n content: '';\n display: block;\n width: 0;\n height: 0;\n border-radius: 50%;\n background-color: #001e50;\n opacity: 0;\n left: 50%;\n top: 50%;\n position: absolute;\n transition: all 110ms;\n }\n`;\n\nconst RadioButtonWrapper = styled.label`\n display: flex;\n justify-content: center;\n cursor: pointer;\n position: relative;\n color: #001e50;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n input {\n position: absolute;\n visibility: hidden;\n display: none;\n &:checked + ${Mark} {\n &::after {\n width: 12px;\n height: 12px;\n opacity: 1;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n }\n }\n`;\n\ninterface radioButtonProps {\n onClick?: any;\n inputName?: string;\n inputValue?: string;\n checked?: boolean;\n}\n\nexport const CustomRadioButton = (props: radioButtonProps) => {\n return (\n \n \n \n \n {props.inputValue}\n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useStore, useSelector, useDispatch } from 'react-redux';\nimport { InputButton } from '.';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\ntype CTAWrapperProps = {\n ctaWidth?: string;\n wrapperWidth?: string;\n};\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n max-width: ${(props) => (props.wrapperWidth ? props.wrapperWidth : null)};\n\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n & > button {\n margin: 12px;\n width: ${(props) => (props.ctaWidth ? `${props.ctaWidth}px` : 'auto')};\n }\n`;\n\ninterface CTAValues {\n value?: string;\n label: string;\n}\n\ninterface MultipleOptionCTAsProps {\n ctaValues: CTAValues[];\n name: string;\n minSelected?: number;\n maxSelected?: number;\n ignoreHandleClick?: boolean;\n wrapperWidth?: string;\n exclusiveCTA?: boolean;\n exclusiveCTAValues?: CTAValues[];\n}\n\ninterface CTAsRef {\n [ctaName: string]: HTMLButtonElement;\n}\n\nexport function MultipleOptionCTAs(props: MultipleOptionCTAsProps) {\n const dispatch = useDispatch();\n const { \n ctaValues, \n ignoreHandleClick, \n name, \n maxSelected = ctaValues.length, \n minSelected = 1, \n wrapperWidth,\n exclusiveCTA,\n exclusiveCTAValues\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n\n const { register, setValue } = useFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n const [selectedLabel, setSelectedLabel] = useState(null);\n const [ disabledAll, setDisabledAll ] = useState(false);\n const [ disabledExclusiveCTA, setDisabledExclusiveCTA ] = useState(false);\n const [aux, setAux] = useState(null);\n const ctaRefs = useRef({});\n\n useEffect(() => {\n if (formData.fields[name]) {\n const aux = formData.fields[name].split(',');\n let selectedVal = [];\n let selectedLabel = [];\n for (let i = 0; i < aux.length; i++) {\n const auxDos = ctaValues.find((e) => aux[i] === e.value);\n if (auxDos) {\n selectedVal.push(auxDos.value);\n selectedLabel.push(auxDos.label);\n }\n }\n setSelectedLabel(selectedLabel);\n setSelectedValue(selectedVal);\n }\n }, []);\n\n const handleOnClick = (cta: CTAValues) => {\n if (ctaRefs.current) {\n const ref = ctaRefs.current[cta.label];\n if (ref) {\n ref.blur();\n }\n }\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : '' }});\n if (selectedValue === null) {\n setSelectedValue([cta.value]);\n setSelectedLabel([cta.label]);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : [cta.label] }});\n } else if (!selectedLabel.includes(cta.label)) { \n if (selectedLabel.length < maxSelected) {\n const aux = selectedValue.concat([cta.value]);\n const auxTwo = selectedLabel.concat([cta.label]);\n setSelectedValue(aux);\n setSelectedLabel(auxTwo);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : auxTwo.join(', ') }});\n }\n } else if (selectedLabel.includes(cta.label)) {\n const aux = selectedValue.filter((a) => a !== cta.value);\n const auxTwo = selectedLabel.filter((a) => a !== cta.label);\n if (aux.length == 0) {\n setSelectedValue(null);\n setSelectedLabel(null);\n } else {\n setSelectedValue(aux);\n setSelectedLabel(auxTwo);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name] : auxTwo.join(', ') }});\n }\n } else {\n setSelectedValue(null);\n setSelectedLabel(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n };\n\n useEffect(()=>{\n if(exclusiveCTA && selectedValue) {\n if(selectedValue.length === 0) {\n setDisabledAll(false);\n setDisabledExclusiveCTA(false);\n } else if(selectedValue.includes(exclusiveCTAValues[0].value)) {\n setDisabledAll(true);\n setDisabledExclusiveCTA(false);\n } else {\n setDisabledAll(false);\n setDisabledExclusiveCTA(true);\n }\n }\n }, [selectedValue]);\n\n useEffect(() => {\n if (selectedValue) {\n if (selectedLabel.length >= minSelected && selectedLabel.length <= maxSelected) {\n setValue(name, selectedValue);\n setAux(selectedValue);\n } else {\n setValue(name, null);\n }\n } else {\n setValue(name, null);\n }\n }),\n [selectedValue];\n\n return (\n \n {ctaValues.map((cta: CTAValues, index: number) => (\n {\n register(ref, {\n required: true,\n });\n if (!ctaRefs.current || !ctaRefs.current[cta.label]) {\n ctaRefs.current[cta.label] = ref;\n }\n }}\n ignoreHandleClick={ignoreHandleClick}\n selectedValue={\n selectedLabel === null\n ? ''\n : selectedLabel.find((e) => e === cta.label)\n ? selectedLabel.find((e) => e === cta.label)\n : ''\n }\n size={'small'}\n key={index}\n onClick={(e) => {\n e.preventDefault();\n handleOnClick(cta);\n }}\n disabled={disabledAll}\n />\n ))}\n {\n exclusiveCTA ? (\n <>\n {\n exclusiveCTAValues.map((cta: CTAValues, index: number) => (\n {\n register(ref, {\n required: true,\n });\n if (!ctaRefs.current || !ctaRefs.current[cta.label]) {\n ctaRefs.current[cta.label] = ref;\n }\n }}\n ignoreHandleClick={ignoreHandleClick}\n selectedValue={\n selectedLabel === null\n ? ''\n : selectedLabel.find((e) => e === cta.label)\n ? selectedLabel.find((e) => e === cta.label)\n : ''\n }\n size={'small'}\n key={index}\n onClick={(e) => {\n e.preventDefault();\n handleOnClick(cta);\n }}\n disabled={disabledExclusiveCTA}\n />\n ))\n }\n \n ) : null\n }\n \n \n );\n}\n","import React, { useState, useEffect, useRef } from 'react';\nimport { styled, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { ChevronDown, ChevronUp, Checkmark } from 'src/icons-core-imports';\n\nimport { useDispatch } from 'react-redux';\n\ntype WrapperProps = {\n disabled?: boolean;\n};\ntype DropwDownProps = {\n showOptions: boolean;\n itemWidth: number;\n disabled?: boolean;\n error?: boolean;\n selectY?: number;\n atTheBottom?: boolean;\n};\ntype LabelProps = {\n disabled: boolean;\n isActive: boolean;\n};\n\nconst SelectWrapper = styled.div`\n position: relative;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n width: 100%;\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n text-align: left;\n`;\nconst DropDown = styled.div`\n width: ${(props) => (props.itemWidth ? `${props.itemWidth}px` : '100%')};\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n border-bottom: 1px solid ${(props) => (props.error ? '#E4002C' : '#DFE4E8')};\n padding: 8px 0 5px;\n color: ${(props) => (props.disabled ? '#DFE4E8' : '#FFFFFF')};\n .sel-item {\n margin: 0;\n div {\n margin: 0;\n }\n @media screen and (min-width: 560px) {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: 85%;\n * {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n width: 85%;\n }\n }\n }\n`;\nconst OptionsList = styled.ul`\n display: ${(props) => (props.showOptions ? 'block' : 'none')};\n width: ${(props) => (props.itemWidth ? `${props.itemWidth}px` : 'auto')};\n background-color: #ffffff;\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 reset?: boolean;\n nextOnClick?: boolean;\n ctaWidth?: string;\n preSelectedValue?: string;\n color?: string;\n marginTop?: string;\n wrapperWidth?: string;\n marginRight?: string;\n exclusiveCTA?: boolean;\n exclusiveCTAValues?: CTAValues[];\n}\n\nexport function MultipleCTASelection(props: MultipleCTASelectionProps) {\n const store = useStore();\n const dispatch = useDispatch();\n const {\n ctaValues,\n name,\n reset,\n nextOnClick,\n ctaWidth,\n preSelectedValue,\n color,\n marginTop,\n wrapperWidth,\n marginRight,\n exclusiveCTA,\n exclusiveCTAValues\n } = props;\n const { formData } = useSelector((state: OneFormState) => state);\n\n const { register, errors, control, setValue } = useFormContext();\n const { handleNextStep } = useOneFormContext();\n const [selectedValue, setSelectedValue] = useState(null);\n\n useEffect(() => {\n const value = preSelectedValue || formData.fields[name];\n if(reset) {\n\t\tsetSelectedValue(null);\n\t\tsetValue(name, null);\n\t\tdispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: '' } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n else 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, reset]);\n\n return (\n \n {ctaValues.map((cta: CTAValues, index: number) => (\n {\n if (cta.label !== selectedValue) {\n setSelectedValue(cta.label);\n setValue(name, cta.value !== null ? cta.value : cta.label);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: cta.label } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: cta.value !== null ? cta.value : cta.label } });\n\n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: '' } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n ))}\n {\n exclusiveCTA ? (\n <>\n {\n exclusiveCTAValues.map((cta: CTAValues, index: number) => (\n {\n if (cta.label !== selectedValue) {\n setSelectedValue(cta.label);\n setValue(name, cta.value !== null ? cta.value : cta.label);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: cta.label } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: cta.value !== null ? cta.value : cta.label } });\n \n if (nextOnClick) {\n handleNextStep(e);\n }\n } else {\n setSelectedValue(null);\n setValue(name, null);\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { [name]: '' } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: null } });\n }\n }}\n />\n ))\n } \n \n ) : null\n }\n \n \n );\n}\n","import {\n Text,\n styled,\n Container,\n ContainerPadding,\n Breakpoints,\n BreakpointWrapper,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { RatingStarWrapper } from '../styleComponents/RatingStarWrapper';\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 StarText = styled.div`\n display: flex;\n justify-content: center;\n div{\n position: absolute;\n }\n`;\n\nconst TextMini = styled.div`\n color: #000000;\n font-size: 3vw;\n margin-top: 2px;\n @media all and (min-width: 400px){\n font-size: 12px;\n margin-top: 0;\n }\n`;\n\ninterface RatingStarsProps {\n name?: string;\n nextOnClick?: boolean;\n preSelectedRate?: number;\n stars?: number;\n noRequired?: boolean;\n isPrevStep?: boolean;\n textBad?: string;\n textGood?: string;\n textUnderStars?: boolean;\n starsText?: string[];\n CTASinRespuesta?: boolean;\n}\n\nexport const valuesSinRespuesta = () => {\n return {\n valueSinRespuesta: -1,\n labelSinRespuesta: 'Sin respuesta'\n };\n};\n\nexport const RatingStars = (props: RatingStarsProps) => {\n const {\n name,\n nextOnClick,\n stars,\n noRequired,\n isPrevStep,\n preSelectedRate,\n textBad,\n textGood,\n textUnderStars,\n starsText,\n CTASinRespuesta\n } = props;\n const { handleNextStep } = useOneFormContext();\n const { register, setValue } = useFormContext();\n const [ rateValue, setRateValue ] = useState(preSelectedRate ? preSelectedRate : null);\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n \n const numberOfStars = stars ? stars : 5;\n const { valueSinRespuesta, labelSinRespuesta } = valuesSinRespuesta();\n\n const handleField = () => {\n // Hack para solucionar el problema que se da en el caso de elegir Sin respuesta y volver hacia atrás.\n if (formData.fields[name]) {\n if (formData.fields[name] == valueSinRespuesta) {\n setTimeout(() => {\n setValue(name, labelSinRespuesta);\n }, 100);\n setRateValue(valueSinRespuesta);\n } else {\n setRateValue(Number(formData.fields[name]));\n }\n }\n };\n\n useEffect(() => {\n handleField();\n }, []);\n\n const handleClick = (rateValue: number, e: any) => {\n setRateValue(rateValue);\n dispatch({ type: 'UPDATE_FIELDS', payload: { [name]: rateValue } });\n\n if (nextOnClick) {\n setTimeout(() => {\n handleNextStep(e);\n }, 0);\n }\n };\n\n const renderStarsText = (starsText, index: number) => {\n if (starsText[index] === undefined) {\n return
\n }\n else return (\n \n \n {starsText[index]}\n \n \n {starsText[index]}\n \n \n );\n };\n\n const renderStars = (rateValue: number) => {\n const stars = [];\n for (let i = 0; i < numberOfStars; i++) {\n stars.push(\n i ? 'filled' : 'outline' }\n key={i}\n onClick={(e: any) => {\n e.preventDefault();\n if (isPrevStep) {\n return;\n } else {\n handleClick(i + 1, e);\n }\n }}\n isPrevStep={isPrevStep}\n textUnderStars={textUnderStars}\n >\n { rateValue > i ? : }\n {textUnderStars &&\n (\n renderStarsText(starsText, i)\n )\n }\n \n );\n }\n\n return stars;\n };\n\n return (\n
\n {isPrevStep || textUnderStars ? null : (\n \n \n Valora del 1 al 5, siendo 1 {textBad} y 5 totalmente{' '}\n \n {textGood}\n *.\n \n \n \n )}\n
\n { renderStars(rateValue) }\n
\n {isPrevStep ? null : (\n \n )}\n {CTASinRespuesta ? (\n
\n {\n if (isPrevStep) {\n return;\n } else {\n handleClick(valueSinRespuesta, e);\n }\n }}\n />\n
\n ) : null}\n
\n );\n};\n","import React from 'react';\nimport { styled, Text, TextAlignment, TokenTextAppearance } from '@volkswagen-onehub/components-core';\n\nconst CustomInputRange = styled.input<{ numberOfSteps: number }>`\n width: 100%;\n height: 24px;\n background: transparent;\n font-size: 1em;\n cursor: pointer;\n -webkit-appearance: none;\n\n &::-webkit-slider-runnable-track,\n &::-webkit-slider-thumb {\n -webkit-appearance: none;\n }\n &::-webkit-slider-runnable-track {\n position: relative;\n width: 100%;\n height: 1px;\n background: #00b0f0;\n }\n &::-moz-range-track {\n width: 100%;\n height: 1px;\n background: #00b0f0;\n }\n &::-ms-track {\n border: none;\n width: 100%;\n height: 1px;\n background: #00b0f0;\n color: transparent;\n }\n &::-ms-fill-lower {\n display: none;\n }\n &::-webkit-slider-thumb {\n margin-top: -4px;\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-moz-range-thumb {\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-ms-thumb {\n box-sizing: border-box;\n width: calc(100% / ${(props) => props.numberOfSteps});\n height: 8px;\n border-radius: 4px;\n background: #ffffff;\n }\n &::-webkit-slider-runnable-track:before,\n &::-webkit-slider-runnable-track:after,\n & /deep/ #track:before,\n &/deep/ #track:after {\n position: absolute;\n bottom: 100%;\n color: #2c2c2b;\n font: 700 0.875em / 2 arial, sans-serif;\n background: #ffffff;\n }\n &::-webkit-slider-runnable-track:before,\n & /deep/ #track:before {\n left: 0.8125em;\n word-spacing: 1.4375em;\n content: '1 2 3 4 5 6 7 8 9';\n }\n &::-webkit-slider-runnable-track:after,\n & /deep/ #track:after {\n right: 0.625em;\n word-spacing: 0.875em;\n content: '10 11 12 13 14 15 16';\n }\n &:focus {\n outline: none;\n }\n`;\nconst Mark = styled.div`\n height: 9px;\n width: 1px;\n background-color: #ffffff;\n`;\nconst MarksPosition = styled.div`\n display: flex;\n display: -webkit-flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n margin-bottom: -16.5px;\n z-index: 3;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SliderPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n margin-left: 7px;\n @media screen and (min-width: 960px) {\n margin-left: 4px;\n }\n`;\nconst SlideLabelsPosition = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\nconst SliderAndMarksPosition = styled.div`\n width: 96%;\n padding-right: 20px;\n @media all and (min-width: 960px) {\n width: 97%;\n }\n`;\ninterface CustomSliderProps {\n handleInputChange: any;\n value: number;\n formatNumber?: (num: number | number[]) => string;\n maxValue: number;\n numberOfSteps: number;\n}\n\nexport const CustomSlider = ({\n value,\n handleInputChange,\n numberOfSteps,\n formatNumber,\n maxValue,\n}: CustomSliderProps) => {\n const sliderMarks = [];\n\n for (let i = 0; i < numberOfSteps + 1; i++) {\n sliderMarks.push();\n }\n\n document.documentElement.classList.add('js');\n\n return (\n <>\n \n {sliderMarks ? sliderMarks : null}\n \n handleInputChange(e)}\n value={value}\n />\n \n \n \n \n 0km\n \n \n {'+'}\n {formatNumber(maxValue)}km\n \n \n \n );\n};\n","import React,{ useState } from 'react';\nimport { Switch } from '@volkswagen-onehub/components-core';\ninterface CustomSwitch {\n setSelected?: any;\n isSelected?: boolean;\n toggle?: any;\n}\n\nexport const CustomSwitch = (props: CustomSwitch) => { \n const { setSelected, isSelected } = props;\n const [toggle, setToggle] = useState(false);\n\n return (\n {\n setToggle(!toggle);\n setSelected(!isSelected);\n }}/>\n );\n};\n","import React, { useEffect, useState } from 'react';\n\nexport function useOnlyLettersControl(pristine: boolean, input: string) {\n const [error, setError] = useState(false);\n // const regExp = /^[ña-zÑA-Z\\s]*$/;\n // const regExp = /^[A-Za-zÁÉÍÓÚáéíóúñÑ]+$/g;\n const regExp = /^[a-zA-ZÀ-ÿ\\u00f1\\u00d1]+(\\s*[a-zA-ZÀ-ÿ\\u00f1\\u00d1]*)*[a-zA-ZÀ-ÿ\\u00f1\\u00d1\\s+]+$/;\n\n useEffect(() => {\n if (input && !pristine && !regExp.test(input)) {\n setError(true);\n } else {\n setError(false);\n }\n }, [input, pristine]);\n\n return { error, regExp };\n}\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React from 'react';\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\ninterface LayerComponentProps {\n closeLayerCallback?: CloseHandleV2;\n}\n\nexport function AvailabilityErrorLayer(props: LayerComponentProps) {\n return (\n \n \n \n );\n}\n\ninterface SlotHorario {\n from: number;\n to: number;\n}\n\nfunction AvailabilityError(props: LayerComponentProps) {\n const { closeLayerCallback } = props;\n\n return (\n \n
\n \n
\n \n Uy, algo ha pasado\n \n \n \n No hemos podido cargar los datos que nos pides. ¿Lo intentamos de nuevo en un rato?\n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Cerrar\n \n \n \n );\n}\n","export const removeConfigurationHash = () => history.pushState('', document.title, window.location.pathname + window.location.search);\n","import React, { useEffect, useState } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n BreakpointWrapper,\n Breakpoints,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, useFeatureAppConfig, useFeatureAppEnvironment } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { removeConfigurationHash } from 'src/feature-app/remove-configuration-hash';\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 44px 28px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\nconst copys = [\n {\n name: 'isCloseLayer',\n pregunta: '¿Seguro que quieres salir?',\n bodyCopy: 'Si lo haces, no se enviará el formulario.',\n },\n {\n name: 'isMotivoLayer',\n pregunta: '¿Seguro que quieres cambiar el motivo de tu visita?',\n bodyCopy: 'Si lo cambias, puede que tengas elegir un taller distinto. ',\n },\n {\n name: 'isTallerLayer',\n pregunta: '¿Seguro que quieres cambiar el taller para tu visita?',\n bodyCopy: 'Si lo cambias, puede que tengas que elegir una hora distinta.',\n },\n {\n name: 'isTimeLayer',\n pregunta: '¿Seguro que quieres cambiar la hora de tu visita?',\n bodyCopy: 'Si la cambias, puede que tengas que elegir un taller distinto.',\n },\n];\n\ninterface AreYouSureProps {\n layerName: string;\n closeLayerCallback?: CloseHandleV2;\n closeOneForm?: CloseHandleV2;\n onClickProp: () => void;\n}\n\nexport const AreYouSureLayer = (props: AreYouSureProps) => {\n const { layerName, closeLayerCallback, closeOneForm, onClickProp } = props;\n const dispatch = useDispatch();\n const [layerInfo, setLayerInfo] = useState(null);\n const trackingManager = useTrackingManager();\n const { screenIndex } = useSelector((state: OneFormState) => state.formInfo);\n const config = useFeatureAppConfig();\n const env = useFeatureAppEnvironment();\n\n useEffect(() => {\n const aux = copys.filter((a) => a.name === layerName);\n setLayerInfo(aux);\n }, []);\n\n return (\n \n {layerInfo ? (\n <>\n \n {layerInfo[0].pregunta}\n \n \n {\n config.trigger === 'cita-posventa-dealer' && layerName !== 'isCloseLayer' ? null : (\n {layerInfo[0].bodyCopy}\n )\n }\n \n {layerName === 'isCloseLayer' ? (\n <>\n \n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n No, quiero seguir\n \n {\n e.preventDefault();\n dispatch({ type: 'RESET_STATE' });\n closeLayerCallback({}, {}, {});\n closeOneForm({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n stretchContent\n >\n Sí, estoy seguro\n \n \n \n \n \n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n No, quiero seguir\n \n
\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n dispatch({ type: 'RESET_STATE' });\n closeLayerCallback({}, {}, {});\n closeOneForm({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n >\n Sí, estoy seguro\n \n \n
\n \n ) : (\n <>\n \n \n {\n e.preventDefault();\n onClickProp();\n closeLayerCallback({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n if (env.done) {\n env.done();\n }\n }}\n stretchContent\n >\n Sí, estoy seguro\n \n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n No, quiero seguir en esta página\n \n \n \n \n \n
\n {\n e.preventDefault();\n onClickProp();\n closeLayerCallback({}, {}, {});\n if (config.trigger === 'lead-configurador') {\n removeConfigurationHash();\n }\n }}\n >\n Sí, estoy seguro\n \n
\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n No, quiero seguir en esta página\n \n \n
\n \n )}\n \n ) : null}\n
\n );\n};\n","import {\n Container,\n ContainerGutter,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useRef, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\ninterface contentProps {\n notALayer?: boolean;\n formHeight?: string;\n}\n\nconst Content = styled.div`\n background-color: #ffffff;\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 { styled } from '@volkswagen-onehub/components-core';\n\nexport const RatingStarWrapper = styled.div<{ isPrevStep?: boolean; textUnderStars?: boolean; pointer?: boolean }>`\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.pointer || !props.isPrevStep ? 'pointer' : null)};\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","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 paddingTop?: string;\n}\n\nexport const GeneralInputWidthWrapper = styled.div`\n width: 100%;\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : props.noPaddingTop ? '0' : props.paddingTop ? props.paddingTop : '44px')};\n @media all and (max-height: 624px) {\n padding-top: ${(props) => (props.paginaConfirmacion ? '0px' : props.noPaddingTop ? '0' : props.paddingTop ? props.paddingTop : '24px')};\n }\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const ContactInfoWrapper = styled.div`\n width: 100%;\n margin-bottom: 2px;\n .email-input-wrapper {\n padding-top: 24px;\n }\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n .email-input-wrapper {\n padding-top: 44px;\n }\n }\n @media all and (max-height: 624px) {\n .email-input-wrapper {\n padding-top: 24px;\n }\n }\n`; \n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const GeneralConfirmacionLayerWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const GeneralConfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n","import React from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\n\nexport const renderBolds = (htmlString: string) => {\n\tconst parser = new DOMParser();\n\tconst doc = parser.parseFromString(htmlString, 'text/html');\n\tconst elements = Array.from(doc.body.childNodes);\n\n\treturn elements.map((node) => {\n\t\tif (node.nodeType == Node.ELEMENT_NODE && (node.nodeName == 'B' || node.nodeName == 'STRONG')) {\n\t\t\treturn {node.textContent};\n\t\t}\n\t\telse {\n\t\t\treturn node.textContent;\n\t\t}\n\t});\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\tvar s: { persCmp?: string; };\n}\n\nexport const store: Store = createStore(oneFormReducer, initialState, composeWithDevTools());\nexport default function App() {\n\tconst [loading, setLoading] = useState(true);\n\tconst oneFormService = useFeatureServices()['es:oneform-core'];\n\tconst faContent = useFaContent();\n\tconst config = useFeatureAppConfig();\n\tconst isDevStage = useIsDevStage();\n\n\tuseEffect(() => {\n\t\tlet useBff = false;\n\t\tif (faContent && faContent.encuesta &&\n\t\t\t['LEM', 'NO COMPRA', 'NO RENOVACIÓN', 'SAC', 'NEWSLETTER', 'CEM - VENTA', 'CEM - POSVENTA', 'CEM - VENTA PRODUCTO', 'CEM - SEGUNDA ENTREGA - INVITACION', 'CEM - SEGUNDA ENTREGA - VALORACION'].includes(faContent.encuesta)) {\n\t\t\tuseBff = true;\n\t\t}\n\t\telse if (config && config.trigger &&\n\t\t\t['baja-comunicaciones'].includes(config.trigger)) {\n\t\t\tuseBff = true;\n\t\t}\n\n\t\toneFormService.initializeService(true, useBff); // Necesario para saltarse la comprobación del login en los formularios en los que no sea necesario.\n\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) { },\n\t\t\terror(err) { },\n\t\t\tcomplete() {\n\t\t\t\t// One Form no se inicializa hasta que no se han cargado todos los datos.\n\t\t\t\tconst { person } = oneFormService.get();\n\n\t\t\t\tif (person) {\n\t\t\t\t\tstore.dispatch({ type: 'UPDATE_FIELDS', payload: { ...person } });\n\t\t\t\t\tstore.dispatch({\n\t\t\t\t\t\ttype: 'SET_FORM_INFO',\n\t\t\t\t\t\tpayload: { userIsAuthenticated: person.userIsAuthenticated === 'true' ? true : false },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// setObjectValues(person, methods.setValue);\n\t\t\t\tif (isDevStage) {\n\t\t\t\t\tconsole.log('%cOneForm Version:', 'font-weight: 700', process.env.VERSION);\n\t\t\t\t\tconsole.log('%cOneForm Feature App Content:', 'font-weight: 700', faContent);\n\t\t\t\t\tconsole.log('%cOneForm Feature App Config:', 'font-weight: 700', config);\n\t\t\t\t}\n\t\t\t\tsetLoading(false);\n\t\t\t},\n\t\t});\n\t}, []);\n\treturn {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\tBreakpoints,\n\tBreakpointWrapper,\n\tContainer,\n\tContainerPadding,\n\tCTA,\n\tLayout,\n\tLayoutRowGap,\n\tText,\n\tTextAlignment,\n\tThemeProvider,\n\tTokenTextAppearance,\n\tTokenTextColor,\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\tgetActualMonth,\n\tgetActualMonthNumber,\n\tgetActualYearNumber,\n\tgetNextActualMonth,\n\tgetPreviousActualMonth,\n\tgetYYYYMMDD,\n\tuseFeatureAppConfig,\n\tyear_MonthNumber_DayNumber,\n\tuseTrackingManager,\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 {checkIfEvening, checkIfMidDay, checkIfMorning, getDistanceFromLatLngCenter, getNormalizedDate} from '../NewMap';\nimport {CloseInDealerCalendar, FranjaHoraria, TabsHorario} from './';\nimport {\n\tAllContentWrapper,\n\tAllDaysWrapper,\n\tBackground,\n\tCalendarHandlerWrapper,\n\tCapitalize,\n\tDayPositionWrapper,\n\tDayWrapper,\n\tDealerInfoWrapper,\n\tDividerC,\n\tGoBackWrapper,\n\tGreyText,\n\tTabsWitdh,\n} from './CalandarioStyles';\nimport {getFirstAndLastDayOfMonth} from 'src/helpers';\n\nexport interface SlotsHorarios {\n\tmanana: CalendarSlot[];\n\tmediodia: CalendarSlot[];\n\ttarde: CalendarSlot[];\n}\n\ninterface CalendarioCitaProps {\n\tselectedPoint: Points;\n\tparamAvailability: Availability;\n\tgetAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n\tselectedSlot: any;\n\tsetSelectedSlot: React.Dispatch;\n\thandleDmsMapExit: (slot: CalendarSlot, point: Points) => void;\n\thandleNoDmsMapExit: (franjaHoraria: string, day: string, point: Points) => void;\n\tcenter: google.maps.LatLng;\n\thorario: Horario;\n\thandleHideCalendarOnClick: () => void;\n\tuserIsGeoLocated?: boolean;\n\t/**\n\t * Flag para cuando el calendario es un step y no forma parte del mapa, cambian los estilos y es fullscreen;\n\t */\n\tcalendarIsStep?: 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\tconst {\n\t\tselectedPoint,\n\t\tparamAvailability,\n\t\tgetAvailability,\n\t\tselectedSlot,\n\t\tsetSelectedSlot,\n\t\thandleDmsMapExit,\n\t\thandleNoDmsMapExit,\n\t\tcenter,\n\t\thorario,\n\t\thandleHideCalendarOnClick,\n\t\tuserIsGeoLocated,\n\t\tcalendarIsStep,\n\t} = props;\n\n\tconst {formName} = useSelector((state: OneFormState) => state.formData.fields);\n\n\tlet name, address, city, zipCode, dealer, distanceFromCenter;\n\tif (selectedPoint.properties?.dealer?.markerInfo?.dealerInfo) {\n\t\tname = selectedPoint.properties.dealer.markerInfo.dealerInfo.name;\n\t\taddress = selectedPoint.properties.dealer.markerInfo.dealerInfo.address;\n\t\tcity = selectedPoint.properties.dealer.markerInfo.dealerInfo.city;\n\t\tzipCode = selectedPoint.properties.dealer.markerInfo.dealerInfo.zipCode;\n\t\tdealer = selectedPoint.properties.dealer;\n\t\tdistanceFromCenter = selectedPoint.properties.distanceFromCenter;\n\t} else {\n\t\tname = '';\n\t\taddress = '';\n\t\tcity = '';\n\t\tzipCode = '';\n\t\tdealer = {};\n\t\tdistanceFromCenter = 0;\n\t}\n\t// const { dealer } = selectedPoint.properties;\n\t// const { dmsInfo } = dealer;\n\t// const { distanceFromCenter } = selectedPoint.properties;\n\n\tconst [preselectedDealerForm, setPreselectedDealerForm] = useState(false);\n\tconst [isCalculadoraFirstStep, setIsCalculadoraFirstStep] = useState(false);\n\tconst config = useFeatureAppConfig();\n\n\tuseEffect(() => {\n\t\tif (formName === 'cita-posventa-calculadora') {\n\t\t\tsetIsCalculadoraFirstStep(true);\n\t\t}\n\t\tif (config.trigger === 'cita-posventa-dealer' || formName === 'cita-posventa-calculadora') {\n\t\t\tsetPreselectedDealerForm(true);\n\t\t} else {\n\t\t\tsetPreselectedDealerForm(false);\n\t\t}\n\t}, []);\n\n\tconst daysOfTheWeek = ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb', 'Dom'];\n\tconst [loading, setLoading] = useState(false);\n\tconst [month, setMonth] = useState(getActualMonth());\n\tconst [nextMonth, setNextMonth] = useState(getNextActualMonth());\n\tconst [previousMonth, setPreviousMonth] = useState(getPreviousActualMonth());\n\tconst [monthNumber, setMonthNumber] = useState(getActualMonthNumber());\n\tconst [monthOffset, setMonthOffset] = useState(0);\n\tconst [monthDays, setMonthDays] = useState(null);\n\tconst [yearNumber, setYearNumber] = useState(getActualYearNumber());\n\tconst [selectedDay, setSelectedDay] = useState(null);\n\tconst [selectedFranjaHoraria, setSelectedFranjaHoraria] = useState(null);\n\tconst [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\tconst [calendar, setCalendar] = useState(null);\n\tconst [horarios, setHorarios] = useState(null);\n\tconst tabsRef = useRef(null);\n\tconst availabilityRef = useRef(null);\n\tconst [dmsAvailable, setDmsAvailable] = useState(null);\n\tconst trackingManager = useTrackingManager();\n\n\tuseEffect(() => {\n\t\ttrackingManager.trackFormStepLoad(\n\t\t\t{},\n\t\t\t{\n\t\t\t\tFormStart: false,\n\t\t\t},\n\t\t\t{StepName: 'MapSlot'},\n\t\t);\n\t\thandleChangeOfMonth(0); // Primera carga del calendario.\n\t}, []);\n\n\tconst handleChangeOfMonth = async (newMonthOffset: number): Promise => {\n\t\tconst {currentMonthNumber, currentMonth, yearNumber, nextMonth} = getDates(newMonthOffset);\n\t\tconst {firstDayOfMonth, lastDayOfMonth} = getFirstAndLastDayOfMonth(currentMonthNumber, yearNumber);\n\n\t\tconst availability =\n\t\t\tnewMonthOffset == 0 ? paramAvailability : await getAvailability(dealer, firstDayOfMonth, lastDayOfMonth);\n\n\t\tif (\n\t\t\tcheckDmsAvailableInAvailability(availability) &&\n\t\t\tavailability.content?.calendar &&\n\t\t\tcalendarHasNoProblems(availability) &&\n\t\t\t!delerHasError(availability)\n\t\t) {\n\t\t\tsetDmsAvailable(true);\n\t\t} else if (\n\t\t\tcheckDmsAvailableInAvailability(availability) &&\n\t\t\tcalendarHasNoProblems(availability) &&\n\t\t\t!availability.content.calendar\n\t\t) {\n\t\t\tif (newMonthOffset === 2) {\n\t\t\t\tsetDmsAvailable(false);\n\t\t\t} else {\n\t\t\t\tsetPastMonthBlocked(true);\n\t\t\t\thandleChangeOfMonth(monthOffset + 1);\n\t\t\t}\n\t\t\treturn;\n\t\t} else {\n\t\t\tsetDmsAvailable(false);\n\t\t}\n\t\tavailabilityRef.current = availability;\n\n\t\tconst {updatedMonthDays, selectedDay} = buildCalendar(currentMonthNumber, yearNumber, availability);\n\n\t\tif (selectedDay) {\n\t\t\tsetMonthDays(updatedMonthDays);\n\t\t\tsetSelectedDay(selectedDay);\n\t\t\tsetVariables(newMonthOffset, currentMonth, currentMonthNumber, nextMonth, yearNumber);\n\t\t} else {\n\t\t\tsetPastMonthBlocked(true);\n\t\t\thandleChangeOfMonth(monthOffset + 1);\n\t\t}\n\t};\n\n\tconst buildCalendar = (monthNumber: string, yearNumber: string, availability: Availability) => {\n\t\t// 1. Crear los días del mes.\n\t\tconst days = createMonthDays(monthNumber, yearNumber);\n\t\t// 2. Con el availability, desactivar todos los días que no son necesarios.\n\t\tconst updatedDays = getDisabledDays(days, availability);\n\t\t// 3. Buscar el primer día activo.\n\t\tconst firstAvailableDay = getFirstAvailableDay(updatedDays, availability);\n\t\t// 3.1 En caso de que no encuentre un día en el mes en curso, devolvemos null para que handleChangeOfMonth se\n\t\t// ocupe de cargar el siguiente mes.\n\t\tif (!firstAvailableDay) {\n\t\t\treturn {updatedMonthDays: null, selectedDay: null};\n\t\t}\n\t\t// 4. Cambiar el estado del primer dia activo\n\t\tconst {updatedMonthDays, selectedDay} = handleChangeActiveDay(updatedDays, firstAvailableDay);\n\t\t// 5. Carga de los horarios del dia seleccionado\n\t\thandleChangeInSelectedDay(firstAvailableDay);\n\n\t\treturn {updatedMonthDays, selectedDay};\n\t};\n\n\t/**\n\t * Genera los dias del calendario para el mes y año seleccionado.\n\t * @param monthNumber\n\t * @param yearNumber\n\t */\n\tconst createMonthDays = (monthNumber: string, yearNumber: string): Day[] => {\n\t\tconst firstDayOfMonth = dayjs()\n\t\t\t.year(Number(yearNumber))\n\t\t\t.month(Number(monthNumber) - 1)\n\t\t\t.date(1);\n\n\t\tconst daysInMonth = dayjs()\n\t\t\t.year(Number(yearNumber))\n\t\t\t.month(Number(monthNumber) - 1)\n\t\t\t.daysInMonth();\n\n\t\tconst firstDayInweek = firstDayOfMonth.format('d'); // The day of the week, with Sunday as 0\n\n\t\tlet days: Day[] = [];\n\n\t\t// Se genera una array con espacios vacios para rellenar la primera fila del calendario. Ej: Si el primer día\n\t\t// del mes cae en domingo, se genera una array con 6 espacios vacios, donde el 7º día será el domingo.\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 day = firstDayOfMonth;\n\n\t\tfor (let i = 1; i <= daysInMonth; i++) {\n\t\t\tlet date = getYYYYMMDD(`${yearNumber}-${monthNumber}-${day.format('D')}`); // YYYY - MM - DD\n\t\t\tconst dayNumber = day.format('D'); // 1 - 31\n\t\t\tconst dayOfTheWeek = day.format('d'); // 0 - 6\n\t\t\tlet newDay: Day = {\n\t\t\t\tdayNumber,\n\t\t\t\tdayOfTheWeek,\n\t\t\t\tdate,\n\t\t\t\tdisabled: null,\n\t\t\t\tactive: false,\n\t\t\t};\n\t\t\tdays.push(newDay);\n\t\t\tday = day.add(1, 'day');\n\t\t\tnewDay = null;\n\t\t\tdate = null;\n\t\t}\n\t\treturn days;\n\t};\n\n\t/**\n\t * Devuelve los días generados con la propiedad disabled actualizada, según\n\t * si el día está disponible o no. Si el dealer tiene dms el día estará disponible\n\t * en caso de que también lo esté en el availability. Para el resto de casos se siguen las\n\t * normas de la función checkIfDayIsDisabled.\n\t *\n\t * @param days\n\t * @param availability\n\t */\n\tconst getDisabledDays = (days: Day[], availability: Availability): Day[] => {\n\t\tlet updatedDays: Day[];\n\n\t\t// FLUJO CON DMS\n\t\tif (availability && availability.content && availability.content.calendar && calendarHasNoProblems(availability)) {\n\t\t\tconst availableDates = availability.content.calendar.map((calendarDay) => calendarDay.date);\n\t\t\tupdatedDays = days.map((day) => {\n\t\t\t\t// Days contiene strings vacías.\n\t\t\t\tif (typeof day === 'object') {\n\t\t\t\t\tconst foundDate = availableDates.find((date) => date === day.date);\n\t\t\t\t\tday.disabled = !foundDate || checkIfDayIsDisabled(day.date) ? true : false;\n\t\t\t\t\treturn day;\n\t\t\t\t}\n\t\t\t\treturn day;\n\t\t\t});\n\t\t} else {\n\t\t\t// FLUJO SIN DMS\n\t\t\tupdatedDays = days.map((day) => {\n\t\t\t\t// Days contiene strings vacías.\n\t\t\t\tif (typeof day === 'object') {\n\t\t\t\t\tday.disabled = checkIfDayIsDisabled(day.date) ? true : false;\n\t\t\t\t}\n\t\t\t\treturn day;\n\t\t\t});\n\t\t}\n\t\treturn updatedDays;\n\t};\n\n\t/**\n\t *\n\t * Las reglas para desactivar un día son:\n\t * Si el día ya ha pasado o es el mismo día (no pueden ofrecer cita para el mismo día).\n\t * Si es domingo en todos los casos.\n\t * Si es sábado y no tiene DMS.\n\t *\n\t * @param date Se necesita la fecha en formato YYYY-MM-DD\n\t */\n\tconst checkIfDayIsDisabled = (date: string): boolean => {\n\t\tconst actualDay = year_MonthNumber_DayNumber();\n\t\tconst dayOfTheWeek = dayjs(date).format('d');\n\t\tconst isPastOrSameDate = dayjs(date).isSameOrBefore(actualDay);\n\t\tconst disableSaturday = dayOfTheWeek === '6' && !dmsAvailable;\n\t\tconst disableSunday = dayOfTheWeek === '0';\n\n\t\tif (isPastOrSameDate || disableSaturday || disableSunday) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\t/**\n\t * Función para comprobar si, aunque el calendario retorne una array con slots, estos son recientes.\n\t * En el caso de \"Binefar\" devuelve una array a fecha de 1/1/1970, por lo que comprobamos si las fechas son\n\t * anteriores a una fecha ya pasada aleatoria como el 1/1/2021 para eliminar estos casos.\n\t * @param availability\n\t */\n\tconst calendarHasNoProblems = (availability: Availability): boolean => {\n\t\tconst msForReference = dayjs('2021-01-01', 'YYYY-MM-DD').locale('es').utc().format('x');\n\n\t\tif (availability && availability.content && availability.content.calendar) {\n\t\t\tconst badFormattedDay = availability.content.calendar.find((calendarDay) => {\n\t\t\t\tconst dateInMs = dayjs(calendarDay.date, 'YYYY-MM-DD').locale('es').utc().format('x');\n\t\t\t\tif (msForReference > dateInMs) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (badFormattedDay) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * Función para obtener el primer dia activo en el calendario.\n\t * 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\t * En caso de que no encuentre ninguno o no tenga DMS, fija el primer dia que no esté desactivado.\n\t *\n\t * @param monthDays\n\t * @param availability\n\t */\n\tconst getFirstAvailableDay = (monthDays: Day[], availability: Availability): Day => {\n\t\tlet firstDay: Day;\n\n\t\t//Flujo con DMS\n\t\tif (availability && availability.content && availability.content.calendar && calendarHasNoProblems(availability)) {\n\t\t\tfor (const dayCalendar of availability.content.calendar) {\n\t\t\t\tconst horarios = sortSlotsByHour(dayCalendar);\n\n\t\t\t\tif (horario === 'morning' && horarios.manana.length > 0) {\n\t\t\t\t\tfirstDay = setFirstDay(monthDays, dayCalendar);\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (horario === 'afternon' && horarios.mediodia.length > 0) {\n\t\t\t\t\tfirstDay = setFirstDay(monthDays, dayCalendar);\n\t\t\t\t\tbreak;\n\t\t\t\t} else if (horario === 'evening' && horarios.tarde.length > 0) {\n\t\t\t\t\tfirstDay = setFirstDay(monthDays, dayCalendar);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Flujo sin DMS\n\t\tif (!firstDay) {\n\t\t\tfirstDay = monthDays.find((day) => day.disabled === false);\n\t\t}\n\n\t\treturn firstDay;\n\t};\n\n\t/**\n\t * Reparte los slots del calendario en mañana, mediodía y tarde, además de eliminar arrays vacías para evitar posibles errores.\n\t *\n\t * @param calendar\n\t */\n\tconst sortSlotsByHour = (calendar: Calendar): SlotsHorarios => {\n\t\t// Se elige un dia aleatorio (1/1/1999) ya que se comparan horas del mismo dia y este es irrelevante.\n\n\t\tconst manana = calendar.slots\n\t\t\t.filter((slot: CalendarSlot) => checkIfMorning(getNormalizedDate(slot.hour)))\n\t\t\t.sort((a, b) => a.from - b.from);\n\t\tconst mediodia = calendar.slots\n\t\t\t.filter((slot: CalendarSlot) => checkIfMidDay(getNormalizedDate(slot.hour)))\n\t\t\t.sort((a, b) => a.from - b.from);\n\t\tconst tarde = calendar.slots\n\t\t\t.filter((slot: CalendarSlot) => checkIfEvening(getNormalizedDate(slot.hour)))\n\t\t\t.sort((a, b) => a.from - b.from);\n\t\treturn {manana, mediodia, tarde};\n\t};\n\n\tconst setFirstDay = (monthDays: Day[], dayCalendar: Calendar) => {\n\t\tconst monthDay = monthDays.find((day) => day.date === dayCalendar.date);\n\n\t\tif (monthDay && !monthDay.disabled) {\n\t\t\treturn monthDay;\n\t\t}\n\t\treturn null;\n\t};\n\n\t/**\n\t * Función que se encarga de cargar los horarios del availability según el dia seleccionado.\n\t * @param day\n\t * @param isClick es false en la carga del calendario, ya que no hace falta volver a llamar a la función handleChangeActiveDay.\n\t */\n\tconst handleChangeInSelectedDay = (day: Day, isClick?: boolean) => {\n\t\tif (isClick) {\n\t\t\tconst {updatedMonthDays} = handleChangeActiveDay(monthDays, day);\n\t\t\tsetMonthDays(updatedMonthDays);\n\t\t\tsetSelectedDay(day.date);\n\t\t}\n\n\t\tif (!availabilityRef.current || !availabilityRef.current.content || !availabilityRef.current.content.calendar) {\n\t\t\treturn;\n\t\t}\n\t\tlet calendar: Calendar = availabilityRef.current.content.calendar.find((calendarDate) => {\n\t\t\treturn day.date === calendarDate.date;\n\t\t});\n\n\t\tif (calendar) {\n\t\t\tcalendar.slots = calendar.slots.sort((a, b) => a.from - b.from);\n\t\t\tconst horarios = sortSlotsByHour(calendar);\n\t\t\tconst selectedSlot = getSelectedSlot(calendar, horarios);\n\t\t\tsetCalendar(calendar);\n\t\t\tsetHorarios(horarios);\n\t\t\tsetSelectedSlot(selectedSlot);\n\t\t\tif (calendar.slots.length > 1) {\n\t\t\t\t// selectedCalendar.slots[0].map();\n\t\t\t}\n\t\t} else {\n\t\t\tsetCalendar(null);\n\t\t\tsetHorarios(null);\n\t\t\tsetSelectedSlot(null);\n\t\t}\n\t};\n\n\tconst getSelectedSlot = (selectedCalendar: Calendar, horarios: SlotsHorarios) => {\n\t\tif (horario === 'morning') {\n\t\t\treturn horarios.manana[0];\n\t\t} else if (horario === 'afternon' && horarios.mediodia.length > 0) {\n\t\t\treturn horarios.mediodia[0];\n\t\t} else if (horario === 'evening' && horarios.tarde.length > 0) {\n\t\t\treturn horarios.tarde[0];\n\t\t}\n\t\treturn selectedCalendar.slots[0];\n\t};\n\n\tconst handleNextMonthYear = (e: any) => {\n\t\te.preventDefault();\n\t\tif (monthOffset === 2) {\n\t\t\treturn;\n\t\t}\n\t\thandleChangeOfMonth(monthOffset + 1);\n\t\t// setMonthOffset(monthOffset + 1);\n\t};\n\n\tconst handlePreviousMonthYear = (e: any) => {\n\t\te.preventDefault();\n\n\t\tif (monthOffset === 0) {\n\t\t\treturn;\n\t\t}\n\t\thandleChangeOfMonth(monthOffset - 1);\n\t\t// setMonthOffset(monthOffset - 1);\n\t};\n\n\tconst getDates = (monthOffset: number) => {\n\t\tconst currentMonth = dayjs().add(monthOffset, 'month').locale('es').format('MMMM');\n\t\tconst nextMonth = dayjs()\n\t\t\t.add(monthOffset + 1, 'month')\n\t\t\t.locale('es')\n\t\t\t.format('MMMM');\n\t\tconst currentMonthNumber = dayjs().add(monthOffset, 'month').format('M');\n\t\tconst yearNumber = dayjs().add(monthOffset, 'month').format('YYYY');\n\n\t\treturn {currentMonth, nextMonth, currentMonthNumber, yearNumber};\n\t};\n\n\tuseEffect(() => {\n\t\tlet monthCapitalize = month.charAt(0).toUpperCase() + month.slice(1);\n\t\tswitch (monthCapitalize) {\n\t\t\tcase 'Enero':\n\t\t\t\tsetPreviousMonth('Diciembre');\n\t\t\t\tbreak;\n\t\t\tcase 'Febrero':\n\t\t\t\tsetPreviousMonth('Enero');\n\t\t\t\tbreak;\n\t\t\tcase 'Marzo':\n\t\t\t\tsetPreviousMonth('Febrero');\n\t\t\t\tbreak;\n\t\t\tcase 'Abril':\n\t\t\t\tsetPreviousMonth('Marzo');\n\t\t\t\tbreak;\n\t\t\tcase 'Mayo':\n\t\t\t\tsetPreviousMonth('Abril');\n\t\t\t\tbreak;\n\t\t\tcase 'Junio':\n\t\t\t\tsetPreviousMonth('Mayo');\n\t\t\t\tbreak;\n\t\t\tcase 'Julio':\n\t\t\t\tsetPreviousMonth('Junio');\n\t\t\t\tbreak;\n\t\t\tcase 'Agosto':\n\t\t\t\tsetPreviousMonth('Julio');\n\t\t\t\tbreak;\n\t\t\tcase 'Septiembre':\n\t\t\t\tsetPreviousMonth('Agosto');\n\t\t\t\tbreak;\n\t\t\tcase 'Octubre':\n\t\t\t\tsetPreviousMonth('Septiembre');\n\t\t\t\tbreak;\n\t\t\tcase 'Noviembre':\n\t\t\t\tsetPreviousMonth('Octubre');\n\t\t\t\tbreak;\n\t\t\tcase 'Diciembre':\n\t\t\t\tsetPreviousMonth('Noviembre');\n\t\t\t\tbreak;\n\t\t}\n\t}, [month]);\n\n\tconst setVariables = (\n\t\tmonthOffset: number,\n\t\tcurrentMonth: string,\n\t\tcurrentMonthNumber: string,\n\t\tnextMonth: string,\n\t\tyear: string,\n\t) => {\n\t\tsetMonthOffset(monthOffset);\n\t\tsetMonth(currentMonth);\n\t\tsetMonthNumber(currentMonthNumber);\n\t\tsetNextMonth(nextMonth);\n\t\tsetYearNumber(year);\n\t};\n\n\tconst handleSelectedSlot = (slot: CalendarSlot[]) => {\n\t\tsetSelectedSlot(slot);\n\t};\n\n\tconst handleFranjaHoraria = (franjaHoraria: string) => {\n\t\tsetSelectedFranjaHoraria(franjaHoraria);\n\t};\n\n\tconst handleChangeActiveDay = (monthDays: Day[], day: Day): {updatedMonthDays: Day[]; selectedDay: string} => {\n\t\tif (day) {\n\t\t\tconst updatedMonthDays = monthDays.map((monthDay) => {\n\t\t\t\tif (monthDay.dayNumber === day.dayNumber && !day.active) {\n\t\t\t\t\tmonthDay.active = true;\n\t\t\t\t} else if (monthDay.active && monthDay.dayNumber !== day.dayNumber) {\n\t\t\t\t\tmonthDay.active = false;\n\t\t\t\t}\n\t\t\t\treturn monthDay;\n\t\t\t});\n\n\t\t\treturn {updatedMonthDays, selectedDay: day.date};\n\t\t} else {\n\t\t\tconst tomorrow = dayjs().add(1, 'day').format('YYYY-MM-DD');\n\n\t\t\treturn {updatedMonthDays: monthDays, selectedDay: tomorrow};\n\t\t}\n\t};\n\n\treturn selectedPoint ? (\n\t\t<>\n\t\t\t{!isCalculadoraFirstStep && preselectedDealerForm ? : null}\n\t\t\t\n\t\t\t\t{isCalculadoraFirstStep ? (\n\t\t\t\t\t\n\t\t\t\t) : preselectedDealerForm ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\thandleHideCalendarOnClick();\n\t\t\t\t\t\t\t\t\t// Hack para contabilizar en analítica los usuarios que vuelven desde el calendario al mapa.\n\t\t\t\t\t\t\t\t\ttrackingManager.trackFormStepLoad(\n\t\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\tFormStart: false,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{StepName: 'MapSearch'},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tIr al mapa\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{preselectedDealerForm ? (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t¿Cuándo prefieres pasar por el{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttaller?*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t¿Cuándo prefieres pasar por el{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttaller?*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{dmsAvailable ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSelecciona la fecha y la hora de tu visita.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t) : null}\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\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{userIsGeoLocated ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{getDistanceFromLatLngCenter(center, selectedPoint) === '0.0' ? null : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{distanceFromCenter\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? distanceFromCenter\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: getDistanceFromLatLngCenter(center, selectedPoint)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkm\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t{address}, {zipCode} {city}\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\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)}\n\t\t\t\t\t\t\t\t\n\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/>\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{previousMonth}\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\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{month} {yearNumber}\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\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{nextMonth}\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\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\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{daysOfTheWeek.map((day, index) => {\n\t\t\t\t\t\t\t\t\t\t\tif (index > 4) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\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{monthDays && !loading ? (\n\t\t\t\t\t\t\t\t\t\t\tmonthDays.map((day, i) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (!day.disabled) {\n\t\t\t\t\t\t\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\t\t\t\t\t\t\ttabsRef.current.scrollIntoView({behavior: 'smooth'});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// const { updatedMonthDays, selectedDay } = handleChangeActiveDay(monthDays, day);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// setMonthDays(updatedMonthDays);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// setSelectedDay(selectedDay);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleChangeInSelectedDay(day, true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tactive={day.active}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={day.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"day-wrapper\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{day.dayNumber}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\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\n\t\t\t\t\t\t\t\t\t\t\t\tloading...\n\t\t\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\n\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\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{dmsAvailable ? (\n\t\t\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\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\t\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tdmsAvailable\n\t\t\t\t\t\t\t\t\t\t\t\t? handleDmsMapExit(selectedSlot, selectedPoint)\n\t\t\t\t\t\t\t\t\t\t\t\t: handleNoDmsMapExit(selectedFranjaHoraria, selectedDay, selectedPoint);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tariaLabel=\"aria label\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\tSeleccionar\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
\n\t\t\t\n\t\t\n\t) : null;\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\n\nimport React, { useEffect } from 'react';\nimport { Horario } from 'src/types';\n\ninterface FranjaHorariaProps {\n selectedFranjaHoraria: string;\n handleFranjaHoraria: (s: string) => void;\n horario: Horario;\n}\n\nexport function FranjaHoraria(props: FranjaHorariaProps) {\n const { handleFranjaHoraria, selectedFranjaHoraria, horario } = props;\n\n useEffect(() => {\n if (horario === 'afternon') {\n handleFranjaHoraria('Mediodía');\n } else if (horario === 'evening') {\n handleFranjaHoraria('Tarde');\n } else {\n handleFranjaHoraria('Mañana');\n }\n }, []);\n\n return (\n \n \n Selecciona una franja horaria\n \n \n {\n e.preventDefault();\n handleFranjaHoraria('Mañana');\n }}\n >\n Mañana\n \n {\n e.preventDefault();\n handleFranjaHoraria('Mediodía');\n }}\n >\n Mediodía\n \n {\n e.preventDefault();\n handleFranjaHoraria('Tarde');\n }}\n >\n Tarde\n \n \n \n );\n}\n","import React from 'react';\nimport {\n Container,\n Text,\n ContainerGutter,\n TextAlignment,\n styled,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { CalendarSlot } from 'src/types';\n\ninterface hourWrapperProps {\n selected: any;\n}\n\nconst HourWrapper = styled.div`\n width: 68px;\n height: 33px;\n border: ${(props) => (props.selected ? '1px solid #001E50' : '1px solid #DFE4E8')};\n background-color: ${(props) => (props.selected ? '#001E50' : null)};\n color: ${(props) => (props.selected ? '#FFFFFF' : '#001E50')};\n border-radius: 16px;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\ninterface slotsHorarioProps {\n avaiableHours: CalendarSlot[];\n // selectedHourIndex: number;\n handleSelectedSlot: any;\n selectedSlot: CalendarSlot;\n}\n\nexport const SlotsHorario = (props: slotsHorarioProps) => {\n const { avaiableHours, handleSelectedSlot, selectedSlot } = props;\n\n const checkIfHourIsSelected = (slot: CalendarSlot) => {\n if (selectedSlot) {\n return slot.from === selectedSlot.from ? true : false;\n }\n return false;\n };\n\n return (\n \n {avaiableHours && avaiableHours.length > 0 ? (\n avaiableHours.map((slot: CalendarSlot, i) => {\n return (\n {\n e.preventDefault();\n handleSelectedSlot(slot, i);\n }}\n key={slot.from}\n selected={checkIfHourIsSelected(slot)}\n >\n \n {slot.hour.slice(0, 5)}\n \n \n );\n })\n ) : (\n \n No hay horas disponibles en esta franja.\n \n )}\n \n );\n};\n","import { Container, ContainerPadding, styled, Tabs, Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { SlotsHorarios } from './CalendarioCita';\nimport { CalendarSlot } from 'src/types';\nimport { SlotsHorario } from '.';\nimport { checkIfEvening, checkIfMidDay, checkIfMorning } from '../NewMap';\n\nconst TabsWrapper = styled.div`\n ul {\n margin: 5px;\n width: 86vw;\n\n @media screen and (min-width: 560px) {\n width: 76vw;\n }\n @media screen and (min-width: 960px) {\n width: 640px;\n }\n }\n`;\n\ninterface TabsHorariosProps {\n handleSelectedSlot: any;\n selectedSlot: CalendarSlot;\n horarios: SlotsHorarios;\n}\n\nexport function TabsHorario(props: TabsHorariosProps) {\n const { handleSelectedSlot, selectedSlot, horarios } = props;\n\n const [defaultIndex, setDefaultIndex] = useState(0);\n\n useEffect(() => {\n if (selectedSlot) {\n const defaultIndex = handleDefaultTabIndex(selectedSlot);\n setDefaultIndex(defaultIndex);\n }\n }, [selectedSlot]);\n\n const handleDefaultTabIndex = (slot: CalendarSlot) => {\n const slotHour = new Date(`1/1/1999 ${slot.hour}`);\n\n if (checkIfMorning(slotHour)) {\n return 0;\n } else if (checkIfMidDay(slotHour)) {\n return 1;\n } else if (checkIfEvening(slotHour)) {\n return 2;\n }\n return 0;\n };\n\n return (\n \n {e.preventDefault()}}>\n {\n setDefaultIndex(index);\n }}\n >\n {{\n title: Mañana,\n content: (\n \n \n \n ),\n key: 'a',\n }}\n {{\n title: Mediodía,\n content: (\n \n \n \n ),\n key: 'b',\n }}\n {{\n title: Tarde,\n content: (\n \n \n \n ),\n key: 'c',\n }}\n \n \n \n );\n}\n","import { 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\tBreakpoints,\n\tBreakpointWrapper,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nexport const CTAsSiNo = [\n\t{\n\t\tlabel: 'Sí',\n\t\tvalue: 'true'\n\t},\n\t{\n\t\tlabel: 'No',\n\t\tvalue: 'false'\n\t},\n];\n\nexport const contactoOptionsTurismos = [\n\t{\n\t\tlabel: 'Whatsapp',\n\t\tvalue: 'Whatsapp',\n\t},\n\t{\n\t\tlabel: 'Teléfono',\n\t\tvalue: 'Telefono',\n\t},\n\t{\n\t\tlabel: 'Email',\n\t\tvalue: 'Email',\n\t},\n];\n\nexport const contactoOptionsComerciales = [\n\t{\n\t\tlabel: 'Teléfono',\n\t\tvalue: 'Telefono',\n\t},\n\t{\n\t\tlabel: 'Email',\n\t\tvalue: 'Email',\n\t},\n];\n\nexport const CTAsHorario = [\n\t{\n\t\tlabel: 'Por la mañana',\n\t\tvalue: 'morning'\n\t},\n\t{\n\t\tlabel: 'Al mediodía',\n\t\tvalue: 'afternon'\n\t},\n\t{\n\t\tlabel: 'Por la tarde',\n\t\tvalue: 'evening'\n\t},\n];\n\n//Cita posventa\n\nexport interface CTAsMotivoDef {\n\tlabel: string;\n\tvalue: string;\n\tdetalles?: string | JSX.Element;\n\tdetallesPrevStep?: string;\n}\n\nexport const CTAsMotivo: CTAsMotivoDef[] = [\n\t{\n\t\tlabel: 'Mantenimiento',\n\t\tvalue: 'MANTENIMIENTO',\n\t\tdetalles: 'la revisión de mantenimiento',\n\t\tdetallesPrevStep: 'Revisión de mantenimiento',\n\t},\n\t{\n\t\tlabel: 'Neumáticos',\n\t\tvalue: 'NEUMATICOS',\n\t\tdetalles: 'el cambio de neumáticos',\n\t\tdetallesPrevStep: 'Cambio de neumáticos',\n\t},\n\t{\n\t\tlabel: 'Avería',\n\t\tvalue: 'REPARACION',\n\t\tdetalles: 'la avería',\n\t\tdetallesPrevStep: 'Reparación de avería'\n\t},\n\t{\n\t\tlabel: 'Revisión pre-ITV',\n\t\tvalue: 'PREITV',\n\t\tdetalles: (\n\t\t\t<>\n\t\t\t\tla revisión{' '}\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\tpre-ITV\n\t\t\t\n\t\t),\n\t\tdetallesPrevStep: 'Revisión pre-ITV',\n\t},\n\t{\n\t\tlabel: 'Chapa y pintura',\n\t\tvalue: 'CARROCERIA',\n\t\tdetalles: 'la reparación de chapa y pintura',\n\t\tdetallesPrevStep: 'Reparación de chapa y pintura',\n\t},\n\t{\n\t\tlabel: 'Accesorios',\n\t\tvalue: 'ACCESORIOS',\n\t\tdetalles: 'la instalación de los accesorios',\n\t\tdetallesPrevStep: 'Instalación de accesorios',\n\t},\n\t/* {\n\t\tlabel: 'Chequeo',\n\t\tvalue: 'CHEQUEO',\n\t\tdetalles: 'el chequeo de tu coche',\n\t\tdetallesPrevStep: 'Chequeo'\n\t}, */\n\t{\n\t\tlabel: 'Actualización Software ID',\n\t\tvalue: 'OTROS',\n\t\tdetalles: 'Actualización Software ID',\n\t\tdetallesPrevStep: 'Actualización Software ID'\n\t},\n\t{\n\t\tlabel: 'Otros',\n\t\tvalue: 'OTROS',\n\t\tdetalles: 'el motivo de tu visita',\n\t\tdetallesPrevStep: 'Visita'\n\t},\n];\n\nexport const CTAsDudas = [\n\t{\n\t\tlabel: 'Los plazos de entrega',\n\t\tvalue: 'plazos'\n\t},\n\t{\n\t\tlabel: 'Tu visita al punto de venta',\n\t\tvalue: 'experiencia'\n\t},\n\t{\n\t\tlabel: 'El precio del modelo',\n\t\tvalue: 'precio'\n\t},\n\t{\n\t\tlabel: 'El equipamiento y los asistentes adicionales',\n\t\tvalue: 'equipamiento'\n\t},\n\t{\n\t\tlabel: 'El consumo del modelo',\n\t\tvalue: 'consumo'\n\t},\n\t{\n\t\tlabel: 'La garantía del modelo',\n\t\tvalue: 'garantia'\n\t},\n\t{\n\t\tlabel: 'Las condiciones de financiación',\n\t\tvalue: 'financiación'\n\t},\n\t{\n\t\tlabel: 'La situación actual',\n\t\tvalue: 'situacion'\n\t},\n\t{\n\t\tlabel: 'Otros motivos',\n\t\tvalue: 'otros'\n\t},\n];\n\n//SAC\n\nexport const contactoOptionsSAC = [\n\t{\n\t\tlabel: 'Email',\n\t\tvalue: 'EMAIL',\n\t},\n\t{\n\t\tlabel: 'Teléfono',\n\t\tvalue: 'TELEFONO',\n\t},\n\t/* {\n\t\tlabel: 'Correo postal',\n\t\tvalue: 'POSTAL',\n\t }, */\n\t{\n\t\tlabel: 'Whatsapp',\n\t\tvalue: 'WHATSAPP',\n\t},\n];\n\n//CEM postenta y CEM venta\n\nexport const ctaTestDrive = [\n\t{\n\t\tlabel: 'Sí, y realicé la prueba',\n\t\tvalue: '1'\n\t},\n\t{\n\t\tlabel: 'Sí, pero no realicé la prueba',\n\t\tvalue: '2'\n\t},\n\t{\n\t\tlabel: 'No, pero estaba interesado/a ',\n\t\tvalue: '3'\n\t},\n\t{\n\t\tlabel: 'No, y no estaba interesado/a',\n\t\tvalue: '4'\n\t},\n\t{\n\t\tlabel: 'Sin respuesta',\n\t\tvalue: '9'\n\t},\n];\n\nexport const ctaAlternativaTransporte = [\n\t{\n\t\tlabel: 'Sí, un vehículo de sustitución',\n\t\tvalue: '1'\n\t},\n\t{\n\t\tlabel: 'Sí, otra alternativa (transporte público, taxi, shuttle, …)',\n\t\tvalue: '2'\n\t},\n\t{\n\t\tlabel: 'No, pero la hubiera necesitado',\n\t\tvalue: '3'\n\t},\n\t{\n\t\tlabel: 'No, y tampoco la necesitaba',\n\t\tvalue: '4'\n\t},\n\t{\n\t\tlabel: 'Sin respuesta',\n\t\tvalue: '9'\n\t},\n];\nexport const ctaContactoSatisfaccion = [\n\t{\n\t\tlabel: 'Sí',\n\t\tvalue: '1'\n\t},\n\t{\n\t\tlabel: 'No',\n\t\tvalue: '2'\n\t},\n\t{\n\t\tlabel: 'Sin respuesta',\n\t\tvalue: '9'\n\t},\n];\n\nexport const ctaTrabajosAdicionales = [\n\t{\n\t\tlabel: 'Sí',\n\t\tvalue: '1'\n\t},\n\t{\n\t\tlabel: 'No',\n\t\tvalue: '2'\n\t},\n\t{\n\t\tlabel: 'Sin respuesta',\n\t\tvalue: '9'\n\t},\n];\n\nexport const ctaMotivoVisita = [\n\n\t{\n\t\tlabel: 'Revisión pre-ITV',\n\t\tvalue: '2'\n\t},\n\t{\n\t\tlabel: 'Avería circulando con el coche (fue necesario remolcarlo)',\n\t\tvalue: '4'\n\t},\n\t{\n\t\tlabel: 'Medida de servicio (excluida la medida de servicio diésel)',\n\t\tvalue: '10'\n\t},\n\t{\n\t\tlabel: 'Chapa y pintura',\n\t\tvalue: '6'\n\t},\n\t{\n\t\tlabel: 'Cambio de neumáticos',\n\t\tvalue: '3'\n\t},\n\t{\n\t\tlabel: 'Actualización de software',\n\t\tvalue: '11'\n\t},\n\t{\n\t\tlabel: 'Instalación de accesorios',\n\t\tvalue: '7'\n\t},\n\t{\n\t\tlabel: 'Servicio rutinario / de mantenimiento',\n\t\tvalue: '1'\n\t},\n\t{\n\t\tlabel: 'Otra visita inesperada (el coche pudo seguir circulando y elegiste tu Sercicio Oficial favorito)',\n\t\tvalue: '5'\n\t},\n\t{\n\t\tlabel: 'Otras reparaciones o reclamaciones (por ejemplo, problemas electrónicos)',\n\t\tvalue: '8'\n\t},\n\t{\n\t\tlabel: 'Sin respuesta',\n\t\tvalue: '99'\n\t},\n];\n\n\nexport const ctaEnvioCEM = [\n\t{\n\t\tlabel: 'Sí, mis respuestas pueden ser publicadas sin mi nombre en la Web Oficial Volkswagen y en la de [Installation]',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'No, mis respuestas no pueden ser publicadas en la Web Oficial Volkswagen y en la de [Installation]',\n\t\tvalue: '2',\n\t},\n];\n\n// CEM ONESHOP\n\nexport const ctaPruebaTCross = [\n\t{\n\t\tlabel: 'Sí',\n\t\tvalue: 'true'\n\t},\n\t{\n\t\tlabel: 'No',\n\t\tvalue: 'false'\n\t},\n\t{\n\t\tlabel: 'No, pero me lo ofrecieron',\n\t\tvalue: 'No, pero me lo ofrecieron'\n\t},\n];\n\n// No renovador\n\nexport const CTAsMotor = [\n\t{\n\t\tlabel: 'Gasolina',\n\t\tvalue: 'gasolina',\n\t},\n\t{\n\t\tlabel: 'Diesel',\n\t\tvalue: 'diesel',\n\t},\n\t{\n\t\tlabel: 'Híbrido',\n\t\tvalue: 'híbrido',\n\t},\n\t{\n\t\tlabel: 'Eléctrico',\n\t\tvalue: 'electrico',\n\t},\n];\n\nexport const CTAsMotivoRenovador = [\n\t{\n\t\tlabel: 'Los plazos de entrega',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'El precio y las opciones de financiación',\n\t\tvalue: '2',\n\t},\n\t{\n\t\tlabel: 'El diseño del coche',\n\t\tvalue: '3',\n\t},\n\t{\n\t\tlabel: 'El equipamiento del coche',\n\t\tvalue: '4',\n\t},\n\t{\n\t\tlabel: 'Relación calidad/precio',\n\t\tvalue: '5',\n\t},\n\t{\n\t\tlabel: 'La poca variedad de modelos y tecnologías disponibles',\n\t\tvalue: '6',\n\t},\n\t{\n\t\tlabel: 'Mi experiencia con el concesionario de venta',\n\t\tvalue: '7',\n\t},\n\t{\n\t\tlabel: 'Por problemas con mi vehículo anterior',\n\t\tvalue: '14',\n\t},\n\t{\n\t\tlabel: 'Otros motivos',\n\t\tvalue: '13',\n\t},\n];\n\nexport const CTAsMotivoRenovadorProblemas = [\n\t{\n\t\tlabel: 'El consumo de combustible del vehículo anterior',\n\t\tvalue: '8',\n\t},\n\t{\n\t\tlabel: 'Los costes de mantenimiento del vehículo anterior',\n\t\tvalue: '9',\n\t},\n\t{\n\t\tlabel: 'Las averías sufridas con el vehículo anterior',\n\t\tvalue: '10',\n\t},\n\t{\n\t\tlabel: 'Mi experiencia previa con el servicio de posventa',\n\t\tvalue: '11',\n\t},\n\t{\n\t\tlabel: 'Otras experiencias con la marca',\n\t\tvalue: '12',\n\t},\n];\n\nexport const CTAsMotivoRenovadorNoTengoExclusivo = [\n\t{\n\t\tlabel: 'Nada',\n\t\tvalue: 'nada',\n\t},\n];\n\nexport const CTAsUsadoNuevo = [\n\t{\n\t\tlabel: 'He comprado un vehículo nuevo',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'He comprado un vehículo de ocasión',\n\t\tvalue: '2',\n\t},\n];\n\nexport const CTAsLugarCompra = [\n\t{\n\t\tlabel: 'Concesionario oficial',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'Concesionario no oficial',\n\t\tvalue: '2',\n\t},\n\t{\n\t\tlabel: 'Empresa de Renting/Leasing',\n\t\tvalue: '3',\n\t},\n\t{\n\t\tlabel: 'Compra-venta privada',\n\t\tvalue: '4',\n\t},\n];\n\nexport const CTAsNuevoOcasión = [\n\t{\n\t\tlabel: 'Uno nuevo',\n\t\tvalue: 'nuevo',\n\t},\n\t{\n\t\tlabel: 'Uno de ocasión',\n\t\tvalue: 'ocasión',\n\t},\n];\n\nexport const CTAsFormasMovilidad = [\n\t{\n\t\tlabel: 'Coche compartido (car sharing)',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'Moto compartida (moto sharing)',\n\t\tvalue: '2',\n\t},\n\t{\n\t\tlabel: 'Transporte público',\n\t\tvalue: '3',\n\t},\n\t{\n\t\tlabel: 'Patinete',\n\t\tvalue: '4',\n\t},\n\t{\n\t\tlabel: 'Moto',\n\t\tvalue: '5',\n\t},\n\t{\n\t\tlabel: 'Bicicleta',\n\t\tvalue: '6',\n\t},\n\t{\n\t\tlabel: 'Otros',\n\t\tvalue: '8',\n\t},\n];\n\nexport const CTAsFormasMovilidadExclusive = [\n\t{\n\t\tlabel: 'No tengo necesidad de utilizar ningún medio de transporte para desplazarme',\n\t\tvalue: '7',\n\t},\n];\n\nexport const CTAsRazones = [\n\t{\n\t\tlabel: 'Económicas',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tlabel: 'Medioambientales',\n\t\tvalue: '2',\n\t},\n\t{\n\t\tlabel: 'Ahorro de tiempo',\n\t\tvalue: '3',\n\t},\n\t{\n\t\tlabel: 'Otras razones',\n\t\tvalue: '4',\n\t},\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","function isDynamicTokenSubtree(subtree) {\n return !Array.isArray(subtree) && typeof subtree !== 'string';\n}\nexport function getDynamicTokens(tokens, path) {\n return Object.keys(tokens).reduce((result, key) => {\n const newPath = path ? `${path}.${key}` : key;\n const currentToken = tokens[key];\n if (Array.isArray(currentToken)) {\n currentToken.forEach((dynamic) => {\n result[dynamic.breakpoint] = result[dynamic.breakpoint] || {};\n result[dynamic.breakpoint] = Object.assign(Object.assign({}, result[dynamic.breakpoint]), { [newPath]: dynamic.value });\n });\n return result;\n }\n if (isDynamicTokenSubtree(currentToken)) {\n const subtreeResults = getDynamicTokens(currentToken, newPath);\n Object.keys(subtreeResults).forEach((breakpoint) => {\n result[breakpoint] = Object.assign(Object.assign({}, (result[breakpoint] || {})), subtreeResults[breakpoint]);\n });\n return result;\n }\n return result;\n }, {});\n}\n","import * as React from 'react';\nimport { normalize } from 'styled-normalize';\nimport { createGlobalStyle } from 'styled-components';\nimport { styled, css } from '../theme-provider';\nimport { getMediaQueryVars } from '../theme-provider/get-media-query-vars';\nimport { getCommonProps } from '../helpers/common-props';\nimport { mainThemeColors } from '@volkswagen-onehub/tokens';\nconst GlobalStyle = createGlobalStyle `${normalize};b,strong{font-weight:bold;}`;\n// Please do not import this const. It is meant to be used internally only.\nexport const _fontFamilyStyles = css `--font-family-head:vw-head,Helvetica,Arial,sans-serif;--font-family-text:vw-text,Helvetica,Arial,sans-serif;:lang(ko),:lang(zh),:lang(zh-tw),:lang(ja),:lang(ar){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;}:lang(ar){--font-family-head:vw-head,vw-head-ar,Helvetica Neue,Helvetica,Arial,sans-serif;--font-family-text:vw-text,vw-text-ar,Helvetica Neue,Helvetica,Arial,sans-serif;}font-family:var(--font-family-text);`;\nexport const StyledIntegratorRoot = styled.div.withConfig({ displayName: \"StyledIntegratorRoot\", componentId: \"sc-7fx0kf\" }) `${_fontFamilyStyles} -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;*{box-sizing:border-box;}${getMediaQueryVars()};background-color:${() => mainThemeColors.background.primary};`;\nexport const IntegratorRoot = (props) => {\n const { language, children } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledIntegratorRoot, Object.assign({ lang: language }, commonProps),\n React.createElement(GlobalStyle, null),\n children));\n};\n","import { compareBreakpoints } from '../helpers/breakpoint';\nimport { getDynamicTokens } from './dynamic-tokens';\nimport { createCSSVarName } from './create-css-var-name';\nimport { designTokens } from './example-design-tokens';\nexport function getMediaQueryVars(optionsOverride) {\n const tokens = optionsOverride\n ? optionsOverride.tokens\n : undefined;\n const dynamicTokens = getDynamicTokens(tokens || designTokens);\n return Object.keys(dynamicTokens)\n .sort(compareBreakpoints)\n .reduce((result, breakpoint) => {\n const styles = Object.keys(dynamicTokens[breakpoint]).reduce((cssVars, path) => `\n\t\t\t\t${cssVars}\n\t\t\t\t${createCSSVarName(path)}: ${dynamicTokens[breakpoint][path]};\n\t\t\t`, '');\n return breakpoint === '0'\n ? `${styles}\n\t\t\t\t\t${result}`\n : `${result}\n\t\t\t\t\t@media (min-width: ${breakpoint}) {\n\t\t\t\t\t\t${styles}\n\t\t\t\t\t}`;\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';\n\ninterface LayerManagerWrapperProps {\n children: JSX.Element;\n theme?: ThemeName;\n store: Store;\n env: FeatureAppEnvironment;\n useOneFormContext?: any;\n close?: CloseHandleV2;\n}\n\nexport function LayerManagerWrapper({ children, theme, store, env, close }: LayerManagerWrapperProps) {\n const sentryHub = getSentryHub();\n\n return (\n \n \n \n \n \n {}} closeLayerCallback={() => {}}>\n {children}\n \n \n \n \n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { Loader } from '@googlemaps/js-api-loader';\nimport { getGoogleApiKey } from 'src/bff';\n\nconst libraries = ['places'];\n\nexport default function LoadScriptInstance(props: any) {\n const [isLoaded, setIsLoaded] = useState(false);\n\n const loader = new Loader({\n apiKey: getGoogleApiKey(),\n libraries: ['places'],\n language: 'es',\n });\n\n useEffect(() => {\n const useLoader = async () => {\n const load = await loader.load();\n setIsLoaded(true);\n props.onMapLoad();\n };\n useLoader();\n }, []);\n\n return isLoaded ? props.children : null;\n}\n","import { BBox } from 'geojson';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { DealersData, Geometry, Installation, isDealerData, OneFormState, SelectedTab } from 'src/types';\nimport { Points } from 'src/types';\nimport { isGooglePlace, Suggestion } from 'src/feature-app/NewMap';\nimport { getGeometry, getPoints, getUserGeolocation, getUserSuggestion } from '../redux/selectors';\nimport { generateClusters } from 'src/feature-app/NewMap/generate-clusters';\nimport { getLocationOfDealerWithoutLoadInstance } from 'src/feature-app/NewMap/utils';\n\nexport const MapGeneralControllerContext = React.createContext(null);\nexport const useMapGeneralController = (): MapGeneralControllerMethods =>\n React.useContext(MapGeneralControllerContext) as MapGeneralControllerMethods;\n\ninterface MapGeneralControllerMethods {\n cardsDistanceRef: React.MutableRefObject;\n cardsTimeRef: React.MutableRefObject;\n centerInGeoLocatedCenter: () => void;\n centerMap: (newCenter: google.maps.LatLng) => void;\n centerToCalculateDistance: React.MutableRefObject;\n clusters: Points[];\n geoLocatedCenterRef: React.MutableRefObject;\n getNewClusters: () => void;\n handleApiLoaded: (map: google.maps.Map, maps: any) => void;\n handleChangeInMapZoom: (zoomIn: boolean) => void;\n handleClusterClick: (point: Points, isCluster?: boolean, recalculateClusters?: boolean) => void;\n handleHoverPoint: (p: Points) => void;\n handleMapMovement: () => void;\n handlePointClickAndCarouselMove: (p: Points, s?: boolean, preSelectedOrderValue?: SelectedTab) => void;\n handleSelectedPoint: (p: Points) => void;\n hoverPoint: Points;\n resetMap: () => void;\n mapHasMoved: boolean;\n mapMaxZoom: number;\n markerDimensions: MarkerDimensions;\n searchIsDealer: boolean;\n searchMoreDealers: () => void;\n moreDealersSearched: boolean;\n setMoreDealersSearched: React.Dispatch>;\n selectedPoint: Points;\n setSearchIsDealer: React.Dispatch>;\n superClusterRef: any;\n userIsGeoLocated: boolean;\n centerRef: React.MutableRefObject;\n}\nexport interface MarkerDimensions {\n width: number;\n height: number;\n}\n\nconst markerDimensions: MarkerDimensions = { width: 32, height: 44 };\nconst mapMaxZoom = 16;\n\nconst MapGeneralController = React.memo(\n (props: {\n children: JSX.Element;\n points: Points[];\n geometry: Geometry;\n userSuggestion: Suggestion;\n userGeolocation: Suggestion;\n dealer?: DealersData;\n skipMapMovementOnClick?: boolean;\n }) => {\n const { points, geometry, children, userSuggestion, userGeolocation, dealer, skipMapMovementOnClick } = props;\n // const { debug } = useOneFormContext(); // Causa de los rerenders\n const boundsRef = useRef(null);\n const zoomRef = useRef(null);\n const centerRef = useRef(null);\n const geoLocatedCenterRef = useRef(null);\n const centerToCalculateDistance = useRef(null);\n const mapRef = useRef(null);\n const mapsRef = useRef(null);\n const [selectedPoint, setSelectedPoint] = useState(null);\n const [hoverPoint, setHoverPoint] = useState(null);\n const [clusters, setClusters] = useState([]);\n const superClusterRef = useRef(null);\n const cardsTimeRef = useRef([]);\n const cardsDistanceRef = useRef([]);\n const [mapHasMoved, setMapHasMoved] = useState(false);\n const [searchIsDealer, setSearchIsDealer] = useState(null);\n const [userIsGeoLocated, setUserIsGeoLocated] = useState(null);\n const zoomListenerRef = useRef(null);\n const [moreDealersSearched, setMoreDealersSearched] = useState(null);\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n if (!userSuggestion) return;\n setMapHasMoved(false);\n if (isGooglePlace(userSuggestion)) {\n setSearchIsDealer(false);\n } else {\n setSearchIsDealer(true);\n\n // Hay que preseleccionar el dealer elegido\n if (points) {\n const selectedCluster = points.find((cluster) => { \n if (cluster.properties.dealer) {\n return (\n (!isGooglePlace(userSuggestion) && isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === userSuggestion.kvps)\n ||\n (!isGooglePlace(userSuggestion) && !isDealerData(userSuggestion) &&\n cluster.properties.dealer.kvps === (userSuggestion as Installation).KVPSCode__c)\n );\n } else {\n return false;\n }\n });\n selectedCluster && handleSelectedPoint(selectedCluster);\n }\n\n }\n if (mapRef.current && mapsRef.current) {\n if (isGooglePlace(userSuggestion)) {\n initializeMapWithBounds(geometry.viewport);\n } else {\n if (geometry) {\n initalizeMapWithCenter(geometry.lat, geometry.lng);\n }\n }\n }\n }, [userSuggestion, points]);\n\n useEffect(() => {\n setMounted(true);\n return () => {\n mapRef.current = null;\n mapsRef.current = null;\n setMounted(false);\n };\n }, []);\n\n useEffect(() => {\n if (userGeolocation) {\n setUserIsGeoLocated(true);\n } else {\n setUserIsGeoLocated(false);\n geoLocatedCenterRef.current = null;\n }\n }, [userGeolocation]);\n\n const resetMap = () => {\n mapRef.current = null;\n mapsRef.current = null;\n };\n\n const handleApiLoaded = (map: google.maps.Map, maps: any) => {\n // En el caso de que se haya interactuado con el mapa y se oculte por alguna razón (calendario, filtros, etc),\n // se vuelve a crear una nueva instancia del mismo, perdiendo cualquier interacción creandose de nuevo el mapa\n // con la información inicial.\n if (!mapRef.current && !mapsRef.current) {\n mapRef.current = map;\n mapsRef.current = maps;\n\n window.map = map;\n window.maps = maps;\n setMapHasMoved(false);\n if (geometry && geometry.bounds) {\n // Caso de geolocalización o búsqueda de google\n initializeMapWithBounds(geometry.bounds);\n } else if (geometry && geometry.viewport) {\n // Caso de geolocalización o búsqueda de google\n initializeMapWithBounds(geometry.viewport);\n } else if (geometry && geometry.lat && geometry.lng) {\n // Caso dealer\n initalizeMapWithCenter(geometry.lat, geometry.lng);\n } else {\n // Caso Cita posventa Dealer. En este caso al no haber precargado el mapa anteriormente en el autosuggest no están las variables\n // de maps disponibles, por lo que se tienen que crear con el mapa que sea acaba de crear y sin usar LoadInstance.\n const { lat, lng } = getLocationOfDealerWithoutLoadInstance(dealer, maps);\n initalizeMapWithCenter(lat, lng);\n }\n setZoomListener(map, maps);\n } else {\n removeZoomListener(mapsRef.current);\n // Lógica para recrear el mapa antes de su ocultación.\n map.setCenter(centerRef.current);\n map.fitBounds(transformClusterBoundsToGoogleBounds(boundsRef.current));\n map.setZoom(zoomRef.current);\n\n mapRef.current = map;\n mapsRef.current = maps;\n setZoomListener(map, maps);\n }\n };\n\n const initializeMapWithBounds = (bounds: google.maps.LatLngBounds) => {\n handleSelectedPoint(null);\n // No debería ser necesario crear las siguientes variables, ya que con center y bounds funciona la primera carga.\n // Por alguna razón, después de seleccionar una cita y volver atrás da este error:\n // InvalidValueError: setCenter: not a LatLng or LatLngLiteral with finite coordinates: in property lat: not a number.\n // a pesar de que bounds es el mismo que en la primera carga y lat si que es un número.\n // Al calcular cada variable por separado no se produce este error.\n\n const { north, east, south, west } = getCardinalPoints(bounds);\n const sw = createLatLng(south, west);\n const ne = createLatLng(north, east);\n const newBounds = new mapsRef.current.LatLngBounds(sw, ne);\n const center = newBounds.getCenter();\n const lat = center.lat();\n const lng = center.lng();\n const latlng = createLatLng(lat, lng);\n\n mapRef.current.setCenter(latlng);\n mapRef.current.fitBounds(newBounds, 0);\n const clusterBounds: BBox = transformGoogleBoundsToClusterBounds(newBounds);\n if (isGooglePlace(userSuggestion) && userSuggestion.isGeoLocated) {\n geoLocatedCenterRef.current = center;\n }\n if (!geoLocatedCenterRef.current) {\n centerToCalculateDistance.current = center;\n } else {\n centerToCalculateDistance.current = geoLocatedCenterRef.current;\n }\n setTimeout(() => {\n mapRef.current.panTo(center);\n }, 0);\n setMapClusters(points, mapRef.current.getZoom(), clusterBounds, center);\n };\n\n const initalizeMapWithCenter = (lat: number, lng: number) => {\n const zoom = 16;\n const latlng = createLatLng(lat, lng);\n mapRef.current.setCenter(latlng);\n mapRef.current.setZoom(zoom);\n const bounds = getBounds();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n centerToCalculateDistance.current = latlng;\n setMapClusters(points, zoom, clusterBounds, latlng);\n };\n\n const setZoomListener = (map: google.maps.Map, maps: any) => {\n if (maps) {\n const listener = maps.event.addListener(map, 'zoom_changed', () => {\n const zoom = map.getZoom();\n // setMapClusters(points, zoom, boundsRef.current, centerRef.current);\n zoomRef.current = zoom;\n });\n zoomListenerRef.current = listener;\n }\n };\n\n const removeZoomListener = (maps: any) => {\n maps.event.removeListener(zoomListenerRef.current);\n };\n\n const setMapClusters = (\n points: Points[],\n zoom: number,\n bounds: BBox,\n center: google.maps.LatLng,\n param?: boolean\n ) => {\n // Solución al bug Uncaught RangeError: Maximum call stack size exceeded.\n\n if (zoom < 0) {\n return;\n }\n const { clusters, supercluster }: { clusters: Points[]; supercluster: any } = generateClusters(\n points,\n zoom,\n bounds\n );\n superClusterRef.current = supercluster;\n\n // En caso de que no encuentre dealers en la ubicación seleccionada en una búsqueda de google se hace zoom out\n // hasta que encuentre al menos 2. En caso de que sea una búsqueda de dealer, buscamos hasta encontrar 1.\n // Usamos isGooglePlace y no el flag the searchIsDealer porque en la primera carga no está disponible.\n let pointCount = getPointCount(clusters);\n\n if (pointCount > 1 && !isGooglePlace(userSuggestion)) {\n }\n\n if ((pointCount < 2 && isGooglePlace(userSuggestion)) || (pointCount === 0 && !isGooglePlace(userSuggestion))) {\n const { center, clusterBounds } = zoomOutMapForSearch(zoom);\n setMapClusters(points, zoom - 1, clusterBounds, center);\n return;\n }\n\n changeMapVariables(bounds, zoom, center);\n drawRectangle();\n\n if (userSuggestion && (!('isGooglePlace' in userSuggestion) || !userSuggestion.isGooglePlace) && searchIsDealer && !param) {\n const point = clusters.find((point) => {\n if (isDealerData(userSuggestion)) {\n return point.properties.dealer.kvps === (userSuggestion as DealersData).kvps;\n } else {\n return point.properties.dealer.kvps === (userSuggestion as Installation).KVPSCode__c;\n }\n });\n setClusters([point]);\n } else {\n setClusters(clusters);\n }\n };\n\n const getNewClusters = () => {\n resetCardReferences();\n const bounds = getBounds();\n const center = centerToCalculateDistance.current;\n const zoom = mapRef.current.getZoom();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n setSearchIsDealer(false);\n setMapClusters(points, zoom, clusterBounds, center, true);\n setMoreDealersSearched(true);\n setMapHasMoved(false);\n };\n\n /**\n * Función que hace zoom out, útil para realizar búsquedas de más talleres en caso de que los resultados no sean los deseados.\n * @param zoom\n */\n const zoomOutMapForSearch = (zoom: number) => {\n mapRef.current.setZoom(zoom);\n const bounds = mapRef.current.getBounds();\n const center = bounds.getCenter();\n const clusterBounds = transformGoogleBoundsToClusterBounds(bounds);\n return { bounds, center, clusterBounds };\n };\n\n /**\n * Devuelve el número de puntos que se encuentran dentro de los clusters.\n * @param clusters\n */\n const getPointCount = (clusters: Points[]): number => {\n return clusters.reduce((acc, cluster) => {\n if (cluster.properties.cluster) {\n return acc + cluster.properties.point_count;\n } else {\n return acc + 1;\n }\n }, 0);\n };\n\n /**\n * CTA Ver más talleres en la zona. Se hace un zoom out hasta que se encuentra mínimo un taller más\n */\n const searchMoreDealers = () => {\n setSearchIsDealer(false);\n setMapHasMoved(true);\n const { center, clusterBounds } = zoomOutMapForSearch(zoomRef.current);\n\n const { clusters } = generateClusters(points, zoomRef.current, clusterBounds);\n setMapClusters(points, zoomRef.current, clusterBounds, center, true);\n setMoreDealersSearched(true);\n let pointCount = getPointCount(clusters);\n\n if (pointCount === 1) {\n searchMoreDealers();\n }\n };\n\n /**\n * Las bounds de google maps van en referencia a SW y NE. No obstante las bounds necesarias para obtener los clusters van en referencia\n * NW y SE por lo que hay que obenter la equivalencia para que funcione correctamente.\n * @param googleBounds\n */\n const transformGoogleBoundsToClusterBounds = (googleBounds: google.maps.LatLngBounds): BBox => {\n const { north, east, south, west } = getCardinalPoints(googleBounds);\n\n return [west, south, east, north];\n };\n\n const transformClusterBoundsToGoogleBounds = (bounds: BBox): google.maps.LatLngBounds => {\n const sw = createLatLng(bounds[1], bounds[0]);\n const ne = createLatLng(bounds[3], bounds[2]);\n return new mapsRef.current.LatLngBounds(sw, ne);\n // const { north, east, south, west } = getCardinalPoints(bounds);\n\n // return [west, south, east, north];\n };\n\n const getCardinalPoints = (bounds: google.maps.LatLngBounds) => {\n const north = bounds.getNorthEast().lat();\n const east = bounds.getNorthEast().lng();\n const south = bounds.getSouthWest().lat();\n const west = bounds.getSouthWest().lng();\n\n return { north, east, south, west };\n };\n\n const getBounds = (): google.maps.LatLngBounds => mapRef.current.getBounds();\n\n /**\n * Transforma las coordenadas del point en coordenadas LatLng de Google Maps.\n * @param point\n */\n const getLatLngFromPoint = (point: Points): google.maps.LatLng =>\n createLatLng(point.geometry.coordinates[1], point.geometry.coordinates[0]);\n\n const createLatLng = (lat: number, lng: number): google.maps.LatLng => new mapsRef.current.LatLng(lat, lng);\n\n const changeMapVariables = (newBounds: BBox, zoom: number, center: google.maps.LatLng) => {\n // setBounds(newBounds);\n // mapRef.current.setZoom(zoom);\n boundsRef.current = newBounds;\n zoomRef.current = zoom;\n centerRef.current = center;\n if (isGooglePlace(userSuggestion) && !userGeolocation) {\n centerToCalculateDistance.current = center;\n }\n };\n\n const handleChangeInMapZoom = (zoomIn: boolean) => {\n const zoom = mapRef.current.getZoom();\n const newZoom = zoomIn ? zoom + 1 : zoom - 1;\n mapRef.current.setZoom(newZoom);\n\n handleMapMovement();\n };\n\n const handlePointClickAndCarouselMove = useCallback(\n (point: Points, scroll?: boolean, preSelectedOrderValue?: SelectedTab) => {\n handleSelectedPoint(point);\n\n if (scroll) {\n const cards = preSelectedOrderValue === 'horario' ? cardsTimeRef : cardsDistanceRef;\n const card = cards.current.find((el) => el.className.includes(point.properties.dealer.kvps));\n\n if (card) {\n // Añadir restriccion a solo desktop\n card.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n if (!skipMapMovementOnClick && checkIfPointIsInsideBounds(point)) {\n moveMapIfIsSlightlyOutBounds(point);\n } else {\n mapRef.current.panTo(getLatLngFromPoint(point));\n }\n },\n []\n );\n\n const handleSelectedPoint = useCallback((point: Points | null) => {\n setSelectedPoint(point);\n }, []);\n\n const handleHoverPoint = useCallback((point: Points | null) => {\n setHoverPoint(point);\n }, []);\n\n /**\n * Al clickar sobre un cluster se han de separar los dealers que contenga y hacer un zoom sobre la zona\n * sin perder los pines de la búsqueda anterior.\n * @param point\n * @param isCluster Este parámetro solo se usa cuando se clicka sobre una card para hacer el máximo zoom posible, ya\n * que si el pin se encuentra dentro de dos clusters no llega a mostrarlo correctamente con el expansion zoom.\n * @param recalculateClusters En mobile no funciona correctamente el recalculo de clusters ya que el mapa no está montado\n * y no se dispara el evento de zoom_changed por lo que necesitamos recalcular los clusters a mano para que al volver al mapa\n * estén los clusters correspondientes al nuevo zoom.\n */\n const handleClusterClick = (point: Points, isCluster?: boolean, recalculateClusters?: boolean) => {\n // breakCluster(clusterId);\n const parentCluster = clusters.find(\n (cluster) =>\n cluster.properties.cluster && (cluster.id === point.properties.parent_cluster_id || cluster.id === point.id)\n );\n if (parentCluster) {\n handleSelectedPoint(point);\n\n // Cálculo del zoom mínimo de exapansión + 1 para que se vean correctamente los nuevos pines en el mapa.\n const expansionZoom =\n isCluster && parentCluster.properties.point_count > 2\n ? mapMaxZoom - 3\n : Math.min(superClusterRef.current.getClusterExpansionZoom(parentCluster.id), mapMaxZoom);\n const center = createLatLng(point.geometry.coordinates[1], point.geometry.coordinates[0]);\n\n mapRef.current.setCenter(center);\n mapRef.current.setZoom(expansionZoom);\n zoomRef.current = expansionZoom;\n\n if (recalculateClusters || recalculateClusters === undefined) {\n setMapClusters(points, expansionZoom, boundsRef.current, center);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n }\n };\n\n const resetCardReferences = () => {\n cardsDistanceRef.current = [];\n cardsTimeRef.current = [];\n };\n\n /**\n * Comprueba si el point se encuentra dentro o fuera de los límites para centrar el mapa en caso de que esté fuera.\n * @param point\n */\n const checkIfPointIsInsideBounds = (point: Points): boolean => {\n const bounds = getBounds();\n if (bounds.contains(getLatLngFromPoint(point))) {\n return true;\n } else {\n return false;\n }\n };\n\n /**\n * Si el pin se encuentra visualmente fuera de los límites del mapa hay que moverlo para que aparezca entero.\n */\n const moveMapIfIsSlightlyOutBounds = (point: Points) => {\n const lat = point.geometry.coordinates[1];\n const lng = point.geometry.coordinates[0];\n const { north, east, south, west } = getCardinalPoints(getBounds());\n const pointLatLng = getLatLngFromPoint(point);\n const northPoint = createLatLng(north, lng);\n const eastPoint = createLatLng(lat, east);\n const southPoint = createLatLng(south, lng);\n const westPoint = createLatLng(lat, west);\n\n const northDistance = distanceInPx(pointLatLng, northPoint);\n const eastDistance = distanceInPx(pointLatLng, eastPoint);\n const southDistance = distanceInPx(pointLatLng, southPoint);\n const westDistance = distanceInPx(pointLatLng, westPoint);\n\n let y = calculateY(northDistance, southDistance);\n let x = null;\n\n if (eastDistance < markerDimensions.width) {\n x = calculateEastDistance(eastDistance, southDistance);\n }\n if (westDistance < markerDimensions.width) {\n x = -markerDimensions.width;\n }\n if (x || y) {\n mapRef.current.panBy(x, y);\n }\n };\n\n const calculateY = (northDistance: number, southDistance: number) => {\n const south = calculateSouthDistance(southDistance);\n const north = -calculateNorthDistance(northDistance);\n\n if (south) {\n return south;\n }\n return north;\n };\n\n /**\n * Este cálculo se realiza por separado ya que en mobile está el carousel por encima y requiere más lógica.\n * @param southDistance\n */\n const calculateSouthDistance = (southDistance: number): number | null => {\n if (window.innerWidth < 960) {\n if (southDistance < markerDimensions.height + 220) {\n return markerDimensions.height + 220;\n }\n } else {\n if (southDistance < markerDimensions.height) {\n return markerDimensions.height;\n }\n }\n return 0;\n };\n\n const calculateNorthDistance = (northDistance: number): number | null => {\n if (window.innerWidth < 960) {\n if (northDistance < markerDimensions.height + 100) {\n return markerDimensions.height + 100;\n }\n } else {\n if (northDistance < markerDimensions.height + 56) {\n return markerDimensions.height + 56;\n } else {\n return 0;\n }\n }\n return 0;\n };\n\n const calculateEastDistance = (eastDistance: number, southDistance: number): number | null => {\n if (window.innerWidth < 959) {\n if (eastDistance < markerDimensions.width + 69 && southDistance < markerDimensions.height + 197) {\n return markerDimensions.width + 69;\n } else {\n return markerDimensions.height;\n }\n } else {\n return markerDimensions.width;\n }\n };\n /**\n * Devuelve la distancia en píxels entre dos puntos del mapa.\n *\n * @param position1\n * @param position2\n */\n const distanceInPx = (position1: google.maps.LatLng, position2: google.maps.LatLng) => {\n var p1 = mapRef.current.getProjection().fromLatLngToPoint(position1);\n var p2 = mapRef.current.getProjection().fromLatLngToPoint(position2);\n\n var pixelSize = Math.pow(2, -mapRef.current.getZoom());\n\n var d = Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)) / pixelSize;\n\n return d;\n };\n\n /**\n * Dibuja las bounds en el mapa.\n * @param bounds\n */\n const drawRectangle = () => {\n new mapsRef.current.Rectangle({\n strokeColor: '#FF0000',\n strokeOpacity: 0, //debug ? 0.8 : 0,\n strokeWeight: 2,\n fillColor: '#FF0000',\n fillOpacity: 0, //debug ? 0.35 : 0,\n map: mapRef.current,\n bounds: getBounds(),\n });\n };\n\n const centerInGeoLocatedCenter = useCallback(() => {\n mapRef.current.setCenter(geoLocatedCenterRef.current);\n }, []);\n\n const centerMap = useCallback((newCenter: google.maps.LatLng) => {\n mapRef.current.setCenter(newCenter);\n }, []);\n\n const handleMapMovement = () => {\n if (!mapHasMoved) {\n setMapHasMoved(true);\n }\n };\n\n return (\n \n {children}\n \n );\n }\n);\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n points: getPoints(state),\n geometry: getGeometry(state),\n userSuggestion: getUserSuggestion(state),\n userGeolocation: getUserGeolocation(state),\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(MapGeneralController);\n\nexport { ConnectedComponent as MapGeneralController };\n","\nexport default function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n\n const m = (left + right) >> 1;\n\n select(ids, coords, m, left, right, depth % 2);\n\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\n\nfunction select(ids, coords, k, left, right, inc) {\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n\n const t = coords[2 * k + inc];\n let i = left;\n let j = right;\n\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) i++;\n while (coords[2 * j + inc] > t) j--;\n }\n\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);\n else {\n j++;\n swapItem(ids, coords, j, right);\n }\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\n\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\n\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}\n","\nexport default function within(ids, coords, qx, qy, r, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}\n","\nimport sort from './sort';\nimport range from './range';\nimport within from './within';\n\nconst defaultGetX = p => p[0];\nconst defaultGetY = p => p[1];\n\nexport default class KDBush {\n constructor(points, getX = defaultGetX, getY = defaultGetY, nodeSize = 64, ArrayType = Float64Array) {\n this.nodeSize = nodeSize;\n this.points = points;\n\n const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n\n const ids = this.ids = new IndexArrayType(points.length);\n const coords = this.coords = new ArrayType(points.length * 2);\n\n for (let i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n\n sort(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n\n range(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n\n within(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n}\n","\nexport default function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n let x, y;\n\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n\n const m = Math.floor((left + right) / 2);\n\n x = coords[2 * m];\n y = coords[2 * m + 1];\n\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n\n const nextAxis = (axis + 1) % 2;\n\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n\n return result;\n}\n","\nimport KDBush from 'kdbush';\n\nconst defaultOptions = {\n minZoom: 0, // min zoom to generate clusters on\n maxZoom: 16, // max zoom level to cluster the points on\n minPoints: 2, // minimum points to form a cluster\n radius: 40, // cluster radius in pixels\n extent: 512, // tile extent (radius is calculated relative to it)\n nodeSize: 64, // size of the KD-tree leaf node, affects performance\n log: false, // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n\n // a reduce function for calculating custom cluster properties\n reduce: null, // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\n\nconst fround = Math.fround || (tmp => ((x) => { tmp[0] = +x; return tmp[0]; }))(new Float32Array(1));\n\nexport default class Supercluster {\n constructor(options) {\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n\n load(points) {\n const {log, minZoom, maxZoom, nodeSize} = this.options;\n\n if (log) console.time('total time');\n\n const timerId = `prepare ${ points.length } points`;\n if (log) console.time(timerId);\n\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n let clusters = [];\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n\n if (log) console.timeEnd('total time');\n\n return this;\n }\n\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n }\n\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n for (const id of ids) {\n const c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n\n if (children.length === 0) throw new Error(errorMsg);\n\n return children;\n }\n\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n\n return leaves;\n }\n\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {extent, radius} = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n\n const tile = {\n features: []\n };\n\n this._addTileFeatures(\n tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom),\n tree.points, x, y, z2, tile);\n\n if (x === 0) {\n this._addTileFeatures(\n tree.range(1 - p / z2, top, 1, bottom),\n tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(\n tree.range(0, top, p / z2, bottom),\n tree.points, -1, y, z2, tile);\n }\n\n return tile.features.length ? tile : null;\n }\n\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n\n for (const child of children) {\n const props = child.properties;\n\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n\n return skipped;\n }\n\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n\n const f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (px * z2 - x)),\n Math.round(this.options.extent * (py * z2 - y))\n ]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n\n if (id !== undefined) f.id = id;\n\n tile.features.push(f);\n }\n }\n\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+z), this.options.maxZoom + 1));\n }\n\n _cluster(points, zoom) {\n const clusters = [];\n const {radius, extent, reduce, minPoints} = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n\n // loop through each point\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n // if we've already visited the point at this zoom level, skip it\n if (p.zoom <= zoom) continue;\n p.zoom = zoom;\n\n // find all nearby points\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n // filter out neighbors that are already processed\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n }\n\n // if there were neighbors to merge, and there are enough points to form a cluster\n if (numPoints > numPointsOrigin && numPoints >= minPoints) {\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = (i << 5) + (zoom + 1) + this.points.length;\n\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n wy += b.y * numPoints2;\n\n b.parentId = id;\n\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n\n } else { // left points as unclustered\n clusters.push(p);\n\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n\n return clusters;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return (clusterId - this.points.length) >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n}\n\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x), // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity, // the last zoom the cluster was processed at\n id, // encodes index of the first child of the cluster and its zoom level\n parentId: -1, // parent cluster id\n numPoints,\n properties\n };\n}\n\nfunction createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)), // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity, // the last zoom the point was processed at\n index: id, // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n };\n}\n\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\n\nfunction getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev =\n count >= 10000 ? `${Math.round(count / 1000) }k` :\n count >= 1000 ? `${Math.round(count / 100) / 10 }k` : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = (0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI);\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\n\nfunction extend(dest, src) {\n for (const id in src) dest[id] = src[id];\n return dest;\n}\n\nfunction getX(p) {\n return p.x;\n}\nfunction getY(p) {\n return p.y;\n}\n","import { BBox } from 'geojson';\nimport Supercluster from 'supercluster';\n\nexport const generateClusters = (points: any[], zoom: number, bounds: BBox): { clusters: any; supercluster: any } => {\n const options = { radius: 40, maxZoom: 20 };\n\n // const superclusterRef = useRef>();\n let supercluster;\n\n // const pointsRef = useRef>>();\n const zoomInt = Math.round(zoom);\n\n if (!supercluster) {\n supercluster = new Supercluster(options);\n supercluster.load(points);\n }\n\n if (bounds) {\n const clusters = supercluster.getClusters(bounds, zoomInt);\n return { clusters, supercluster };\n }\n return { clusters: null, supercluster: null };\n};\n","import { getReverseGeocode } from 'src/feature-app';\nimport { Geometry } from 'src/types';\n\nfunction getCurrentPosition(options = { timeout: 10000 }): Promise {\n return new Promise((resolve, reject) => {\n navigator.geolocation.getCurrentPosition(resolve, reject, options);\n });\n}\n\nexport const handleLocation = async (): Promise<{ geometry: Geometry; name: string }> => {\n try {\n const { coords } = await getCurrentPosition();\n const { latitude, longitude } = coords;\n const { geometry, name } = await getReverseGeocode({ lat: latitude, lng: longitude });\n\n return { geometry, name };\n // Handle coordinates\n } catch (error) {\n // Handle error\n console.error(error);\n return { geometry: null, name: '' };\n }\n};\n","import { useEffect, useState } from 'react';\nimport { Points } from 'src/types';\n\nexport const usePinState = (selectedPoint: Points, hoverPoint: Points, point: Points) => {\n const [isActive, setIsActive] = useState(false);\n const [isHover, setIsHover] = useState(false);\n\n useEffect(() => {\n if (selectedPoint) {\n if (isCluster(point)) {\n sameClusterId(selectedPoint, point) ? setIsActive(true) : setIsActive(false);\n } else {\n sameKvps(selectedPoint, point) ? setIsActive(true) : setIsActive(false);\n }\n }\n\n if (hoverPoint) {\n if (window.innerWidth < 959) {\n // Hover solo se aplica a desktop\n setIsHover(false);\n } else {\n if (isCluster(point)) {\n sameClusterId(hoverPoint, point) ? setIsHover(true) : setIsHover(false);\n } else {\n sameKvps(hoverPoint, point) ? setIsHover(true) : setIsHover(false);\n }\n }\n }\n }, [selectedPoint, hoverPoint]);\n\n return { isActive, isHover };\n};\n\nconst isCluster = (point: Points) => point.properties.cluster;\n\nconst sameClusterId = (selectedPoint: Points, point: Points) => {\n if (selectedPoint.properties.parent_cluster_id && point.id) {\n return selectedPoint.properties.parent_cluster_id === point.id;\n }\n return false;\n};\nconst sameKvps = (selectedPoint: Points, point: Points) => {\n if (\n selectedPoint.properties &&\n selectedPoint.properties.dealer &&\n point.properties &&\n point.properties.dealer &&\n selectedPoint.properties.dealer.kvps === point.properties.dealer.kvps\n ) {\n return true;\n }\n return false;\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { debounce } from 'src/feature-app';\n\nexport function useAddressPredictions(input: string, selectedValue: boolean): any[] {\n\n \n const [predictions, setPredictions] = useState([]);\n\n const autocomplete = useRef();\n\n if (!autocomplete.current && window.google) {\n autocomplete.current = new window.google.maps.places.AutocompleteService();\n }\n\n async function getPlacePredictions(input: string) {\n await autocomplete.current.getPlacePredictions(\n { input, types: ['geocode'], componentRestrictions: { country: 'es' } },\n (predictions) => {\n // El type regions también devuelve como resultado el país, por lo que hay que filtrarlo.\n if (predictions) {\n predictions = predictions.filter((prediction) => !prediction.types.includes('country'));\n setPredictions(predictions.map((prediction) => prediction.description));\n }\n }\n );\n }\n\n const debouncedGetPlacePredictions = useCallback(debounce(getPlacePredictions, 500), []);\n\n useEffect(() => {\n if (!selectedValue && input.length > 2) {\n debouncedGetPlacePredictions(input);\n }\n }, [input]);\n\n return predictions;\n}\n","import { checkIfMidDay, checkIfMorning, getNormalizedDate } from 'src/feature-app/NewMap';\nimport {\n getYYYYMMDDx, \n hourAndMinute,\n} from 'src/feature-app';\n\nexport const getFranjaAndDayFrom = (from: number): { day: string; franjaHoraria: 'Mañana' | 'Mediodía' | 'Tarde' } => {\n const day = getYYYYMMDDx(Number(from));\n const hour = hourAndMinute(from);\n const normalizdedDate = getNormalizedDate(hour);\n const franjaHoraria = checkIfMorning(normalizdedDate)\n ? 'Mañana'\n : checkIfMidDay(normalizdedDate)\n ? 'Mediodía'\n : 'Tarde';\n\n return { day, franjaHoraria };\n};\n","import {\n Assessors,\n Slot,\n} from 'src/types';\nimport dayjs from 'dayjs';\n\n\nexport const createNoDmsSlotAndAssessor = (franjaHoraria: string, day: string): { slot: Slot; assessor: Assessors } => {\n const from = Number(dayjs.utc(`${day} 01:00`, 'YYYY-MM-DD HH:mm').format('x'));\n const to = Number(dayjs.utc(`${day} 23:59`, 'YYYY-MM-DD HH:mm').format('x'));\n const code = franjaHoraria === 'Mañana' ? 'MANANA' : franjaHoraria === 'Mediodía' ? 'MEDIODIA' : 'TARDE';\n const assessor: Assessors = { code: '0', name: 'Todos' };\n const slot: Slot = {\n from,\n to,\n replacementCarServiceAvailable: false,\n dayMoment: {\n code,\n name: franjaHoraria,\n },\n assessorCode: '0',\n };\n\n return { slot, assessor };\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport { Calendar, FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useMapGeneralController } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { Horario, OneFormState } from 'src/types';\nimport { getDistanceFromLatLngCenter } from 'src/feature-app/NewMap';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { usePinState } from 'src/feature-app/NewMap/usePinState';\nimport { useIsComerciales } from 'src/feature-app';\n\ninterface BoxCardProps {\n selected?: boolean;\n isCarousel: boolean;\n isHover?: boolean;\n isFirstDesktop?: boolean;\n greyCard?: boolean;\n iDBuzzExclusive?: boolean;\n}\n\nconst BoxCard = styled.div`\n width: 100%;\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '20px')};\n padding: ${(props) => (props.isCarousel ? '12px' : '20px')};\n border: ${(props) =>\n props.selected && props.greyCard && !props.isCarousel\n ? '2px solid #6A767D'\n : props.greyCard && !props.isCarousel\n ? '1px solid #6A767D'\n : props.selected && !props.isCarousel\n ? '2px solid #FFFFFF'\n : props.isCarousel\n ? 'none'\n : '1px solid rgba(255,255,255,0.44)'};\n :hover {\n border: ${(props) => (\n props.isCarousel\n ? 'none'\n : props.selected && props.greyCard\n ? '2px solid #6A767D'\n : props.greyCard\n ? '1px solid #6A767D'\n : props.selected\n ? '2px solid #FFFFFF'\n : '1px solid #4cc7f4')};\n }\n\n @media all and (min-width: 560px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '24px')};\n padding: 20px;\n }\n @media screen and (min-width: 960px) {\n .main {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #001e50;'\n : props.isHover\n ? '1px solid #0040C5'\n : '1px solid #DFE4E8'};\n }\n .inverted {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #FFFFFF'\n : props.isHover\n ? '1px solid #4cc7f4'\n : '1px solid rgba(255,255,255,0.44)'};\n }\n \n }\n @media all and (min-width: 1600px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop || props.iDBuzzExclusive ? '0' : '28px')};\n }\n`;\n\ninterface isCarouselProps {\n isCarousel: boolean;\n}\n\nconst CTAVerMasHorasWrapper = styled.div`\n button {\n color: #ffffff;\n font-size: ${(props) => (props.isCarousel ? '12px' : null)};\n svg {\n height: ${(props) => (props.isCarousel ? '10px' : null)};\n width: ${(props) => (props.isCarousel ? '10px' : null)};\n }\n }\n`;\n\nconst EllipsisTextWrapper = styled.p<{ greyCard?: boolean }>`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 0px;\n margin-bottom: 0px;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#FFFFFF')};\n`;\nconst GreyText = styled.span<{ greyCard?: boolean }>`\n color: ${(props) => (props.greyCard ? '#6A767D' : '#FFFFFF')};\n`;\nconst SVGSize = styled.div<{ greyCard: boolean }>`\n padding-left: 16px;\n svg {\n height: 20px;\n width: auto;\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n`;\nconst CustomCTA = styled.button<{ greyCard?: boolean }>`\n height: 32px;\n width: max-content;\n padding: 8px 16px;\n border: none;\n cursor: pointer;\n border-radius: 22px;\n display: flex;\n align-items: center;\n background-color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n color: ${(props) => props.greyCard ? '#DFE4E8' : '#001E50'};\n :hover {\n background-color: ${(props) => props.greyCard ? '#6A767D' : 'rgba(255,255,255,0.90)'};\n }\n`;\nconst CustomTerciayCTA = styled.button<{ greyCard?: boolean }>`\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n display: flex;\n border: none;\n cursor: pointer;\n background: none;\n align-items: center;\n padding:0 0 2px;\n border-bottom: ${(props) => props.greyCard ? '1px solid #6A767D' : '1px solid #FFFFFF'};\n :hover {\n background-color: ${(props) => props.greyCard ? '#6A767D' : 'rgba(255,255,255,0.90)'};\n }\n svg{\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n div {\n color: ${(props) => props.greyCard ? '#6A767D' : '#FFFFFF'};\n }\n`;\nconst ExclusiveIDBuzz = styled.span`\n align-items: center;\n background-color: #DFC526;\n border-radius: 20px;\n color: #001E50;\n display: flex;\n font-size: 10px;\n height: 21px;\n justify-content: center;\n position: relative;\n right: 10px;\n width: 116px;\n top:10.5px;\n @media all and (min-width: 560px) {\n right: 20px;\n }\n @media all and (min-width: 960px) {\n right: 0;\n }\n`\n\ninterface DealerCardProps {\n distanceFromCenter: string;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n // center?: Center,\n isCarousel: boolean;\n dealerInfo: any;\n point: Points;\n slots: any;\n handleShowSlots?: (point: Points) => string | null;\n isCitaPosventa?: boolean;\n isFirstDesktop?: boolean;\n carPickupSelected?: boolean;\n replacementCarSelected?: boolean;\n}\n\nexport const NewDealerCard = React.memo((props: DealerCardProps) => {\n const {\n distanceFromCenter,\n isCarousel,\n dealerInfo,\n point,\n handleShowSlots,\n isCitaPosventa,\n isFirstDesktop,\n carPickupSelected,\n replacementCarSelected\n } = props;\n const isComerciales = useIsComerciales();\n const { suggestionIsAddress } = useSelector((state: OneFormState) => state.formInfo);\n const dealerCompletAdress = `${dealerInfo.markerInfo.dealerInfo.address}, ${dealerInfo.markerInfo.dealerInfo.zipCode} ${dealerInfo.markerInfo.dealerInfo.city}`;\n const {\n centerToCalculateDistance,\n handlePointClickAndCarouselMove,\n handleHoverPoint,\n hoverPoint,\n selectedPoint,\n userIsGeoLocated,\n handleClusterClick,\n } = useMapGeneralController();\n const dispatch = useDispatch();\n // Las instalaciones con codInstalacion del array son excluusivas para IDBuzz\n const installationsIDBuzz = [\n '0300W',\n '03910',\n '03394',\n '0311Q',\n '0311X',\n '52VH1',\n '0321C',\n '30559',\n '03200',\n '53V50',\n '0310W',\n '03917',\n '30083'\n ]\n const { isActive, isHover } = usePinState(selectedPoint, hoverPoint, point);\n const [greyCard, setGreyCard] = useState(false);\n const codInstalacion = point.properties?.dealer?.codInstalacion;\n const iDBuzzExclusive = installationsIDBuzz.includes(codInstalacion) && isComerciales;\n\n const handleIDBuzzExclusive = () => {\n const iDBuzzExlusiveAndComerciales = isComerciales && iDBuzzExclusive\n dispatch({ type: 'UPDATE_FIELDS', payload: { idBuzzExclusive: iDBuzzExlusiveAndComerciales } });\n }\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n <>\n {iDBuzzExclusive && isComerciales &&\n \n Exclusivo para ID.Buzz\n \n }\n {\n e.preventDefault();\n if (isComerciales) {\n handleIDBuzzExclusive()\n }\n if (point.properties.parent_cluster_id) {\n if (window.innerWidth <= 959) {\n handleClusterClick(point, true, true);\n } else {\n handleClusterClick(point, true);\n }\n } else {\n handlePointClickAndCarouselMove(point);\n }\n }}\n onMouseEnter={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(point);\n }\n }}\n onMouseLeave={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(null);\n }\n }}\n >\n
\n {isCarousel ? (\n <>\n {/*card para el carousel*/}\n \n
\n {\n userIsGeoLocated || suggestionIsAddress ? (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n\n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n {dealerInfo.name ? dealerInfo.name : null}\n \n )\n }\n
\n \n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n

\n {dealerCompletAdress}\n

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

\n \n {dealerCompletAdress}\n \n

\n
\n
\n\n {handleShowSlots && handleShowSlots(point) !== null ? (\n \n \n \n {handleShowSlots(point)}\n \n \n {\n point.properties.dealer.dmsInfo ? (\n
\n {\n point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null\n }\n {\n point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null\n }\n
\n ) : null\n }\n \n )\n : null\n }\n \n )}\n {isCitaPosventa ? () : }\n
\n \n \n );\n});\n\nconst CitaPosventaCTAs = (props: DealerCardProps) => {\n const {\n carPickupSelected,\n dealerInfo,\n handleSeleccionarOnClick,\n handleShowCalendarOnClick,\n handleShowSlots,\n isCarousel,\n point,\n replacementCarSelected,\n } = props;\n\n const trackingManager = useTrackingManager();\n\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n\n const [greyCard, setGreyCard] = useState(false);\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n return !dealerInfo.dmsInfo || !dealerInfo.dmsInfo.dmsAvailable || handleShowSlots && handleShowSlots(point) === null ? (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver horario',\n },\n dealerInfo\n );\n\n handleShowCalendarOnClick(point);\n }}\n >\n \n Ver calendario\n \n \n {\n point.properties.dealer.dmsInfo ? (\n
\n {\n point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null\n }\n {\n point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null\n }\n
\n ) : null\n }\n \n ) : (\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n \n Seleccionar\n \n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Ver más horas',\n },\n dealerInfo\n );\n handleShowCalendarOnClick(point);\n }}\n >\n \n
\n \n Ver más horas\n \n
\n \n
\n \n );\n};\n\nconst LeadsCTAs = (props: DealerCardProps) => {\n const { handleSeleccionarOnClick, dealerInfo, point } = props;\n\n const trackingManager = useTrackingManager();\n\n return (\n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n Seleccionar\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport {\n styled,\n Layout,\n Breakpoints,\n} from '@volkswagen-onehub/components-core';\nimport { Points } from 'src/types';\nimport { useMapGeneralController } from 'src/feature-app';\nimport { SelectedTab } from 'src/types';\n\nconst TabsWrapper = styled.div`\n width: 100%;\n height: 100%;\n padding-left: 5px;\n padding-top: 5px;\n @media all and (min-width: 960px) {\n /* width: 380px; */\n /* Falta ver como se comporta este width: 100% con el scroll */\n width: 100%;\n }\n\n & > div {\n @media all and (min-width: 960px) {\n height: calc(100vh - 174px);\n overflow-y: auto;\n padding-bottom: 24px;\n }\n @media all and (min-width: 1600px) {\n height: calc(100vh - 200px);\n }\n }\n`;\n\nconst WidthWrapper = styled.div`\n width: 100vw;\n @media all and (min-width: 960px) {\n width: 100%;\n }\n`;\n\ninterface SeleccionDealerTabsProps {\n pointsByDistance?: Points[];\n pointsByTime?: Points[];\n isTimeSelected?: boolean;\n setIsTimeSelected?: React.Dispatch>;\n renderPoints: (points: Points[], isTime?: boolean) => JSX.Element[];\n setPreSelectedOrderValue?: React.Dispatch>;\n preSelectedOrderValue?: string;\n pointsToList: Points[];\n}\n\nexport function SeleccionDealerTabs(props: SeleccionDealerTabsProps) {\n const {\n pointsByDistance,\n pointsByTime,\n isTimeSelected,\n setIsTimeSelected,\n renderPoints,\n setPreSelectedOrderValue,\n preSelectedOrderValue,\n pointsToList,\n } = props;\n const { clusters } = useMapGeneralController();\n\n const [defaultIndex, setDefaultIndex] = useState(0);\n\n useEffect(() => {\n if (preSelectedOrderValue && preSelectedOrderValue === 'horario') {\n setDefaultIndex(1);\n } else {\n setDefaultIndex(0);\n }\n }, [preSelectedOrderValue]);\n\n return (\n \n \n {renderPoints(pointsToList, true)}\n\n {/* \n \n Ordenar por:\n \n */}\n\n {/* \n {\n setDefaultIndex(index);\n if (index === 0) {\n setPreSelectedOrderValue('ubicacion');\n } else {\n setPreSelectedOrderValue('horario');\n }\n }}\n defaultIndex={defaultIndex}\n >\n {{\n title: 'Ubicación',\n content: renderPoints(pointsToList, false),\n key: 'ubicacion',\n }}\n {{ title: 'Horario', content: renderPoints(pointsToList, true), key: 'horario' }}\n \n */}\n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport { css } from 'styled-components';\n\ninterface styledWrapperProps { \n notALayer?: boolean;\n isFiltrosSuggest: boolean;\n isLocating?: boolean;\n inputFocus?: boolean;\n formTheme?: string;\n isModeloSuggest?: boolean;\n isFullScreen?: boolean;\n goUp?: boolean;\n autoWidth?: boolean;\n}\n\n\nexport const MagnifierLabel = styled.div`\n color: ${(props) => (props.isFiltrosSuggest || props.formTheme === 'inverted' ? '#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 === 'inverted'\n ? '#6A767D' :'#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\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 === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\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 padding: 9px 16px;\n border-radius: 8px;\n box-shadow: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '0 0 0 1px #6A767D' : '0 0 0 1px #dfe4e8'\n : props.inputFocus\n ? '0 0 0 2px #00B0F0'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '0 0 0 1px #ffffff' : '0 0 0 1px #001E50'\n };\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: transparent;\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\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 === 'inverted'\n ? '#6A767D' : '#dfe4e8' \n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\n }\n /* Firefox 4-18 */\n :-moz-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\n opacity: 1;\n }\n /* Firefox 19+ */\n ::-moz-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\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 === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\n }\n /* Edge */\n ::-ms-input-placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\n }\n /* MODERN BROWSER */\n ::placeholder {\n color: ${(props) =>\n props.isLocating\n ? props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#6A767D' : '#dfe4e8'\n : props.isFiltrosSuggest || props.formTheme === 'inverted'\n ? '#ffffff' : '#001e50'\n };\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 #cccccc;\n\tborder-radius: 4px;\n background: #ffffff; \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' : '53px'};\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\nexport const SuggestionWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: flex-start;\n text-align: left;\n color: #001e50;\n`;\n","import React, { Component } from 'react';\n\nconst style = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nexport default class GoogleMapMap extends Component {\n shouldComponentUpdate() {\n return false; // disable react on this div\n }\n\n render() {\n const { registerChild } = this.props;\n return
;\n }\n}\n","import EventEmitter from 'eventemitter3';\n\nexport default class MarkerDispatcher extends EventEmitter {\n constructor(gmapInstance) {\n super();\n this.gmapInstance = gmapInstance;\n }\n\n getChildren() {\n return this.gmapInstance.props.children;\n }\n\n getMousePosition() {\n return this.gmapInstance.mouse_;\n }\n\n getUpdateCounter() {\n return this.gmapInstance.updateCounter_;\n }\n\n dispose() {\n this.gmapInstance = null;\n this.removeAllListeners();\n }\n}\n","// https://github.com/acdlite/recompose/blob/master/src/packages/recompose/utils/omit.js\nconst omit = (obj, keys) => {\n const { ...rest } = obj;\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key in rest) {\n delete rest[key];\n }\n }\n return rest;\n};\n\nexport default omit;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule shallowEqual\n * @typechecks\n * @flow\n */\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n}\n\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (\n typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null\n ) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n for (let i = 0; i < keysA.length; i++) {\n if (\n !hasOwnProperty.call(objB, keysA[i]) ||\n !is(objA[keysA[i]], objB[keysA[i]])\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nexport default shallowEqual;\n/* src: https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/shallowEqual.js */\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\n// utils\nimport omit from './utils/omit';\nimport shallowEqual from './utils/shallowEqual';\n\nconst mainStyle = {\n width: '100%',\n height: '100%',\n left: 0,\n top: 0,\n margin: 0,\n padding: 0,\n position: 'absolute',\n};\n\nconst style = {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n backgroundColor: 'transparent',\n position: 'absolute',\n};\n\nexport default class GoogleMapMarkers extends Component {\n /* eslint-disable react/forbid-prop-types */\n static propTypes = {\n geoService: PropTypes.any,\n style: PropTypes.any,\n distanceToMouse: PropTypes.func,\n dispatcher: PropTypes.any,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n getHoverDistance: PropTypes.func,\n insideMapPanes: PropTypes.bool,\n prerender: PropTypes.bool,\n };\n /* eslint-enable react/forbid-prop-types */\n\n static defaultProps = {\n insideMapPanes: false,\n prerender: false,\n };\n\n constructor(props) {\n super(props);\n\n this.dimensionsCache_ = {};\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.allowMouse_ = true;\n\n this.state = { ...this._getState(), hoverKey: null };\n }\n\n componentDidMount() {\n this.props.dispatcher.on('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.on(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.on('kON_CLICK', this._onChildClick);\n this.props.dispatcher.on('kON_MDOWN', this._onChildMouseDown);\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n if (this.props.experimental === true) {\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(\n omit(this.state, ['hoverKey']),\n omit(nextState, ['hoverKey'])\n )\n );\n }\n\n return (\n !shallowEqual(this.props, nextProps) ||\n !shallowEqual(this.state, nextState)\n );\n }\n\n componentWillUnmount() {\n this.props.dispatcher.removeListener('kON_CHANGE', this._onChangeHandler);\n this.props.dispatcher.removeListener(\n 'kON_MOUSE_POSITION_CHANGE',\n this._onMouseChangeHandler\n );\n this.props.dispatcher.removeListener('kON_CLICK', this._onChildClick);\n this.props.dispatcher.removeListener('kON_MDOWN', this._onChildMouseDown);\n\n this.dimensionsCache_ = null;\n }\n\n _getState = () => ({\n children: this.props.dispatcher.getChildren(),\n updateCounter: this.props.dispatcher.getUpdateCounter(),\n });\n\n _onChangeHandler = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const prevChildCount = (this.state.children || []).length;\n const state = this._getState();\n\n this.setState(\n state,\n () =>\n (state.children || []).length !== prevChildCount &&\n this._onMouseChangeHandler()\n );\n };\n\n _onChildClick = () => {\n if (this.props.onChildClick) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // click works only on hovered item\n this.props.onChildClick(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseDown = () => {\n if (this.props.onChildMouseDown) {\n if (this.hoverChildProps_) {\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n // works only on hovered item\n this.props.onChildMouseDown(hoverKey, childProps);\n }\n }\n };\n\n _onChildMouseEnter = (hoverKey, childProps) => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n if (this.props.onChildMouseEnter) {\n this.props.onChildMouseEnter(hoverKey, childProps);\n }\n\n this.hoverChildProps_ = childProps;\n this.hoverKey_ = hoverKey;\n this.setState({ hoverKey });\n };\n\n _onChildMouseLeave = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const hoverKey = this.hoverKey_;\n const childProps = this.hoverChildProps_;\n\n if (hoverKey !== undefined && hoverKey !== null) {\n if (this.props.onChildMouseLeave) {\n this.props.onChildMouseLeave(hoverKey, childProps);\n }\n\n this.hoverKey_ = null;\n this.hoverChildProps_ = null;\n this.setState({ hoverKey: null });\n }\n };\n\n _onMouseAllow = (value) => {\n if (!value) {\n this._onChildMouseLeave();\n }\n\n this.allowMouse_ = value;\n };\n\n _onMouseChangeHandler = () => {\n if (this.allowMouse_) {\n this._onMouseChangeHandlerRaf();\n }\n };\n\n _onMouseChangeHandlerRaf = () => {\n if (!this.dimensionsCache_) {\n return;\n }\n\n const mp = this.props.dispatcher.getMousePosition();\n\n if (mp) {\n const distances = [];\n const hoverDistance = this.props.getHoverDistance();\n\n React.Children.forEach(this.state.children, (child, childIndex) => {\n if (!child) return;\n // layers\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return;\n }\n\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n const dist = this.props.distanceToMouse(\n this.dimensionsCache_[childKey],\n mp,\n child.props\n );\n if (dist < hoverDistance) {\n distances.push({\n key: childKey,\n dist,\n props: child.props,\n });\n }\n });\n\n if (distances.length) {\n distances.sort((a, b) => a.dist - b.dist);\n const hoverKey = distances[0].key;\n const childProps = distances[0].props;\n\n if (this.hoverKey_ !== hoverKey) {\n this._onChildMouseLeave();\n\n this._onChildMouseEnter(hoverKey, childProps);\n }\n } else {\n this._onChildMouseLeave();\n }\n } else {\n this._onChildMouseLeave();\n }\n };\n\n _getDimensions = (key) => {\n const childKey = key;\n return this.dimensionsCache_[childKey];\n };\n\n render() {\n const mainElementStyle = this.props.style || mainStyle;\n this.dimensionsCache_ = {};\n\n const markers = React.Children.map(\n this.state.children,\n (child, childIndex) => {\n if (!child) return undefined;\n if (\n child.props.latLng === undefined &&\n child.props.lat === undefined &&\n child.props.lng === undefined\n ) {\n return React.cloneElement(child, {\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n });\n }\n\n const latLng =\n child.props.latLng !== undefined\n ? child.props.latLng\n : { lat: child.props.lat, lng: child.props.lng };\n\n const pt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(latLng)\n : this.props.geoService.fromLatLngToCenterPixel(latLng);\n\n const stylePtPos = {\n left: pt.x,\n top: pt.y,\n };\n\n // If the component has a southeast corner defined (either as a LatLng, or a separate\n // lat and lng pair), set the width and height based on the distance between the northwest\n // and the southeast corner to lock the overlay to the correct geographic bounds.\n if (\n child.props.seLatLng !== undefined ||\n (child.props.seLat !== undefined && child.props.seLng !== undefined)\n ) {\n const seLatLng =\n child.props.seLatLng !== undefined\n ? child.props.seLatLng\n : { lat: child.props.seLat, lng: child.props.seLng };\n\n const sePt = this.props.insideMapPanes\n ? this.props.geoService.fromLatLngToDivPixel(seLatLng)\n : this.props.geoService.fromLatLngToCenterPixel(seLatLng);\n\n stylePtPos.width = sePt.x - pt.x;\n stylePtPos.height = sePt.y - pt.y;\n }\n\n const containerPt = this.props.geoService.fromLatLngToContainerPixel(\n latLng\n );\n\n // to prevent rerender on child element i need to pass\n // const params $getDimensions and $dimensionKey instead of dimension object\n const childKey =\n child.key !== undefined && child.key !== null\n ? child.key\n : childIndex;\n\n this.dimensionsCache_[childKey] = {\n x: containerPt.x,\n y: containerPt.y,\n ...latLng,\n };\n\n return (\n \n {React.cloneElement(child, {\n $hover: childKey === this.state.hoverKey,\n $getDimensions: this._getDimensions,\n $dimensionKey: childKey,\n $geoService: this.props.geoService,\n $onMouseAllow: this._onMouseAllow,\n $prerender: this.props.prerender,\n })}\n
\n );\n }\n );\n\n return
{markers}
;\n }\n}\n","import React from 'react';\nimport GoogleMapMarkers from './google_map_markers';\n\nconst style = {\n width: '50%',\n height: '50%',\n left: '50%',\n top: '50%',\n // backgroundColor: 'red',\n margin: 0,\n padding: 0,\n position: 'absolute',\n // opacity: 0.3\n};\n\nexport default function (props) {\n return (\n
\n \n
\n );\n}\n","import { Loader } from '@googlemaps/js-api-loader';\n\nlet loader_;\nlet loadPromise_;\nlet resolveCustomPromise_;\n\nconst _customPromise = new Promise((resolve) => {\n resolveCustomPromise_ = resolve;\n});\n\n// TODO add libraries language and other map options\nexport default (bootstrapURLKeys, heatmapLibrary) => {\n // call from outside google-map-react\n // will be as soon as loadPromise resolved\n if (!bootstrapURLKeys) {\n return _customPromise;\n }\n\n // avoid api to be loaded multiple times\n if (loadPromise_) {\n return loadPromise_;\n }\n\n if (!bootstrapURLKeys.libraries) {\n bootstrapURLKeys.libraries = [];\n }\n\n const libraries = [...bootstrapURLKeys.libraries];\n\n // note: heatmapLibrary will be deprecated on next major\n if (heatmapLibrary) {\n // if heatmapLibrary is present\n // check if we need to add visualization library\n if (libraries.length === 0 || !libraries.includes('visualization')) {\n // if the array isEmpty or visualization is\n // not present, push the visualization library\n libraries.push('visualization');\n }\n console.warn(\n \"heatmapLibrary will be deprecated in the future. Please use { libraries: ['visualization'] } in bootstrapURLKeys property instead\"\n );\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(bootstrapURLKeys).indexOf('callback') > -1) {\n const message = `\"callback\" key in bootstrapURLKeys is not allowed,\n use onGoogleApiLoaded property instead`;\n // eslint-disable-next-line no-console\n console.error(message);\n throw new Error(message);\n }\n }\n\n if (typeof window === 'undefined') {\n throw new Error('google map cannot be loaded outside browser env');\n }\n\n const { key, ...restKeys } = bootstrapURLKeys;\n\n // use single instance of Loader to avoid multiple api loads\n if (!loader_) {\n loader_ = new Loader({\n // need to keep key as a prop for backwards compatibility\n apiKey: key || '',\n ...restKeys,\n libraries,\n });\n }\n\n loadPromise_ = loader_.load().then(() => {\n resolveCustomPromise_(window.google.maps);\n return window.google.maps;\n });\n\n resolveCustomPromise_(loadPromise_);\n\n return loadPromise_;\n};\n","/* eslint-disable import/prefer-default-export */\n\nexport function wrap(n, min, max) {\n const d = max - min;\n return n === max ? n : ((((n - min) % d) + d) % d) + min;\n}\n","import { wrap } from './wrap';\n\nexport default class LatLng {\n static convert = (a) => {\n if (a instanceof LatLng) {\n return a;\n }\n\n if (Array.isArray(a)) {\n return new LatLng(a[0], a[1]);\n }\n\n if ('lng' in a && 'lat' in a) {\n return new LatLng(a.lat, a.lng);\n }\n\n return a;\n };\n\n constructor(lat, lng) {\n if (isNaN(lat) || isNaN(lng)) {\n throw new Error(`Invalid LatLng object: (${lat}, ${lng})`);\n }\n this.lat = +lat;\n this.lng = +lng;\n }\n\n wrap() {\n return new LatLng(this.lat, wrap(this.lng, -180, 180));\n }\n}\n","/* eslint-disable class-methods-use-this */\nimport Point from '@mapbox/point-geometry';\nimport LatLng from './lat_lng';\nimport { wrap } from './wrap';\n\n// A single transform, generally used for a single tile to be scaled, rotated, and zoomed.\nexport default class Transform {\n constructor(tileSize, minZoom, maxZoom) {\n this.tileSize = tileSize || 512; // constant\n\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 52;\n\n this.latRange = [-85.05113, 85.05113];\n\n this.width = 0;\n this.height = 0;\n this.zoom = 0;\n this.center = new LatLng(0, 0);\n this.angle = 0;\n }\n\n get minZoom() {\n return this._minZoom;\n }\n\n set minZoom(zoom) {\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n }\n\n get maxZoom() {\n return this._maxZoom;\n }\n\n set maxZoom(zoom) {\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\n }\n\n get worldSize() {\n return this.tileSize * this.scale;\n }\n\n get centerPoint() {\n return new Point(0, 0); // this.size._div(2);\n }\n\n get size() {\n return new Point(this.width, this.height);\n }\n\n get bearing() {\n return (-this.angle / Math.PI) * 180;\n }\n\n set bearing(bearing) {\n this.angle = (-wrap(bearing, -180, 180) * Math.PI) / 180;\n }\n\n get zoom() {\n return this._zoom;\n }\n\n set zoom(zoom) {\n const zoomV = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n this._zoom = zoomV;\n this.scale = this.zoomScale(zoomV);\n this.tileZoom = Math.floor(zoomV);\n this.zoomFraction = zoomV - this.tileZoom;\n }\n\n zoomScale(zoom) {\n return Math.pow(2, zoom);\n }\n\n scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n }\n\n project(latlng, worldSize) {\n return new Point(\n this.lngX(latlng.lng, worldSize),\n this.latY(latlng.lat, worldSize)\n );\n }\n\n unproject(point, worldSize) {\n return new LatLng(\n this.yLat(point.y, worldSize),\n this.xLng(point.x, worldSize)\n );\n }\n\n get x() {\n return this.lngX(this.center.lng);\n }\n\n get y() {\n return this.latY(this.center.lat);\n }\n\n get point() {\n return new Point(this.x, this.y);\n }\n\n // lat/lon <-> absolute pixel coords convertion\n lngX(lon, worldSize) {\n return ((180 + lon) * (worldSize || this.worldSize)) / 360;\n }\n\n // latitude to absolute y coord\n latY(lat, worldSize) {\n const y =\n (180 / Math.PI) * Math.log(Math.tan(Math.PI / 4 + (lat * Math.PI) / 360));\n return ((180 - y) * (worldSize || this.worldSize)) / 360;\n }\n\n xLng(x, worldSize) {\n return (x * 360) / (worldSize || this.worldSize) - 180;\n }\n\n yLat(y, worldSize) {\n const y2 = 180 - (y * 360) / (worldSize || this.worldSize);\n return (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n\n locationPoint(latlng) {\n const p = this.project(latlng);\n return this.centerPoint._sub(this.point._sub(p)._rotate(this.angle));\n }\n\n pointLocation(p) {\n const p2 = this.centerPoint._sub(p)._rotate(-this.angle);\n return this.unproject(this.point.sub(p2));\n }\n}\n","import Point from '@mapbox/point-geometry';\n\nimport LatLng from './lat_lng';\nimport Transform from './transform';\n\nexport default class Geo {\n constructor(tileSize) {\n // left_top view пользует гугл\n // super();\n this.hasSize_ = false;\n this.hasView_ = false;\n this.transform_ = new Transform(tileSize || 512);\n }\n\n setView(center, zoom, bearing) {\n this.transform_.center = LatLng.convert(center);\n this.transform_.zoom = +zoom;\n this.transform_.bearing = +bearing;\n this.hasView_ = true;\n }\n\n setViewSize(width, height) {\n this.transform_.width = width;\n this.transform_.height = height;\n this.hasSize_ = true;\n }\n\n setMapCanvasProjection(maps, mapCanvasProjection) {\n this.maps_ = maps;\n this.mapCanvasProjection_ = mapCanvasProjection;\n }\n\n canProject() {\n return this.hasSize_ && this.hasView_;\n }\n\n hasSize() {\n return this.hasSize_;\n }\n\n /** Returns the pixel position relative to the map center. */\n fromLatLngToCenterPixel(ptLatLng) {\n return this.transform_.locationPoint(LatLng.convert(ptLatLng));\n }\n\n /**\n * Returns the pixel position relative to the map panes,\n * or relative to the map center if there are no panes.\n */\n fromLatLngToDivPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToDivPixel(latLng);\n }\n return this.fromLatLngToCenterPixel(ptLatLng);\n }\n\n /** Returns the pixel position relative to the map top-left. */\n fromLatLngToContainerPixel(ptLatLng) {\n if (this.mapCanvasProjection_) {\n const latLng = new this.maps_.LatLng(ptLatLng.lat, ptLatLng.lng);\n return this.mapCanvasProjection_.fromLatLngToContainerPixel(latLng);\n }\n\n const pt = this.fromLatLngToCenterPixel(ptLatLng);\n pt.x -=\n this.transform_.worldSize * Math.round(pt.x / this.transform_.worldSize);\n\n pt.x += this.transform_.width / 2;\n pt.y += this.transform_.height / 2;\n\n return pt;\n }\n\n /** Returns the LatLng for the given offset from the map top-left. */\n fromContainerPixelToLatLng(ptXY) {\n if (this.mapCanvasProjection_) {\n const latLng = this.mapCanvasProjection_.fromContainerPixelToLatLng(ptXY);\n return { lat: latLng.lat(), lng: latLng.lng() };\n }\n\n const ptxy = { ...ptXY };\n ptxy.x -= this.transform_.width / 2;\n ptxy.y -= this.transform_.height / 2;\n const ptRes = this.transform_.pointLocation(Point.convert(ptxy));\n\n ptRes.lng -= 360 * Math.round(ptRes.lng / 360); // convert 2 google format\n return ptRes;\n }\n\n getWidth() {\n return this.transform_.width;\n }\n\n getHeight() {\n return this.transform_.height;\n }\n\n getZoom() {\n return this.transform_.zoom;\n }\n\n getCenter() {\n const ptRes = this.transform_.pointLocation({ x: 0, y: 0 });\n\n return ptRes;\n }\n\n getBounds(margins, roundFactor) {\n const bndT = (margins && margins[0]) || 0;\n const bndR = (margins && margins[1]) || 0;\n const bndB = (margins && margins[2]) || 0;\n const bndL = (margins && margins[3]) || 0;\n\n if (\n this.getWidth() - bndR - bndL > 0 &&\n this.getHeight() - bndT - bndB > 0\n ) {\n const topLeftCorner = this.transform_.pointLocation(\n Point.convert({\n x: bndL - this.getWidth() / 2,\n y: bndT - this.getHeight() / 2,\n })\n );\n const bottomRightCorner = this.transform_.pointLocation(\n Point.convert({\n x: this.getWidth() / 2 - bndR,\n y: this.getHeight() / 2 - bndB,\n })\n );\n\n let res = [\n topLeftCorner.lat,\n topLeftCorner.lng, // NW\n bottomRightCorner.lat,\n bottomRightCorner.lng, // SE\n bottomRightCorner.lat,\n topLeftCorner.lng, // SW\n topLeftCorner.lat,\n bottomRightCorner.lng, // NE\n ];\n\n if (roundFactor) {\n res = res.map((r) => Math.round(r * roundFactor) / roundFactor);\n }\n return res;\n }\n\n return [0, 0, 0, 0];\n }\n}\n","export default function raf(callback) {\n if (window.requestAnimationFrame) {\n return window.requestAnimationFrame(callback);\n }\n\n const nativeRaf =\n window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n\n return nativeRaf\n ? nativeRaf(callback)\n : window.setTimeout(callback, 1e3 / 60);\n}\n","const log2 = Math.log2 ? Math.log2 : (x) => Math.log(x) / Math.LN2;\n\nexport default log2;\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/pick.js\n\nexport default function pick(obj, fn) {\n return Object.keys(obj).reduce((result, key) => {\n if (fn(obj[key])) {\n result[key] = obj[key]; // eslint-disable-line\n }\n return result;\n }, {});\n}\n","const isEmpty = (val) => {\n // check for empty object {}, array []\n if (val !== null && typeof val === 'object') {\n if (Object.keys(val).length === 0) {\n return true;\n }\n } else if (val === null || val === undefined || val === '') {\n // check for undefined, null and \"\"\n return true;\n }\n return false;\n};\n\nexport default isEmpty;\n","function isObjectLike(value) {\n return !!value && typeof value === 'object';\n}\n\nconst objectToString = Object.prototype.toString;\n\nexport default function isNumber(value) {\n const numberTag = '[object Number]';\n return (\n typeof value === 'number' ||\n (isObjectLike(value) && objectToString.call(value) === numberTag)\n );\n}\n","// http://stackoverflow.com/questions/5899783/detect-safari-chrome-ie-firefox-opera-with-user-agent\nlet detectBrowserResult_ = null;\n\nexport default function detectBrowser() {\n if (detectBrowserResult_) {\n return detectBrowserResult_;\n }\n\n if (typeof navigator !== 'undefined') {\n const isExplorer = navigator.userAgent.indexOf('MSIE') > -1;\n const isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n const isOpera = navigator.userAgent.toLowerCase().indexOf('op') > -1;\n\n let isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n let isSafari = navigator.userAgent.indexOf('Safari') > -1;\n\n if (isChrome && isSafari) {\n isSafari = false;\n }\n\n if (isChrome && isOpera) {\n isChrome = false;\n }\n\n detectBrowserResult_ = {\n isExplorer,\n isFirefox,\n isOpera,\n isChrome,\n isSafari,\n };\n return detectBrowserResult_;\n }\n\n detectBrowserResult_ = {\n isChrome: true,\n isExplorer: false,\n isFirefox: false,\n isOpera: false,\n isSafari: false,\n };\n\n return detectBrowserResult_;\n}\n","// source taken from https://github.com/rackt/redux/blob/master/src/utils/isPlainObject.js\nconst fnToString = (fn) => Function.prototype.toString.call(fn);\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nexport default function isPlainObject(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n const proto =\n typeof obj.constructor === 'function'\n ? Object.getPrototypeOf(obj)\n : Object.prototype;\n\n if (proto === null) {\n return true;\n }\n\n const constructor = proto.constructor;\n\n return (\n typeof constructor === 'function' &&\n constructor instanceof constructor &&\n fnToString(constructor) === fnToString(Object)\n );\n}\n","// feature detection for passive support\n// see: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nfunction hasPassiveSupport() {\n let passiveSupported = false;\n\n try {\n const options = Object.defineProperty({}, 'passive', {\n get() {\n passiveSupported = true;\n },\n });\n\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}\n\nexport default function addPassiveEventListener(\n element,\n eventName,\n func,\n capture\n) {\n element.addEventListener(\n eventName,\n func,\n hasPassiveSupport()\n ? {\n capture,\n passive: true,\n }\n : capture\n );\n}\n","/* eslint-disable */\n/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\nimport addPassiveEventListener from './passiveEvents';\n\n// Reliable `window` and `document` detection\nvar canUseDOM = !!(typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement);\n\n// Check `document` and `window` in case of server-side rendering\nvar _window;\nif (canUseDOM) {\n _window = window;\n} else if (typeof self !== 'undefined') {\n _window = self;\n} else {\n _window = this;\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (canUseDOM && !attachEvent) {\n var requestFrame = (function () {\n var raf = _window.requestAnimationFrame ||\n _window.mozRequestAnimationFrame ||\n _window.webkitRequestAnimationFrame ||\n function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n })();\n\n var cancelFrame = (function () {\n var cancel = _window.cancelAnimationFrame ||\n _window.mozCancelAnimationFrame ||\n _window.webkitCancelAnimationFrame ||\n _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n })();\n\n var resetTriggers = function (element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function (element) {\n return element.offsetWidth != element.__resizeLast__.width ||\n element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function (e) {\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(\n ' '\n ),\n pfx = '';\n\n if (canUseDOM) {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' +\n keyframeprefix +\n 'keyframes ' +\n animationName +\n ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix +\n 'animation: 1ms ' +\n animationName +\n '; ';\n}\n\nvar createStyles = function () {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') +\n '.resize-triggers { ' +\n (animationStyle ? animationStyle : '') +\n 'visibility: hidden; opacity: 0; } ' +\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n};\n\nvar addResizeListener = function (element, fn) {\n if (element.parentNode === undefined) {\n var tempParentDiv = document.createElement('div');\n element.parentNode = tempParentDiv;\n }\n element = element.parentNode;\n if (attachEvent)\n element.attachEvent('onresize', fn);\n else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static')\n element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement(\n 'div'\n )).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' +\n '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n\n addPassiveEventListener(element, 'scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent &&\n element.__resizeTriggers__.addEventListener(\n animationstartevent,\n function (e) {\n if (e.animationName == animationName) resetTriggers(element);\n }\n );\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function (element, fn) {\n element = element.parentNode;\n if (attachEvent)\n element.detachEvent('onresize', fn);\n else {\n element.__resizeListeners__.splice(\n element.__resizeListeners__.indexOf(fn),\n 1\n );\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(\n element.__resizeTriggers__\n );\n }\n }\n};\n\nexport {\n addResizeListener,\n removeResizeListener,\n};\n","/* eslint-disable import/no-extraneous-dependencies, react/forbid-prop-types, react/no-find-dom-node, no-console, no-undef */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\n\n// helpers\nimport GoogleMapMap from './google_map_map';\nimport MarkerDispatcher from './marker_dispatcher';\nimport GoogleMapMarkers from './google_map_markers';\nimport GoogleMapMarkersPrerender from './google_map_markers_prerender';\nimport { generateHeatmap, optionsHeatmap } from './google_heatmap';\n\n// loaders\nimport googleMapLoader from './loaders/google_map_loader';\n\n// lib\nimport Geo from './lib/geo';\n\n// tools\nimport raf from './utils/raf';\nimport log2 from './utils/log2';\nimport omit from './utils/omit';\nimport pick from './utils/pick';\nimport isEmpty from './utils/isEmpty';\nimport isNumber from './utils/isNumber';\nimport detectBrowser from './utils/detect';\nimport shallowEqual from './utils/shallowEqual';\nimport isPlainObject from './utils/isPlainObject';\nimport isArraysEqualEps from './utils/isArraysEqualEps';\nimport {\n addResizeListener,\n removeResizeListener,\n} from './utils/detectElementResize';\nimport addPassiveEventListener from './utils/passiveEvents';\n\n// consts\nconst kEPS = 0.00001;\nconst K_GOOGLE_TILE_SIZE = 256;\n// real minZoom calculated here _getMinZoom\nconst K_IDLE_TIMEOUT = 100;\nconst K_IDLE_CLICK_TIMEOUT = 300;\nconst DEFAULT_MIN_ZOOM = 3;\n// Starting with version 3.32, the maps API calls `draw()` each frame during\n// a zoom animation.\nconst DRAW_CALLED_DURING_ANIMATION_VERSION = 32;\nconst IS_REACT_16 = ReactDOM.createPortal !== undefined;\n\nconst createPortal = IS_REACT_16\n ? ReactDOM.createPortal\n : ReactDOM.unstable_renderSubtreeIntoContainer;\n\nfunction defaultOptions_(/* maps */) {\n return {\n overviewMapControl: false,\n streetViewControl: false,\n rotateControl: true,\n mapTypeControl: false,\n // disable poi\n styles: [\n {\n featureType: 'poi',\n elementType: 'labels',\n stylers: [{ visibility: 'off' }],\n },\n ],\n minZoom: DEFAULT_MIN_ZOOM, // dynamically recalculted if possible during init\n };\n}\n\nconst latLng2Obj = (latLng) =>\n isPlainObject(latLng) ? latLng : { lat: latLng[0], lng: latLng[1] };\n\nconst _checkMinZoom = (zoom, minZoom) => {\n if (process.env.NODE_ENV !== 'production') {\n if (zoom < minZoom) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'minZoom option is less than recommended ' +\n 'minZoom option for your map sizes.\\n' +\n 'overrided to value ' +\n minZoom\n );\n }\n }\n\n if (minZoom < zoom) {\n return zoom;\n }\n return minZoom;\n};\n\nconst isFullScreen = () =>\n document.fullscreen ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement;\n\nclass GoogleMap extends Component {\n static propTypes = {\n apiKey: PropTypes.string,\n bootstrapURLKeys: PropTypes.any,\n\n defaultCenter: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n center: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ]),\n defaultZoom: PropTypes.number,\n zoom: PropTypes.number,\n onBoundsChange: PropTypes.func,\n onChange: PropTypes.func,\n onClick: PropTypes.func,\n onChildClick: PropTypes.func,\n onChildMouseDown: PropTypes.func,\n onChildMouseUp: PropTypes.func,\n onChildMouseMove: PropTypes.func,\n onChildMouseEnter: PropTypes.func,\n onChildMouseLeave: PropTypes.func,\n onZoomAnimationStart: PropTypes.func,\n onZoomAnimationEnd: PropTypes.func,\n onDrag: PropTypes.func,\n onDragEnd: PropTypes.func,\n onMapTypeIdChange: PropTypes.func,\n onTilesLoaded: PropTypes.func,\n options: PropTypes.any,\n distanceToMouse: PropTypes.func,\n hoverDistance: PropTypes.number,\n debounced: PropTypes.bool,\n margin: PropTypes.array,\n googleMapLoader: PropTypes.any,\n onGoogleApiLoaded: PropTypes.func,\n yesIWantToUseGoogleMapApiInternals: PropTypes.bool,\n draggable: PropTypes.bool,\n style: PropTypes.any,\n resetBoundsOnResize: PropTypes.bool,\n layerTypes: PropTypes.arrayOf(PropTypes.string), // ['TransitLayer', 'TrafficLayer']\n shouldUnregisterMapOnUnmount: PropTypes.bool,\n };\n\n static defaultProps = {\n distanceToMouse(pt, mousePos /* , markerProps */) {\n return Math.sqrt(\n (pt.x - mousePos.x) * (pt.x - mousePos.x) +\n (pt.y - mousePos.y) * (pt.y - mousePos.y)\n );\n },\n hoverDistance: 30,\n debounced: true,\n options: defaultOptions_,\n googleMapLoader,\n yesIWantToUseGoogleMapApiInternals: false,\n style: {\n width: '100%',\n height: '100%',\n margin: 0,\n padding: 0,\n position: 'relative',\n },\n layerTypes: [],\n heatmap: {},\n heatmapLibrary: false,\n shouldUnregisterMapOnUnmount: true,\n };\n\n static googleMapLoader = googleMapLoader; // eslint-disable-line\n\n constructor(props) {\n super(props);\n this.mounted_ = false;\n this.initialized_ = false;\n this.googleApiLoadedCalled_ = false;\n\n this.map_ = null;\n this.maps_ = null;\n this.prevBounds_ = null;\n this.heatmap = null;\n\n this.layers_ = {};\n\n this.mouse_ = null;\n this.mouseMoveTime_ = 0;\n this.boundingRect_ = null;\n this.mouseInMap_ = true;\n\n this.dragTime_ = 0;\n this.fireMouseEventOnIdle_ = false;\n this.updateCounter_ = 0;\n\n this.markersDispatcher_ = new MarkerDispatcher(this);\n this.geoService_ = new Geo(K_GOOGLE_TILE_SIZE);\n this.centerIsObject_ = isPlainObject(this.props.center);\n\n this.minZoom_ = DEFAULT_MIN_ZOOM;\n this.defaultDraggableOption_ = true;\n\n this.zoomControlClickTime_ = 0;\n\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = 0;\n\n this.googleMapDom_ = null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (this.props.apiKey) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'apiKey is deprecated, use ' +\n 'bootstrapURLKeys={{key: YOUR_API_KEY}} instead.'\n );\n }\n\n if (this.props.onBoundsChange) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line no-console\n 'onBoundsChange is deprecated, use ' +\n 'onChange({center, zoom, bounds, ...other}) instead.'\n );\n }\n\n if (isEmpty(this.props.center) && isEmpty(this.props.defaultCenter)) {\n console.warn(\n 'GoogleMap: center or defaultCenter property must be defined' // eslint-disable-line no-console\n );\n }\n\n if (isEmpty(this.props.zoom) && isEmpty(this.props.defaultZoom)) {\n console.warn(\n 'GoogleMap: zoom or defaultZoom property must be defined' // eslint-disable-line no-console\n );\n }\n }\n\n if (this._isCenterDefined(this.props.center || this.props.defaultCenter)) {\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n }\n\n this.zoomAnimationInProgress_ = false;\n\n this.state = {\n overlay: null,\n };\n }\n\n componentDidMount() {\n this.mounted_ = true;\n this.markersDispatcher_ = new MarkerDispatcher(this);\n addPassiveEventListener(window, 'resize', this._onWindowResize, false);\n addPassiveEventListener(window, 'keydown', this._onKeyDownCapture, true);\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n\n if (mapDom) {\n addPassiveEventListener(\n mapDom,\n 'mousedown',\n this._onMapMouseDownNative,\n true\n );\n }\n\n addPassiveEventListener(window, 'mouseup', this._onChildMouseUp, false);\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props.googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary); // we can start load immediatly\n\n setTimeout(\n () => {\n // to detect size\n this._setViewSize();\n if (\n this._isCenterDefined(this.props.center || this.props.defaultCenter)\n ) {\n this._initMap();\n }\n },\n 0,\n this\n );\n if (this.props.resetBoundsOnResize) {\n const that = this;\n addResizeListener(mapDom, that._mapDomResizeCallback);\n }\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // draggable does not affect inner components\n return (\n !shallowEqual(\n omit(this.props, ['draggable']),\n omit(nextProps, ['draggable'])\n ) || !shallowEqual(this.state, nextState)\n );\n }\n\n componentDidUpdate(prevProps) {\n if (process.env.NODE_ENV !== 'production') {\n if (!shallowEqual(prevProps.defaultCenter, this.props.defaultCenter)) {\n console.warn(\n \"GoogleMap: defaultCenter prop changed. You can't change default props.\"\n );\n }\n\n if (!shallowEqual(prevProps.defaultZoom, this.props.defaultZoom)) {\n console.warn(\n \"GoogleMap: defaultZoom prop changed. You can't change default props.\"\n );\n }\n }\n\n if (\n !this._isCenterDefined(prevProps.center) &&\n this._isCenterDefined(this.props.center)\n ) {\n setTimeout(() => this._initMap(), 0);\n }\n\n if (this.map_) {\n const centerLatLng = this.geoService_.getCenter();\n if (this._isCenterDefined(this.props.center)) {\n const currentCenter = latLng2Obj(this.props.center);\n const prevCenter = this._isCenterDefined(prevProps.center)\n ? latLng2Obj(prevProps.center)\n : null;\n\n if (\n !prevCenter ||\n Math.abs(currentCenter.lat - prevCenter.lat) +\n Math.abs(currentCenter.lng - prevCenter.lng) >\n kEPS\n ) {\n if (\n Math.abs(currentCenter.lat - centerLatLng.lat) +\n Math.abs(currentCenter.lng - centerLatLng.lng) >\n kEPS\n ) {\n this.map_.panTo({\n lat: currentCenter.lat,\n lng: currentCenter.lng,\n });\n }\n }\n }\n\n if (!isEmpty(this.props.zoom)) {\n // if zoom chaged by user\n if (Math.abs(this.props.zoom - prevProps.zoom) > 0) {\n this.map_.setZoom(this.props.zoom);\n }\n }\n\n if (!isEmpty(prevProps.draggable) && isEmpty(this.props.draggable)) {\n // reset to default\n this.map_.setOptions({ draggable: this.defaultDraggableOption_ });\n } else if (!shallowEqual(prevProps.draggable, this.props.draggable)) {\n // also prevent this on window 'mousedown' event to prevent map move\n this.map_.setOptions({ draggable: this.props.draggable });\n }\n\n // use shallowEqual to try avoid calling map._setOptions if only the ref changes\n if (\n !isEmpty(this.props.options) &&\n !shallowEqual(prevProps.options, this.props.options)\n ) {\n const mapPlainObjects = pick(this.maps_, isPlainObject);\n let options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n // remove zoom, center and draggable options as these are managed by google-maps-react\n options = omit(options, ['zoom', 'center', 'draggable']);\n\n if ('minZoom' in options) {\n const minZoom = this._computeMinZoom(options.minZoom);\n options.minZoom = _checkMinZoom(options.minZoom, minZoom);\n }\n\n this.map_.setOptions(options);\n }\n\n if (!shallowEqual(this.props.layerTypes, prevProps.layerTypes)) {\n Object.keys(this.layers_).forEach((layerKey) => {\n this.layers_[layerKey].setMap(null);\n delete this.layers_[layerKey];\n });\n this._setLayers(this.props.layerTypes);\n }\n\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.positions, prevProps.heatmap.positions)\n ) {\n this.heatmap.setData(\n this.props.heatmap.positions.map((p) => ({\n location: new this.maps_.LatLng(p.lat, p.lng),\n weight: p.weight,\n }))\n );\n }\n if (\n this.heatmap &&\n !shallowEqual(this.props.heatmap.options, prevProps.heatmap.options)\n ) {\n Object.keys(this.props.heatmap.options).forEach((option) => {\n this.heatmap.set(option, this.props.heatmap.options[option]);\n });\n }\n }\n // emit actions\n this.markersDispatcher_.emit('kON_CHANGE');\n\n if (!shallowEqual(this.props.hoverDistance, prevProps.hoverDistance)) {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n\n componentWillUnmount() {\n this.mounted_ = false;\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n if (mapDom) {\n mapDom.removeEventListener('mousedown', this._onMapMouseDownNative, true);\n }\n window.removeEventListener('resize', this._onWindowResize);\n window.removeEventListener('keydown', this._onKeyDownCapture);\n window.removeEventListener('mouseup', this._onChildMouseUp, false);\n if (this.props.resetBoundsOnResize) {\n removeResizeListener(mapDom, this._mapDomResizeCallback);\n }\n\n if (this.overlay_) {\n // this triggers overlay_.onRemove(), which will unmount the \n this.overlay_.setMap(null);\n }\n\n if (this.maps_ && this.map_ && this.props.shouldUnregisterMapOnUnmount) {\n // fix google, as otherwise listeners works even without map\n this.map_.setOptions({ scrollwheel: false });\n this.maps_.event.clearInstanceListeners(this.map_);\n }\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n this.map_ = null;\n this.maps_ = null;\n }\n this.markersDispatcher_.dispose();\n\n this.resetSizeOnIdle_ = false;\n\n if (this.props.shouldUnregisterMapOnUnmount) {\n delete this.map_;\n delete this.markersDispatcher_;\n }\n }\n\n // calc minZoom if map size available\n // it's better to not set minZoom less than this calculation gives\n // otherwise there is no homeomorphism between screen coordinates and map\n // (one map coordinate can have different screen coordinates)\n _getMinZoom = () => {\n if (this.geoService_.getWidth() > 0 || this.geoService_.getHeight() > 0) {\n const tilesPerWidth =\n Math.ceil(this.geoService_.getWidth() / K_GOOGLE_TILE_SIZE) + 2;\n const tilesPerHeight =\n Math.ceil(this.geoService_.getHeight() / K_GOOGLE_TILE_SIZE) + 2;\n const maxTilesPerDim = Math.max(tilesPerWidth, tilesPerHeight);\n return Math.ceil(log2(maxTilesPerDim));\n }\n return DEFAULT_MIN_ZOOM;\n };\n\n _computeMinZoom = (minZoom) => {\n if (!isEmpty(minZoom)) {\n return minZoom;\n }\n return this._getMinZoom();\n };\n\n _mapDomResizeCallback = () => {\n this.resetSizeOnIdle_ = true;\n if (this.maps_) {\n const originalCenter = this.props.center || this.props.defaultCenter;\n const currentCenter = this.map_.getCenter();\n this.maps_.event.trigger(this.map_, 'resize');\n this.map_.setCenter(\n this.props.resetBoundsOnResize ? originalCenter : currentCenter\n );\n }\n };\n\n _setLayers = (layerTypes) => {\n layerTypes.forEach((layerType) => {\n this.layers_[layerType] = new this.maps_[layerType]();\n this.layers_[layerType].setMap(this.map_);\n });\n };\n\n _renderPortal = () => (\n \n );\n\n _initMap = () => {\n // only initialize the map once\n if (this.initialized_) {\n return;\n }\n this.initialized_ = true;\n\n const propsCenter = latLng2Obj(\n this.props.center || this.props.defaultCenter\n );\n this.geoService_.setView(\n propsCenter,\n this.props.zoom || this.props.defaultZoom,\n 0\n );\n\n this._onBoundsChanged(); // now we can calculate map bounds center etc...\n\n const bootstrapURLKeys = {\n ...(this.props.apiKey && { key: this.props.apiKey }),\n ...this.props.bootstrapURLKeys,\n };\n\n this.props\n .googleMapLoader(bootstrapURLKeys, this.props.heatmapLibrary)\n .then((maps) => {\n if (!this.mounted_) {\n return;\n }\n\n const centerLatLng = this.geoService_.getCenter();\n\n const propsOptions = {\n zoom: this.props.zoom || this.props.defaultZoom,\n center: new maps.LatLng(centerLatLng.lat, centerLatLng.lng),\n };\n\n // Start Heatmap\n if (this.props.heatmap.positions) {\n Object.assign(this, {\n heatmap: generateHeatmap(maps, this.props.heatmap),\n });\n optionsHeatmap(this.heatmap, this.props.heatmap);\n }\n // End Heatmap\n\n // prevent to exapose full api\n // next props must be exposed (console.log(Object.keys(pick(maps, isPlainObject))))\n // \"Animation\", \"ControlPosition\", \"MapTypeControlStyle\", \"MapTypeId\",\n // \"NavigationControlStyle\", \"ScaleControlStyle\", \"StrokePosition\",\n // \"SymbolPath\", \"ZoomControlStyle\",\n // \"event\", \"DirectionsStatus\", \"DirectionsTravelMode\", \"DirectionsUnitSystem\",\n // \"DistanceMatrixStatus\",\n // \"DistanceMatrixElementStatus\", \"ElevationStatus\", \"GeocoderLocationType\",\n // \"GeocoderStatus\", \"KmlLayerStatus\",\n // \"MaxZoomStatus\", \"StreetViewStatus\", \"TransitMode\", \"TransitRoutePreference\",\n // \"TravelMode\", \"UnitSystem\"\n const mapPlainObjects = pick(maps, isPlainObject);\n const options =\n typeof this.props.options === 'function'\n ? this.props.options(mapPlainObjects)\n : this.props.options;\n const defaultOptions = defaultOptions_(mapPlainObjects);\n\n const draggableOptions = !isEmpty(this.props.draggable) && {\n draggable: this.props.draggable,\n };\n\n const minZoom = this._computeMinZoom(options.minZoom);\n this.minZoom_ = minZoom;\n\n const preMapOptions = {\n ...defaultOptions,\n minZoom,\n ...options,\n ...propsOptions,\n };\n\n this.defaultDraggableOption_ = !isEmpty(preMapOptions.draggable)\n ? preMapOptions.draggable\n : this.defaultDraggableOption_;\n\n const mapOptions = {\n ...preMapOptions,\n ...draggableOptions,\n };\n\n mapOptions.minZoom = _checkMinZoom(mapOptions.minZoom, minZoom);\n\n const map = new maps.Map(\n ReactDOM.findDOMNode(this.googleMapDom_),\n mapOptions\n );\n\n this.map_ = map;\n this.maps_ = maps;\n\n this._setLayers(this.props.layerTypes);\n\n // Parse `google.maps.version` to capture the major version number.\n const versionMatch = maps.version.match(/^3\\.(\\d+)\\./);\n // The major version is the first (and only) captured group.\n const mapsVersion = versionMatch && Number(versionMatch[1]);\n\n // render in overlay\n const this_ = this;\n const overlay = Object.assign(new maps.OverlayView(), {\n onAdd() {\n const K_MAX_WIDTH =\n typeof screen !== 'undefined' ? `${screen.width}px` : '2000px';\n const K_MAX_HEIGHT =\n typeof screen !== 'undefined' ? `${screen.height}px` : '2000px';\n\n const div = document.createElement('div');\n div.style.backgroundColor = 'transparent';\n div.style.position = 'absolute';\n div.style.left = '0px';\n div.style.top = '0px';\n div.style.width = K_MAX_WIDTH; // prevents some chrome draw defects\n div.style.height = K_MAX_HEIGHT;\n\n if (this_.props.overlayViewDivStyle) {\n const { overlayViewDivStyle } = this_.props;\n if (typeof overlayViewDivStyle === 'object') {\n Object.keys(overlayViewDivStyle).forEach((property) => {\n div.style[property] = overlayViewDivStyle[property];\n });\n }\n }\n\n const panes = this.getPanes();\n panes.overlayMouseTarget.appendChild(div);\n this_.geoService_.setMapCanvasProjection(\n maps,\n overlay.getProjection()\n );\n\n if (!IS_REACT_16) {\n createPortal(\n this_,\n this_._renderPortal(),\n div,\n // remove prerendered markers\n () => this_.setState({ overlay: div })\n );\n } else {\n this_.setState({ overlay: div });\n }\n },\n\n onRemove() {\n const renderedOverlay = this_.state.overlay;\n if (renderedOverlay && !IS_REACT_16) {\n ReactDOM.unmountComponentAtNode(renderedOverlay);\n }\n this_.setState({ overlay: null });\n },\n\n draw() {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps, !this_.props.debounced);\n\n if (!this_.googleApiLoadedCalled_) {\n this_._onGoogleApiLoaded({ map, maps, ref: this_.googleMapDom_ });\n this_.googleApiLoadedCalled_ = true;\n }\n\n if (this_.mouse_) {\n const latLng = this_.geoService_.fromContainerPixelToLatLng(\n this_.mouse_\n );\n this_.mouse_.lat = latLng.lat;\n this_.mouse_.lng = latLng.lng;\n }\n\n this_._onChildMouseMove();\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n if (this_.fireMouseEventOnIdle_) {\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n }\n }\n },\n });\n\n this.overlay_ = overlay;\n\n overlay.setMap(map);\n if (this.props.heatmap.positions) {\n this.heatmap.setMap(map);\n }\n\n if (this.props.onTilesLoaded) {\n maps.event.addListener(map, 'tilesloaded', () => {\n this_._onTilesLoaded();\n });\n }\n\n maps.event.addListener(map, 'zoom_changed', () => {\n // recalc position at zoom start\n if (this_.geoService_.getZoom() !== map.getZoom()) {\n if (!this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = true;\n this_._onZoomAnimationStart(map.zoom);\n }\n\n // If draw() is not called each frame during a zoom animation,\n // simulate it.\n if (mapsVersion < DRAW_CALLED_DURING_ANIMATION_VERSION) {\n const TIMEOUT_ZOOM = 300;\n\n if (\n new Date().getTime() - this.zoomControlClickTime_ <\n TIMEOUT_ZOOM\n ) {\n // there is strange Google Map Api behavior in chrome when zoom animation of map\n // is started only on second raf call, if was click on zoom control\n // or +- keys pressed, so i wait for two rafs before change state\n\n // this does not fully prevent animation jump\n // but reduce it's occurence probability\n raf(() =>\n raf(() => {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n })\n );\n } else {\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n }\n }\n }\n });\n\n maps.event.addListener(map, 'idle', () => {\n if (this.resetSizeOnIdle_) {\n this._setViewSize();\n const currMinZoom = this._computeMinZoom(options.minZoom);\n\n if (currMinZoom !== this.minZoom_) {\n this.minZoom_ = currMinZoom;\n map.setOptions({ minZoom: currMinZoom });\n }\n\n this.resetSizeOnIdle_ = false;\n }\n\n if (this_.zoomAnimationInProgress_) {\n this_.zoomAnimationInProgress_ = false;\n this_._onZoomAnimationEnd(map.zoom);\n }\n\n this_.updateCounter_++;\n this_._onBoundsChanged(map, maps);\n\n this_.dragTime_ = 0;\n\n if (this_.markersDispatcher_) {\n this_.markersDispatcher_.emit('kON_CHANGE');\n }\n });\n\n maps.event.addListener(map, 'mouseover', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = true;\n });\n\n // an alternative way to know the mouse is back within the map\n // This would not fire when clicking/interacting with google maps\n // own on-map countrols+markers. This handles an edge case for touch devices\n // + 'draggable:false' custom option. See #332 for more details.\n maps.event.addListener(map, 'click', () => {\n this_.mouseInMap_ = true;\n });\n\n maps.event.addListener(map, 'mouseout', () => {\n // has advantage over div MouseLeave\n this_.mouseInMap_ = false;\n this_.mouse_ = null;\n this_.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n });\n\n maps.event.addListener(map, 'drag', () => {\n this_.dragTime_ = new Date().getTime();\n this_._onDrag(map);\n });\n\n maps.event.addListener(map, 'dragend', () => {\n // 'dragend' fires on mouse release.\n // 'idle' listener waits until drag inertia ends before firing `onDragEnd`\n const idleListener = maps.event.addListener(map, 'idle', () => {\n maps.event.removeListener(idleListener);\n this_._onDragEnd(map);\n });\n });\n // user choosing satellite vs roads, etc\n maps.event.addListener(map, 'maptypeid_changed', () => {\n this_._onMapTypeIdChange(map.getMapTypeId());\n });\n })\n .catch((e) => {\n // notify callback of load failure\n this._onGoogleApiLoaded({\n map: null,\n maps: null,\n ref: this.googleMapDom_,\n });\n console.error(e); // eslint-disable-line no-console\n throw e;\n });\n };\n\n _onGoogleApiLoaded = (...args) => {\n if (this.props.onGoogleApiLoaded) {\n if (\n process.env.NODE_ENV !== 'production' &&\n this.props.yesIWantToUseGoogleMapApiInternals !== true\n ) {\n console.warn(\n 'GoogleMap: ' + // eslint-disable-line\n 'Usage of internal api objects is dangerous ' +\n 'and can cause a lot of issues.\\n' +\n 'To hide this warning add yesIWantToUseGoogleMapApiInternals={true} ' +\n 'to this.props.hoverDistance;\n\n _onDrag = (...args) => this.props.onDrag && this.props.onDrag(...args);\n\n _onDragEnd = (...args) =>\n this.props.onDragEnd && this.props.onDragEnd(...args);\n\n _onMapTypeIdChange = (...args) =>\n this.props.onMapTypeIdChange && this.props.onMapTypeIdChange(...args);\n\n _onZoomAnimationStart = (...args) =>\n this.props.onZoomAnimationStart && this.props.onZoomAnimationStart(...args);\n\n _onZoomAnimationEnd = (...args) =>\n this.props.onZoomAnimationEnd && this.props.onZoomAnimationEnd(...args);\n\n _onTilesLoaded = () => this.props.onTilesLoaded && this.props.onTilesLoaded();\n\n _onChildClick = (...args) => {\n if (this.props.onChildClick) {\n return this.props.onChildClick(...args);\n }\n return undefined;\n };\n\n _onChildMouseDown = (hoverKey, childProps) => {\n this.childMouseDownArgs_ = [hoverKey, childProps];\n if (this.props.onChildMouseDown) {\n this.props.onChildMouseDown(hoverKey, childProps, { ...this.mouse_ });\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseUp = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseUp) {\n this.props.onChildMouseUp(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n this.childMouseDownArgs_ = null;\n this.childMouseUpTime_ = new Date().getTime();\n }\n };\n\n // this method works only if this.props.onChildMouseDown was called\n _onChildMouseMove = () => {\n if (this.childMouseDownArgs_) {\n if (this.props.onChildMouseMove) {\n this.props.onChildMouseMove(...this.childMouseDownArgs_, {\n ...this.mouse_,\n });\n }\n }\n };\n\n _onChildMouseEnter = (...args) => {\n if (this.props.onChildMouseEnter) {\n return this.props.onChildMouseEnter(...args);\n }\n return undefined;\n };\n\n _onChildMouseLeave = (...args) => {\n if (this.props.onChildMouseLeave) {\n return this.props.onChildMouseLeave(...args);\n }\n return undefined;\n };\n\n _setViewSize = () => {\n if (!this.mounted_) return;\n if (isFullScreen()) {\n this.geoService_.setViewSize(window.innerWidth, window.innerHeight);\n } else {\n const mapDom = ReactDOM.findDOMNode(this.googleMapDom_);\n this.geoService_.setViewSize(mapDom.clientWidth, mapDom.clientHeight);\n }\n this._onBoundsChanged();\n };\n\n _onWindowResize = () => {\n this.resetSizeOnIdle_ = true;\n };\n\n _onMapMouseMove = (e) => {\n if (!this.mouseInMap_) return;\n\n const currTime = new Date().getTime();\n const K_RECALC_CLIENT_RECT_MS = 50;\n\n if (currTime - this.mouseMoveTime_ > K_RECALC_CLIENT_RECT_MS) {\n this.boundingRect_ = e.currentTarget.getBoundingClientRect();\n }\n this.mouseMoveTime_ = currTime;\n\n const mousePosX = e.clientX - this.boundingRect_.left;\n const mousePosY = e.clientY - this.boundingRect_.top;\n\n if (!this.mouse_) {\n this.mouse_ = { x: 0, y: 0, lat: 0, lng: 0 };\n }\n\n this.mouse_.x = mousePosX;\n this.mouse_.y = mousePosY;\n\n const latLng = this.geoService_.fromContainerPixelToLatLng(this.mouse_);\n this.mouse_.lat = latLng.lat;\n this.mouse_.lng = latLng.lng;\n\n this._onChildMouseMove();\n\n if (currTime - this.dragTime_ < K_IDLE_TIMEOUT) {\n this.fireMouseEventOnIdle_ = true;\n } else {\n this.markersDispatcher_.emit('kON_MOUSE_POSITION_CHANGE');\n this.fireMouseEventOnIdle_ = false;\n }\n };\n\n // K_IDLE_CLICK_TIMEOUT - looks like 300 is enough\n _onClick = (...args) =>\n this.props.onClick &&\n !this.childMouseDownArgs_ &&\n new Date().getTime() - this.childMouseUpTime_ > K_IDLE_CLICK_TIMEOUT &&\n this.dragTime_ === 0 &&\n this.props.onClick(...args);\n\n _onMapClick = (event) => {\n if (this.markersDispatcher_) {\n // support touch events and recalculate mouse position on click\n this._onMapMouseMove(event);\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n if (this.mouse_) {\n this._onClick({\n ...this.mouse_,\n event,\n });\n }\n\n this.markersDispatcher_.emit('kON_CLICK', event);\n }\n }\n };\n\n // gmap can't prevent map drag if mousedown event already occured\n // the only workaround I find is prevent mousedown native browser event\n _onMapMouseDownNative = (event) => {\n if (!this.mouseInMap_) return;\n\n this._onMapMouseDown(event);\n };\n\n _onMapMouseDown = (event) => {\n if (this.markersDispatcher_) {\n const currTime = new Date().getTime();\n if (currTime - this.dragTime_ > K_IDLE_TIMEOUT) {\n // Hovered marker detected at mouse move could be deleted at mouse down time\n // so it will be good to force hovered marker recalculation\n this._onMapMouseMove(event);\n this.markersDispatcher_.emit('kON_MDOWN', event);\n }\n }\n };\n\n _onMapMouseDownCapture = () => {\n if (detectBrowser().isChrome) {\n // to fix strange zoom in chrome\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _onKeyDownCapture = () => {\n if (detectBrowser().isChrome) {\n this.zoomControlClickTime_ = new Date().getTime();\n }\n };\n\n _isCenterDefined = (center) =>\n center &&\n ((isPlainObject(center) && isNumber(center.lat) && isNumber(center.lng)) ||\n (center.length === 2 && isNumber(center[0]) && isNumber(center[1])));\n\n _onBoundsChanged = (map, maps, callExtBoundsChange) => {\n if (map) {\n const gmC = map.getCenter();\n this.geoService_.setView([gmC.lat(), gmC.lng()], map.getZoom(), 0);\n }\n\n if (\n (this.props.onChange || this.props.onBoundsChange) &&\n this.geoService_.canProject()\n ) {\n const zoom = this.geoService_.getZoom();\n const bounds = this.geoService_.getBounds();\n const centerLatLng = this.geoService_.getCenter();\n\n if (!isArraysEqualEps(bounds, this.prevBounds_, kEPS)) {\n if (callExtBoundsChange !== false) {\n const marginBounds = this.geoService_.getBounds(this.props.margin);\n if (this.props.onBoundsChange) {\n this.props.onBoundsChange(\n this.centerIsObject_\n ? { ...centerLatLng }\n : [centerLatLng.lat, centerLatLng.lng],\n zoom,\n bounds,\n marginBounds\n );\n }\n\n if (this.props.onChange) {\n this.props.onChange({\n center: { ...centerLatLng },\n zoom,\n bounds: {\n nw: {\n lat: bounds[0],\n lng: bounds[1],\n },\n se: {\n lat: bounds[2],\n lng: bounds[3],\n },\n sw: {\n lat: bounds[4],\n lng: bounds[5],\n },\n ne: {\n lat: bounds[6],\n lng: bounds[7],\n },\n },\n marginBounds: {\n nw: {\n lat: marginBounds[0],\n lng: marginBounds[1],\n },\n se: {\n lat: marginBounds[2],\n lng: marginBounds[3],\n },\n sw: {\n lat: marginBounds[4],\n lng: marginBounds[5],\n },\n ne: {\n lat: marginBounds[6],\n lng: marginBounds[7],\n },\n },\n\n size: this.geoService_.hasSize()\n ? {\n width: this.geoService_.getWidth(),\n height: this.geoService_.getHeight(),\n }\n : {\n width: 0,\n height: 0,\n },\n });\n }\n\n this.prevBounds_ = bounds;\n }\n }\n }\n };\n\n _registerChild = (ref) => {\n this.googleMapDom_ = ref;\n };\n\n render() {\n const overlay = this.state.overlay;\n const mapMarkerPrerender = !overlay ? (\n \n ) : null;\n\n return (\n \n \n {IS_REACT_16 && overlay && createPortal(this._renderPortal(), overlay)}\n\n {/* render markers before map load done */}\n {mapMarkerPrerender}\n
\n );\n }\n}\n\nexport default GoogleMap;\n","export const generateHeatmap = (instance, { positions }) =>\n new instance.visualization.HeatmapLayer({\n data: positions.reduce((acc, { lat, lng, weight = 1 }) => {\n acc.push({\n location: new instance.LatLng(lat, lng),\n weight,\n });\n return acc;\n }, []),\n });\n\nexport const optionsHeatmap = (instance, { options = {} }) =>\n Object.keys(options).map((option) => instance.set(option, options[option]));\n","export default function isArraysEqualEps(arrayA, arrayB, eps) {\n if (arrayA && arrayB) {\n for (let i = 0; i !== arrayA.length; ++i) {\n if (Math.abs(arrayA[i] - arrayB[i]) > eps) {\n return false;\n }\n }\n return true;\n }\n return false;\n}\n","import {\n styled\n} from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\nimport { MarkerDimensions } from 'src/feature-app/NewMap/MapGeneralController';\n\n\nconst beatKeyframe = keyframes`\n from {\n opacity: 1;\n transform: translate3d(50%, 50%, 0) scale(0);\n }\n to {\n opacity: 0;\n transform: translate3d(50%, 50%, 0) scale(1);\n }\n`;\n\nexport const Wrapper = styled.div<{ onTop?: boolean }>`\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate3d(-50%, -100%, 0);\n z-index: ${(props) => (props.onTop ? '3' : '2')};\n &.geoloc {\n transform: translate3d(-50%, -50%, 0);\n z-index: 1;\n }\n .circle-beat {\n animation: ${beatKeyframe} 2s ease 0s infinite normal none running;\n }\n`;\n\nexport const TextWrapper = styled(Wrapper as any)`\n /* https://github.com/microsoft/TypeScript/issues/37597#issuecomment-628089901 */\n top: 68%;\n color: #ffffff;\n & div {\n color: #ffffff;\n }\n`;\n\nexport const Img = styled.img<{ markerDimensions: MarkerDimensions }>`\n width: ${(props) => `${props.markerDimensions.width}px`};\n height: ${(props) => `${props.markerDimensions.height}px`};\n &.dealer-marker {\n margin-bottom: 4px;\n }\n`;\n","import React from 'react';\nimport { Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\n\nexport const CenterMarker = React.memo((props: { lat: number; lng: number }) => {\n return (\n \n \n \n \n \n \n );\n});\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { Points } from 'src/types';\nimport { Img, TextWrapper, Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\ninterface ClusterMarkerProps {\n lat: number;\n lng: number;\n pointCount: number;\n onClick: any;\n isHover: boolean;\n}\n\nexport const sameClusterId = (selectedPoint: Points, point: Points) => {\n if (selectedPoint?.properties?.parent_cluster_id && point.id) {\n return selectedPoint.properties.parent_cluster_id === point.id;\n }\n return false;\n};\n\nexport const ClusterMarker = React.memo(({ onClick, pointCount, isHover }: ClusterMarkerProps) => {\n const { markerDimensions } = useMapGeneralController();\n const [mouseEntered, setMouseEntered] = useState(false);\n\n return (\n {\n e.preventDefault();\n onClick();\n }}\n onMouseEnter={(e) => {\n e.preventDefault();\n setMouseEntered(true);\n }}\n onMouseLeave={(e) => {\n e.preventDefault();\n setMouseEntered(false);\n }}\n >\n \n \n {pointCount}\n \n \n );\n});\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { Points } from 'src/types';\nimport { Img, Wrapper } from 'src/feature-app/NewMap/components/CommonStyledComponents';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\nconst Dot = styled.div<{ greyCard: boolean }>`\n height: 4px;\n width: 4px;\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#0040c5')};\n border-radius: 100%;\n display: inline;\n position: absolute;\n bottom: 0;\n left: 44%;\n`;\n\ninterface DealerMarkerProps {\n onClick: (event: React.MouseEvent) => void;\n lat: number;\n lng: number;\n isGrey: boolean;\n isActive: boolean;\n isHover: boolean;\n isFavouriteDealer: boolean;\n}\n\nexport const isDealerGrey = (carPickupSelected: boolean, replacementCarSelected: boolean, point: Points) =>\n pickupSelectedAndDealerHasIt(carPickupSelected, point) ||\n replacementCarSelectedAndDealerHasIt(replacementCarSelected, point);\n\nexport const isDealerActive = (selectedPoint: Points, point: Points) =>\n selectedPoint?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nexport const isDealerFavourite = (favouriteDealer: Points, point: Points) =>\nfavouriteDealer?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nexport const isDealerHovered = (hoverPoint: Points, point: Points) =>\nhoverPoint?.properties?.dealer?.kvps === point?.properties?.dealer?.kvps;\n\nconst pickupSelectedAndDealerHasIt = (carPickupSelected: boolean, point: Points) =>\n carPickupSelected && !point?.properties?.dealer?.dmsInfo?.pickupCarServiceAvailabe;\nconst replacementCarSelectedAndDealerHasIt = (replacementCarSelected: boolean, point: Points) =>\n replacementCarSelected && !point?.properties?.dealer?.dmsInfo?.replacementCarServiceAvailable;\n\nexport const DealerMarker = React.memo(\n ({\n onClick,\n isGrey,\n isActive,\n isHover,\n isFavouriteDealer\n }: DealerMarkerProps) => {\n const markerDimensions = useMapGeneralController().markerDimensions;\n const [mouseEntered, setMouseEntered] = useState(false);\n\n return (\n {\n e.preventDefault();\n setMouseEntered(true);\n }}\n onMouseLeave={(e) => {\n e.preventDefault();\n setMouseEntered(false);\n }}\n onTop={isActive || isHover ||mouseEntered ? true : false}\n >\n \n {isActive ? : null}\n \n );\n }\n);\n","import { Breakpoints, BreakpointWrapper, CTA, styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport GoogleMapReact from 'google-map-react';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { getGoogleApiKey } from 'src/bff';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { Add, ContactDealer, Locate, Reload, Remove } from 'src/icons-core-imports';\nimport { OneFormState, Points, SelectedTab } from 'src/types';\nimport { mapStyles } from 'src/feature-app/NewMap';\nimport { CenterMarker } from 'src/feature-app/NewMap/components/CenterMarker';\nimport { ClusterMarker, sameClusterId } from 'src/feature-app/NewMap/components/ClusterMarker';\nimport { DealerMarker, isDealerGrey, isDealerActive, isDealerFavourite, isDealerHovered } from 'src/feature-app/NewMap/components/DealerMarker';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\n\nconst RecalcularWrapper = styled.div<{ isPosventa?: boolean }>`\n position: fixed;\n top: ${(props) => (props.isPosventa ? '96px' : '68px')};\n transform: translateX(-50%);\n left: 50%;\n background-color: #ffffff;\n border-radius: 500px;\n width: fit-content;\n @media all and (min-width: 960px) {\n top: 24px;\n transform: translateX(0);\n left: unset;\n right: 183px;\n }\n`;\n\nconst GoogleMaps = styled.div`\n & .gm-control-active[aria-label='Ampliar'] {\n display: none !important;\n }\n\n & .gm-control-active[aria-label='Reducir'] {\n display: none !important;\n }\n\n & .gmnoprint {\n display: none;\n }\n`;\n\ninterface MapHeightWrapperProps {\n isTrigger?: boolean;\n isWidget?: boolean;\n}\n\nconst MapHeigthWrapper = styled.div`\n width: 100%;\n height: ${(props) => (props.isWidget ? '85vh' : props.isTrigger ? 'var(--size-grid020)' : '100vh')};\n\n @media all and (min-width: 560px) {\n height: ${(props) => (props.isWidget ? '82vh' : props.isTrigger ? 'var(--size-grid010)' : '100vh')};\n }\n\n @media all and (min-width: 768px) {\n height: ${(props) => (props.isWidget ? '85vh' : props.isTrigger ? 'var(--size-grid010)' : '100vh')};\n }\n @media all and (min-width: 960px) {\n height: ${(props) => (props.isWidget ? '60vh' : props.isTrigger ? '636px' : '100vh')};\n }\n @media all and (min-width: 1600px) {\n height: ${(props) => (props.isWidget ? '70vh' : props.isTrigger ? '684px' : '100vh')};\n }\n`;\n\ninterface newMapProps {\n searchIsDealer?: boolean;\n setTranslateCarousel?: any;\n translateCarousel?: boolean;\n preSelectedOrderValue?: SelectedTab;\n isTrigger?: boolean;\n preselectedDealerForm?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n isPosventa?: boolean;\n isWidget?: boolean;\n}\n\nexport const NewMap = React.memo((props: newMapProps) => {\n const {\n centerRef,\n clusters,\n handleApiLoaded,\n geoLocatedCenterRef,\n getNewClusters,\n handlePointClickAndCarouselMove,\n selectedPoint,\n handleClusterClick,\n mapMaxZoom,\n searchMoreDealers,\n handleMapMovement,\n setSearchIsDealer,\n hoverPoint,\n handleHoverPoint,\n userIsGeoLocated,\n mapHasMoved,\n } = useMapGeneralController();\n const { dealersInfo, formInfo } = useSelector((state: OneFormState) => state);\n const { dealersOrInstallationsMode, favouriteDealer } = dealersInfo;\n const { suggestionIsAddress } = formInfo;\n const {\n searchIsDealer,\n setTranslateCarousel,\n preSelectedOrderValue,\n isTrigger,\n carPickupSelected,\n replacementCarSelected,\n isPosventa,\n isWidget,\n } = props;\n const trackingManager = useTrackingManager();\n\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n } else {\n setGelocalizationActive(false);\n }\n }, [userIsGeoLocated]);\n\n return (\n // Important! Always set the container height explicitly\n \n \n {\n handleApiLoaded(map, maps);\n }}\n defaultCenter={{\n lat: 40.58869349456487,\n lng: -3.0047240000000075,\n }}\n yesIWantToUseGoogleMapApiInternals\n onDrag={() => {\n handleMapMovement();\n }}\n defaultZoom={5}\n options={{\n styles: mapStyles,\n clickableIcons: false,\n streetViewControl: false,\n fullscreenControl: false,\n mapTypeControl: false,\n maxZoom: mapMaxZoom,\n }}\n >\n {clusters\n ? clusters.map((point: Points) => {\n if (point.geometry) {\n const [longitude, latitude] = point.geometry.coordinates;\n return point.properties.cluster ? (\n {\n handleClusterClick(point);\n }}\n pointCount={point.properties.point_count}\n />\n ) : (\n {\n e.preventDefault();\n if (!searchIsDealer) {\n handlePointClickAndCarouselMove(point, true, preSelectedOrderValue);\n }\n }}\n />\n );\n }\n return null;\n })\n : null}\n {(geoLocatedCenterRef.current && gelocalizationActive) || (suggestionIsAddress && centerRef.current) ? (\n \n ) : null}\n \n {isTrigger ? (\n \n \n \n ) : (\n <>\n \n \n \n {clusters && mapHasMoved && !isWidget ? (\n searchIsDealer ? (\n \n \n {\n e.preventDefault();\n setSearchIsDealer(false);\n\n trackingManager.trackFormButtonClick({\n contentId:\n dealersOrInstallationsMode === 'dealers'\n ? 'Ver más talleres cerca'\n : 'Ver más puntos de venta cerca',\n });\n searchMoreDealers();\n if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n {dealersOrInstallationsMode === 'dealers'\n ? 'Ver más talleres cerca'\n : 'Ver más puntos de venta cerca'}\n \n \n \n ) : (\n \n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Buscar en esta zona',\n });\n getNewClusters();\n {\n /*if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }*/\n }\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar en esta zona\n \n \n \n )\n ) : null}\n \n )}\n \n \n );\n});\n\n/* MAP CONTROLLLERS (!el botón de geolocaclización en versión mobile está en la propia vista.\n Estos controladores actualmente solo están visibles a partir de 960px)\n*/\nconst ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n`;\n\ninterface ControllersWrapperProps {\n isTrigger?: boolean;\n}\n\nconst ControllersWrapper = styled.div`\n position: ${(props) => (props.isTrigger ? 'absolute' : 'absolute')};\n bottom: ${(props) => (props.isTrigger ? '24px' : '240px')};\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid002) + 24px)' : '20px')};\n\n @media all and (min-width: 960px) {\n bottom: 24px;\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid002) + 24px)' : '24px')};\n }\n @media all and (min-width: 1920px) {\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid003) + 24px)' : '24px')};\n }\n @media all and (min-width: 2560px) {\n right: ${(props) => (props.isTrigger ? 'calc(var(--size-grid004) + 24px)' : '24px')};\n }\n`;\n\nconst ZoomWrapper = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 14px;\n\n & div {\n margin: 6px 0px;\n }\n`;\n\nconst IconLess = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/icons/ic_less.svg';\nconst IconMore = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/icons/ic_more.svg';\n\nconst Controllers = (props: { gelocalizationActive: boolean; suggestionIsAddress: boolean; isTrigger?: boolean }) => {\n const { handleChangeInMapZoom, centerInGeoLocatedCenter, centerRef, centerMap } = useMapGeneralController();\n\n const { gelocalizationActive, isTrigger, suggestionIsAddress } = props;\n\n return (\n \n \n {gelocalizationActive || (suggestionIsAddress && centerRef.current) ? (\n \n {\n e.preventDefault();\n if (suggestionIsAddress && centerRef.current) {\n centerMap(centerRef.current);\n } else {\n centerInGeoLocatedCenter();\n }\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n \n \n {\n e.preventDefault();\n handleChangeInMapZoom(true);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n {\n e.preventDefault();\n handleChangeInMapZoom(false);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n \n \n );\n};\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { ReactElement, useEffect, useRef } from 'react';\nimport Slider from 'react-slick';\nimport { NewDealerCard } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\nimport { getDistanceFromLatLngCenter } from 'src/feature-app/NewMap/utils';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\n\nconst BackgroundCard = styled.div`\n background-color: #001e50;\n margin: 0 4px;\n`;\n\ninterface CarouselCardsProps {\n handleShowCalendarOnClick?: any;\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n pointsToList: Points[];\n isCitaPosventa?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n}\n\nexport const Carousel = (props: CarouselCardsProps) => {\n const {\n clusters,\n handlePointClickAndCarouselMove,\n centerToCalculateDistance,\n handleSelectedPoint,\n handleClusterClick,\n selectedPoint,\n } = useMapGeneralController();\n const { \n handleSeleccionarOnClick, \n handleShowCalendarOnClick, \n handleShowSlots, \n pointsToList, \n isCitaPosventa,\n carPickupSelected,\n replacementCarSelected \n } = props;\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n useEffect(() => {\n if (pointsToList.length) {\n const firstPoint = selectedPoint ? selectedPoint : pointsToList[0];\n // handleCarouselMovement(firstPoint);\n handleSelectedPoint(firstPoint);\n // handleSelectedCard(firstPoint);\n }\n }, [pointsToList]);\n\n useEffect(() => {\n // Movimiento del carousel en caso de que se haga click en un Dealer Marker.\n if (selectedPoint) {\n // handleSelectedCard(selectedPoint);\n handleCarouselMovement(selectedPoint);\n }\n }, [selectedPoint, pointsToList]);\n\n const handleSelectedCard = (point: Points) => {\n if (!point.properties.cluster) {\n const { kvps } = point.properties.dealer;\n\n const index = pointsToList.findIndex((dealer) => {\n if (dealer.properties.dealer.kvps === kvps) {\n return true;\n }\n });\n sliderRef.current.slickGoTo(index);\n }\n };\n\n const handleCarouselMovement = (point: Points) => {\n if (point.properties.parent_cluster_id) {\n const parentCluster = clusters.find(\n (cluster) => cluster.properties.cluster && cluster.id === point.properties.parent_cluster_id\n );\n if (parentCluster) {\n // En caso de que el dealer esté dentro de un cluster dentro de otro fijamos el valor de isCluster como true para que llegue hasta el final\n // y no rompa únicamente el primer cluster.\n // handleClusterClick(point, true);\n handleSelectedPoint(point);\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n };\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '60px',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n beforeChange: (current: number, next: number) => {\n const point: Points = pointsToList.find((point) => {\n if (!point.properties.cluster) {\n if (point.properties.dealer.kvps === childrenRef.current[next].key) {\n return point;\n }\n }\n });\n\n handleCarouselMovement(point);\n },\n };\n return (\n \n {\n sliderRef.current = el;\n if (el && el.props && el.props.children) {\n childrenRef.current = el.props.children.filter((c:any) => c !== null);\n }\n }}\n >\n {pointsToList\n ? pointsToList.map((point: Points, i) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return !point.properties.cluster ? (\n
\n {/* este div es necesario para el funcionamiento de la libreria */}\n \n \n \n
\n ) : null;\n })\n : null}\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { Suggest, useFeatureAppConfig, useMapGeneralController } from 'src/feature-app';\nimport { Horario, Installation, isDealerData, OneFormState, SelectedTab } from 'src/types';\nimport { isGooglePlace, updateMapVariables, Suggestion } from 'src/feature-app/NewMap';\nimport {\n useTrackingManager,\n useLocateUser,\n useShowOverflow,\n useFeatureAppEnvironment,\n useFeatureServices,\n} from 'src/feature-app/hooks';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { renderAvisoIslasCanariasLayer } from 'src/components';\nimport { getGeocode } from 'src/feature-app/NewMap/utils';\nimport { GooglePlace } from 'src/feature-app/NewMap/components/suggest';\n\nconst FiltrosWrapper = styled.div<{ onlySuggest?: boolean; showOverflow?: boolean }>`\n min-height: 100vh;\n position: relative;\n padding-bottom: 117px;\n padding-top: 56px;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n .filtros {\n &__header {\n text-align: center;\n }\n &__body {\n flex-grow: 1;\n padding-bottom: ${(props) => (props.onlySuggest ? '4px' : null)};\n }\n &__controls {\n position: fixed;\n bottom: 0;\n width: 100%;\n padding: 14px 0;\n background: #ffffff;\n border-top: 1px solid #dfe4e8;\n }\n }\n`;\n\nconst MultipleCTAWrapper = styled.div`\n text-align: left;\n & > button {\n margin: 24px 24px 0 0;\n }\n`;\n\nconst Divider = styled.div`\n background-color: #dfe4e8;\n width: 100vw;\n height: 1px;\n margin-bottom: 14px;\n\n @media all and (min-width: 960px) {\n display: none;\n margin-bottom: 0;\n }\n`;\n\n//revisar width aButtonsWrapper a partir de 960 en navegadores/dispositivos con barra de scroll.\n//Está puesto con valor fijo porqué por algun motivo no pilla bien el 100%\n\nconst ActionButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n @media all and (min-width: 960px) {\n width: 400px;\n }\n button {\n div {\n font-size: 14px;\n }\n &:first-of-type {\n margin-right: 32px;\n }\n }\n`;\n\ninterface FiltrosProps {\n closeFiltros: any;\n showFiltros: boolean;\n setShowFiltros: React.Dispatch>;\n setPreSelectedOrderValue?: React.Dispatch>;\n preSelectedOrderValue?: SelectedTab;\n onlySuggest?: boolean;\n concesionario?: boolean;\n citaPosventa?: boolean;\n}\n\nexport const Filtros = (props: FiltrosProps) => {\n return (\n {}}>\n \n \n );\n};\n\nexport interface SelectedSuggestion {\n name: string;\n suggestion: Suggestion;\n}\n\nconst getSelectedSuggestion = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return { name: suggestion.name, suggestion };\n } else {\n if (!isDealerData(suggestion)) {\n return {\n name: `${(suggestion as Installation).TXT_V_Installation_Data_Name__c}, ${\n (suggestion as Installation).TXT_V_Address__c\n }`,\n suggestion,\n };\n } else {\n return {\n name: `${suggestion.name}, ${suggestion.markerInfo.dealerInfo.address}`,\n suggestion,\n };\n }\n }\n};\n\nexport const FiltrosComponent = (props: FiltrosProps) => {\n const {\n closeFiltros,\n showFiltros,\n setShowFiltros,\n setPreSelectedOrderValue,\n preSelectedOrderValue,\n onlySuggest,\n concesionario,\n citaPosventa,\n } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n //Si se necesita que el overflow sea visible. Selectsno nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(false);\n\n const [aplicarDisabled, setAplicarDisabled] = useState(true);\n const [tabsOrder, setTabsOrder] = useState('horario');\n const [currentHorario, setCurrentHorario] = useState<{ label: string; value: string }>({\n label: 'Lo antes posible',\n value: 'before',\n });\n // guardar suggestion seleccionada previo a hacer submit\n // sirve para activar o desactivar el setAplicarDisabled\n const [selectedSuggestion, setSelectedSuggestion] = useState(null);\n const { register } = useFormContext();\n const trackingManager = useTrackingManager();\n const filtrosRef = useRef(null);\n\n const { userSuggestion: userSuggest, suggestionIsInCanaryIslands } = formInfo;\n\n const CTAsHorario = [\n { label: 'Lo antes posible', value: 'before' },\n { label: 'Por la mañana', value: 'morning' },\n { label: 'Al mediodía', value: 'afternon' },\n { label: 'Por la tarde', value: 'evening' },\n ];\n\n const CTAsOrden: { value: SelectedTab; label: string }[] = [\n { value: 'ubicacion', label: 'Ubicación' },\n { value: 'horario', label: 'Horario' },\n ];\n\n const {\n value,\n setValue,\n icon,\n locationSuccess,\n setLocationSuccess,\n loading,\n locationDisabled,\n isLocating,\n handleLocateFilters,\n } = useLocateUser();\n const dispatch = useDispatch();\n\n const { moreDealersSearched, setMoreDealersSearched } = useMapGeneralController();\n const { trigger } = useFeatureAppConfig();\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'];\n\n const validateSubmission = () => {\n const { suggestionIsInCanaryIslands } = store.getState().formInfo;\n\n if (suggestionIsInCanaryIslands) {\n renderAvisoIslasCanariasLayer(store, env, layerManager);\n return;\n }\n\n if (preSelectedOrderValue && setPreSelectedOrderValue && tabsOrder !== preSelectedOrderValue) {\n setPreSelectedOrderValue(tabsOrder);\n }\n setShowFiltros(false);\n };\n\n const handleFiltrosSubmit = (selectedSuggestionFromClick?: SelectedSuggestion) => {\n if (selectedSuggestion && !selectedSuggestionFromClick) {\n // if (isGooglePlace(selectedSuggestion.suggestion) && selectedSuggestion.suggestion.isGeoLocated) {\n // // Parche para que se actualize la ubicación a la geolocalización. El bug viene de que en use-locate-user.tsx\n // // se detecta el cambio de suggestion en un useeffect y eso dispara la función updateMapVariables, pero en el caso de\n // // la geolocalización, ésta función se dispara automáticamente al clickar sobre el cta. Si queremos esperar a que los cambios\n // // se hagan efectivos al clickar \"Aplicar filtros\" hay que llamarla desde aquí.\n\n updateMapVariables(dispatch, selectedSuggestion.suggestion).then(() => {\n validateSubmission();\n });\n }\n // Pasamos este valor al seleccionar en la lista desplegable un valor.\n if (selectedSuggestionFromClick) {\n updateMapVariables(dispatch, selectedSuggestionFromClick.suggestion).then(() => {\n validateSubmission();\n });\n }\n };\n\n useEffect(() => {\n if (!moreDealersSearched) {\n if (userSuggest && showFiltros) {\n if (!isGooglePlace(userSuggest) && isDealerData(userSuggest)) {\n setValue(`${userSuggest?.name}, ${userSuggest?.markerInfo?.dealerInfo?.address}`);\n } else if (!isGooglePlace(userSuggest) && !isDealerData(userSuggest)) {\n setValue(\n `${(userSuggest as Installation)?.TXT_V_Installation_Data_Name__c}, ${\n (userSuggest as Installation)?.TXT_V_Address__c\n }`\n );\n } else {\n setValue(userSuggest?.name);\n }\n }\n } else {\n setValue('');\n }\n if (showFiltros) setAplicarDisabled(true);\n }, [showFiltros]);\n\n useEffect(() => {\n if (value && !aplicarDisabled) {\n if (value !== selectedSuggestion.name) {\n setAplicarDisabled(true);\n }\n }\n }, [value]);\n\n useEffect(() => {\n const val = CTAsHorario.find((el: any) => formData.fields.horario === el.value);\n setCurrentHorario(val);\n }, [formData]);\n\n useEffect(() => {\n if (preSelectedOrderValue) {\n setTabsOrder(preSelectedOrderValue);\n }\n }, [preSelectedOrderValue]);\n\n useEffect(() => {\n if (moreDealersSearched && locationSuccess) setLocationSuccess(false);\n }, [moreDealersSearched]);\n\n useEffect(() => {\n // Necesario para que cada vez que se selecciona un resultado de google en filtros se compruebe si\n // pertenece a las islas canarias y dispare el popup antes de que se apliquen los filtros.\n const checkGeocode = async () => {\n const geometry = await getGeocode(selectedSuggestion);\n };\n if (selectedSuggestion?.suggestion?.isGooglePlace) {\n checkGeocode();\n }\n }, [selectedSuggestion]);\n\n useEffect(() => {\n if (!moreDealersSearched) {\n // cuando se monta la componente, si está geolocalizado forzar el locationSuccess a\n // true porque el boton el hook se resetea al montar de nuevo la componente\n // también porque en mobile la componente Filtros se renderiza cada vez que se abre\n if (!userSuggest) {\n return;\n }\n if ((userSuggest as GooglePlace)?.isGeoLocated) {\n setLocationSuccess(true);\n }\n if (!isGooglePlace(userSuggest) && isDealerData(userSuggest)) {\n setValue(`${userSuggest.name}, ${userSuggest.markerInfo.dealerInfo.address}`);\n } else if (!isGooglePlace(userSuggest) && !isDealerData(userSuggest)) {\n setValue(\n `${(userSuggest as Installation).TXT_V_Installation_Data_Name__c}, ${\n (userSuggest as Installation).TXT_V_Address__c\n }`\n );\n } else {\n setValue(userSuggest.name);\n }\n }\n }, []);\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n const selectedSuggestion = getSelectedSuggestion(suggestion);\n setSelectedSuggestion(selectedSuggestion);\n setLocationSuccess(false);\n setAplicarDisabled(false);\n if (moreDealersSearched) setMoreDealersSearched(false);\n // Cierra la parte de filtros\n handleFiltrosSubmit(selectedSuggestion);\n };\n\n return (\n \n \n \n {citaPosventa ? null : (\n
\n \n Filtros\n \n
\n )}\n\n {!onlySuggest ? (\n
\n \n \n {citaPosventa ? (\n <>Buscar de nuevo\n ) : (\n <>Busca tu {!concesionario ? taller : punto de venta}\n )}\n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) {\n const { suggestion } = await handleLocateFilters();\n setSelectedSuggestion({ name: suggestion.name, suggestion });\n setAplicarDisabled(false);\n setMoreDealersSearched(false);\n }\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n \n {/* */}\n \n {/* */}\n
\n ) : (\n
\n \n \n {citaPosventa ? (\n <>Buscar de nuevo\n ) : (\n <>Busca tu {!concesionario ? taller : punto de venta}\n )}\n \n
\n \n
\n \n {\n e.preventDefault();\n if (!locationSuccess) {\n const { suggestion } = await handleLocateFilters();\n setSelectedSuggestion({ name: suggestion.name, suggestion });\n setAplicarDisabled(false);\n setMoreDealersSearched(false);\n }\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n \n \n
\n )}\n \n
\n \n \n {\n closeFiltros();\n trackingManager.trackFormButtonClick({\n contentId: 'Cancelar',\n });\n }}\n ariaLabel=\"aria label\"\n >\n Cancelar\n \n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: 'Aplicar filtros',\n });\n setTimeout(() => {\n handleFiltrosSubmit();\n }, 1000);\n }}\n ariaLabel=\"aria label\"\n disabled={aplicarDisabled}\n >\n {citaPosventa ? <>Buscar : <>Aplicar filtros}\n \n \n \n
\n \n
\n );\n};\n\ninterface SortByProps {\n setTabsOrder: React.Dispatch>;\n setAplicarDisabled: React.Dispatch>;\n preSelectedOrderValue: SelectedTab;\n CTAsOrden: {\n value: SelectedTab;\n label: string;\n }[];\n tabsOrder: SelectedTab;\n}\n\nconst SortBy = (props: SortByProps) => {\n const { setTabsOrder, setAplicarDisabled, preSelectedOrderValue, tabsOrder, CTAsOrden } = props;\n const trackingManager = useTrackingManager();\n\n return (\n <>\n \n Ordenar por\n \n \n {CTAsOrden.map((el) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: el.label,\n });\n setTabsOrder(el.value);\n if (preSelectedOrderValue !== el.value) {\n setAplicarDisabled(false);\n }\n }}\n size=\"small\"\n key={el.value}\n >\n {el.label}\n \n );\n })}\n \n \n );\n};\n\ninterface ChangeHorarioProps {\n setCurrentHorario: React.Dispatch>;\n setAplicarDisabled: React.Dispatch>;\n CTAsHorario: {\n label: string;\n value: string;\n }[];\n currentHorario: { label: string; value: string };\n horario: Horario;\n}\n\nconst ChangeHorario = (props: ChangeHorarioProps) => {\n const { setCurrentHorario, setAplicarDisabled, CTAsHorario, currentHorario, horario } = props;\n const trackingManager = useTrackingManager();\n\n return (\n \n \n Selecciona una franja horaria\n \n \n {CTAsHorario.map((cta: { label: string; value: string }) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: cta.label,\n });\n if (cta.label !== currentHorario.label) {\n setCurrentHorario(cta);\n }\n if (cta.value !== horario) {\n setAplicarDisabled(false);\n }\n }}\n size=\"small\"\n key={cta.value}\n >\n {cta.label}\n \n );\n })}\n \n \n );\n};\n","import { Text, ThemeProvider, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Close, ContactDealer, Magnifier, Route } from 'src/icons-core-imports';\nimport { MagnifierLabel, CloseButton, SuggestionWrapper, StyledWrapper } from '.';\nimport React, { useEffect, useRef, useState } from 'react';\nimport Autosuggest from 'react-autosuggest';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DealersData } from 'src/types';\nimport { useAddressPredictions } from 'src/feature-app';\nimport { DealersOrInstallationsMode, Geometry, Installation, isDealerData, OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { isGooglePlace } from 'src/feature-app/NewMap/utils';\nimport { useDropdowPosition, useTrackingManager } from 'src/feature-app/hooks';\n\nexport interface GooglePlace {\n isGooglePlace: boolean;\n name: string;\n isGeoLocated: boolean;\n skipSearch?: boolean;\n moreDealersSearched?: boolean;\n geometry?: Geometry;\n}\n\nexport type Suggestion = DealersData | GooglePlace | Installation;\n\n// https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions#Using_Special_Characters\nconst escapeRegexCharacters = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n};\n\nconst getSuggestions = (\n list: DealersData[] | Installation[],\n value: string,\n dealersOrInstallationsMode: DealersOrInstallationsMode\n) => {\n if (value.length < 2) return [];\n const escapedValue = escapeRegexCharacters(value.trim());\n\n if (escapedValue === '') {\n return [];\n }\n const regex = new RegExp(escapedValue, 'i');\n\n if (dealersOrInstallationsMode === 'dealers') {\n return list.filter((dealer: DealersData) => regex.test(dealer.markerInfo.dealerInfo.name));\n } else {\n return list.filter((installation: Installation) => regex.test(installation.VGED_CommercialName__c));\n }\n};\n\nconst getSuggestionValue = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return suggestion.name;\n } else {\n if (isDealerData(suggestion)) {\n return suggestion.markerInfo.dealerInfo.name;\n } else {\n return (suggestion as Installation).VGED_CommercialName__c;\n }\n }\n};\n\nconst renderSuggestion = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return (\n \n \n \n {suggestion.name}\n \n \n );\n } else {\n let name;\n let address;\n let zipCode;\n let city;\n let province;\n if (isDealerData(suggestion)) {\n name = suggestion.markerInfo.dealerInfo.name;\n address = suggestion.markerInfo.dealerInfo.address;\n zipCode = suggestion.markerInfo.dealerInfo.zipCode;\n city = suggestion.markerInfo.dealerInfo.city;\n province = suggestion.markerInfo.dealerInfo.province;\n } else {\n name = (suggestion as Installation).VGED_CommercialName__c;\n address = (suggestion as Installation).ShippingStreet;\n zipCode = (suggestion as Installation).ShippingPostalCode;\n city = (suggestion as Installation).ShippingCity;\n province = (suggestion as Installation).Province;\n }\n return (\n \n \n \n
\n \n {name}\n \n \n {address}\n
\n {zipCode} {city}, {province}\n
\n
\n
\n );\n }\n};\n\nconst getValueFormatted = (suggestion: Suggestion) => {\n if (isGooglePlace(suggestion)) {\n return suggestion.name;\n }\n if (!isGooglePlace(suggestion) && isDealerData(suggestion)) {\n return `${suggestion.name}, ${suggestion.markerInfo.dealerInfo.address}`;\n } else if (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n return `${(suggestion as Installation).VGED_CommercialName__c}, ${\n (suggestion as Installation).ShippingStreet\n }`;\n } else {\n return '';\n }\n};\n\ninterface SuggestProps {\n setSuggestion?: React.Dispatch>;\n setValue: React.Dispatch>;\n setAplicarDisabled?: React.Dispatch>;\n value: string;\n isFiltrosSuggest?: boolean;\n isLocating?: boolean;\n moreDealersSearched?: boolean;\n setLocationSuccess?: React.Dispatch>;\n formTheme?: string;\n onSuggestionSelectedFn?: (suggestion: Suggestion) => void;\n autoWidth?: boolean;\n}\n\nexport function Suggest(props: SuggestProps) {\n const {\n setSuggestion,\n setValue,\n value,\n isFiltrosSuggest,\n setAplicarDisabled,\n isLocating,\n moreDealersSearched,\n setLocationSuccess,\n formTheme,\n onSuggestionSelectedFn,\n autoWidth\n } = props;\n const [suggestions, setSuggestions] = useState([]);\n const [selectedValue, setSelectedValue] = useState(false); // Controla que una vez seleccionado un valor en el input, no siga buscando en google maps.\n const predictions = useAddressPredictions(value, selectedValue);\n const [inputPlaceholder, setInputPlaceHolder] = useState('Localidad, código postal o nombre del taller');\n const trackingManager = useTrackingManager();\n const suggestRef = useRef(null);\n const inputRef = useRef(null);\n\n const { formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { dealers, installations, dealersOrInstallationsMode } = dealersInfo;\n\n const [inputFocus, setInputFocus] = useState(false);\n const dispatch = useDispatch();\n const { setDisableIntroNextStep, setError, handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n if (isFiltrosSuggest) {\n setDisableIntroNextStep(true);\n // inputRef.current.input.addEventListener('keydown', handleIntroKeyDown)\n }\n return () => {\n if (isFiltrosSuggest) {\n setDisableIntroNextStep(false);\n // inputRef.current.input.removeEventListener('keydown', handleIntroKeyDown)\n }\n };\n }, []);\n\n const onChange = (e: any, { newValue }: { newValue: string }) => {\n e.stopPropagation();\n if (setSelectedValue) {\n setSelectedValue(false);\n }\n setError(false);\n setValue(newValue);\n };\n\n //desplegar el dropdown para arriba o para abajo según la posicinón del input en el window\n const { goUp, getAndUpdateState } = useDropdowPosition('.react-autosuggest__container');\n\n const onClick = () => {\n getAndUpdateState();\n\n trackingManager.trackFormFieldClick(\n {\n contentId: 'Localidad, código postal o nombre del taller',\n },\n {\n FormFieldName: 'location', // Corregir\n }\n );\n };\n\n const onSuggestionsFetchRequested = async ({ value }: { value: string }) => {\n const list = dealersOrInstallationsMode === 'dealers' ? dealers : installations;\n const dealerSuggestions = getSuggestions(list, value, dealersOrInstallationsMode);\n setSuggestions(dealerSuggestions);\n };\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const [placeHolder, setPlaceHolder] = useState('');\n\n useEffect(() => {\n if (dealersOrInstallationsMode === 'dealers') {\n setPlaceHolder('Localidad, código postal, dirección, nombre del taller, etc.');\n } else {\n setPlaceHolder('Localidad, código postal o nombre del punto de venta');\n }\n }, []);\n\n useEffect(() => {\n if (isFiltrosSuggest && moreDealersSearched) {\n setInputPlaceHolder('Zona del mapa seleccionada');\n } else {\n setInputPlaceHolder(placeHolder);\n }\n }, [moreDealersSearched, placeHolder]);\n\n const inputProps = {\n placeholder: inputPlaceholder,\n value,\n onChange,\n onClick,\n disabled: isLocating ? true : false,\n };\n\n // REFACTORIZAR\n useEffect(() => {\n if (selectedValue) return;\n const predictionsFormatted: GooglePlace[] = predictions.map((prediction) => {\n return {\n name: prediction,\n isGooglePlace: true,\n isGeoLocated: false,\n };\n });\n setSuggestions([...suggestions, ...predictionsFormatted]);\n }, [predictions]);\n\n return (\n {\n setInputFocus(true);\n }}\n onBlur={() => setInputFocus(false)}\n isFullScreen={formInfo.notALayer ? true : false}\n goUp={goUp}\n autoWidth={autoWidth}\n className=\"styled-wrapper-suggest\"\n >\n \n \n \n {\n if (!isGooglePlace(suggestion)) {\n dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: false });\n }\n const value = getValueFormatted(suggestion);\n setValue(value);\n setSelectedValue(true);\n if (onSuggestionSelectedFn) {\n setTimeout(() => {\n onSuggestionSelectedFn(suggestion);\n }, 0);\n }\n }}\n inputProps={inputProps}\n />\n {value !== '' && (\n \n {\n e.preventDefault();\n setValue('');\n if (!isFiltrosSuggest && !isLocating) {\n setLocationSuccess(false);\n setSuggestion(null);\n setValue('');\n setSelectedValue(false);\n } else if (isFiltrosSuggest) {\n setAplicarDisabled(true);\n }\n }}\n >\n \n \n \n )}\n \n );\n}\n","export const mapStyles = [\n {\n elementType: 'geometry',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n elementType: 'labels.text.stroke',\n stylers: [\n {\n color: '#f5f5f5',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'administrative.land_parcel',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#bdbdbd',\n },\n ],\n },\n {\n featureType: 'landscape',\n stylers: [\n {\n color: '#dfe4e8',\n },\n ],\n },\n {\n featureType: 'landscape.natural',\n elementType: 'labels',\n stylers: [\n {\n color: '#757575',\n },\n {\n visibility: 'simplified',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'poi.business',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ade5a1',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#00662f',\n },\n ],\n },\n {\n featureType: 'poi.park',\n elementType: 'labels.text.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.icon',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.arterial',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#757575',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [\n {\n color: '#dadada',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.fill',\n stylers: [\n {\n color: '#ffe856',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'geometry.stroke',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.highway',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#616161',\n },\n ],\n },\n {\n featureType: 'road.local',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'geometry',\n stylers: [\n {\n color: '#ffffff',\n },\n {\n visibility: 'on',\n },\n {\n weight: 0.5,\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text',\n stylers: [\n {\n visibility: 'on',\n },\n ],\n },\n {\n featureType: 'road.local',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#9e9e9e',\n },\n ],\n },\n {\n featureType: 'transit',\n stylers: [\n {\n visibility: 'off',\n },\n ],\n },\n {\n featureType: 'transit.line',\n elementType: 'geometry',\n stylers: [\n {\n color: '#e5e5e5',\n },\n ],\n },\n {\n featureType: 'transit.station',\n elementType: 'geometry',\n stylers: [\n {\n color: '#eeeeee',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'geometry',\n stylers: [\n {\n color: '#4cc7f4',\n },\n ],\n },\n {\n featureType: 'water',\n elementType: 'labels.text.fill',\n stylers: [\n {\n color: '#0066a1',\n },\n ],\n },\n];\n","export const provinces = [\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"2\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Albacete\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"3\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Alicante/Alacant\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"4\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Almería\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"1\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Araba/Álava\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"33\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Asturias\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"5\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ávila\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"6\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Badajoz\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"7\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Balears, Illes\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"8\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Barcelona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"48\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Bizkaia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"9\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Burgos\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"10\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cáceres\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"11\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cádiz\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"39\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cantabria\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"12\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Castellón/Castelló\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"13\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ciudad Real\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"14\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Córdoba\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"15\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Coruña, A\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"16\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Cuenca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"20\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Gipuzkoa\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"17\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Girona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"18\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Granada\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"19\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Guadalajara\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"21\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Huelva\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"22\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Huesca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"23\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Jaén\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"24\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"León\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"25\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Lleida\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"27\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Lugo\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"28\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Madrid\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"29\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Málaga\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"30\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Murcia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"31\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Navarra\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"32\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ourense\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"34\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Palencia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"35\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Palmas, Las\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"36\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Pontevedra\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"26\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Rioja, La\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"37\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Salamanca\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"38\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Santa Cruz de Tenerife\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"40\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Segovia\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"41\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Sevilla\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"42\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Soria\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"43\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Tarragona\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"44\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Teruel\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"45\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Toledo\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"46\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Valencia/València\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"47\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Valladolid\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"49\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Zamora\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"50\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Zaragoza\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"51\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Ceuta\"\n }\n ]\n },\n {\n \"attributes\": [\n {\n \"name\": \"CODE\",\n \"value\": \"52\"\n },\n {\n \"name\": \"NAME\",\n \"value\": \"Melilla\"\n }\n ]\n }\n]","import {\n styled\n} from '@volkswagen-onehub/components-core';\n\n//Layer styles\n\nexport const MapAndTabsWrapper = styled.div<{ showFilters: boolean }>`\n display: flex;\n .wrapper {\n width: 50%;\n height: 100vh;\n &--tabs {\n background-color: #001e50;\n overflow-y: hidden;\n color: #ffffff;\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: #ffffff;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 5;\n transform: translate3d(100%, 0, 0);\n display: none;\n .back-btn {\n position: absolute;\n z-index: 4;\n top: 20px;\n left: 24px;\n @media screen and (min-width: 1600px) {\n top: 24px;\n }\n }\n &.filtros-enter {\n display: block;\n transform: translate3d(100%, 0, 0);\n }\n &.filtros-enter-active {\n display: block;\n transform: translate3d(0, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-enter-done {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit-active {\n display: block;\n transform: translate3d(100%, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-exit-done {\n display: none;\n transform: translate3d(100%, 0, 0);\n }\n`;\n\nexport const ListWrapper = styled.div<{paddingBottom?: string}>`\n height: calc(100vh - 120px);\n overflow-y: auto;\n @media all and (min-width: 960px) {\n padding-bottom: ${(props)=> props.paddingBottom ? props.paddingBottom : null};\n }\n`;\n\nexport const SmallerSVG = styled.div`\n svg {\n height: 12px;\n width: 12px;\n }\n button {\n height: 24px;\n min-height: 24px; \n }\n div{\n font-size: 12px;\n }\n`;\n\n//Mobile Layer styled components\n\nexport const FilterMobileNavbar = styled.div`\n position: fixed;\n top: 0;\n width: 100vw;\n padding: 8px 20px;\n z-index: 20;\n background-color: #ffffff; \n`;\n\nexport const CTAsNavigationWrapper = styled.div<{services?: boolean}>`\n display:flex;\n justify-content: space-between;\n padding-bottom: ${(props) => props.services ? '16px' : null} ;\n`;\n\ninterface VerMasYCarouselPositionProps {\n translateCarousel: boolean;\n userIsGeoLocated: boolean;\n}\n\nexport const VerMasYCarouselPosition = styled.div`\n position: absolute;\n bottom: 8px;\n height: fit-content;\n width: 100%;\n`;\nexport const SoloCardWrapper = styled.div`\n background-color: #001e50;\n bottom: 8px;\n height: fit-content;\n position: absolute;\n margin: 0 var(--size-grid002);\n width: var(--size-grid020);\n .box-card-wrapper {\n border: none;\n margin-top: 0;\n }\n`;\n\nexport const CTASwrapper = styled.div`\n padding-right: 20px;\n padding-bottom: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;\n\nexport const VerMasTalleresCTA = styled.div`\n height: 32px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: #ffffff;\n border: 1px solid #001e50;\n border-radius: 500px;\n color: #001e50;\n display: flex;\n align-items: center;\n width: 100px;\n`;\n\nexport const ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n margin-bottom: 12px;\n button {\n border: 1px solid #001e50;\n }\n`;\n\ninterface CloseButtonProps {\n isTabsClose?: boolean;\n isFiltrosClose?: boolean;\n}\nexport const CloseButtonWrapper = styled.div`\n position: absolute;\n padding-bottom: ${(props) => (props.isTabsClose || props.isFiltrosClose ? '12px' : null)};\n background-color: ${(props) => (props.isTabsClose ? '#001E50' : '#FFFFFF')};\n width: 100%;\n padding-top: 12px;\n padding-left: 12px;\n z-index: 4;\n top: ${(props) => (props.isTabsClose || props.isFiltrosClose ? '0' : null)};\n @media screen and (min-width: 560px) {\n left: 20px;\n }\n button {\n color: ${(props) => (props.isTabsClose ? '#FFFFFF' : null)};\n }\n`;\n\nexport const MoblieListWrapper = styled.div<{paddingTop?: string}>`\n padding-top: ${(props)=> props.paddingTop ? props.paddingTop : null};\n`;\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowLeft, Magnifier, FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { useFeatureAppConfig } from 'src/feature-app';\nimport { CloseComponent } from 'src/feature-app/Screen';\nimport { SelectedTab } from 'src/types';\nimport { Filtros } from 'src/feature-app/NewMap';\nimport { Points } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { NewMap } from 'src/feature-app/NewMap/components/Map';\nimport { useMapGeneralController } from 'src/feature-app/NewMap/MapGeneralController';\nimport { \n MapAndTabsWrapper, \n FilterButton, \n FiltrosWrapperLayer, \n ListWrapper, \n SmallerSVG, \n handleClickCarPickup,\n handleClickReplacementCar \n} from '.';\n\ninterface ViewCitaPosventaProps {\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n renderPoints(points: any, carPickupSelected?: boolean, replacementCarSelected?: boolean, isTime?: boolean ): JSX.Element[];\n renderCalendar?(): JSX.Element;\n showCalendar?: boolean;\n preSelectedOrderValue?: SelectedTab;\n setPreSelectedOrderValue?: React.Dispatch>;\n pointsToList: Points[];\n services?: boolean;\n paddingBottomList?: string;\n isPosventa?: boolean;\n concesionario?: boolean;\n onlySuggest?: boolean; \n}\n\nexport const LayerDesktopView = (props: ViewCitaPosventaProps) => {\n const {\n renderPoints,\n renderCalendar,\n showCalendar,\n preSelectedOrderValue,\n setPreSelectedOrderValue,\n pointsToList,\n services, paddingBottomList, isPosventa, concesionario, onlySuggest,\n } = props;\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [ preselectedDealerForm, setPreselectedDealerForm ] = useState(false);\n const config = useFeatureAppConfig();\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n\n useEffect(()=>{\n if(config.trigger === 'cita-posventa-dealer') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n const { searchIsDealer } = useMapGeneralController();\n const { handleAreYouSureLayer } = useOneFormContext();\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n };\n\n //seleccionar los que tiene coche de sustitucion o servicio de recogida\n\n const [ carPickupSelected, setCarPickupSelected] = useState(false);\n const [ replacementCarSelected, setReplacementCarSelected ] = useState(false);\n\n return showCalendar ? (\n renderCalendar()\n ) : (\n \n \n
\n \n {\n services? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(carPickupSelected, setCarPickupSelected);\n recogidaRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida y entrega\n \n \n \n ) : null\n }\n \n
\n {pointsToList ? (\n \n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n \n ) : null}\n
\n \n
\n
\n \n {\n preselectedDealerForm ? null : (\n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n \n \n )\n } \n
\n
setShowFiltros(false)} />\n \n\n \n \n \n
\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n
\n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n setPreSelectedOrderValue={setPreSelectedOrderValue}\n preSelectedOrderValue={preSelectedOrderValue}\n citaPosventa = {isPosventa}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n ContainerGutter,\n CTA,\n Layout,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowLeft, Close, Locate, Magnifier, CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\n\nimport React, { useEffect, useState } from 'react';\nimport { useFeatureAppConfig } from 'src/feature-app';\nimport { SelectedTab } from 'src/types';\nimport { Carousel, Filtros, NewMap, useMapGeneralController } from 'src/feature-app/NewMap';\nimport { Points } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useRef } from 'react';\nimport { \n CloseButtonWrapper, \n ControllerBackground, \n CTAsNavigationWrapper, \n CTASwrapper, \n FilterMobileNavbar, \n SmallerSVG, \n SoloCardWrapper, \n VerMasTalleresCTA, \n VerMasYCarouselPosition,\n handleClickCarPickup,\n handleClickReplacementCar,\n MoblieListWrapper \n} from '.';\nimport { useFeatureServices } from 'src/feature-app/hooks';\n\nconst listIcon = require('../../../feature-app/NewMap/assets/filter-ic_list.svg');\n\ninterface ViewCitaPosventaProps {\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n handleShowCalendarOnClick?: (point: Points) => Promise;\n renderPoints(points: any, carPickupSelected?: boolean, replacementCarSelected?: boolean, isTime?: boolean, isCarouselCard?: boolean ): JSX.Element[];\n renderCalendar?(): JSX.Element;\n showCalendar?: boolean;\n preSelectedOrderValue?: SelectedTab;\n setPreSelectedOrderValue?: React.Dispatch>;\n pointsToList: Points[];\n isPosventa?: boolean;\n services?: boolean;\n concesionario?: boolean;\n onlySuggest?: boolean; \n paddingTopList?: string;\n}\n\nexport const LayerMobileView = (props: ViewCitaPosventaProps) => {\n const {\n handleSeleccionarOnClick,\n handleShowSlots,\n renderPoints,\n handleShowCalendarOnClick,\n showCalendar,\n renderCalendar,\n preSelectedOrderValue,\n setPreSelectedOrderValue,\n pointsToList, isPosventa, services,\n concesionario, onlySuggest, paddingTopList\n } = props;\n const { handlePreviousStep } = useOneFormContext();\n\n const {\n centerInGeoLocatedCenter,\n userIsGeoLocated,\n searchIsDealer,\n } = useMapGeneralController();\n\n //controladores de vista\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [showTalleres, setShowTalleres] = useState(false);\n const [showMap, setShowMap] = useState(true);\n const [translateCarousel, setTranselateCarousel] = useState(false);\n const [ preselectedDealerForm, setPreselectedDealerForm ] = useState(false);\n const config = useFeatureAppConfig();\n const sustitucionMapRef = useRef(null);\n const recogidaMapRef = useRef(null);\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n const layerManager = useFeatureServices()['layer-manager'];\n useEffect(()=>{\n if(config.trigger === 'cita-posventa-dealer') {\n setPreselectedDealerForm(true);\n } else {\n setPreselectedDealerForm(false);\n }\n }, []);\n\n //otros\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n }\n }, [userIsGeoLocated]);\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n setShowTalleres(false);\n };\n const handleShowTalleres = () => {\n setShowTalleres(!showTalleres);\n setShowFiltros(false);\n };\n\n useEffect(() => {\n if (showFiltros === false && showTalleres === false) {\n setShowMap(true);\n } else {\n setShowMap(false);\n }\n }, [showFiltros, showTalleres]);\n\n //seleccionar los que tiene coche de sustitucion o servicio de recogida\n\n const [ carPickupSelected, setCarPickupSelected] = useState(false);\n const [ replacementCarSelected, setReplacementCarSelected ] = useState(false);\n\n return showCalendar ? (\n renderCalendar()\n ) : (\n
\n {showMap ? (\n <>\n \n \n \n {\n e.preventDefault();\n const layers = layerManager.getLayers();\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaLeadInPage'\n ); \n if (layer) {\n layer.layer?.close();\n }\n handlePreviousStep(e);\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n {\n preselectedDealerForm ? null : (\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n )\n }\n \n {\n services ? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionMapRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(replacementCarSelected, setReplacementCarSelected);\n recogidaMapRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida\n \n \n \n ) : null\n }\n \n \n \n \n
\n\n {pointsToList ? (\n searchIsDealer ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n ) : (\n \n \n \n {gelocalizationActive ? (\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n >\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleShowTalleres();\n }}\n >\n \n \n Ver lista\n \n \n \n \n\n {/* Aunque en principio no debería devolver nunca sólo un resultado, dejo el siguiente\n render condicional por is acaso */}\n {pointsToList.length === 1 ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n ) : (\n \n )}\n \n )\n ) : null}\n \n ) : (\n <>\n {showTalleres ? (\n \n \n \n {\n e.preventDefault();\n handleShowTalleres();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n {\n services ? (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar(replacementCarSelected, setReplacementCarSelected);\n sustitucionRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup(carPickupSelected, setCarPickupSelected);\n recogidaRef.current.blur();\n }} \n ariaLabel='aria label'\n icon={}\n >\n Servicio de recogida\n \n \n \n ) : null\n }\n \n \n \n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected)}\n \n \n \n
\n
\n ) : showFiltros ? (\n \n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n handleShowFiltros()}\n preSelectedOrderValue={preSelectedOrderValue}\n setPreSelectedOrderValue={setPreSelectedOrderValue}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n citaPosventa = {isPosventa}\n onlySuggest={onlySuggest}\n concesionario={concesionario}\n />\n \n \n ) : null}\n \n )}\n \n );\n};\n","export const handleClickCarPickup = (carPickupSelected: boolean, setCarPickupSelected: (value: boolean) => void ) => {\n if(!carPickupSelected) {\n setCarPickupSelected(true);\n } else {\n setCarPickupSelected(false);\n }\n};\n\nexport const handleClickReplacementCar = (replacementCarSelected: boolean, setReplacementCarSelected: (value: boolean) => void) => {\n if(!replacementCarSelected) {\n setReplacementCarSelected(true);\n } else {\n setReplacementCarSelected(false);\n }\n};\n","import { getDistanceFromLatLngCenter } from './utils';\nimport { isNull } from 'src/feature-app';\nimport { Horario, Slot, Points, Center, Slots } from 'src/types';\n\nexport const sortPoints = (\n clusters: Points[],\n horario: Horario,\n center: google.maps.LatLng,\n supercluster: supercluster\n // zoom: number,\n // firstLoad: boolean\n): { pointsByTime: Points[] | null; pointsByDistance: Points[] | null; newCenter?: Center; newZoom?: number } => {\n // Filtramos los puntos que no son clusters para eliminar las agrupaciones y quedarnos con los dealers unicamente, para posteriormente obtener su distancia la centro del mapa.\n\n // const distanceForFilter = getDistanceForFilter(zoom);\n\n // points = points.filter((point: Points) => Number(point.properties.distanceFromCenter) < distanceForFilter);\n let points: Points[] = [...clusters];\n\n const realClusters = points.filter((point: Points) => point.properties.cluster === true);\n // .sort((a: Points, b: Points) => Number(b.properties.point_count) - Number(a.properties.point_count));\n\n realClusters.forEach((cluster) => {\n if (supercluster) {\n const leaves: Points[] = supercluster.getLeaves(cluster.id);\n leaves.forEach((dealer) => {\n // Necesitamos esta propiedad para en caso de hover sobre la card, poder cambiar el cluster de color.\n dealer.properties.parent_cluster_id = cluster.id;\n\n points.push(dealer);\n });\n }\n });\n\n points = points.filter((point: Points) => point.properties.cluster === false);\n points = [...points]\n // .filter((point: Points) => point.properties.cluster === false)\n .map((point: Points) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(center, point);\n return {\n ...point,\n properties: {\n ...point.properties,\n distanceFromCenter,\n },\n };\n });\n // if (points.length === 0 && firstLoad) {\n // return { pointsByTime: null, pointsByDistance: null, newCenter: center, newZoom: zoom - 1 };\n // }\n\n const pointsByTime = sortByTime(points, horario);\n\n const pointsByDistance = points.sort(\n (a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter)\n );\n\n return { pointsByTime, pointsByDistance, newCenter: null, newZoom: null };\n};\n\nconst sortByTime = (points: Points[], horario: Horario): Points[] => {\n const pointsWithDms: Points[] = [];\n const pointsWithoutDms: Points[] = [];\n\n points.forEach((point: Points) => {\n const { dealer } = point.properties;\n dealer.dmsInfo && dealer.dmsInfo.dmsAvailable ? pointsWithDms.push(point) : pointsWithoutDms.push(point);\n });\n\n const pointsWithoutDmsSorted = pointsWithoutDms.sort(\n (a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter)\n );\n\n const pointsWithSlots = pointsWithDms.filter((point: Points) => !isNull(point.properties.dealer.slots));\n // Si el usuario elige cualquier opción que no sea Lo antes posible se le devuelven los slots predeterminados.\n // En caso contrario, se debe elegir el turno más temprano de cada concesión y guardarlo como earliestSlot para poder ordenarlos más adelante.\n if (horario !== 'before') {\n const pointsWithDmsAndAvailableSlots: Points[] = [];\n const pointsWithDmsAndWithoutAvailableSlots: Points[] = [];\n pointsWithSlots.forEach((point) => {\n const { dealer } = point.properties;\n isNull(dealer.slots[horario])\n ? pointsWithDmsAndWithoutAvailableSlots.push(point)\n : pointsWithDmsAndAvailableSlots.push(point);\n });\n\n pointsWithDmsAndAvailableSlots.sort(\n (a: Points, b: Points) => a.properties.dealer.slots[horario].from - b.properties.dealer.slots[horario].from\n );\n\n return [...pointsWithDmsAndAvailableSlots, ...pointsWithDmsAndWithoutAvailableSlots, ...pointsWithoutDms];\n } else {\n const pointsWithoutSlots: Points[] = [];\n const pointsWithAtLeastOneSlot: Points[] = [];\n\n // Separamos los dealers con DMS según si tienen al menos un slot disponible o no.\n pointsWithSlots.forEach((dealer: Points) => {\n if (\n !isNull(dealer.properties.dealer.slots.morning) ||\n !isNull(dealer.properties.dealer.slots.evening) ||\n !isNull(dealer.properties.dealer.slots.afternon)\n ) {\n pointsWithAtLeastOneSlot.push(dealer);\n } else {\n pointsWithoutSlots.push(dealer);\n }\n });\n\n const pointsWithEarliestSlot = pointsWithAtLeastOneSlot\n .map((point: Points) => {\n const { slots } = point.properties.dealer;\n const slotsFiltered = Object.values(slots)\n .filter((slot: Slot) => !isNull(slot) && !isNull(slot.from))\n .map((slot: Slot) => slot.from);\n point.properties.earliestSlot = Math.min(...slotsFiltered);\n return point;\n })\n .sort((a: Points, b: Points) => a.properties.earliestSlot - b.properties.earliestSlot);\n return [...pointsWithEarliestSlot, ...pointsWithoutSlots, ...pointsWithoutDmsSorted];\n }\n};\n\nexport const sortPointsByDistance = (\n clusters: Points[],\n center: google.maps.LatLng,\n supercluster: supercluster\n): Points[] => {\n let points: Points[] = [...clusters];\n\n const realClusters = points.filter((point: Points) => point.properties.cluster === true);\n realClusters.forEach((cluster) => {\n if (supercluster) {\n const leaves: Points[] = supercluster.getLeaves(cluster.id);\n leaves.forEach((dealer) => {\n // Necesitamos esta propiedad para en caso de hover sobre la card, poder cambiar el cluster de color.\n dealer.properties.parent_cluster_id = cluster.id;\n\n points.push(dealer);\n });\n }\n });\n\n return points\n .filter((point: Points) => point.properties.cluster === false)\n .map((point: Points) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(center, point);\n return {\n ...point,\n properties: {\n ...point.properties,\n distanceFromCenter,\n },\n };\n })\n .sort((a: Points, b: Points) => Number(a.properties.distanceFromCenter) - Number(b.properties.distanceFromCenter));\n};\n\nexport const getEarliestSlot = (slots: Slots) => {\n if (!slots) {\n return null;\n }\n const filteredSlots = Object.values(slots)\n .filter((slot: Slot) => !isNull(slot) && !isNull(slot.from))\n .map((slot: Slot) => slot.from);\n if (filteredSlots.length === 0) {\n return null;\n }\n return Math.min(...filteredSlots);\n};\n","import { GooglePlace, Suggestion } from 'src/feature-app';\nimport { DealersData, isDealerData, Points, Center } from 'src/types';\nimport getDistance from 'geolib/es/getDistance';\nimport { Dispatch } from 'react';\nimport { Geometry, Installation } from 'src/types';\nimport { store } from '../App';\n\nexport const isGooglePlace = (suggestion: Suggestion): suggestion is GooglePlace => {\n if (suggestion) {\n return (suggestion as GooglePlace).isGooglePlace !== undefined;\n }\n return null;\n};\n\nconst getCanaryBounds = () => {\n const result: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n const north = 29.463514;\n const east = -13.31543;\n const south = 27.425414;\n const west = -18.391113;\n const ne = new window.google.maps.LatLng(north, east);\n const sw = new window.google.maps.LatLng(south, west);\n result.extend(ne);\n result.extend(sw);\n\n return result;\n};\n\nexport const getLocationOfDealer = (suggestion: DealersData): Geometry => {\n const bounds: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n let lat, lng;\n if (isDealerData(suggestion)) {\n lat = suggestion.markerInfo.svcLocation.latitude;\n lng = suggestion.markerInfo.svcLocation.longitude;\n } else {\n lat = Number((suggestion as Installation).ShippingLatitude);\n lng = Number((suggestion as Installation).ShippingLongitude);\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).ShippingLatitude);\n lng = Number((suggestion as Installation).ShippingLongitude);\n }\n const point: google.maps.LatLng = new maps.LatLng(lat, lng);\n bounds.extend(point);\n return {\n lat,\n lng,\n };\n};\n\nconst getBounds = (latlngBounds: google.maps.LatLngBounds): google.maps.LatLngBounds => {\n const result: google.maps.LatLngBounds = new window.google.maps.LatLngBounds(null);\n const north = latlngBounds.getNorthEast().lat();\n const east = latlngBounds.getNorthEast().lng();\n const south = latlngBounds.getSouthWest().lat();\n const west = latlngBounds.getSouthWest().lng();\n const ne = new window.google.maps.LatLng(north, east);\n const sw = new window.google.maps.LatLng(south, west);\n result.extend(ne);\n result.extend(sw);\n\n return result;\n};\n\nconst getGeometryFromGoogleResult = (result: any): Geometry => {\n let viewport = null;\n let bounds = null;\n if (result.geometry) {\n if (result.geometry.viewport) {\n viewport = getBounds(result.geometry.viewport);\n } else if (result.geometry.bounds) {\n bounds = getBounds(result.geometry.bounds);\n }\n\n const lat = result.geometry.location.lat();\n const lng = result.geometry.location.lng();\n\n return { lat, lng, bounds, viewport };\n } else {\n return { lat: null, lng: null };\n }\n};\n\ninterface GeocodeCache {\n suggestion: GooglePlace;\n geometry: Geometry;\n isAddress: boolean;\n isCanaryIslands: boolean;\n}\n\n// const cache: GeocodeCache[] = [];\n\nconst resultIsAddress = (result: google.maps.GeocoderResult) => {\n const addressTypes = [\n 'route',\n 'street_address',\n 'intersection',\n 'neighborhood',\n 'premise',\n 'subpremise',\n 'park',\n 'point_of_interest',\n 'establishment',\n 'tourist_attraction',\n ];\n const resultType = result.types[0];\n\n return addressTypes.includes(resultType);\n};\n\nexport const getGeocode = (suggestion: GooglePlace): Promise | Geometry => {\n // Se desactiva el cache porque da error en mobile\n // const cachedResult = cache.find(cachedResult => cachedResult.suggestion.name === suggestion.name);\n\n // if (cachedResult) {\n // console.log(cachedResult,'cache');\n // store.dispatch({ type: 'SUGGESTION_IS_ADDRESS', payload: cachedResult.isAddress });\n // store.dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: cachedResult.isCanaryIslands });\n // return new Promise((resolve)=>resolve(cachedResult.geometry));\n // }\n\n const geocode = new window.google.maps.Geocoder();\n return new Promise((resolve, reject) => {\n return geocode.geocode(\n { address: suggestion.name },\n (response: any) => {\n const result: google.maps.GeocoderResult = response[0];\n const geometry = getGeometryFromGoogleResult(result);\n const point: google.maps.LatLng = new window.google.maps.LatLng(geometry.lat, geometry.lng);\n const bounds: google.maps.LatLngBounds = getCanaryBounds();\n let isAddress: boolean;\n let isCanaryIslands: boolean;\n isAddress = resultIsAddress(result);\n isCanaryIslands = bounds.contains(point);\n\n store.dispatch({ type: 'SUGGESTION_IS_ADDRESS', payload: isAddress });\n store.dispatch({ type: 'SUGGESTION_IS_IN_CANARY_ISLANDS', payload: isCanaryIslands });\n store.dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: null });\n\n // cache.push({ suggestion, geometry, isAddress, isCanaryIslands });\n\n resolve(geometry);\n },\n () => reject('Problems with geocode')\n );\n });\n};\n\ninterface ReverseGeocodeResponse {\n formatted_address: string;\n}\n\nexport const getReverseGeocode = (latlng: {\n lat: number;\n lng: number;\n}): Promise<{ geometry: Geometry; name: string }> => {\n const geocode = new window.google.maps.Geocoder();\n\n return new Promise((resolve, reject) => {\n return geocode.geocode(\n { location: latlng },\n (response: ReverseGeocodeResponse[]) => {\n const result = response[0];\n const geometry = getGeometryFromGoogleResult(result);\n let name: string = response.length > 0 ? response[0].formatted_address : 'España'; // Se devuelve el primero porque no hay manera de filtrar el \"mejor\" resultado.\n resolve({ geometry, name });\n },\n () => reject('Problems with geocode')\n );\n });\n};\n\nexport const getLocationOfGooglePlace = async (suggestion: GooglePlace): Promise => {\n const geometry = await getGeocode(suggestion);\n return geometry;\n};\n\nexport const getDistanceFromCenter = (center: Center, point: Points) => {\n const lng = point.geometry.coordinates[0];\n const lat = point.geometry.coordinates[1];\n const distance = getDistance({ lat: center.lat, lng: center.lng }, { lat, lng }) / 1000;\n return distance.toFixed(1);\n};\n\nexport const getDistanceFromLatLngCenter = (center: google.maps.LatLng, point: Points) => {\n if (!center || !point) {\n return '0';\n }\n const lng = point.geometry.coordinates[0];\n const lat = point.geometry.coordinates[1];\n const distance = getDistance({ lat: center.lat(), lng: center.lng() }, { lat, lng }) / 1000;\n const toFixed = Math.round(distance).toString().length > 2 ? 0 : 1; // Para más de 100km devolvemos el número sin decimal.\n return distance.toFixed(toFixed);\n};\n\nexport const handleMapVariables = (\n dispatch: Dispatch,\n center: Center,\n zoom: number,\n geometry: Geometry,\n isDealer: boolean,\n suggestion: Suggestion\n) => {\n dispatch({ type: 'UPDATE_USER_CENTER', payload: { lat: center.lat, lng: center.lng } }); // Eliminar\n dispatch({ type: 'UPDATE_INITIAL_ZOOM', payload: zoom }); // Eliminar\n dispatch({ type: 'UPDATE_GEOMETRY', payload: geometry });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: suggestion ? suggestion : null });\n dispatch({ type: 'SUGGESTION_IS_DEALER', payload: isDealer });\n dispatch({ type: 'UPDATE_FIELDS', payload: { location: suggestion.name } }); // No se si se usa, de momento lo dejo.\n};\n\nexport const updateMapVariables = async (dispatch: Dispatch, suggestion: Suggestion, geometryData?: Geometry) => {\n let geometry: Geometry = geometryData ? geometryData : null;\n let isDealer: boolean;\n if (!window.google || !window.google.maps) {\n return;\n }\n if (!geometryData) {\n geometry = isGooglePlace(suggestion) ? await getLocationOfGooglePlace(suggestion) : getLocationOfDealer(suggestion);\n }\n isDealer = !isGooglePlace(suggestion);\n if ((suggestion as GooglePlace).isGeoLocated) {\n dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n }\n dispatch({ type: 'UPDATE_GEOMETRY', payload: geometry });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: suggestion ? suggestion : null });\n dispatch({ type: 'SUGGESTION_IS_DEALER', payload: isDealer });\n};\n\nexport const removeWhiteSpace = (s: string): string => (s ? s.replace(/\\s/g, '') : s);\nexport const formatPrefix = (s: string): string => s ? s : '';\nexport const formatPrefixOneFormBFF = (s: string): string => s ? s.replace(\"+\",\"00\") : '';\n\nexport const checkIfMorning = (slotHour: Date) => {\n const morningHour = getNormalizedDate('12:00:00');\n return slotHour <= morningHour ? true : false;\n};\n\nexport const checkIfMidDay = (slotHour: Date) => {\n const morningHour = getNormalizedDate('12:00:00');\n const eveningHour = getNormalizedDate('16:00:00');\n\n return slotHour > morningHour && slotHour <= eveningHour ? true : false;\n};\n\nexport const checkIfEvening = (slotHour: Date) => {\n const eveningHour = getNormalizedDate('16:00:00');\n return slotHour > eveningHour ? true : false;\n};\n\n/**\n * hour en formato 12:00:00\n * @param hour\n */\nexport const getNormalizedDate = (hour: string) => new Date(`1/1/1999 ${hour}`);\n","import { styled, Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\n// // import store from './store';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { SyntheticEvent, useEffect, useState } from 'react';\nimport { deviceType } from 'react-device-detect';\nimport { FormContext, useForm } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { setObjectValues, useFeatureServices, formInfoInitialState } from 'src/feature-app';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ErrorFormFields } from './tracking-types';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { BehaviorSubject } from 'rxjs';\nimport { useFeatureAppConfig, useFeatureAppEnvironment } from './hooks';\nimport { GenericErrorLayer } from 'src/components';\nimport { LayerManagerWrapper } from './LayerManagerWrapper';\n\nconst Form = styled.form``;\n\ninterface errorMessageProps {\n notALayer: boolean;\n}\nconst ErrorMessage = styled.div`\n position: absolute;\n bottom: ${(props) => (props.notALayer ? '88px' : '122px')};\n right: 20px;\n z-index: 1000;\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n @media all and (min-width: 560px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid002)' : '40px')};\n }\n @media all and (min-width: 960px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '52px')};\n bottom: ${(props) => (props.notALayer ? '88px' : '136px')};\n }\n @media all and (min-width: 1280px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '52px')};\n }\n @media all and (min-width: 1920px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '52px')};\n }\n @media all and (min-width: 2560px) {\n right: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '52px')};\n }\n`;\n\ninterface UseFormMethods {\n closeLayer: () => void;\n handlePreviousStep: (e: any) => void;\n handleScreenChange: (newNumber?: number) => void;\n handleSubmit: (e: SyntheticEvent) => Promise;\n nextStep: () => void;\n previousStep: () => void;\n sendForm: () => void;\n handleShowFinalScreen: () => void;\n /**\n * Flag que activa algunas funcionalidades para facilitar el desarrollo.\n */\n debug: boolean;\n /**\n * Flag que controla si el formulario está dentro de un multistep y se tiene que esperar para realizar un next step del formulario genérico.\n */\n // waitForNextStep: boolean;\n /**\n * Flag que controla si el formulario está dentro de un multistep y se tiene que esperar para realizar un previous step del formulario genérico.\n */\n waitForPreviousStep: boolean;\n // setWaitForNextStep: React.Dispatch>;\n setWaitForPreviousStep: React.Dispatch>;\n initializeForm: (\n initialFormInfo: Partial,\n initialFormData: Partial,\n skipLayerInit?: boolean\n ) => void;\n /**\n * La propiedad nextMultiStep contiene la función que (en caso de que haya un multiStep) controlará el CTA de siguiente pantalla para navegar por las subsiguientes pantallas del multiStep sin cambiar de pantalla en el formulario principal.\n */\n nextMultiStep?: () => void;\n /**\n * Al guardar una función dentro del nextMultiStep necesitamos envolverla en otra función para que React no crea que es una inicialización -> https://medium.com/swlh/how-to-store-a-function-with-the-usestate-hook-in-react-8a88dd4eede1\n */\n setNextMultiStep?: React.Dispatch void>>;\n /**\n * La propiedad previousMultiStep contiene la función que (en caso de que haya un multiStep) controlará el CTA de siguiente pantalla para navegar por las anteriores pantallas del multiStep sin cambiar de pantalla en el formulario principal.\n */\n previousMultiStep?: () => void;\n /**\n * Al guardar una función dentro del previousMultiStep necesitamos envolverla en otra función para que React no crea que es una inicialización -> https://medium.com/swlh/how-to-store-a-function-with-the-usestate-hook-in-react-8a88dd4eede1\n */\n setPreviousMultiStep?: React.Dispatch void>>;\n\n handleNextStep: (e?: any) => void;\n /**\n * Flag que controla si se muestra o no el previousStep (ej: en CitaPrevia no se muestra en el multiStep 2 de mapa)\n */\n showPreviousStep: boolean;\n setShowPreviousStep: React.Dispatch>;\n setIsFullScreen: React.Dispatch>;\n isFullScreen: boolean;\n /**\n * Flag para validacion\n */\n error: boolean;\n setError: React.Dispatch>;\n /**\n * Flags para gestionar transiciones entre pantallas\n */\n nextScreenIndex: number;\n setNextScreenIndex: React.Dispatch>;\n nextMultiStepScreenIndex: number;\n setNextMultiStepScreenIndex: React.Dispatch>;\n distanceToMove: Array;\n setDistanceToMove: React.Dispatch>>;\n moveForward: boolean;\n setMoveForward: React.Dispatch>;\n /**\n * En alguna casuística el intro no debería pasar de página, causando el cierre de la feature app. Este flag lo desactiva.\n */\n setDisableIntroNextStep: React.Dispatch>;\n /**\n * Trigger para algunos casos en que el handleClick de ScreenController no funciona bien y el next step no se activa\n * al seleccionar una opción de las disponibles en la pantalla porque no se produce ningún click.\n * EJEMPLO: Pantalla locateUser citaPosventa en la casuística que el usuario elije geolacalización\n */\n isValueSelected: boolean;\n setIsValueSelected: React.Dispatch>;\n handleAreYouSureLayer: any;\n nextStepEventEmitter: BehaviorSubject;\n}\nexport const OneFormContext = React.createContext(null);\n\nexport const useOneFormContext = (): UseFormMethods => React.useContext(OneFormContext) as UseFormMethods;\n\ninterface OneFormProviderProps {\n children: JSX.Element;\n closeLayerCallback: CloseHandleV2;\n handleAreYouSureLayer: any;\n}\n\ninterface OneFormDebug {\n debug: boolean;\n toggleDebugMode: () => void;\n}\n\ndeclare global {\n interface Window {\n OneForm: OneFormDebug;\n }\n}\n\nexport const OneFormProvider = (props: OneFormProviderProps): any => {\n const { closeLayerCallback, handleAreYouSureLayer } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const {\n sendFormCallback,\n screenIndex,\n formEnded,\n steps,\n stepsHistory,\n nextStepCallback,\n numberOfScreens,\n lastStep,\n step,\n formSubmitted,\n notALayer,\n suggestionIsInCanaryIslands,\n } = formInfo;\n const methods = useForm();\n // const { getValues, triggerValidation } = useFormContext();\n\n const dispatch = useDispatch();\n const store = useStore();\n const [waitForPreviousStep, setWaitForPreviousStep] = useState(false);\n const [nextMultiStep, setNextMultiStep] = useState<() => void>(() => () => {});\n const [isFullScreen, setIsFullScreen] = useState(false);\n const [previousMultiStep, setPreviousMultiStep] = useState<() => void>(() => () => {});\n const [showPreviousStep, setShowPreviousStep] = useState(false);\n const [error, setError] = useState(false);\n const [nextScreenIndex, setNextScreenIndex] = useState(null);\n const [nextMultiStepScreenIndex, setNextMultiStepScreenIndex] = useState(null);\n const [distanceToMove, setDistanceToMove] = useState>([]);\n const [moveForward, setMoveForward] = useState(true);\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const trackingManager = useTrackingManager();\n const [debug, setDebug] = useState(false);\n const [disableIntroNextStep, setDisableIntroNextStep] = useState(false);\n const [isValueSelected, setIsValueSelected] = useState(false);\n const [closed, setClosed] = useState(false);\n const nextStepEventEmitter: BehaviorSubject = new BehaviorSubject(false);\n const layerManager = useFeatureServices()['layer-manager'];\n const history = useFeatureServices()['s2:history'];\n const config = useFeatureAppConfig();\n const env = useFeatureAppEnvironment();\n\n useEffect(() => {\n window.OneForm = { debug, toggleDebugMode };\n setTimeout(() => {\n const { person } = oneFormService.get();\n if (person) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ...person } });\n setObjectValues(person, methods.setValue);\n }\n }, 1000);\n }, []);\n\n const toggleDebugMode = () => {\n setDebug(!debug);\n window.OneForm.debug = !debug;\n };\n\n const initializeForm = (\n initialFormInfo: Partial,\n initialFormData: Partial,\n skipLayerInit?: boolean\n ) => {\n // En algunos casos al finalizar el formulario y cerrar el layer se vuelve a disparar el evento;\n if (formSubmitted || closed) {\n return;\n }\n\n dispatch({ type: 'UPDATE_FORM', payload: initialFormData });\n dispatch({ type: 'SET_FORM_INFO', payload: { ...formInfoInitialState, ...initialFormInfo } });\n dispatch({ type: 'SET_INITIAL_STEPS', payload: initialFormInfo.steps });\n setTimeout(() => {\n // Solucion al bug que se produce cuando hay un error genérico. Al resetear el estado\n // se añade el último screenIndex que había antes de producirse el error, por lo que\n // la navegación se ve alterada.\n dispatch({ type: 'SET_STEPS_HISTORY', payload: initialFormInfo.stepsHistory });\n if (!skipLayerInit) {\n trackingManager.trackFormLayerLoad();\n }\n }, 0);\n };\n\n useEffect(() => {\n if (screenIndex !== 0 && screenIndex !== null) {\n dispatch({ type: 'UPDATE_STEPS_HISTORY', payload: screenIndex });\n }\n if (screenIndex !== 2 && nextMultiStepScreenIndex !== null) setNextMultiStepScreenIndex(null);\n setTimeout(() => {\n setObjectValues(formData.fields, methods.setValue);\n }, 500);\n }, [screenIndex]);\n\n /**\n * En el journey de no compra al llegar al mapa se abre un layer. Se necesita que interactue con el next step, por lo que lo tenemos que cerrar desde aquí\n */\n const handleMapFullScreenLayer = (isNext: boolean) => {\n const layers = layerManager.getLayers();\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaNoCompra' || layer.layer.options.id === 'mapaNoRenovacion' || layer.layer.options.id === 'mapaLeadInPage'\n );\n\n if (layer) {\n layer.layer?.close();\n isNext ? nextStep() : previousStep();\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: false });\n setWaitForPreviousStep(false);\n }\n };\n\n const handleNextStep = async (e?: any) => {\n if (e) e.preventDefault();\n\n const { step } = store.getState().formInfo;\n\n if (step && step.isLastStep) {\n return;\n }\n const values = methods.getValues();\n\n const isValid = await methods.triggerValidation();\n const { waitForNextStep } = store.getState().formInfo;\n\n // if (isValid && suggestionIsInCanaryIslands) {\n // renderAvisoIslasCanariasLayer(store, env, layerManager);\n\n // return;\n // }\n\n if (isValid) {\n if (!moveForward) setMoveForward(true);\n setError(false);\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n //console.log(formData);\n\n handleMapFullScreenLayer(true); // Revisar para optimizar esta llamada y que solo debería ejecutarse si el form es inPage y el step en un layer\n\n if (waitForNextStep) {\n nextMultiStep();\n } else {\n nextStep();\n }\n } else {\n setError(true);\n const keys = Object.keys(methods.errors);\n\n const errorFields: ErrorFormFields[] = keys.map((key) => {\n return { 'form field id': 'id', 'form field name': key };\n });\n\n keys.map((err) => trackingManager.trackFormErrorMessageLoad({ message: err }, errorFields));\n }\n };\n\n const nextStep = () => {\n let nextStepNumber: number;\n let nextStep: Steps;\n\n // En algunos casos según como se inicializa el form ni el screenIndex ni los steps están disponibles, por lo que hay que\n // utilizar el getState para obtener el estado actual.\n const { screenIndex, steps } = store.getState().formInfo;\n\n if (formEnded && lastStep) {\n nextStepNumber = lastStep.screenIndex;\n nextStep = lastStep;\n } else {\n nextStepNumber = nextStepCallback ? nextStepCallback() : screenIndex + 1;\n nextStep = steps[nextStepNumber];\n }\n\n handleStepChange(nextStep, nextStepNumber, true);\n };\n\n const handlePreviousStep = (e: any) => {\n e.preventDefault();\n if (moveForward) {\n setMoveForward(false);\n }\n\n if (formData.fields.formName.includes('no_compra') || formData.fields.formName.includes('no_renovacion') || formData.fields.formName.includes('lead_inpage')) {\n handleMapFullScreenLayer(false);\n }\n const values = methods.getValues();\n // Comprobar si es correcto antes de actualizar?\n // dispatch({ type: 'UPDATE_FIELDS', payload: values });\n waitForPreviousStep ? previousMultiStep() : previousStep();\n if (formEnded) dispatch({ type: 'UPDATE_FORM_ENDED', payload: false });\n };\n\n const previousStep = () => {\n // Es necesario poder sobreescribir previousStep?\n const { screenIndex, steps, stepsHistory } = store.getState().formInfo;\n\n const indexActualScreen = stepsHistory.indexOf(screenIndex);\n const newScreenIndex = stepsHistory[indexActualScreen - 1];\n const indexInSteps = steps.findIndex((step: any) => step.screenIndex === newScreenIndex);\n const previousStep = steps[indexInSteps];\n\n // Falta eliminar el último elemento de stepsHistory\n handleStepChange(previousStep, newScreenIndex, false);\n };\n\n const handleStepChange = (step: Steps, screenIndex: number, isMovingForward: boolean) => {\n handleScreenChange(screenIndex);\n dispatch({ type: 'SET_NAVIGATION_MOVING_FORWARD', payload: isMovingForward });\n setTimeout(() => {\n dispatch({ type: 'UPDATE_STEP', payload: step });\n // dispatch({ type: 'UPDATE_STEPS_HISTORY', payload: screenIndex });\n dispatch({ type: 'UPDATE_FULLSCREEN', payload: step.fullScreen });\n setIsFullScreen(step.fullScreen);\n }, TIME_FOR_TRANSFORM);\n };\n\n const handleScreenChange = (newNumber?: number) => {\n if (typeof newNumber === 'number') setNextScreenIndex(newNumber);\n dispatch({ type: 'TRIGGER_EXIT_ANIMATION', payload: true });\n setTimeout(() => {\n dispatch({ type: 'TRIGGER_EXIT_ANIMATION', payload: false });\n if (typeof newNumber === 'number') {\n dispatch({ type: 'UPDATE_SCREEN', payload: newNumber });\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const handleShowFinalScreen = () => {\n dispatch({ type: 'SHOW_FINAL_SCREEN', payload: true });\n };\n\n const closeLayer = () => {\n dispatch({ type: 'RESET_STATE' });\n setClosed(true);\n closeLayerCallback({}, {}, {});\n\n if (env.done) {\n env.done();\n }\n return;\n };\n\n const sendForm = async (): Promise => {\n return new Promise((resolve) => {\n sendFormCallback\n ? resolve(sendFormCallback())\n : setTimeout(() => {\n resolve(true);\n }, 2000);\n });\n };\n\n const handleSubmit = async (e: SyntheticEvent) => {\n e.preventDefault();\n const responseIsValid = await sendForm();\n return responseIsValid;\n };\n\n const renderAvisoCanarias = () => {\n let redirect: string;\n\n if (formData.fields.formName === 'cita-posventa') {\n redirect = 'https://www.vwcanarias.com/es/cita-previa.html';\n } else {\n redirect = 'https://cita.vwcanarias.com/';\n }\n\n return (\n \n \n \n );\n };\n\n return (\n \n \n {\n const values = methods.getValues();\n\n if (e.keyCode === 13 && !disableIntroNextStep && Object.keys(values).length > 0) {\n handleNextStep(e);\n } else if (e.keyCode === 13 && disableIntroNextStep) {\n e.preventDefault();\n }\n }}\n className=\"form-provider\"\n >\n {props.children}\n \n {error && screenIndex !== numberOfScreens - 1 ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null}\n \n \n );\n};\n\nexport const getDeviceType = (): string => (deviceType === 'browser' ? 'desktop' : deviceType.toLowerCase());\n\nexport const getTrackingCode = (): string => ((typeof s !== 'undefined' && typeof s.persCmp !== 'undefined') ? s.persCmp : 'undefined');\n","import React from 'react';\nimport {\n Layout,\n Breakpoints,\n LayoutRowGap,\n} from '@volkswagen-onehub/components-core';\n\ninterface OneElementTemplateProps {\n element: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\n// Refactorizar\nfunction OneElementTemplate(props: OneElementTemplateProps) {\n const { element, allowOverflowingContent } = props;\n return (\n \n {element}\n \n );\n}\n\ninterface TwoElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nfunction TwoElementsTemplate(props: TwoElementsTemplateProps) {\n const { firstElement, secondElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n \n );\n}\n\ninterface ThreeElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n thirdElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nfunction ThreeElementsTemplate(props: ThreeElementsTemplateProps) {\n const { firstElement, secondElement, thirdElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n {thirdElement}\n \n );\n}\n\nexport { OneElementTemplate, TwoElementsTemplate, ThreeElementsTemplate };\n","import { CTA, styled } from '@volkswagen-onehub/components-core';\nimport { ArrowUp, Close } from 'src/icons-core-imports';\nimport { LayerHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { css } from 'styled-components';\nimport { useLoaded } from 'src/feature-app';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from '../OneForm';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useFeatureServices } from '../hooks';\nimport { removeConfigurationHash } from '../remove-configuration-hash';\n\n\n{/*\n paddings top prev step wrapper antes de adaptacion a nuevo formato de editorial template with feature\n app in stage que ya setea automáticamente el espacio reservado para la navbar. Se ha retirado también del\n prev-step-controller\n 560: padding-top: 110px;\n 1920: padding-top: 126px;\n*/}\ninterface wrapperProps {\n fullScreen?: boolean;\n closeInMap?: boolean;\n colorTheme?: string;\n notALayer?: boolean;\n}\n\nconst Wrapper = styled.div`\n position: ${(props) => props.notALayer ? 'absolute' : props.closeInMap ? 'relative' : props.fullScreen ? 'absolute' : '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 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 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\t.close-icon {\n\t\tcolor: ${(props) => (props.colorTheme === 'main' ? '#001E50' : '#FFFFFF')};\n\t}\n`;\n\nconst CloseDiv = styled.div`\n cursor: pointer;\n &.close-enter {\n opacity: 0;\n }\n &.close-enter-active {\n opacity: 1;\n transition: opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.close-enter-done {\n }\n &.close-exit {\n transform: translate(0, 0);\n opacity: 1;\n }\n &.close-exit-active {\n transform: translate(0, -100%);\n opacity: 0.01;\n transition: all ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n`;\n\ninterface CloseComponentProps {\n closeInMap?: boolean;\n closeThankYou?: boolean;\n handleAreYouSureLayer?: () => LayerHandleV2<{}>;\n notALayer?: boolean;\n colorTheme?: string;\n formMin?: boolean;\n}\nexport function CloseComponent(props: CloseComponentProps) {\n const { closeInMap, handleAreYouSureLayer, colorTheme, notALayer, formMin } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { screenIndex, stepsHistory, multiStepScreenIndex, formSubmitted } = formInfo;\n const [isFirstScreen, setIsFirstScreen] = useState(true);\n const loaded = useLoaded();\n const { handlePreviousStep, isFullScreen, closeLayer } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const layerManager = useFeatureServices()['layer-manager'];\n const dispatch = useDispatch()\n /**\n * En el journey de no compra al llegar al mapa se abre un layer. Se necesita que interactue con el next step, por lo que lo tenemos que cerrar desde aquí\n */\n const handleMapFullScreenLayer = () => {\n const layers = layerManager.getLayers();\n\n const layer = layers.find(\n (layer) => layer.layer.options.id === 'mapaNoCompra' || layer.layer.options.id === 'mapaNoRenovacion' || layer.layer.options.id === 'mapaLeadInPage'\n );\n\n if (layer) {\n layer.layer?.close();\n }\n };\n\n useEffect(() => {\n if (stepsHistory && stepsHistory.length > 0 && !multiStepScreenIndex) {\n stepsHistory[0] === screenIndex ? setIsFirstScreen(true) : setIsFirstScreen(false);\n } else {\n setIsFirstScreen(false);\n }\n }, [screenIndex, multiStepScreenIndex]);\n\n return (\n \n \n {notALayer ? null : (\n {\n e.preventDefault();\n trackingManager.trackFormCloseClick(\n {\n contentId: 'Cerrar',\n },\n { FormStart: screenIndex === 0 ? true : false }\n );\n handleMapFullScreenLayer(); // Revisar para optimizar esta llamada y que solo debería ejecutarse si el form es inPage y el step en un layer\n if (!formSubmitted) {\n handleAreYouSureLayer();\n } else {\n closeLayer();\n }\n }}\n >\n \n \n )}\n\n {isFirstScreen || props.closeThankYou ? null : (\n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Anterior',\n });\n handlePreviousStep(e);\n }}\n tag=\"button\"\n emphasis=\"secondary\"\n size=\"small\"\n icon={}\n >\n Anterior\n \n )}\n \n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n LayoutConfiguration,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Checkmark } from 'src/icons-core-imports';\nimport { Legales } from 'src/components';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { PreviousStep, CloseComponent, Navigation } from 'src/feature-app/Screen';\nimport { useOneFormContext } from '../OneForm';\nimport { css, keyframes } from 'styled-components';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { useShowOverflow } from 'src/feature-app/hooks';\n\nconst lineKeyframe = keyframes`\n 0% {\n transform: rotate(-90deg);\n }\n 60% {\n transform: rotate(45deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n`;\n\nconst AnimatedCheckmark = styled.div`\n animation: ${lineKeyframe} 0.3s ease-in;\n svg {\n color: #001e50;\n }\n`;\n\ninterface PaddingControllerProps {\n screenIndex?: number;\n multiStepScreenIndex?: number;\n showPreviousStep?: boolean;\n formHeight?: string;\n formMin?: boolean;\n isTrigger?: boolean;\n showOverflow?: boolean;\n alingItemsCenter?: boolean;\n}\n\nconst ContentCotroller = styled.div`\n width: 100%;\n min-height: calc(100vh - 140px);\n height: 100%;\n position: relative;\n display: flex;\n flex-wrap: wrap;\n overflow: ${(props) => ( props.isTrigger ? 'hidden' : 'visible')};\n padding-bottom : 44px;;\n align-items: ${(props) => props.alingItemsCenter ? 'center' : null};\n @media all and (min-width: 560px) {\n min-height: calc(100vh - 92px);\n }\n @media all and (min-width: 960px) {\n min-height: calc(100vh - 100px);\n }\n @media all and (min-width: 1920px) {\n min-height: calc(100vh - 116px);\n }\n`;\n\n\nconst FakePreviousStep = styled.div`\n height: 136px;\n`;\nconst FakeClose = styled.div`\n height: 32px;\n margin-bottom: auto;\n width: 100%;\n @media all and (min-width: 960px) {\n margin-bottom: unset;\n position: absolute;\n top: 0;\n }\n`;\ninterface PrevStepWrapperProps extends PaddingControllerProps {\n moveForward: boolean;\n distanceToMove: number;\n showPreviousStep: boolean;\n}\n\n\n\nconst PrevStepWrapper = styled.div`\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid004)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid014)' : 'unset')};\n display: flex;\n\n @media screen and (min-width: 1280px) {\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid006)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid010)' : 'unset')};\n }\n @media screen and (min-width: 1920px) {\n\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid007)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid009)' : 'unset')};\n }\n @media screen and (min-width: 2560px) {\n margin-left: ${(props) => (props.showPreviousStep ? 'var(--size-grid008)' : 'unset')};\n width: ${(props) => (props.showPreviousStep ? 'var(--size-grid007)' : 'unset')};\n }\n &.no-animation {\n opacity:1;\n }\n &.prev-step-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `\n : css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 10vh, 0);\n }\n transition: all 300ms;\n `}\n }\n &.prev-step-exit-done {\n ${(props) =>\n !props.moveForward && props.distanceToMove\n ? css`\n width: 75%;\n transition: all 250ms;\n transform: translate3d(-4.17vw, ${props.distanceToMove}px, 0);\n * {\n font-size: var(--textappearances-headline350-fontsize);\n line-height: var(--textappearances-headline350-lineheight);\n letter-spacing: var(--textappearances-headline350-letterspacing);\n opacity: 1;\n }\n `\n : css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS}, letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `}\n }\n`;\n\nconst ContentWrapper = styled.div`\n width: 100%;\n height: 100%;\n overflow: visible;\n`;\n\nconst TitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n opacity: 0;\n &.no-animation {\n opacity: 1;\n > div {\n &:first-of-type {\n width: var(--size-grid020);\n @media all and (min-width: 960px) {\n width: var(--size-grid018);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid014);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid012);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid010);\n }\n }\n }\n }\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n width: 100% !important;\n @media screen and (min-width: 960px) {\n transform: ${(props) => (props.moveForward ? 'translate3d(0%, -50%, 0)' : 'unset')};\n opacity: ${(props) => (props.moveForward ? '0' : '1')};\n }\n }\n &.title-enter-done {\n width: 100% !important;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n width: 100% !important;\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(var(--size-grid001), -10vh, 0);\n /* width previous step solo en forward move */\n width: var(--size-grid014) !important;\n * {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n }\n @media screen and (min-width: 1280px) {\n width: var(--size-grid010) !important;\n }\n @media screen and (min-width: 1600px) {\n transform: translate3d(var(--size-grid001), -15vh, 0);\n }\n @media screen and (min-width: 1920px) {\n transform: translate3d(var(--size-grid001), -15vh, 0)};\n width: var(--size-grid009) !important;\n }\n @media screen and (min-width: 2560px) {\n transform: translate3d(var(--size-grid001), -15vh, 0)};\n width: var(--size-grid007) !important;\n }\n transition: all 350ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n /* desktop */\n ${(props) =>\n props.moveForward && props.distanceToTop\n ? css`\n opacity: 0.2;\n * {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n transform: translate3d(var(--size-grid001), -${props.distanceToTop}px, 0);\n transition: all 300ms;\n @media screen and (min-width: 960px) {\n width: var(--size-grid014) !important;\n }\n @media screen and (min-width: 1280px) {\n width: var(--size-grid010) !important;\n }\n @media screen and (min-width: 1920px) {\n width: var(--size-grid009) !important;\n }\n @media screen and (min-width: 2560px) {\n width: var(--size-grid007) !important;\n }\n `\n : css`\n opacity: 0;\n width: inherit !important;\n transform: translate3d(0, 45vh, 0);\n transition: all 300ms;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 350%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS}, letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out;\n }\n `}\n }\n`;\n\nconst MobileTitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n width: var(--size-grid020) !important;\n padding-top: 52px;\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n }\n &.title-enter-done {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.1;\n transition: all 200ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n opacity: ${(props) => (props.moveForward ? '0.1' : '0')};\n /* mobile */\n transform: ${(props) => (props.moveForward ? 'translate3d(0, -25vh, 0)' : 'translate3d(0, 45vh, 0)')};\n transition: all 300ms;\n }\n`;\n\nconst FieldsWrapper = styled.div<{ opacity: string }>`\n opacity: ${(props) => props.opacity};\n &.fields-enter {\n transform: translate3d(0, 25%, 0);\n opacity: 0;\n }\n &.fields-enter-active {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity 300ms ease-in;\n }\n &.fields-exit {\n opacity: 0;\n }\n &.fields-exit-active {\n opacity: 0;\n }\n`;\ninterface ScreenProps {\n title: JSX.Element;\n fields: JSX.Element;\n key: number;\n avoidTrackFormStepLoad?: boolean;\n thankYouPage?: boolean;\n}\n\nconst defaultLayout: LayoutConfiguration = {\n [Breakpoints.default]: [\n { name: '.', columns: 2 },\n { name: 'a', columns: 20 },\n { name: '.', columns: 2 },\n ],\n [Breakpoints.b960]: [\n { name: '.', columns: 3 },\n { name: 'a', columns: 18 },\n { name: '.', columns: 3 },\n ],\n [Breakpoints.b1280]: [\n { name: '.', columns: 5 },\n { name: 'a', columns: 14 },\n { name: '.', columns: 5 },\n ],\n [Breakpoints.b1920]: [\n { name: '.', columns: 6 },\n { name: 'a', columns: 12 },\n { name: '.', columns: 6 },\n ],\n [Breakpoints.b2560]: [\n { name: '.', columns: 7 },\n { name: 'a', columns: 10 },\n { name: '.', columns: 7 },\n ],\n};\n\nexport function FullScreen(props: ScreenProps) {\n const { title, fields, key, avoidTrackFormStepLoad, thankYouPage } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const {\n multiStepScreenIndex,\n screenIndex,\n triggerExitAnimation,\n showFinalScreen,\n numberOfScreens,\n formEnded,\n alingItemsCenter,\n deleteCloseAndPrevious\n } = formInfo;\n const trackingManager = useTrackingManager();\n const {\n distanceToMove,\n setDistanceToMove,\n moveForward,\n nextScreenIndex,\n nextMultiStepScreenIndex,\n showPreviousStep,\n } = useOneFormContext();\n\n // Si se necesita que el overflow sea visible. Selects no nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(false);\n const [ linkBasesLegales, setLinkBasesLegales ] = useState(null);\n const [ isConfirmacionPage, setIsConfirmacionPage ] = useState(false);\n\n useEffect(() => {\n\n\t// Añadir link de la promocion a los legales\n if(formData.fields.formName ==='adhoc-2021-eurocopa') {\n setLinkBasesLegales('https://crm.volkswagen.es/cms/2021/legal_concurso_eurocopa_2021.pdf');\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 || thankYouPage ? null : screenIndex === 0 ? (\n \n ) : (\n \n )}\n\n {showFinalScreen || hideCloseAndPrevious || thankYouPage ? 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 {isConfirmacionPage ? (\n \n \n \n ) : null}\n \n )}\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n styled,\n Text,\n BreakpointWrapper,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Checkmark } from 'src/icons-core-imports';\n\nimport React, { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState } from 'src/types';\nimport { useTrackingManager, useFeatureAppConfig, useShowOverflow } from 'src/feature-app/hooks';\nimport { PreviousStep } from 'src/feature-app/Screen';\nimport { useOneFormContext } from '../OneForm';\nimport { css, keyframes } from 'styled-components';\n\nconst lineKeyframe = keyframes`\n 0% {\n transform: rotate(-90deg); \n }\n 60% {\n transform: rotate(45deg);\n }\n 100% {\n transform: rotate(0deg);\n }\n`;\n\nconst AnimatedCheckmark = styled.div`\n animation: ${lineKeyframe} 0.3s ease-in;\n svg {\n color: #ffffff;\n }\n`;\n\ninterface PaddingControllerProps {\n screenIndex: number;\n multiStepScreenIndex: number;\n showPreviousStep?: boolean;\n isDealerCalendar?: boolean;\n showOverflow?: boolean;\n}\n\nconst ContentCotroller = styled.div`\n display: flex;\n flex-direction: column;\n padding-top: ${(props) => (!props.showPreviousStep ? '0' : '80px')};\n padding-bottom: ${(props) => (!props.showPreviousStep ? '0' : props.screenIndex === 10 ? '96px' : '128px')};\n min-height: 100vh;\n width: 100%;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n & input:-internal-autofill-selected {\n background-color: transparent !important;\n }\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' : '0'};\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' : '0'};\n }\n\n &.prev-step-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n transform: translate3d(0, -90%, 0);\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-out;\n `\n : css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(0, 10vh, 0);\n }\n transition: all 300ms;\n `}\n }\n &.prev-step-exit-done {\n transform: ${(props) =>\n props.moveForward\n ? 'translate3d(0, -90%, 0)'\n : props.distanceToMove\n ? `translate3d(-41px, ${props.distanceToMove}px, 0)`\n : 'translate3d(-41px, 300px, 0)'};\n @media screen and (min-width: 1600px) {\n transform: ${(props) =>\n props.moveForward\n ? 'translate3d(0, -90%, 0)'\n : props.distanceToMove\n ? `translate3d(-41px, calc(${props.distanceToMove}px + 36px), 0)`\n : 'translate3d(-41px, 300px, 0)'};\n }\n ${(props) =>\n !props.moveForward &&\n css`\n width: 709px;\n * {\n font-size: var(--textappearances-headline350-fontsize);\n line-height: var(--textappearances-headline350-lineheight);\n letter-spacing: var(--textappearances-headline350-letterspacing);\n @media screen and (min-width: 1600px) {\n font-size: var(--textappearances-headline300-fontsize);\n line-height: var(--textappearances-headline300-lineheight);\n letter-spacing: var(--textappearances-headline300-letterspacing);\n }\n opacity: 1;\n }\n `}\n transition: ${(props) =>\n props.moveForward\n ? `\n transform ${TIME_FOR_TRANSFORM_MS},\n font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS},\n letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out\n `\n : 'all 250ms'}\n }\n`;\n\nconst ContentWrapper = styled.div`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n overflow: ${(props) => (props.showOverflow ? 'visible' : 'auto')};\n @media all and (max-height: 573px) and (min-width: 960px) {\n margin-top: ${(props) => (props.screenIndex === 2 && props.multiStepScreenIndex === 1 ? '146px' : null)};\n }\n @media screen and (max-width: 959px) {\n padding-top: ${(props) => (props.isDealerCalendar ? null : props.multiStepScreenIndex === 0 ? '44px' : null)};\n }\n`;\n\nconst TitleWrapper = styled.div<{ moveForward: boolean; distanceToTop: number }>`\n &.title-enter {\n transform: translate3d(0%, -50%, 0);\n opacity: 0;\n @media screen and (min-width: 960px) {\n transform: ${(props) => (props.moveForward ? 'translate3d(0%, -50%, 0)' : 'unset')};\n opacity: ${(props) => (props.moveForward ? '0' : '1')};\n }\n }\n &.title-enter-done {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.title-exit {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n &.title-exit-active {\n ${(props) =>\n props.moveForward\n ? css`\n opacity: 0.5;\n @media screen and (min-width: 960px) {\n transform: translate3d(41px, -10vh, 0);\n /* width previous step solo en forward move */\n width: 640px;\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n }\n @media screen and (min-width: 1600px) {\n transform: translate3d(41px, -15vh, 0);\n /* width previous step solo en forward move */\n width: 640px;\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n }\n transition: all 350ms;\n `\n : css`\n opacity: 0;\n transform: translate3d(0, 350%, 0);\n transition: all ${TIME_FOR_TRANSFORM_MS};\n `}\n }\n &.title-exit-done {\n opacity: ${(props) => (props.moveForward ? '0.2' : '0')};\n /* mobile */\n transform: ${(props) => (props.moveForward ? 'translate3d(0, -25vh, 0)' : 'translate3d(0, 45vh, 0)')};\n transition: all 300ms;\n /* desktop */\n @media screen and (min-width: 960px) {\n transform: ${(props) =>\n props.moveForward ? `translate3d(41px, -${props.distanceToTop}px, 0)` : 'translate3d(0, 350%, 0)'};\n /* width previous step solo en forward move */\n width: ${(props) => (props.moveForward ? '640px' : 'inherit')};\n ${(props) =>\n props.moveForward &&\n css`\n * {\n font-size: var(--textappearances-headline250-fontsize);\n line-height: var(--textappearances-headline250-lineheight);\n letter-spacing: var(--textappearances-headline250-letterspacing);\n }\n `}\n transition: ${(props) =>\n props.moveForward\n ? 'all 300ms'\n : `\n transform ${TIME_FOR_TRANSFORM_MS},\n font-size ${TIME_FOR_TRANSFORM_MS},\n line-height ${TIME_FOR_TRANSFORM_MS},\n letter-spacing ${TIME_FOR_TRANSFORM_MS},\n opacity ${TIME_FOR_OPACITY_MS} ease-out\n `};\n }\n /* @media screen and (min-width: 1600px) {\n transform: ${(props) =>\n props.moveForward ? `translate3d(41px, calc(-${props.distanceToTop}px - 36px), 0)` : 'translate3d(0, 350%), 0'};\n } */\n }\n`;\n\nconst FieldsWrapper = styled.div<{ opacity: string }>`\n opacity: ${(props) => props.opacity};\n &.fields-enter {\n transform: translate3d(0, 25%, 0);\n opacity: 0;\n }\n &.fields-enter-active {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity 300ms ease-in;\n }\n &.fields-exit {\n opacity: 0;\n }\n &.fields-exit-active {\n opacity: 0;\n }\n`;\n\ninterface ScreenProps {\n title: JSX.Element;\n fields: JSX.Element;\n key: number;\n avoidTrackFormStepLoad?: boolean;\n}\n\nexport function LayerScreen(props: ScreenProps) {\n const { title, fields, key, avoidTrackFormStepLoad } = props;\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { multiStepScreenIndex, screenIndex, triggerExitAnimation, showFinalScreen, lastStep } = formInfo;\n const trackingManager = useTrackingManager();\n const config = useFeatureAppConfig();\n const {\n distanceToMove,\n setDistanceToMove,\n moveForward,\n nextScreenIndex,\n nextMultiStepScreenIndex,\n showPreviousStep,\n } = useOneFormContext();\n\n const [showFields, setShowFields] = useState(false);\n const [showTitle, setShowTitle] = useState(false);\n const [opacity, setOpacity] = useState('0');\n\n //Si se necesita que el overflow sea visible. Selectsno nativos, suggests, etc. Añadir en la definicion del step showOverflow.\n\n const { showOverflow } = useShowOverflow(true);\n\n //para el calendario de cita-posventa-dealer\n\n const [isDealerCalendar, setIsDealerCalendar] = useState(false);\n\n useEffect(() => {\n if (config.trigger === 'cita-posventa-dealer' && screenIndex === 2) {\n setIsDealerCalendar(true);\n } else {\n setIsDealerCalendar(false);\n }\n }, [screenIndex]);\n\n // variables para animacion entre steps\n const [distanceToTop, setDistanceToTop] = useState(0);\n const titleRef = useRef(null);\n const contentRef = useRef(null);\n\n // usar useLayoutEffect para asegurar que los cálculos de distancias se hacen antes de un nuevo render del contenido\n useEffect(() => {\n setTimeout(() => {\n if (titleRef.current && contentRef.current) {\n const titleLength = titleRef.current.innerText.length;\n // titleRef.current.scrollIntoView({ behavior: 'smooth', block: 'end' });\n /*\n extra height en breakpoints grandes y dependiendo de la longitud del título, que afecta a la animación\n desconozco por qué ocurre, pero no depende del viewport height, sino del viewport width\n */\n if (window.matchMedia('(min-width: 1600px)').matches && contentRef) {\n const extraHeight = titleLength < 60 ? (titleLength < 53 ? 8 : 18) : 36;\n setDistanceToTop(titleRef.current.offsetTop + extraHeight);\n } else {\n // console.log(titleRef.current.offsetTop, titleRef.current.getBoundingClientRect().top);\n const extraHeight = titleLength < 53 ? 18 : 0;\n setDistanceToTop(titleRef.current.getBoundingClientRect().top - extraHeight);\n }\n /*\n guardar distancia del título a la parte superior del contenedor padre en un array de distancias\n para saber la distancia que tiene que recorrer el previousStep si la navegación va para atrás\n */\n if ((screenIndex === 0 && nextScreenIndex === null) || screenIndex + 1 > distanceToMove.length) {\n setDistanceToMove((distanceToMove) => [...distanceToMove, titleRef.current.getBoundingClientRect().top]);\n } else if (\n screenIndex + 1 <= distanceToMove.length &&\n nextMultiStepScreenIndex !== 1 &&\n nextMultiStepScreenIndex !== 2\n ) {\n const arrDistances = distanceToMove;\n arrDistances[screenIndex] = titleRef.current.getBoundingClientRect().top;\n setDistanceToMove(arrDistances);\n }\n }\n }, 0);\n }, [titleRef]);\n\n useLayoutEffect(() => {\n if (triggerExitAnimation) {\n setShowTitle(false);\n setShowFields(false);\n }\n }, [triggerExitAnimation]);\n\n useEffect(() => {\n // Ni en la primera carga ni en la thank you page se tiene que disparar este evento.\n // El flag isFirstStep solo lo necesitamos en la primera carga, después si que se tiene que disparar el evento.\n setTimeout(() => {\n if (formInfo.step?.isFirstStep || avoidTrackFormStepLoad || (formInfo.stepsHistory?.length === 1 && (!multiStepScreenIndex || multiStepScreenIndex === 0))) {\n if(formInfo.step) formInfo.step.isFirstStep = false;\n return;\n }\n trackingManager.trackFormStepLoad(\n {\n // contentId: step.title\n },\n {\n FormStart: false,\n }\n );\n }, 0);\n }, [title]);\n\n useEffect(() => {\n if (window.matchMedia('(max-width: 960px)').matches && contentRef) {\n contentRef.current.scrollTo({ top: 0 });\n }\n setShowTitle(true);\n }, []);\n\n return (\n \n {showFinalScreen || !showPreviousStep ? null : (\n \n \n \n \n \n \n \n )}\n \n
\n \n <>\n {showFinalScreen ? (\n \n \n \n \n \n ) : null}\n {\n setTimeout(() => {\n setShowFields(true);\n }, 100);\n }}\n onExited={() => {}}\n >\n \n \n {title}\n \n \n {title}\n \n \n \n \n \n {\n setOpacity('1');\n }}\n onExited={() => {\n setOpacity('0');\n }}\n >\n {fields}\n \n
\n \n \n );\n}\n","import {\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { ArrowDown } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useSelector, useStore } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport {\n isNumber,\n useLoaded,\n useTrackingManager,\n} from 'src/feature-app';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { TIME_FOR_OPACITY_MS, TIME_FOR_TRANSFORM_MS } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\n\ninterface navigationWrapperProps {\n fullScreen?: boolean;\n isLastScreen?: boolean;\n notALayer?: boolean;\n colorTheme?: string;\n formMin?: boolean;\n position?: string;\n}\n\nconst NavigationWrapper = styled.div`\n display: ${(props) => (props.notALayer ? 'block' : props.fullScreen ? 'none' : props.isLastScreen ? 'none' : 'block')};\n position: ${(props) => (!props.notALayer ? 'fixed' : props.position ? props.position : 'relative')};\n bottom: 0;\n \n width: 100%;\n background-color: ${(props) => (props.notALayer ? 'transparent' : props.colorTheme === 'main' ? 'none' : '#001e50')};\n &:first-child {\n width: 100%;\n }\n\n @media screen and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? '100%' : '960px')};\n }\n\n &.navigation-enter {\n transform: translate(0%, 50%);\n opacity: 0;\n }\n &.navigation-enter-active {\n transform: translate(0, 0);\n opacity: 1;\n transition: transform ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n &.navigation-enter-done {\n }\n &.navigation-exit {\n transform: translate(0, 0);\n opacity: 1;\n }\n &.navigation-exit-active {\n transform: translate(0, -100%);\n opacity: 0.01;\n transition: all ${TIME_FOR_TRANSFORM_MS}, opacity ${TIME_FOR_OPACITY_MS} ease-in;\n }\n`;\n\ninterface ProgressWrapperProps {\n notALayer?: boolean;\n}\n\nconst ProgressWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n width: ${(props) => (props.notALayer ? 'var(--size-grid010)' : '187px')};\n \n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n`;\n\nconst BarWrapper = styled.div`\n width: 100%;\n position: relative;\n`;\n\ninterface UpperBarProps {\n width?: number;\n colorTheme?: string;\n}\nconst UpperBar = styled.div`\n position: absolute;\n width: ${(props) => `${props.width}%`};\n height: 2px;\n background: ${(props) => (props.colorTheme === 'main' ? '#001E50' : '#ffffff')};\n transition: all 0.3s;\n`;\n\nconst LowerBar = styled.div`\n position: absolute;\n width: 100%;\n height: 2px;\n background: ${(props) => (props.colorTheme === 'main' ? '#DFE4E8' : '#6a767d')} ;\n`;\n\nconst TextWrapper = styled.div`\n align-self: flex-end;\n margin-top: 8px;\n`;\n\nconst DisplayWrapper = styled.div` \n display: flex;\n justify-content: space-between;\n align-items: ${(props) => (props.notALayer ? 'flex-end' : null)};\n\n width: 100%;\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '20px')};\n padding-left: var(--size-grid002);\n padding-right:${(props) => (props.notALayer ? 'var(--size-grid002)' : 'var(--size-grid001)')};\n\n @media screen and (min-width: 560px) {\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '24px')};\n }\n @media screen and (min-width: 960px) {\n padding-left:${(props) => (props.notALayer ? 'var(--size-grid003)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid003)' : '40px')};\n padding-bottom: ${(props) => (props.notALayer ? '16px' : props.fullScreen ? '0' : props.isLastScreen ? '0' : '44px')};\n }\n @media screen and (min-width: 1280px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '40px')};\n }\n @media screen and (min-width: 1920px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '40px')};\n }\n @media screen and (min-width: 2560px) {\n padding-left: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '120px')};\n padding-right: ${(props) => (props.notALayer ? 'var(--size-grid007)' : '40px')};\n }\n`;\n\nconst BackgroundPositionWrapper = styled.div`\n position: ${(props) => (props.notALayer ? 'relative' : null)};\n width: 100%; \n`;\n\nconst BackgroundColorNotALayer = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: #FFFFFF;\n border-top: ${(props) => props.position === 'fixed' ? '1px solid #DFE4E8' : null } ;\n height: 56px;\n z-index: -1;\n`;\n\nconst SVGColorWrapper = styled.div<{isValid: boolean}>`\n svg {\n color: ${(props)=>(props.isValid ? '#001E50' : '#6A767D')};\n }\n`;\n\nconst NextButtonWrapper = styled.div`\n padding-bottom: ${(props) => (props.notALayer ? '8px' : null)};\n`;\n\nconst NextButton = styled.button<{isValid: boolean}>`\n height: 64px;\n width: 64px;\n border-radius: 50%;\n border: none;\n background-color: ${(props)=>(props.isValid ? '#00B0F0' : '#C2CACF')};\n cursor: pointer;\n\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nfunction InnerNavigation(props: any) {\n const { formClicked, setFormClicked, notALayer, colorTheme, soloProgreso, isFullScreen, isLastScreen, position } = props;\n const { formInfo, formData } = useSelector(\n (state: OneFormState) => state\n );\n const { fields } = formData;\n const { screenIndex, numberOfScreens, multiStepScreenIndex, step, steps } = useSelector(\n (state: OneFormState) => state.formInfo\n );\n const { getValues, errors, triggerValidation, clearError } = useFormContext();\n const store = useStore();\n const { handleNextStep, setShowPreviousStep, isValueSelected, setIsValueSelected, setError } = useOneFormContext();\n const [isValid, setIsValid] = useState(false);\n const trackingManager = useTrackingManager();\n\n //Navigation\n\n const checkIfValid = async () => {\n const valid = await triggerValidation();\n clearError();\n\n if (valid) { \n //En CarlineSelect la opción inicial incluye string vacía desde cambio a components core v64.3.0\n if(fields.modelo === \"\"){\n setIsValid(false);\n }\n else if(screenIndex === 0 && !formClicked) {\n if(fields.formName === 'no_compra-ya_tengo') {\n setIsValid(true);\n setError(false);\n } else {\n setIsValid(false);\n }\n } else {\n setIsValid(true);\n setError(false);\n }\n } else {\n setIsValid(false);\n }\n };\n\n useEffect(()=>{\n if(fields.modelo !== \"\" || fields.model !== \"\"){\n setIsValid(true);\n setError(false);\n }\n },[fields.modelo, fields.model])\n \n\n useEffect(() => {\n const checkValidity = async () => await checkIfValid();\n if (formClicked || isValueSelected) {\n checkValidity();\n if (formClicked) setFormClicked(false);\n if (isValueSelected) setIsValueSelected(false);\n }\n }, [formClicked, isValueSelected]);\n\n useEffect(() => {\n setTimeout(() => {\n if (steps) {\n const currentStep = steps.find((step) => step.screenIndex === screenIndex);\n const { notALayer } = store.getState().formInfo;\n if (\n !notALayer && (\n (screenIndex === 0 && !steps[screenIndex].multiStep) ||\n screenIndex === numberOfScreens - 1 ||\n (currentStep && currentStep.hidePreviousStep) ||\n screenIndex > numberOfScreens\n )\n ) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, 100);\n\n const checkValidity = async () => await checkIfValid();\n\n setTimeout(() => {\n checkValidity();\n }, 600);\n }, [screenIndex]);\n\n useEffect(() => {\n const {\n step,\n multiSteps,\n multiStepScreenIndex,\n }: { step: Steps; multiSteps: Steps[]; multiStepScreenIndex: number } = store.getState().formInfo;\n\n setTimeout(() => {\n if (multiSteps && isNumber(multiStepScreenIndex) && step && step.multiStep) {\n if (multiSteps[multiStepScreenIndex].hidePreviousStep) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n } else {\n setShowPreviousStep(true);\n }\n }, 0);\n\n const checkValidity = async () => await checkIfValid();\n\n setTimeout(() => {\n checkValidity();\n }, 600);\n }, [multiStepScreenIndex]);\n\n const getPercentage = (): string => {\n const percentage = ((screenIndex / (numberOfScreens - 1)) * 100).toFixed(0);\n if(numberOfScreens - 1 == 1) {\n return '50';\n }\n else if(percentage === '0') {\n return '5';\n }\n else {\n return percentage;\n }\n };\n\n return (\n \n {\n notALayer ? : null\n }\n \n \n \n \n \n \n \n \n {getPercentage()}% completado\n \n \n \n {\n soloProgreso ? null : (\n \n \n {\n if(fields.modelo === \"\"){\n setError(true);\n }else{\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n handleNextStep(e);\n }\n }}\n isValid={isValid}\n >\n \n \n \n \n \n \n )\n } \n \n \n );\n}\n\ninterface NavigationProps {\n formClicked?: boolean;\n setFormClicked?: React.Dispatch>;\n notALayer?: boolean;\n colorTheme?: string;\n refProps?: any;\n formMin?: boolean;\n soloProgreso: boolean;\n position?: string;\n}\n\nexport function Navigation(props: NavigationProps) {\n const { colorTheme, notALayer, position } = props;\n const { screenIndex, step } = useSelector((state: OneFormState) => state.formInfo);\n const loaded = useLoaded();\n const [isLastScreen, setIsLastScreen] = useState(false);\n const { isFullScreen } = useOneFormContext();\n const store = useStore();\n\n useEffect(() => {\n const { formInfo } = store.getState();\n const { step, lastStep } = formInfo;\n if (step && lastStep) {\n step.screenIndex === lastStep.screenIndex ? setIsLastScreen(true) : setIsLastScreen(false);\n }\n }, [step]);\n\n return (\n \n \n {isLastScreen ? null : }\n \n \n );\n}\n","import React from 'react';\nimport { RatingStars, valuesSinRespuesta } from 'src/components';\n\nexport const getRatingStarsOutput = (value: string) => {\n\tconst rating = parseInt(value);\n\tconst { valueSinRespuesta, labelSinRespuesta } = valuesSinRespuesta();\n\tif(valueSinRespuesta == rating){\n\t\treturn labelSinRespuesta;\n\t}\n\treturn ;\n};\n","import dayjs from 'dayjs';\nimport { strTitlelize } from 'src/helpers';\nimport {\n ctaAlternativaTransporte,\n ctaMotivoVisita,\n ctaTestDrive,\n CTAsMotivo,\n CTAsDudas,\n contactoOptionsSAC,\n CTAsNuevoOcasión,\n CTAsUsadoNuevo,\n ctaContactoSatisfaccion,\n CTAsFormasMovilidad,\n CTAsRazones, \n contactoOptionsTurismos,\n CTAsLugarCompra\n,} from 'src/feature-app/InputsValues/CTAsObjects';\nimport { \n CTAsDesplazamientoTaigo,\n CTAsMotivacionCompraTaigo\n} from 'src/feature-app/InputsValues/CTAsObjectsFormsAdhoc';\nimport { \n franjaHoraria,\n meses \n} from 'src/feature-app/InputsValues/OtherInputTypesObjects';\nimport { \n isGooglePlace, \n weekDay_DayNumber_Month, \n weekDay_DayNumber_Month_Hour \n} from 'src/feature-app';\nimport { Installation, isDealerData } from 'src/types';\n\n//FUNCIONES GESTIÓN OUTPUTS\n\n// cambio value por label\nexport const changeValueForLabel = (ctas: any, fields: any, field: string) => {\n const result = ctas.find((option: any) => option.value === fields[field]);\n return result ? result.label : fields[field];\n};\n\n// cambio value por label y concatenación multipleChoice\nconst formatMultipleOptionText = (ctas: any, fields: any, field: string) => {\n const aux = fields[field];\n const prevStepContent = ctas.filter((item: any) => aux.includes(item.value));\n const result = prevStepContent.map((item: any) => item.label);\n return result.join(', ');\n};\n\n// formacion frase slot de cita\nconst getOutputSlotFrom = (fields: any) => {\n\n const selectedMotivo = CTAsMotivo.find((CTA) => CTA.value === fields.motivo);\n\n if (fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable) {\n const momentSlot = weekDay_DayNumber_Month_Hour(fields.slot.from);\n const formatedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n return selectedMotivo\n ? `${selectedMotivo.detallesPrevStep} el ${formatedSlot.replace('-', ' a las ').concat('h')}`\n : `El ${formatedSlot.replace(',', ' de ').concat('h')}`;\n } else {\n const momentSlot = weekDay_DayNumber_Month(fields.slot.from);\n const formatedSlot =\n momentSlot.split(',')[0] +\n ' de ' +\n momentSlot.split(',')[1].charAt(0).toLowerCase() +\n momentSlot.split(',')[1].slice(1);\n\n const horarioTranslate = franjaHoraria.find((h: any) => h.code === fields.slot.dayMoment.code);\n return selectedMotivo\n ? `${selectedMotivo.detallesPrevStep} el ${formatedSlot.concat(horarioTranslate.name)}`\n : `El ${formatedSlot.concat(horarioTranslate.name)}`;\n }\n};\n\n// output localización\nconst getLocationOutput = (formInfo: any) => {\n\n if (isGooglePlace(formInfo.userSuggestion)) {\n return formInfo.userSuggestion.name;\n } else if (isGooglePlace(formInfo.userSuggestion) && isDealerData(formInfo.userSuggestion)) {\n return `${formInfo.userSuggestion.name} en ${formInfo.userSuggestion.markerInfo.dealerInfo.address}`;\n } else if (isGooglePlace(formInfo.userSuggestion) && !isDealerData(formInfo.userSuggestion)) {\n return `${(formInfo.userSuggestion as Installation).TXT_V_Installation_Data_Name__c} en ${\n (formInfo.userSuggestion as Installation).TXT_V_Address__c\n }`;\n }\n};\n\nconst getUnknowOutput = (fields: any[], field: string) => {\n if (fields[field] == 'true') {\n return 'Sí';\n }\n if (fields[field] == 'false') {\n return 'No';\n }\n if (dayjs(fields[field], 'YYYY-MM-DD').isValid()) {\n return dayjs(fields[field], 'YYYY-MM-DD').format('DD/MM/YYYY');\n }\n if (typeof fields[field] == 'string') {\n return fields[field].replace(/\\,+/g, ', '); \n }\n\n return fields[field];\n};\n\n// SWITCH CASE PARA DETERMINAR EL OUTPUT DEL PREVIOUS STEP\n\nexport const getUpdatedField = (field: string, formData: any, dealersInfo: any, formInfo: any, previousStep?: any) => {\n\n const { fields } = formData;\n const { formName } = fields;\n const { selectedInstallation } = dealersInfo;\n\n if (previousStep?.ctas) {\n return changeValueForLabel(previousStep.ctas, fields, field);\n }\n \n switch(field) {\n case 'motivo':\n return changeValueForLabel(CTAsMotivo, fields, field);\n case 'contacto':\n return changeValueForLabel(contactoOptionsTurismos, fields, field);\n case 'contactoSAC':\n return changeValueForLabel(contactoOptionsSAC, fields, field);\n case 'alternativaTransporte':\n return changeValueForLabel(ctaAlternativaTransporte, fields, field);\n case 'tipoCoche':\n return changeValueForLabel(CTAsNuevoOcasión, fields, field);\n case 'usadoNuevo':\n return changeValueForLabel(CTAsUsadoNuevo, fields, field);\n case 'testDrive':\n return changeValueForLabel(ctaTestDrive, fields, field);\n case 'contactoSatisfaccion':\n return changeValueForLabel(ctaContactoSatisfaccion, fields, field);\n case 'desplazamiento':\n return changeValueForLabel(CTAsDesplazamientoTaigo, fields, field);\n case 'motivacionCompra' : \n return changeValueForLabel(CTAsMotivacionCompraTaigo, fields, field);\n case 'lugarCompra':\n return changeValueForLabel(CTAsLugarCompra, fields, field);\n case 'slot.from':\n return getOutputSlotFrom(fields);\n case 'dealer.name':\n return fields.dealer.name;\n case 'installation':\n return strTitlelize(selectedInstallation.TXT_V_Installation_Data_Name__c != 'undefined' ? selectedInstallation.TXT_V_Installation_Data_Name__c : selectedInstallation.VGED_CommercialName__c);\n case 'installation-complete':\n return typeof selectedInstallation.TXT_V_Installation_Data_Name__c != 'undefined' ? \n strTitlelize(selectedInstallation.TXT_V_Installation_Data_Name__c + ', ' + selectedInstallation.TXT_V_Address__c + ' ' + selectedInstallation.TXT_V_Postal_Code__c + ' ' + selectedInstallation.TXT_V_Location__c) \n : \n strTitlelize(selectedInstallation.VGED_CommercialName__c + ', ' + selectedInstallation.ShippingStreet + ' ' + selectedInstallation.ShippingPostalCode + ' ' + selectedInstallation.ShippingCity)\n case 'location':\n return getLocationOutput(formInfo);\n case 'kilometros':\n if (fields.kilometros === 0) {\n return 'No estoy seguro';\n } else {\n return `${fields.kilometros[0]}km - ${fields.kilometros[1]}km`;\n }\n case 'cellphone':\n return `${fields.prefix} ${fields[field]}`;\n case 'informado':\n let result;\n if (fields[field] === 'false') {\n result = 'No';\n } else if (fields[field] === 'true') {\n result = 'Sí';\n } else {\n result = 'Sin respuesta';\n }\n return result ? result : fields[field];\n case 'otraMarca':\n return fields[field] === 'false' ? 'No' : fields[field];\n case 'publicarRespuestas':\n return fields[field] === '1' ? 'Sí' : 'No';\n case 'brand':\n if(fields[field] === 'false') {\n return 'No';\n } else {\n return fields[field];\n }\n case 'model':\n if(fields[field] === 'false') {\n return '';\n } else {\n return fields[field];\n }\n case 'dudas':\n return formatMultipleOptionText(CTAsDudas, fields, field);\n case 'motivoVisita':\n return formatMultipleOptionText(ctaMotivoVisita, fields, field); \n case 'formasMovilidad':\n return formatMultipleOptionText(CTAsFormasMovilidad, fields, field); \n case 'razones':\n return formatMultipleOptionText(CTAsRazones, fields, field); \n default:\n return getUnknowOutput(fields, field);\n }\n \n};","import dayjs from 'dayjs';\nimport {\n Container,\n ContainerGutter,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { isNull } from 'src/feature-app';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState, Steps } from 'src/types';\nimport { useOneFormContext } from '../OneForm';\nimport { CSSTransition } from 'react-transition-group';\nimport { changeValueForLabel, getUpdatedField, getRatingStarsOutput } from './PreviousStepFiles';\n\ntype PreviousStepWrapperProps = {\n isSeleccionDealer?: boolean;\n notALayer?: boolean;\n};\nconst PreviousStepWrapper = styled.div`\n opacity: ${(props) => (props.notALayer ? '0.4' : '0.35')};\n`;\n\nconst TextPreviousAnswerWrapper = styled.div`\n width: ${(props) => (props.notALayer ? '100%' : '640px')};\n overflow: hidden;\n max-height: 48px;\n opacity: ${(props) => (props.notALayer ? '1' : '0')};\n &.no-animation {\n opacity: 1;\n }\n &.text-enter,\n &.text-enter-active {\n opacity: 0;\n }\n &.text-enter-done {\n opacity: 1;\n transition: opacity 0.3s;\n }\n &.text-exit,\n &.text-exit-active,\n &.text-exit-done {\n opacity: 1;\n }\n`;\n\n// Implementar en caso de que sea necesario mostrar el último paso segun lo introducido y no según el screenIndex, por ejemplo al volver desde la pantalla de confirmación a otra.\ninterface OutputsHistory {\n screenIndex: number;\n step: Steps;\n outputs: any[];\n}\n\nexport function PreviousStepComponent(props: any) {\n const { formData, formInfo, dealersInfo } = useSelector((state: OneFormState) => state);\n const { steps, stepsHistory, screenIndex, multiStepScreenIndex, multiSteps, triggerExitAnimation, step } = formInfo;\n\n const [title, setTitle] = useState(null);\n const [text, setText] = useState(null);\n const [hideText, setHideText] = useState(false);\n const [textAppear, setTextAppear] = useState(false);\n const [outputs, setOutputs] = useState(null);\n const [outputsHistory, setOutputsHistory] = useState(null);\n const { moveForward, showPreviousStep } = useOneFormContext();\n\n /**\n *\n * @param stepsToIterate La lista de steps donde hay que buscar el paso previo.\n * @param screenIndexToGet La lista de steps donde hay que buscar el paso previo.\n */\n const getTitleAndOutputs = (stepsToIterate: Steps[], screenIndexToGet: number) => {\n if (!stepsToIterate || isNull(screenIndexToGet) || screenIndexToGet === -1) {\n setTitle(null);\n setText(null);\n return null;\n }\n const previousStep = stepsToIterate.find((step) => step.screenIndex === screenIndexToGet);\n \n if(!previousStep) {\n return null;\n }\n \n const title = previousStep.alternateTitle ? previousStep.alternateTitle : previousStep.title;\n setTitle(title);\n \n const camelCaseName = previousStep.name.charAt(0).toLowerCase() + previousStep.name.slice(1); // convertir a camelCase para intentar obtener el fieldName desde formName: \"PrecioMantenimiento\" -> \"precioMantenimiento\"\n\n // uso de dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS',...\n if (formInfo.stepsLiteralFields?.[previousStep.name]) {\n const text = formInfo.stepsLiteralFields?.[previousStep.name];\n setText(text);\n return null;\n }\n else if (formInfo.stepsLiteralFields?.[camelCaseName]) {\n const text = formInfo.stepsLiteralFields?.[camelCaseName];\n setText(text);\n return null;\n }\n\n const theValue = formData.fields[camelCaseName];\n\n // RATING STARS\n if (previousStep.outputsIsStars) {\n\t\tsetText(getRatingStarsOutput(theValue));\n\t}\n // OUTPUTS AND OUTPUTSTEXT\n else if (previousStep.outputsText) {\n const updatedOutputsTexts = previousStep.outputsText\n .map((text) => {\n previousStep.outputs.map((output) => {\n if (text === output) {\n text = getUpdatedField(output, formData, dealersInfo, formInfo, previousStep);\n }\n });\n return text;\n })\n .join(' ');\n\n setText(updatedOutputsTexts);\n }\n else if(typeof theValue != 'undefined') {\n // CTAS\n if (previousStep.ctas) {\n setText(changeValueForLabel(previousStep.ctas, formData.fields, theValue));\n }\n else if(theValue == 'false' || theValue === false) {\n setText('No');\n }\n else if(theValue == 'true' || theValue === true) {\n setText('Sí');\n }\n // TIMESTAMPS\n else if (dayjs(theValue, 'YYYY-MM-DD HH:mm:ss').isValid()) {\n setText(dayjs(theValue, 'YYYY-MM-DD HH:mm:ss').format('DD/MM/YYYY HH:mm:ss'));\n }\n else if (dayjs(theValue, 'YYYY-MM-DD').isValid()) {\n setText(dayjs(theValue, 'YYYY-MM-DD').format('DD/MM/YYYY'));\n }\n else if(typeof theValue == 'string'){\n setText(theValue.replace(/\\,+/g, ', ')); // prevenir texto junto la coma\n }\n } \n };\n\n const handleMultiStep = () => {\n // En la primera pantalla del multistep mostramos el último step antes de entrar en el multistep.\n if (multiStepScreenIndex === 0) {\n getTitleAndOutputs(steps, screenIndex - 1);\n } else {\n getTitleAndOutputs(multiSteps, multiStepScreenIndex - 1);\n }\n };\n\n const handleStep = () => {\n // En la primera pantalla después de un multistep mostramos el último multistep antes de salir del mismo.\n let previousStep;\n const indexInHistory = stepsHistory.findIndex((history) => history === screenIndex);\n\n if (indexInHistory === -1) {\n previousStep = steps.find((step) => step.screenIndex === screenIndex - 1);\n } else {\n previousStep = steps.find((step) => step.screenIndex === stepsHistory[indexInHistory - 1]);\n }\n if (previousStep && previousStep.multiStep) {\n getTitleAndOutputs(multiSteps, multiStepScreenIndex);\n } else {\n getTitleAndOutputs(steps, previousStep?.screenIndex);\n }\n };\n\n useEffect(() => {\n if (isNull(screenIndex) || (screenIndex === 0 && !steps?.[screenIndex]?.multiStep) || !steps?.[screenIndex]) {\n return;\n }\n const step = steps.find((step) => step.screenIndex === screenIndex);\n if (step) {\n step.multiStep ? handleMultiStep() : handleStep();\n } else {\n handleStep();\n }\n }, [screenIndex, multiStepScreenIndex]);\n\n useEffect(() => {\n if (props.stopAnimation) {\n setHideText(false);\n } else {\n if (!moveForward) {\n setHideText(true);\n } else {\n setHideText(false);\n }\n }\n }, [moveForward]);\n\n useEffect(() => {\n if (text) setTextAppear(true);\n }, [text]);\n\n useEffect(() => {\n setHideText(false);\n }, []);\n\n return showPreviousStep ? (\n \n \n {props.notALayer ? (\n \n {title ? title : null}\n \n ) : (\n \n {title ? title : null}\n \n )}\n {props.notALayer ? (\n \n \n {text && !hideText ? text : null}\n \n \n ) : (\n \n \n \n {text && !hideText && !triggerExitAnimation ? text : null}\n \n \n \n )}\n \n \n ) : null;\n}\n\nclass ErrorBoundary extends React.Component {\n constructor(props: any) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n // Actualiza el estado para que el siguiente renderizado muestre la interfaz de repuesto\n return { hasError: true };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error('Falta por definir un campo en PreviousStep');\n // También puedes registrar el error en un servicio de reporte de errores\n }\n\n render() {\n if (this.state.hasError) {\n // Puedes renderizar cualquier interfaz de repuesto\n return null;\n }\n\n return this.props.children;\n }\n}\n\nexport function PreviousStep(props: any) {\n return (\n \n \n \n );\n}\n","import React, {useEffect, useState} 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\"\n >\n {showFinalScreen ? (\n <>\n {\n formType === 'inPage' || formType === 'module' ? null : (\n \n )\n }\n \n \n \n \n \n ) : formType === 'inPage' || formType === 'module' ? (\n <>\n {selectedJourney}\n {showFinalScreen || isMap || !formStarted || isConfirmacion || formType === 'module' ? null : (\n \n )}\n \n ) : (\n <>\n \n\n {selectedJourney}\n {isLastScreen ? null : (\n \n )}\n \n )}\n \n \n );\n}\n","import React from 'react';\nimport {\n Layout,\n Breakpoints,\n LayoutRowGap,\n styled,\n} from '@volkswagen-onehub/components-core';\n\ninterface OneElementTemplateProps {\n element: JSX.Element;\n allowOverflowingContent?: boolean;\n noPadding?: boolean;\n}\n\n// Refactorizar\nexport function OneElementTemplateFullScreen(props: OneElementTemplateProps) {\n const { element, allowOverflowingContent, noPadding = false } = props;\n return (\n \n {element}\n \n );\n}\n\ninterface TwoElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nexport function TwoElementsTemplateFullScreen(props: TwoElementsTemplateProps) {\n const { firstElement, secondElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n \n );\n}\n\ninterface ThreeElementsTemplateProps {\n firstElement: JSX.Element;\n secondElement: JSX.Element;\n thirdElement: JSX.Element;\n allowOverflowingContent?: boolean;\n}\n\nexport function ThreeElementsTemplateFullScreen(props: ThreeElementsTemplateProps) {\n const { firstElement, secondElement, thirdElement } = props;\n return (\n \n {firstElement}\n {secondElement}\n {thirdElement}\n \n );\n}\n","import React from 'react';\nimport { useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nexport function ThankYouComponent() {\n const { thankYouComponent } = useSelector((state: OneFormState) => state.formInfo);\n return { ...thankYouComponent };\n}\n","import normalizeArguments from './normalizeArguments.js'\r\nimport parsePhoneNumber_ from './parsePhoneNumber_.js'\r\n\r\nexport default function parsePhoneNumber() {\r\n\tconst { text, options, metadata } = normalizeArguments(arguments)\r\n\treturn parsePhoneNumber_(text, options, metadata)\r\n}\r\n","import dayjs from 'dayjs';\nimport {PincodeData} from 'src';\nimport {getPersonAttributes, getLeadAttributes, getVehicleAttributes, dealerAttributes, orderAttributes} from '.';\nimport {getTestLead, getTestPerson, getTestOrder, getTestVehicle, getTestDealer} from '.';\n\nexport const checkIfIsTestPincode = (pincode: string) => pincode.startsWith('PINCODE');\n\nexport const getTestPincode = (pincode: string): PincodeData => {\n\tconst noPermite = pincode.includes('NOPERMITE') || pincode.includes('NO-PERMITE');\n\tconst isElectrico = pincode.includes('ID');\n\n\tconst content = [];\n\n\tif (pincode.includes('NPERSON')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getTestPerson(noPermite, getDate(pincode, 'PERSON'))],\n\t\t});\n\t} else if (pincode.includes('PERSON')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getPersonAttributes(noPermite, getDate(pincode, 'PERSON'))],\n\t\t});\n\t}\n\n\tif (pincode.includes('NLEAD')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getTestLead(getDate(pincode, 'LEAD'))],\n\t\t});\n\t} else if (pincode.includes('LEAD')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getLeadAttributes(getDate(pincode, 'LEAD'))],\n\t\t});\n\t}\n\n\tif (pincode.includes('NVEHICLE')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getTestVehicle(isElectrico)],\n\t\t});\n\t} else if (pincode.includes('VEHICLE')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getVehicleAttributes(isElectrico)],\n\t\t});\n\t}\n\n\tif (pincode.includes('NORDER')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getTestOrder],\n\t\t});\n\t} else if (pincode.includes('ORDER')) {\n\t\tcontent.push({\n\t\t\tattributes: [...orderAttributes],\n\t\t});\n\t}\n\n\tif (pincode.includes('NDEALER')) {\n\t\tcontent.push({\n\t\t\tattributes: [...getTestDealer],\n\t\t});\n\t} else if (pincode.includes('DEALER')) {\n\t\tcontent.push({\n\t\t\tattributes: [...dealerAttributes],\n\t\t});\n\t}\n\n\treturn {\n\t\tstatus: {\n\t\t\tresult: 'success',\n\t\t\ttimestamp: dayjs().format('YYYY-MM-DD HH:mm:ss'),\n\t\t\tcode: 1,\n\t\t\ttime: 0.5742380619049072,\n\t\t},\n\t\tparams: {\n\t\t\tpincode: pincode,\n\t\t\ttoken: 'VW_DDB_FORM_TEST',\n\t\t},\n\t\tcontent: content,\n\t};\n};\n\nconst getDate = (pincode: string, match: string) => {\n\tconst days = pincode.match(new RegExp(match + '(\\\\d+)'));\n\tif (days) {\n\t\treturn dayjs().subtract(parseInt(days[1]), 'day').format('YYYY-MM-DD HH:mm:ss');\n\t}\n\treturn null;\n};\n","export const dealerAttributes = [\n\t{\n\t\tname: 'ID',\n\t\tvalue: 'DEALER',\n\t},\n\t{\n\t\tname: 'attributes',\n\t\tvalue:\n\t\t\t'es.vged.dps.salesforce.rest.entities.SfAttributesRest@281c2df7[type=Account,url=/services/data/v53.0/sobjects/Account/0010Y000014bFZOQA2]',\n\t},\n\t{\n\t\tname: 'Id',\n\t\tvalue: '0010Y00001IPCkUQAX',\n\t},\n\t{\n\t\tname: 'IsDeleted',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'MasterRecordId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Name',\n\t\tvalue: 'CATALUNYA WAGEN',\n\t},\n\t{\n\t\tname: 'TXT_V_Installation_Data_Name__c',\n\t\tvalue: 'CATALUNYA WAGEN',\n\t},\n\t{\n\t\tname: 'LastName',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FirstName',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Salutation',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'MiddleName',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Suffix',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Type',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RecordTypeId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ParentId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingStreet',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingCity',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingState',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingPostalCode',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingCountry',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingLatitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingLongitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingGeocodeAccuracy',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingAddress',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingStreet',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingCity',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingState',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingPostalCode',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingCountry',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingLatitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingLongitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingGeocodeAccuracy',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingAddress',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Phone',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Fax',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'AccountNumber',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Website',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PhotoUrl',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Sic',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Industry',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'AnnualRevenue',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NumberOfEmployees',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Ownership',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TickerSymbol',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Description',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Rating',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Site',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'OwnerId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CreatedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CreatedById',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastModifiedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastModifiedById',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SystemModstamp',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastActivityDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastViewedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastReferencedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'IsPartner',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonContactId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'IsPersonAccount',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingStreet',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingCity',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingState',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingPostalCode',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingCountry',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingLatitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingLongitude',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingGeocodeAccuracy',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMailingAddress',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonMobilePhone',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonEmail',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonTitle',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonDepartment',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonHasOptedOutOfEmail',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonLastCURequestDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonLastCUUpdateDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonEmailBouncedReason',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PersonEmailBouncedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Jigsaw',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'JigsawCompanyId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'AccountSource',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SicDesc',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SalesforceCustomer',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Active__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Customer_Priority__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Instalacion__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NumberofLocations__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SLAExpirationDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SLASerialNumber__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'SLA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Skoda__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'UpsellOpportunity__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Volkswagen__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Dealer_Code_Vaesa__c',\n\t\tvalue: '0320Y',\n\t},\n\t{\n\t\tname: 'COD_Gender__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Person_DIM_IMP__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LSSI__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Phone_mobile__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_landline__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_Brand__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Robinson__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Country__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Location__c',\n\t\tvalue: 'BARCELONA',\n\t},\n\t{\n\t\tname: 'TXT_NIF_CIF__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Postal_Code__c',\n\t\tvalue: '08040',\n\t},\n\t{\n\t\tname: 'TXT_Province__c',\n\t\tvalue: 'BARCELONA',\n\t},\n\t{\n\t\tname: 'TXT_natural_legal_person__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Address_extra__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Address_name__c',\n\t\tvalue: 'A Zona Franca',\n\t},\n\t{\n\t\tname: 'Address_number__c',\n\t\tvalue: '51',\n\t},\n\t{\n\t\tname: 'Address_type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FORM_Full_Address__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Code_Concession__c',\n\t\tvalue: '0320Y',\n\t},\n\t{\n\t\tname: 'TXT_Installation_Code__c',\n\t\tvalue: '0320Y',\n\t},\n\t{\n\t\tname: 'TXT_V_Code_Concession__c',\n\t\tvalue: '0320Y',\n\t},\n\t{\n\t\tname: 'TXT_V_Installation_Code__c',\n\t\tvalue: '0320Y',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VN_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VN_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VN_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VN_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VO_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VO_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VO_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Lead_VO_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VN_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VN_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VN_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VN_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VO_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VO_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VO_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Prospect_VO_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_last_received_com_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_last_received_com_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_last_received_com_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_last_received_com__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vn_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vn_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vn_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vn__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vo_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vo_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vo_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_lead_vo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_1_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_1_Skoda__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_1_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_1__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_2_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_2_Skoda__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_2_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Desired_model_2__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Last_comunication_campaign_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Last_comunication_campaign_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Last_comunication_campaign_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Last_comunication_campaign__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_14_days_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_14_days_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_14_days_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_14_days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_21_days_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_21_days_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_21_days_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_21_days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_30_days_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_30_days_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_30_days_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_30_days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_7_days_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_7_days_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_7_days_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_7_days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_90_days_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_90_days_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_90_days_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_90_days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_year_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_year_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_year_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'N_hits_last_year__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Pissed_off_client_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Pissed_off_client_Skoda__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Pissed_off_client_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Pissed_off_client__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_is_official_dealer_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_is_official_dealer_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_is_official_dealer_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_is_official_dealer__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_act_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_act_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_act_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_nact_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_nact_Sk__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_nact_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vn_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_act_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_act_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_act_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_nact_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_nact_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_nact_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'driver_vo_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_is_offical_dealer_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_is_offical_dealer_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_is_offical_dealer_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_is_offical_dealer__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_act_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_act_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_act_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_nact_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_nact_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_nact_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vn_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_act_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_act_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_act_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_nact_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_nact_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_nact_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'owner_vo_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'COD_province__c',\n\t\tvalue: '17',\n\t},\n\t{\n\t\tname: 'Manual_marker__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Address__c',\n\t\tvalue: 'POL.IND. ZONA FRANCA, CALLE A 51',\n\t},\n\t{\n\t\tname: 'Afected_EA_189__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vn_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vn_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vn_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vn__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vo_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vo_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vo_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_prospect_vo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Legal_risk_EA_189__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Age__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Current_Afected_EA_189__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Document_type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Repaired_EA_189__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LKP_After_Sales_manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LKP_Sales_manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Dealer_Code_Imaweb__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Climapro_Installation_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Climapro_Installation_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Climapro_Installation_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Climapro_Installation_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Latitude__c',\n\t\tvalue: '41.337717',\n\t},\n\t{\n\t\tname: 'Longitude__c',\n\t\tvalue: '2.141197',\n\t},\n\t{\n\t\tname: 'NUM_V_Phone__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Aftersale_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Aftersale_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Aftersale_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Aftersale_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Sale_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Sale_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Sale_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Preferred_Installation_Sale_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_KVPS_code__c',\n\t\tvalue: '08004',\n\t},\n\t{\n\t\tname: 'TXT_PV_Address__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_KVPS_code__c',\n\t\tvalue: '08004',\n\t},\n\t{\n\t\tname: 'TXT_V_Postal_Code__c',\n\t\tvalue: '08040',\n\t},\n\t{\n\t\tname: 'Cod_installation_Imaweb__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FLAG_Baja__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'COD_Brand_Imaweb__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NORM_Address_name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NORM_Address_number__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NORM_Location__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NORM_Postal_Code__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Business_Group_CIF__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Description_Concession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Contact_Concession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Type_Concession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Climapro_Concession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Email__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'aceDealer__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'MPCK_Instalation_Type__c',\n\t\tvalue: '1;2;10',\n\t},\n\t{\n\t\tname: 'FRML_TXT_codVentaProvincia__c',\n\t\tvalue: '08',\n\t},\n\t{\n\t\tname: 'Latitude_V__c',\n\t\tvalue: '41.337717',\n\t},\n\t{\n\t\tname: 'Longitude_V__c',\n\t\tvalue: '2.141197',\n\t},\n\t{\n\t\tname: 'TXT_V_Location__c',\n\t\tvalue: 'BARCELONA',\n\t},\n\t{\n\t\tname: 'COD_V_province__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Cod_V_installation_Imaweb__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FLAG_V_Baja__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Dealer_V_Code_Vaesa__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_V_Climapro_Installation_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_V_Climapro_Installation_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_V_Climapro_Installation_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_V_Climapro_Installation_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Dealer_V_Code_Imaweb__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Area_Manager_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Zone_Manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'External_ID_Otros__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Activity__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_Name_1_Manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Surname_2_Manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Area_code__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Description_Installation__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_prior_appointment__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_After_Sales_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Email_more_info__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Sender__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Home__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Date_Last_Updated__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Replacement_fleet__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Installation_Data_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Manager_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Observations_Schedule__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Observations_Schedule__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Parking__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_business_name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_business_name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Adblue_price__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Anyo_matriculacion_otro_vehiculo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Audi_CAM__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Audi_Lounge__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Audi_Sport_Exclusive_Service__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Audi_Sport__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_California_roof_repairing__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Children_zone__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Client_Shutle__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Compressed_Natural_Gas_Charger__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Crafter_Elevator__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_DRM__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Delivery_Service__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Do_Not_Contact_AU__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Do_Not_Contact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Dont_send_Com__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Elite_Body__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Email_OFF__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Exclusive_Service_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Exclusive_Service__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Fast_Service__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Free_Wifi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_HVT_repairs__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Handicapped__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Integral_Body_Program__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Is_Closed_Days__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Oficial_Audi_Prestige_Service__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_PCI__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Parking__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_SUM_Diff_Schedule_Vehicle_Recep__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Service_Plus_Installation__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_TLMK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Children_zone__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Exclusive_Service_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Free_Wifi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Handicapped__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_V_Waiting_zone__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Waiting_zone__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_Working_Zone_Waiting_Clients__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_e_Hibrids__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_e_dealers__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_e_loaders__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CampaignID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Contactable_after_sales__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Contactable_sales__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Customer_type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Date_Photo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_End_Date_SUM__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_End_Date_Valid__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Entry_Date__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Ini_Date_SUM__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_Termination_Date__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_View_End_Period__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DATE_View_Start_Period__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_Customer_registration_SLI__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_last_vehicle__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Email_Business_Group__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_Autonomo_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_Gran_empresa_propiedad_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_Pymes_propiedad_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_Pymes_renting_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_RaC_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_VO_no_particular__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_gran_empresa_renting_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_indefinido_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_no_identificado_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_particular_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Es_resto_VN__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Excesive_waiting__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FRML_TXT_DPV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FRML_TXT_Image_Sign__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Family_unit__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'FormID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Home_another_vehicle_brand__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_External_ID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ID_Vehicle_EID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Instalacion__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_PV_AU__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_PV_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_PV_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_PV_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_V_AU__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_V_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_V_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Id_Propietario_V_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Informat_cession_aceptance__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Lead_vn_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Lead_vn_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Lead_vo_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Lead_vo_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Multivehicle__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Bodywork_Price_Hour__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Business_Group_Id__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Fax_Business_Group__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Id_Operation__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Mechanical_Price_Hour__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Number_Photo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Oil_Liter_Price__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Phone_Business_Group__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Substitution_vehicle__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_Work_Price__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'NUM_chassis_number__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_FRI_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_FRI_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_FRI_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_FRI_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_MON_THUR_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_MON_THUR_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_MON_THUR_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_MON_THUR_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SAT_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SAT_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SAT_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SAT_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SUN_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SUN_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SUN_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_SUM_TIME_SUN_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_Social_Network__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_FRI_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_FRI_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_FRI_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_FRI_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_MON_THUR_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_MON_THUR_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_MON_THUR_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_MON_THUR_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SAT_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SAT_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SAT_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SAT_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SUN_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SUN_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SUN_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_SUM_TIME_SUN_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_Social_Network__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_FRI_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_FRI_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_FRI_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_FRI_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_MON_THUR_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_MON_THUR_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_MON_THUR_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_MON_THUR_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SAT_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SAT_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SAT_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SAT_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SUN_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SUN_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SUN_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_V_WIN_TIME_SUN_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_FRI_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_FRI_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_FRI_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_FRI_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_MON_THUR_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_MON_THUR_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_MON_THUR_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_MON_THUR_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SAT_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SAT_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SAT_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SAT_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SUN_AFT_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SUN_AFT_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SUN_MOR_END__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PCK_WIN_TIME_SUN_MOR_STA__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PKL_Exclusion_Motive_PV_AU__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PKL_Exclusion_Motive_PersonAccount__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Profession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Standard_contactable_universe_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Standard_contactable_universe_Skoda__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Standard_contactable_universe_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Standard_contactable_universe__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Accept_Bases__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Area_Manager_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Business_Group_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_BussinesGroup__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Comments_Exclusion__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Context_ID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Contract_brand__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_DPV_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_DPV_gender__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_DPV_treatment__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Description_Validity__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Area_Manager__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_CCDPV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_DPV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_DV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Online_Appointment_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Online_Appointment_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Email_Zone_Manager_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Facebook__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Instagram__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_Name_1_Area_Manager_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_Name_1_DPV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_Name_1_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_name_2_DPV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Last_name_2_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Manager_Name_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Observations__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Official_Web_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Official_Web_V__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Position__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Profile__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Surname_2_Area_Manager_PV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Tradename_BusinessGroup__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Tradename__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Twitter__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Facebook__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Instagram__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Name__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Tradename__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Twitter__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_Web__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_V_gender__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_Web__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'TXT_number_plate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'URL_Business_Group_Website__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Unsuscribed__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Use_type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'cond_is_official_dealer_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'cond_is_official_dealer_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'cond_is_official_dealer_VW__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'cond_is_official_dealer__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'cond_vn_act_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'prospect_vn_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'prospect_vn_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'prospect_vo_act__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'prospect_vo_nact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'et4ae5__HasOptedOutOfMobile__pc',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'et4ae5__Mobile_Country_Code__pc',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'IDClimapro__pc',\n\t\tvalue: 'null',\n\t},\n];\n","export const getLeadAttributes = (date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'LEAD',\n\t\t},\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue:\n\t\t\t\t'es.vged.dps.salesforce.rest.entities.SfAttributesRest@133a815a[type=Leads_Prospects__c,url=/services/data/v51.0/sobjects/Leads_Prospects__c/a0d1n00000gvFgzAAE]',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: 'a0d1n00000gvFgzAAE',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Name',\n\t\t\tvalue: '8401294-VW_DDB_FRM_LEM_REC_LEM-36V',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: date ? date : '2023-11-14 18:44:24',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2021-05-05T05:55:28.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2021-05-05T05:55:28.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Brand__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_Dealer_Code__c',\n\t\t\tvalue: 'MERKAMOTOR TORTOSA, S.A.',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_Model__c',\n\t\t\tvalue: 'T-Roc',\n\t\t},\n\t\t{\n\t\t\tname: 'ID_Person_DIM_IMP__c',\n\t\t\tvalue: '8401294',\n\t\t},\n\t\t{\n\t\t\tname: 'IS_Prospect__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Is_AfterSales__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Is_Company__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Is_lead__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'LSSI__c',\n\t\t\tvalue: 'NO PERMITE',\n\t\t},\n\t\t{\n\t\t\tname: 'LastCreatedDate__c',\n\t\t\tvalue: '2021-05-02T23:50:00.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Email__c',\n\t\t\tvalue: 'test@test.com',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Postal_Code__c',\n\t\t\tvalue: '00000',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Province__c',\n\t\t\tvalue: 'Barcelona',\n\t\t},\n\t\t{\n\t\t\tname: 'Token__c',\n\t\t\tvalue: 'VW_DDB_FRM_LEM_REC_LEM',\n\t\t},\n\t\t{\n\t\t\tname: 'Total__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Total_last_1_year__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Total_last_2_year__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Total_last_3_year__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Total_last_4_year__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VN_VO__c',\n\t\t\tvalue: 'VN',\n\t\t},\n\t\t{\n\t\t\tname: 'LKP_PersonAccount__c',\n\t\t\tvalue: '0011n00002e8sUnAAI',\n\t\t},\n\t\t{\n\t\t\tname: 'External_Id_Climapro__c',\n\t\t\tvalue: 'DPS-000000000000001052940',\n\t\t},\n\t\t{\n\t\t\tname: 'NUM_COD_INTEREST_CARLINE__c',\n\t\t\tvalue: '30365',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_DESC_DEALER_CODE__c',\n\t\t\tvalue: '03278',\n\t\t},\n\t\t{\n\t\t\tname: 'IsQualified__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t];\n};\n","export const orderAttributes = [\n\t{\n\t\tname: 'ID',\n\t\tvalue: 'ORDER',\n\t},\n\t{\n\t\tname: 'attributes',\n\t\tvalue:\n\t\t\t'es.vged.dps.salesforce.rest.entities.SfAttributesRest@59506a4c[type=Order__c,url=/services/data/v53.0/sobjects/Order__c/a0W1n00000IETcDEAX]',\n\t},\n\t{\n\t\tname: 'Id',\n\t\tvalue: 'a0W1n00000IETcDEAX',\n\t},\n\t{\n\t\tname: 'OwnerId',\n\t\tvalue: '0050Y000001UE3gQAG',\n\t},\n\t{\n\t\tname: 'IsDeleted',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'Name',\n\t\tvalue: '36V_146_6599',\n\t},\n\t{\n\t\tname: 'CreatedDate',\n\t\tvalue: '2020-10-31T08:20:33.000+0000',\n\t},\n\t{\n\t\tname: 'CreatedById',\n\t\tvalue: '0050Y000001UE3gQAG',\n\t},\n\t{\n\t\tname: 'LastModifiedDate',\n\t\tvalue: '2021-11-26T09:28:57.000+0000',\n\t},\n\t{\n\t\tname: 'LastModifiedById',\n\t\tvalue: '0050Y000001UE3gQAG',\n\t},\n\t{\n\t\tname: 'SystemModstamp',\n\t\tvalue: '2021-11-26T09:28:58.000+0000',\n\t},\n\t{\n\t\tname: 'LastViewedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastReferencedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CHK_excessive_waiting_Audi__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'CHK_excessive_waiting_Audi_theoric__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'CHK_excessive_waiting_LCV__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'CHK_excessive_waiting_Skoda__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'CHK_excessive_waiting_VW__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'COD_Carline__c',\n\t\tvalue: '30316',\n\t},\n\t{\n\t\tname: 'Instalacion_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Instalacion_LCV__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Instalacion_SK__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'COD_comision__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'COD_sales_type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'COD_salesgroup__c',\n\t\tvalue: '39237',\n\t},\n\t{\n\t\tname: 'Customer_change_order__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VipEnviado__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'DemoraTipo__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ConfirmacionRegaloEnviado__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'EmailFollowUpEnviado__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'CHK_contactable_universe__c',\n\t\tvalue: '0',\n\t},\n\t{\n\t\tname: 'Contactable_universe_vehicle__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DESC_Model__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DESC_Sales_VN_Type__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DESC_TrimLevel__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DESC_car_model_salesgroup__c',\n\t\tvalue: 'Golf Last Edition',\n\t},\n\t{\n\t\tname: 'DESC_excessive_waiting_Audi__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DESC_model_group__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'EmailBienvenidaEnviado__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'EmailDemoraEnviado__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'EmailEstadoEnviado__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Factory__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Not_lineal_order__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'Order_frame_FK__c',\n\t\tvalue: 'WVWZZZAUZLW014456',\n\t},\n\t{\n\t\tname: 'PKL_order_VN_VO__c',\n\t\tvalue: 'VO',\n\t},\n\t{\n\t\tname: 'PKL_order_brand__c',\n\t\tvalue: 'Volkswagen',\n\t},\n\t{\n\t\tname: 'SLI_State__c',\n\t\tvalue: '70',\n\t},\n\t{\n\t\tname: 'Vehicle_age_monthly_ord__c',\n\t\tvalue: '19',\n\t},\n\t{\n\t\tname: 'Vehicle_age_yearly_ord__c',\n\t\tvalue: '2',\n\t},\n\t{\n\t\tname: 'COD_Customer_renting__c',\n\t\tvalue: '0010Y000015jO9yQAE',\n\t},\n\t{\n\t\tname: 'COD_Customer_type__c',\n\t\tvalue: '8',\n\t},\n\t{\n\t\tname: 'COD_Driver__c',\n\t\tvalue: '0010Y000015jO9yQAE',\n\t},\n\t{\n\t\tname: 'COD_Vehicle_climapro__c',\n\t\tvalue: 'a0Y1n00000HU1nzEAD',\n\t},\n\t{\n\t\tname: 'COD_owner_climapro__c',\n\t\tvalue: '0010Y00001cvNpnQAE',\n\t},\n\t{\n\t\tname: 'Concesion__c',\n\t\tvalue: '0010Y000014bFZOQA2',\n\t},\n\t{\n\t\tname: 'Customer_type__c',\n\t\tvalue: 'Particular VO IMA DWA',\n\t},\n\t{\n\t\tname: 'DAT_Customers_order__c',\n\t\tvalue: '2020-03-05',\n\t},\n\t{\n\t\tname: 'DAT_Order__c',\n\t\tvalue: '2020-03-05',\n\t},\n\t{\n\t\tname: 'DAT_delivery__c',\n\t\tvalue: '2020-05-26',\n\t},\n\t{\n\t\tname: 'DAT_order_state_10__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_20__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_30__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_40__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_50__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_60__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_70__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'DAT_order_state_80__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'IDClimapro__c',\n\t\tvalue: '36V_146_6599',\n\t},\n\t{\n\t\tname: 'Instalacion__c',\n\t\tvalue: '0010Y00001IPCkUQAX',\n\t},\n];\n","export const getPersonAttributes = (noPermiteLssi?: boolean, date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'PERSON',\n\t\t},\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: 'TEST',\n\t\t},\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Name',\n\t\t\tvalue: 'TEST NAME',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_2_Surname__c',\n\t\t\tvalue: 'TEST SURNAME',\n\t\t},\n\t\t{\n\t\t\tname: 'LastName',\n\t\t\tvalue: 'TEST LASTNAME',\n\t\t},\n\t\t{\n\t\t\tname: 'FirstName',\n\t\t\tvalue: 'TEST FIRSTNAME',\n\t\t},\n\t\t{\n\t\t\tname: 'Salutation',\n\t\t\tvalue: 'Sra.',\n\t\t},\n\t\t{\n\t\t\tname: 'RecordTypeId',\n\t\t\tvalue: '0120Y000000FHqQQAW',\n\t\t},\n\t\t{\n\t\t\tname: 'BillingAddress',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ShippingAddress',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PhotoUrl',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: date ? date : '2023-11-14 18:44:24',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2021-05-04 13:43:20',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2021-05-04 13:43:20',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'IsPartner',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonContactId',\n\t\t\tvalue: '0031n00002SQq1OAAT',\n\t\t},\n\t\t{\n\t\t\tname: 'IsPersonAccount',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonMailingAddress',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonOtherAddress',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonHasOptedOutOfEmail',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonHasOptedOutOfFax',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonDoNotCall',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Audi__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Instalacion__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Skoda__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Volkswagen__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'COD_Gender__c',\n\t\t\tvalue: 'M',\n\t\t},\n\t\t{\n\t\t\tname: 'ID_Person_DIM_IMP__c',\n\t\t\tvalue: 'TEST_ID_Person_DIM_IMP__c',\n\t\t},\n\t\t{\n\t\t\tname: 'LCV__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'LSSI__c',\n\t\t\tvalue: noPermiteLssi ? 'NO PERMITE' : 'PERMITE',\n\t\t},\n\t\t{\n\t\t\tname: 'NUM_Phone_mobile__c',\n\t\t\tvalue: '600000000',\n\t\t},\n\t\t{\n\t\t\tname: 'Robinson__c',\n\t\t\tvalue: 'PERMITE',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Country__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Email__c',\n\t\t\tvalue: 'test@test.com',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Location__c',\n\t\t\tvalue: 'L’Hospitalet de Llobregat',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_NIF_CIF__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Postal_Code__c',\n\t\t\tvalue: '08001',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_Province__c',\n\t\t\tvalue: 'Barcelona',\n\t\t},\n\t\t{\n\t\t\tname: 'TXT_natural_legal_person__c',\n\t\t\tvalue: 'FISICA',\n\t\t},\n\t\t{\n\t\t\tname: 'Address_extra__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Address_name__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Address_number__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Address_type__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'FORM_Full_Address__c',\n\t\t\tvalue: 'Calle D’Amadeu TORNER 12',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VN_Audi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VN_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VN_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VN_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VO_Audi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VO_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VO_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Lead_VO_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VN_Audi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VN_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VN_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VN_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VO_Audi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VO_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VO_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Prospect_VO_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Desired_model_1_VW__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Pissed_off_client_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Pissed_off_client_Skoda__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Pissed_off_client_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Pissed_off_client__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_is_official_dealer_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_is_official_dealer_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_is_official_dealer_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_is_official_dealer__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_act_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_act_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_act_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_act__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_nact_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_nact_Sk__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_nact_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vn_nact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_act_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_act_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_act_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_act__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_nact_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_nact_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_nact_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'driver_vo_nact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_is_offical_dealer_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_is_offical_dealer_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_is_offical_dealer_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_is_offical_dealer__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_act_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_act_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_act_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_act__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_nact_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_nact_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_nact_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vn_nact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_act_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_act_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_act_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_act__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_nact_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_nact_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_nact_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'owner_vo_nact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'COD_province__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Afected_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Legal_risk_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Current_Afected_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Repaired_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Replacement_fleet__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Parking__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Audi_CAM__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Audi_Lounge__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Audi_Sport_Exclusive_Service__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Audi_Sport__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_California_roof_repairing__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Children_zone__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Client_Shutle__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Compressed_Natural_Gas_Charger__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Crafter_Elevator__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_DRM__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Delivery_Service__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Do_Not_Contact_AU__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Do_Not_Contact__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Dont_send_Com__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Elite_Body__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Email_OFF__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Exclusive_Service_VW__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Exclusive_Service__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Fast_Service__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Free_Wifi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_HVT_repairs__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Handicapped__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Integral_Body_Program__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Is_Closed_Days__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Oficial_Audi_Prestige_Service__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_PCI__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Parking__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_SUM_Diff_Schedule_Vehicle_Recep__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Service_Plus_Installation__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_TLMK__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Children_zone__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Exclusive_Service_VW__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Free_Wifi__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Handicapped__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_V_Waiting_zone__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Waiting_zone__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_Working_Zone_Waiting_Clients__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_e_Hibrids__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_e_dealers__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CHK_e_loaders__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Contactable_after_sales__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Contactable_sales__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_Autonomo_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_Gran_empresa_propiedad_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_Pymes_propiedad_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_Pymes_renting_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_RaC_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_VO_no_particular__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_gran_empresa_renting_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_indefinido_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_no_identificado_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_particular_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Es_resto_VN__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Excesive_waiting__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'FRML_TXT_DPV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'FRML_TXT_Image_Sign__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Informat_cession_aceptance__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Lead_vn_act__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Lead_vn_nact__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Lead_vo_act__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Lead_vo_nact__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Multivehicle__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Standard_contactable_universe_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Standard_contactable_universe_Skoda__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Standard_contactable_universe_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Standard_contactable_universe__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Unsuscribed__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'cond_is_official_dealer_LCV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'cond_is_official_dealer_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'cond_is_official_dealer_VW__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'cond_is_official_dealer__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'cond_vn_act_SK__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'prospect_vn_act__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'prospect_vn_nact__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'prospect_vo_act__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'prospect_vo_nact__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__HasOptedOutOfMobile__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__Mobile_Country_Code__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Audi__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'LCV__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Skoda__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Volkswagen__pc',\n\t\t\tvalue: 'true',\n\t\t},\n\t];\n};\n","export const getVehicleAttributes = (isElectrico?: boolean) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'VEHICLE',\n\t\t},\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue:\n\t\t\t\t'es.vged.dps.salesforce.rest.entities.SfAttributesRest@5674eb[type=Vehicle__c,url=/services/data/v53.0/sobjects/Vehicle__c/a0Y1n00000HU1nzEAD]',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: 'a0Y1n00000HU1nzEAD',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Name',\n\t\t\tvalue: 'a0Y1n00000HU1nz',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: '2019-08-23T11:00:59.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2021-12-11T04:12:11.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0050Y000001UE3gQAG',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2021-12-11T04:12:11.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Affected_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'COD_comision__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CarNet__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'TMAIMG__c',\n\t\t\tvalue: 'BQ12CX',\n\t\t},\n\t\t{\n\t\t\tname: 'Warranty_extension__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'Included_mainetance__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_car_model_salesgroup__c',\n\t\t\tvalue: isElectrico ? 'ID.3 Pro' : 'Golf Last Edition',\n\t\t},\n\t\t{\n\t\t\tname: 'PKL_order_brand__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'Frame__c',\n\t\t\tvalue: isElectrico ? 'WVWZZZE1ZLP007840' : 'WVWZZZAUZLW014456',\n\t\t},\n\t\t{\n\t\t\tname: 'Fuel__c',\n\t\t\tvalue: isElectrico ? 'ELÉCTRICO' : 'GASOLINA',\n\t\t},\n\t\t{\n\t\t\tname: 'Gear_type__c',\n\t\t\tvalue: 'NO INFORMADO',\n\t\t},\n\t\t{\n\t\t\tname: 'Installed_PR_packages__c',\n\t\t\tvalue: '',\n\t\t},\n\t\t{\n\t\t\tname: 'KM_cobertura_garantia__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'Assistance_years__c',\n\t\t\tvalue: '4',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_Model__c',\n\t\t\tvalue: isElectrico ? 'ID.3' : 'GOLF',\n\t\t},\n\t\t{\n\t\t\tname: 'Registration__c',\n\t\t\tvalue: '1934LBW',\n\t\t},\n\t\t{\n\t\t\tname: 'Repaired_EA_189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'TrimLevel_Model__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VW_Connect__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'Vehicle_age_yearly_reg__c',\n\t\t\tvalue: '3',\n\t\t},\n\t\t{\n\t\t\tname: 'Audi_Connect__c',\n\t\t\tvalue: '0.0000000000000',\n\t\t},\n\t\t{\n\t\t\tname: 'Car_power__c',\n\t\t\tvalue: '85',\n\t\t},\n\t\t{\n\t\t\tname: 'Carline_Code__c',\n\t\t\tvalue: isElectrico ? '30350' : '30316',\n\t\t},\n\t\t{\n\t\t\tname: 'DAT_registration__c',\n\t\t\tvalue: '2019-10-17',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_model_group__c',\n\t\t\tvalue: 'NO INFORMADO',\n\t\t},\n\t\t{\n\t\t\tname: 'IDClimapro__c',\n\t\t\tvalue: 'TEST_IDClimapro__c',\n\t\t},\n\t\t{\n\t\t\tname: 'Long_full_drive__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonAccount__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Salesgroup_Code__c',\n\t\t\tvalue: isElectrico ? '33236' : '39237',\n\t\t},\n\t\t{\n\t\t\tname: 'Vehicle_age_monthly_reg__c',\n\t\t\tvalue: '26',\n\t\t},\n\t\t{\n\t\t\tname: 'years_warranty_coverage__c',\n\t\t\tvalue: '2',\n\t\t},\n\t\t{\n\t\t\tname: 'years_warranty_extension__c',\n\t\t\tvalue: '0',\n\t\t},\n\t];\n};\n","export const getTestLead = (date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'LEAD',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: '00Q1i00000DjYfEEAV',\n\t\t},\n\t\t{\n\t\t\tname: 'FirstName',\n\t\t\tvalue: 'Test Lara',\n\t\t},\n\t\t{\n\t\t\tname: 'LastName',\n\t\t\tvalue: 'Test Vged',\n\t\t},\n\t\t{\n\t\t\tname: 'MiddleName',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'MobilePhone',\n\t\t\tvalue: '612345678',\n\t\t},\n\t\t{\n\t\t\tname: 'Email',\n\t\t\tvalue: 'test.vged@gmail.com',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CodeOfInterestCarline__c',\n\t\t\tvalue: '30204',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ModelOfInterest__c',\n\t\t\tvalue: 'Polo',\n\t\t},\n\t\t{\n\t\t\tname: 'Dealership__c',\n\t\t\tvalue: '0011i00001dahM6AAI',\n\t\t},\n\n\t\t///////////// sin uso\n\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue:\n\t\t\t\t'es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@29d482e8[type=Lead,url=/services/data/v53.0/sobjects/Lead/00Q1i00000DjYfEEAV]',\n\t\t},\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'MasterRecordId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Salutation',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Name',\n\t\t\tvalue: 'Test Lara Test Vged',\n\t\t},\n\t\t{\n\t\t\tname: 'RecordTypeId',\n\t\t\tvalue: '0121i000000D7NyAAK',\n\t\t},\n\t\t{\n\t\t\tname: 'Title',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Company',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Address',\n\t\t\tvalue:\n\t\t\t\t'SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)',\n\t\t},\n\t\t{\n\t\t\tname: 'Phone',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Fax',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Website',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PhotoUrl',\n\t\t\tvalue: '/services/images/photo/00Q1i00000DjYfEEAV',\n\t\t},\n\t\t{\n\t\t\tname: 'Description',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LeadSource',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Status',\n\t\t\tvalue: 'Ready for Routing',\n\t\t},\n\t\t{\n\t\t\tname: 'Industry',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Rating',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CurrencyIsoCode',\n\t\t\tvalue: 'EUR',\n\t\t},\n\t\t{\n\t\t\tname: 'AnnualRevenue',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'NumberOfEmployees',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0051i000004Ur0bAAC',\n\t\t},\n\t\t{\n\t\t\tname: 'HasOptedOutOfEmail',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'IsConverted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'ConvertedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ConvertedAccountId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ConvertedContactId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ConvertedOpportunityId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'IsUnreadByOwner',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: date ? date : '2023-07-12T14:28:35.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0051i000004Ur0bAAC',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2023-10-03T12:24:18.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2023-10-03T12:24:18.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastActivityDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'DoNotCall',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'HasOptedOutOfFax',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: '2023-12-14T09:57:05.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: '2023-12-14T09:57:05.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastTransferDate',\n\t\t\tvalue: '2023-07-12',\n\t\t},\n\t\t{\n\t\t\tname: 'PartnerAccountId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Jigsaw',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'JigsawContactId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'EmailBouncedReason',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'EmailBouncedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'IndividualId',\n\t\t\tvalue: '0PK1X000008UZ0QWAW',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__Mobile_Country_Code__c',\n\t\t\tvalue: 'US',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__HasOptedOutOfMobile__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'Brand__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'ExpectedPurchaseDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ExtKey__c',\n\t\t\tvalue: 'nDPS-000000000000000000593',\n\t\t},\n\t\t{\n\t\t\tname: 'InterestCar__c',\n\t\t\tvalue: 'a0R1i00000B2ZOiEAN',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AcademicTitle__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Case__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ExternalRoutingCheck__c',\n\t\t\tvalue: 'Do Not Route',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_CommissionNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ForwardingMechanism__c',\n\t\t\tvalue: 'Automatic',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ForwardingStatus__c',\n\t\t\tvalue: 'Not Forwarded',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_InterestType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Language__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LeadRole__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Mobile__c',\n\t\t\tvalue: '612345678',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NewsletterDuplicateCheck__c',\n\t\t\tvalue: 'True',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NewsletterRequestCaptureDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NewsletterUnsubscriptionDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Phone__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PreferredCommunication__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PurchaseMethod__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RelatedAccount__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StatusReason__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VIN__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ValidationIdentifier__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VehicleCategory__c',\n\t\t\tvalue: 'New Car',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AnonymizeLead__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AverageAnnualMileage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagAUDI__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSEAT__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSKODA__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVWCV__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVW__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerValidation__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DoubleConsentCaptureDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DoubleConsentMailSentOn__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DuplicateCheckAttribute__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_FleetSize__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_InterestCarValidation__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LMBrandSearch__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LMCorrespondenceGreeting__c',\n\t\t\tvalue: 'Test Lara Test Vged',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LeadEntryPoint__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketValidation__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfCarsToPurchase__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_OriginalConfigurationCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RelatedBusinessAccount__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RelatedContact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SetToOpenAtDealer__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SetToRouted__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketing__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_TimeSinceOpenAtDealer__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_TimeSinceRouted__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_extCorrelationId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LastMarketingPressureMeasuredDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureCall__c',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureLetter__c',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureSMS__c',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureTotal__c',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfCalls__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfEmails__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfLetters__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfSMS__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfTotalCommunications__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Opportunity__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RelatedBusinessAccountFilled__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RelatedContactFilled__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherActivationDeadline__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherCreationDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherRedemptionDeadline__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherStatus__c',\n\t\t\tvalue: 'Sent',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VoucherType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InitialMgntType__c',\n\t\t\tvalue: 'Direct to Sales Assistant',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TechnicalMdmStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TechnicalSalesAssistantStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_BrandObservations__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CIF__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CallCenterObservations__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_2Surname__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AdditionalInformation__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AdvisorName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AppointmentDateAndTime__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Birthdate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Campaign__c',\n\t\t\tvalue: '7011i0000002CjUAAU',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumOfRetriesMDM__c',\n\t\t\tvalue: '1.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CommercialPermits__c',\n\t\t\tvalue: 'PERMITE',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LicensePlate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MileageKm__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CurrentVehicleBrand__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CurrentVehicleModel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Model__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DateAndTimeClosedByCC__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DateAndTimeOfFirstCapture__c',\n\t\t\tvalue: '2023-07-11T00:00:00.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DateAndTimeSentToDealer__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DateAndTimeToCC__c',\n\t\t\tvalue: '2023-10-03T12:24:17.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NextContactPoint1__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_FlagCRMOrigin__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RegistrationDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LeadSubtype__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CRMBusinessModelofInterest__c',\n\t\t\tvalue: 'a1i1i00000NRQwGAAX',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CustomizationPath__c',\n\t\t\tvalue: 'Generico_Presupuesto',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsCompany__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LeadEnrichment__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LinkVehicleOfInterest__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MonitorDealerCall__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OfferDetails__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OfferPrice__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OnlineBookingDetails__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TechnicalTrackBackStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_PreferredChannelForContact__c',\n\t\t\tvalue: 'Email',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_PreferredTimeSlotForContact__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ReceivedOnSalesAssistant__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_URL__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_UserId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_UserNIF__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Agreement__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagCUPRA__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DeletedMarketingCloud__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GDPRStatusTimeStamp__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GDPRStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandAUDI__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandCUPRA__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandSEAT__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandSKODA__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandVWCV__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandVW__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PassedExpressedInterestMilestone__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PassedIntenttoPurchaseMilestone__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PassedQualifiedMilestone__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SalesModel__c',\n\t\t\tvalue: 'Retail',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BypassLeadStatus__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerComment__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealershipSharing__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_FAMDealershipSharing__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_IsDealershipCreated__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LeadRecordTypeFilter__c',\n\t\t\tvalue: 'VGED_SalesAssistant',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ReasonOfSendingToNSC__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AdditionalSourceInformation__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MysteryLead__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Profiling__c',\n\t\t\tvalue: 'NO INFORMADO',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Test__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CaptureChannel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CaptureEvent__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_City__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ConfiguratorMatch__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CurrentVehicleAge__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DNINIF__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_FinancingType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleBrand__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleFuel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleMileage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleModelVersion__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleModel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleRegistrationPlate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InExchangeVehicleRegistrationYear__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsClient__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsExclient__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Mileage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OKAPICodeOfModelOfInterest__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_PostalCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Province__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RegistrationPlate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadComplement__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TelemarketingClosure__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_WebSection__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsLeadEnriched__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CarConfigurationURL__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DetailsOfModelOfInterest__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ExtraInfoModelOfInterest__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IDFormCampaign__c',\n\t\t\tvalue: '7011i0000002CclAAE',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MasterQuestionnaireId__c',\n\t\t\tvalue: '140.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NameFormCampaign__c',\n\t\t\tvalue: 'VW_B01_C01_RRSS_LoadRecords',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_VehicleConfigurationDetails__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AdvertisementId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_BookingCancelledReservation__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_BookingDays__c',\n\t\t\tvalue: '1.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ImawebDealerId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ImawebRecordId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t];\n};\n","export const getTestPerson = (noPermiteLssi?: boolean, date?: string) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'PERSON',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: '0011X00001CebbnQAB',\n\t\t},\n\t\t{\n\t\t\tname: 'FirstName',\n\t\t\tvalue: 'MARIO',\n\t\t},\n\t\t{\n\t\t\tname: 'LastName',\n\t\t\tvalue: 'LOPEZ MORENO',\n\t\t},\n\t\t{\n\t\t\tname: 'MiddleName',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonEmail',\n\t\t\tvalue: 'mario.lopez@volkswagengroup.es',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonMobilePhone',\n\t\t\tvalue: '675758541',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonMailingStreet',\n\t\t\tvalue: 'Gran Via De Les Corts Catalanes, 100',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonMailingAddress',\n\t\t\tvalue:\n\t\t\t\t'SfAddressRest(city=BARCELONA, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=08003, state=8, stateCode=8, street=CALLE DELS CORDERS 5)',\n\t\t},\n\n\t\t///////////// sin uso\n\n\t\t{\n\t\t\tname: 'PersonMailingPostalCode',\n\t\t\tvalue: '08080',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonMailingStateCode',\n\t\t\tvalue: '08',\n\t\t},\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue:\n\t\t\t\t'es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@1aeef0f5[type=Account,url=/services/data/v53.0/sobjects/Account/0011X00001CebbnQAB]',\n\t\t},\n\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'MasterRecordId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Name',\n\t\t\tvalue: 'MARIO LOPEZ MORENO',\n\t\t},\n\t\t{\n\t\t\tname: 'Salutation',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Type',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RecordTypeId',\n\t\t\tvalue: '0121i000000cHHfAAM',\n\t\t},\n\t\t{\n\t\t\tname: 'ParentId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ShippingAddress',\n\t\t\tvalue:\n\t\t\t\t'SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)',\n\t\t},\n\t\t{\n\t\t\tname: 'BillingAddress',\n\t\t\tvalue:\n\t\t\t\t'SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=08080, state=null, stateCode=08, street=null)',\n\t\t},\n\t\t{\n\t\t\tname: 'PhotoUrl',\n\t\t\tvalue: '/services/images/photo/0011X00001CebbnQAB',\n\t\t},\n\t\t{\n\t\t\tname: 'Phone',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Fax',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'AccountNumber',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'WebSite',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Sic',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Industry',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'AnnualRevenue',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'NumberOfEmployees',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Ownership',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'TickerSymbol',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Description',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Rating',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Site',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'CurrencyIsoCode',\n\t\t\tvalue: 'EUR',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: date ? date : '2023-09-07T23:10:20.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2023-12-01T10:16:29.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2023-12-01T10:16:29.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastActivityDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: '2023-12-14T09:56:46.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: '2023-12-14T09:56:46.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'IsPartner',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonContactId',\n\t\t\tvalue: '0031X00000zej2YQAQ',\n\t\t},\n\t\t{\n\t\t\tname: 'IsPersonAccount',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'ChannelProgramName',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ChannelProgramLevelName',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonOtherAddress',\n\t\t\tvalue:\n\t\t\t\t'SfAddressRest(city=null, country=724, countryCode=ES, geocodeAccuracy=null, latitude=null, longitude=null, postalCode=null, state=null, stateCode=null, street=null)',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonHomePhone',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonOtherPhone',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonAssistantPhone',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonTitle',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonDepartment',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonAssistantName',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonLeadSource',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonBirthDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonHasOptedOutOfEmail',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonHasOptedOutOfFax',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonDoNotCall',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonLastCURequestDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonLastCUUpdateDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonEmailBouncedReason',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonEmailBouncedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PersonIndividualId',\n\t\t\tvalue: '0PK1X000008VQpKWAW',\n\t\t},\n\t\t{\n\t\t\tname: 'Jigsaw',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'JigsawCompanyId',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'AccountSource',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'SicDesc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_A4WcDateSent__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerLeadRoutingPreference__c',\n\t\t\tvalue: 'External System',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagAUDI__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSEAT__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSKODA__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVWCV__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVW__c',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'Dealership__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ExtKey__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'KVPSCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'PreferredCommunicationChannel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AccountBrand__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AccountEmail__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandLogo__c',\n\t\t\tvalue: '\"Volkswagen\"',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandSearch__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BusinessHours__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ContractStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerActive__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ExternalAccountID__c',\n\t\t\tvalue: '54147334_Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_FleetSize__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GroupID__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_IntegrationSource__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_InternationalBusinessAgreement__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfLightCommercialVehicles__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfPassengerCars__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_OpeningHours__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Services__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_TaxNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ValidationIdentifier__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BeneficiaryCountry__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BeneficiaryName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BeneficiaryType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_CollectionDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Country__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerMarketNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DealerNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Email__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_EtronWcDateSent__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_IsA4WcSent__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_IsEtronWcSent__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MasterDataSource__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PreferredDealerKVPSID__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SEMAGMigrationID__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SubscriberKey__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsAudi__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsLCV__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsSkoda__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsVolkswagen__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_BusinessAccountSource__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ClientStage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Email2__c',\n\t\t\tvalue: 'mario.vwgroup@gmail.com',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Email3__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Fax1__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsFleet__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LegacySFId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MasterAccount__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MobilePhone2__c',\n\t\t\tvalue: '690807844',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MobilePhone3__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumberDeliveredOrdersAudi__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumberDeliveredOrdersLCV__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumberDeliveredOrdersSkoda__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumberDeliveredOrdersVW__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OpenOpportunities__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_VolumeOpenOpportunities__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ExpectedDeliveryDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CustomerType__c',\n\t\t\tvalue: 'F',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_2Surname__c',\n\t\t\tvalue: 'LOPEZ',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_FinanceCoResponsibility__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Remarks__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InactiveRecord__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_BusinessName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TypeOfDocument__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DealerCodeVaesa__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IDClimapro__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MDMSyncStatus__c',\n\t\t\tvalue: 'Synced',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TechnicalMdmStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumOfRetriesMDM__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_UpdateProcessAllowed__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BEVAgency__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DesynchronizedAccount__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SecondaryField__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Concession__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DealerCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CommercialName__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Test__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OutOfService__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_FleetAgency__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_HelperPersonAccountfields__c',\n\t\t\tvalue: 'MARIO LOPEZ MORENO, Homephone: , Mobile: 675758541',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Retail__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__HasOptedOutOfMobile__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'et4ae5__Mobile_Country_Code__pc',\n\t\t\tvalue: 'US',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_IDKID__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GDPRStatusTimeStamp__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GDPRStatus__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MasterDataSource__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Customer_Number__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ExtKey__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_AcademicTitle__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Birthdate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagAUDI__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSEAT__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagSKODA__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVWCV__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagVW__pc',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ContactBrand__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_CorrespondenceGreeting__pc',\n\t\t\tvalue: 'MARIO LOPEZ MORENO',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ExternalID__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_GDPRRequestInProgress__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Mobile__pc',\n\t\t\tvalue: '675758541',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Phone__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PreferredChannelOfContact__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PreferredLanguage__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketingAudi__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketingSeat__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketingSkoda__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketingVWCV__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketingVW__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_StopMarketing__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ValidationIdentifier__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LastMarketingPressureMeasuredDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureCall__pc',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureEmail__pc',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureLetter__pc',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureSMS__pc',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingPressureTotal__pc',\n\t\t\tvalue: 'Green',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfCalls__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfEmails__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfLetters__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfSMS__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_NumberOfTotalCommunications__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BirthPlace__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ConsentDealer__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ConsentNSC__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_ConsentOEM__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_CustomerKey__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Language__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_LastCommercialEmailname__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MarketingIndependentOfChannel__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_OEMPushNotificationConsent__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PersonType__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RecommendationExpirationDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RecommendationLatestExpirationDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RegistrationDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SurveyNSC__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SurveyOEM__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_EventParticipation__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandFlagCUPRA__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsFleet__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_PrimaryContact__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Role__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Interest__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LegacySFId__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_2Surname__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadName__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadNumber__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RoadType__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DeletedMarketingCloud__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_FleetAgency__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandAUDI__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandCUPRA__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandSEAT__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandSKODA__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandVWCV__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_MCReadyBrandVW__pc',\n\t\t\tvalue: 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Retail__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BEVAgency__pc',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_DischargeBDNDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TerminationBDNDate__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IdCard__pc',\n\t\t\tvalue: 'null',\n\t\t},\n\t];\n};\n","export const getTestOrder = [\n\t{\n\t\tname: 'ID',\n\t\tvalue: 'ORDER',\n\t},\n\t{\n\t\tname: 'Id',\n\t\tvalue: '8011X000003hG8pQAE',\n\t},\n\t{\n\t\tname: 'VGED_CEMDeliveryDate__c',\n\t\tvalue: '2021-12-24',\n\t},\n\t{\n\t\tname: 'RCY_ActualDeliveryDate__c',\n\t\tvalue: '2021-12-24',\n\t},\n\n\t///////////// sin uso\n\n\t{\n\t\tname: 'attributes',\n\t\tvalue:\n\t\t\t'es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@24d13ed5[type=Order,url=/services/data/v53.0/sobjects/Order/8011X000003hG8pQAE]',\n\t},\n\t{\n\t\tname: 'OwnerId',\n\t\tvalue: '0051X00000FOpojQAD',\n\t},\n\t{\n\t\tname: 'ContractId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'AccountId',\n\t\tvalue: '0011i00001dahGZAAY',\n\t},\n\t{\n\t\tname: 'Pricebook2Id',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'OriginalOrderId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'OpportunityId',\n\t\tvalue: '0061X00000JQGJbQAP',\n\t},\n\t{\n\t\tname: 'QuoteId',\n\t\tvalue: '0Q01X000001jdBvSAI',\n\t},\n\t{\n\t\tname: 'RecordTypeId',\n\t\tvalue: '0121i0000009T64AAE',\n\t},\n\t{\n\t\tname: 'EffectiveDate',\n\t\tvalue: '2024-04-05',\n\t},\n\t{\n\t\tname: 'EndDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'IsReductionOrder',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'Status',\n\t\tvalue: 'Open',\n\t},\n\t{\n\t\tname: 'Description',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CustomerAuthorizedById',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CustomerAuthorizedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CompanyAuthorizedById',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'CompanyAuthorizedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Type',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillingAddress',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShippingAddress',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Name',\n\t\tvalue: 'SARSA 14 04/04/2024',\n\t},\n\t{\n\t\tname: 'PoDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'PoNumber',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'OrderReferenceNumber',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'BillToContactId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ShipToContactId',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ActivatedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ActivatedById',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'StatusCode',\n\t\tvalue: 'Draft',\n\t},\n\t{\n\t\tname: 'CurrencyIsoCode',\n\t\tvalue: 'EUR',\n\t},\n\t{\n\t\tname: 'OrderNumber',\n\t\tvalue: '00962800',\n\t},\n\t{\n\t\tname: 'TotalAmount',\n\t\tvalue: '0.0',\n\t},\n\t{\n\t\tname: 'CreatedDate',\n\t\tvalue: '2024-04-05T07:46:33.000+0000',\n\t},\n\t{\n\t\tname: 'CreatedById',\n\t\tvalue: '0051X00000FOpojQAD',\n\t},\n\t{\n\t\tname: 'LastModifiedDate',\n\t\tvalue: '2024-05-27T15:48:20.000+0000',\n\t},\n\t{\n\t\tname: 'LastModifiedById',\n\t\tvalue: '0051i000004UwL0AAK',\n\t},\n\t{\n\t\tname: 'IsDeleted',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'SystemModstamp',\n\t\tvalue: '2024-05-27T15:48:20.000+0000',\n\t},\n\t{\n\t\tname: 'LastViewedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'LastReferencedDate',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ActivationDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_BillingEmail__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'Asset__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'ExtKey__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_Brand__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_CommissionNumber__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ConfirmationDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ConfirmationStatus__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_Dealer__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_EstimatedDeliveryDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_VIN__c',\n\t\tvalue: 'WVGZZZE24RP501114',\n\t},\n\t{\n\t\tname: 'RCY_BillingFirstName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_BillingLastName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_BillingSalutation__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ContactCommunicationActionName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_DateClicked__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_DateSent__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_DealerCountry__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_DocumentName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_DocumentType__c',\n\t\tvalue: '0',\n\t},\n\t{\n\t\tname: 'RCY_DurationReport__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ExpirationDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ExtensionDateLatest__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_KVPSID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_Locale__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_MerchantId__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_NetPrice__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_NotificationContact__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_OrderCreationDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_PONumber1__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_Prolongation__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'RCY_SEMAGMigrationID__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ShippingEmail__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ShippingFirstName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ShippingLastName__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_ShippingSalutation__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_TeaserPurchase__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_AudiConnect__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_AudiSport__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_CO2WLTP__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_ProductionDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_ClimaproOrderID__c',\n\t\tvalue: '34011000',\n\t},\n\t{\n\t\tname: 'VGED_CodCarline__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_FAMDealershipSharing__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_CodWLTP2__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_CommunicationModel__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_ContactableUniverse__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_CodCustomerRenting__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_IsStock__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_DelayType__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_DeliveryYear__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Electric__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_Factory__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_FleetSequence__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_HybridElectric__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_InstalledPrPackages__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_LegacySFId__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_ModelGroup__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Model__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderSLI__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState10__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState20__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState30__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState40__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState50__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState60__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState70__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_OrderState80__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Period__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_RetailDealershipSharing__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_RequestDelayDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SalesConcession__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SalesTypeSLI__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SellerCode__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SliState__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_ConnectType__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SurveyableOrder__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_Test__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_TypeOrderVNVO__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Vehicle__c',\n\t\tvalue: 'a0U1X0000049qKgUAI',\n\t},\n\t{\n\t\tname: 'VGED_WLTPconsumption__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_WarrantyExtension__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_YearsWarrantyExtension__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_CustomerType__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_CodDriver__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Commerce__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_CustomersOrderDate__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Life__c',\n\t\tvalue: 'false',\n\t},\n\t{\n\t\tname: 'VGED_SurveyableDateCEM__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_SurveyablePerson__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'VGED_Transformed__c',\n\t\tvalue: 'null',\n\t},\n\t{\n\t\tname: 'RCY_SalesModel__c',\n\t\tvalue: 'null',\n\t},\n];\n","export const getTestVehicle = (isElectrico?: boolean) => {\n\treturn [\n\t\t{\n\t\t\tname: 'ID',\n\t\t\tvalue: 'VEHICLE',\n\t\t},\n\t\t{\n\t\t\tname: 'Id',\n\t\t\tvalue: 'a0U1X0000049qKgUAI',\n\t\t},\n\t\t{\n\t\t\tname: 'Name', // Frame\n\t\t\tvalue: 'WVWZZZE13PP508774',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_ModelGroup__c',\n\t\t\tvalue: isElectrico ? 'ID.3' : 'GOLF',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RegistrationPlate__c',\n\t\t\tvalue: '1111-BBB',\n\t\t},\n\n\t\t///////////// sin uso\n\n\t\t{\n\t\t\tname: 'attributes',\n\t\t\tvalue:\n\t\t\t\t'es.vged.ndpsbackend.salesforce.rest.entities.SfAttributesRest@7d536fed[type=Vehicle__c,url=/services/data/v53.0/sobjects/Vehicle__c/a0U1X0000049qKgUAI]',\n\t\t},\n\t\t{\n\t\t\tname: 'OwnerId',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'IsDeleted',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'DESC_Model__c',\n\t\t\tvalue: isElectrico ? 'ID.3' : 'GOLF',\n\t\t},\n\t\t{\n\t\t\tname: 'Registration__c',\n\t\t\tvalue: 'Example Registration',\n\t\t},\n\t\t{\n\t\t\tname: 'CurrencyIsoCode',\n\t\t\tvalue: 'EUR',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedDate',\n\t\t\tvalue: '2023-09-07T10:24:54.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'CreatedById',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedDate',\n\t\t\tvalue: '2024-05-29T09:27:53.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastModifiedById',\n\t\t\tvalue: '0051i000002usITAAY',\n\t\t},\n\t\t{\n\t\t\tname: 'SystemModstamp',\n\t\t\tvalue: '2024-05-29T09:27:53.000+0000',\n\t\t},\n\t\t{\n\t\t\tname: 'LastActivityDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastViewedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'LastReferencedDate',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Account__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'DeliveryDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'EngineType__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ExtKey__c',\n\t\t\tvalue: '44529043',\n\t\t},\n\t\t{\n\t\t\tname: 'ExteriorColorText__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ExteriorColor__c',\n\t\t\tvalue: 'C2A1',\n\t\t},\n\t\t{\n\t\t\tname: 'Lead__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ModelKey__c',\n\t\t\tvalue: 'E113MJ',\n\t\t},\n\t\t{\n\t\t\tname: 'ModelYear__c',\n\t\t\tvalue: '2023',\n\t\t},\n\t\t{\n\t\t\tname: 'Model__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'Opportunity__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'ProductionDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandList__c',\n\t\t\tvalue: 'Volkswagen',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandLogo__c',\n\t\t\tvalue: '\"Volkswagen\"',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandSearch__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_BrandVehicleModel__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_Brand__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_DisplacementInLiters__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PowerInHorsePower__c',\n\t\t\tvalue: '150.0',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_PowerInKw__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_TransmissionCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_VehicleDetails__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_SEMAGMigrationID__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_HelperGVFTransmissionCode__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_InteriorColorText__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_InteriorColor__c',\n\t\t\tvalue: 'XX',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RoofColorText__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'RCY_RoofColor__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AssistanceYears__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AudiConnect__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AudiSport__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CarModelSalesgroup__c',\n\t\t\tvalue: 'NO INFORMADO',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CommercialDesignation__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Electric__c',\n\t\t\tvalue: isElectrico ? 'false' : 'true',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_GearType__c',\n\t\t\tvalue: 'NO INFORMADO',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_HybridElectric__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_HybridGLP__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IDClimapro__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InactiveRecord__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_InstalledPRPackages__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsModelS__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_KMEstimated__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LongFullDriveProduct__c',\n\t\t\tvalue: '1',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LongFullDriveStanding__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MaintenanceIncluded__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MaintenanceType__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NextMaintenanceDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OfferLongFullDrive__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OptionalSLIImporter__c',\n\t\t\tvalue: 'EV3 PJH',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OptionalsSLI__c',\n\t\t\tvalue: 'AY2 EV3 PJH S3C W2E 4AF 8AV',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RegistrationDate__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RepairDateEA189__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Segment__c',\n\t\t\tvalue: isElectrico ? '30350' : '30316',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TEST__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TractionType__c',\n\t\t\tvalue: 'TRACCIÓN TRASERA',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TrimLevelModel__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_VehicleWeightSLI__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LegacySFId__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Model__c',\n\t\t\tvalue: '0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_AffectedEA189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CancelDateLongDriveContractTerminat__c',\n\t\t\tvalue: '2034-03-11',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CarNet__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CarlineCode__c',\n\t\t\tvalue: isElectrico ? '30350' : '30316',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Commerce__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CommissionCode__c',\n\t\t\tvalue: '0028034',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_CommissionYear__c',\n\t\t\tvalue: '2023',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_EffectiveDateIncludingMaintenance__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_FactoryPickup__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_GuaranteedKmsCoverage__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LastDateOfRepair__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Life__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LongDriveContractDischargeDate__c',\n\t\t\tvalue: '2024-03-11',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_LongDriveEffectiveDate__c',\n\t\t\tvalue: '2034-03-11',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Mileage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NextITV__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumLdFreeMonths__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_OrderNumber__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_RepairedEA189__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_SalesGroupCode__c',\n\t\t\tvalue: isElectrico ? '33236' : '39237',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_SliModelGroup__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_Transformed__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_UpdateDateKmEstimation__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_VwConnect__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_WarrantyExtension__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_YearsWarrantyCoverage__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_YearsWarrantyExtension__c',\n\t\t\tvalue: '0.0',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_MDMSyncStatus__c',\n\t\t\tvalue: 'Synced',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_NumOfRetriesMDM__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_TechnicalMdmStatus__c',\n\t\t\tvalue: 'null',\n\t\t},\n\t\t{\n\t\t\tname: 'VGED_IsGVF__c',\n\t\t\tvalue: 'false',\n\t\t},\n\t];\n};\n","export const getTestDealer = [\n\t{\n\t\tname: 'ID',\n\t\tvalue: 'DEALER',\n\t},\n\t{\n\t\tname: 'Id',\n\t\tvalue: '0011i00001dahNuAAI',\n\t},\n\t{\n\t\tname: 'VGED_CommercialName__c',\n\t\tvalue: 'CARHAUS',\n\t},\n\t{\n\t\tname: 'VGED_DealerCode__c',\n\t\tvalue: '0322H',\n\t},\n\t{\n\t\tname: 'KVPSCode__c',\n\t\tvalue: 'ESP08034V',\n\t},\n\t{\n\t\tname: 'VGED_ConcessionDealerCode__c',\n\t\tvalue: '0322H',\n\t},\n\t{\n\t\tname: 'ShippingStreet',\n\t\tvalue: 'CTRA. DE SANT BOI 11-13',\n\t},\n\t{\n\t\tname: 'ShippingPostalCode',\n\t\tvalue: '08940',\n\t},\n\t{\n\t\tname: 'ShippingCity',\n\t\tvalue: 'CORNELLA DE LLOBREGAT',\n\t},\n\t{\n\t\tname: 'ShippingLatitude',\n\t\tvalue: '41.355749',\n\t},\n\t{\n\t\tname: 'ShippingLongitude',\n\t\tvalue: '2.065784',\n\t},\n\t{\n\t\tname: 'ShippingStateCode',\n\t\tvalue: '8',\n\t},\n\n\t///////////// sin uso\n\n\t{\n\t\tname: 'RCY_DealerType__c',\n\t\tvalue: '1',\n\t},\n\t{\n\t\tname: 'BillingStreet',\n\t\tvalue: 'CTRA. DE SANT BOI 11-13',\n\t},\n\t{\n\t\tname: 'BillingPostalCode',\n\t\tvalue: '08940',\n\t},\n\t{\n\t\tname: 'BillingCity',\n\t\tvalue: 'CORNELLA DE LLOBREGAT',\n\t},\n\t{\n\t\tname: 'BillingStateCode',\n\t\tvalue: '8',\n\t},\n\t{\n\t\tname: 'BillingLatitude',\n\t\tvalue: '41.355749',\n\t},\n\t{\n\t\tname: 'BillingLongitude',\n\t\tvalue: '2.065784',\n\t},\n];\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { getOneHubConfig } from 'src/feature-app';\nimport { IEsOnehubVWConfig, IdentityKitCompleteMatch, HasPersonResponse } from './';\n\nexport const existPerson = async (\n\tauthServiceInstance: IAuthServiceV2,\n\tidentitykitId: string,\n): Promise => {\n\tconst onehubConfig = getOneHubConfig();\n\tconst endpoint = 'one-hub-vw-1.0/match-person/has-person';\n\n\tif (onehubConfig) {\n\t\tconst response = await authServiceInstance.get(\n\t\t\tonehubConfig.customConfig?.resourceHostId,\n\t\t\tendpoint + '?identitykitId=' + identitykitId,\n\t\t\t{\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t},\n\t\t);\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error(`GET request failed with code ${response.status}`);\n\t\t}\n\n\t\treturn response.json() as Promise;\n\t}\n\n\treturn null;\n};\n\nexport const matchPerson = async (\n\tauthServiceInstance: IAuthServiceV2,\n\tidentityKitCompleteMatch: IdentityKitCompleteMatch,\n): Promise => {\n\tconst onehubConfig = getOneHubConfig();\n\tconst endpoint = 'one-hub-vw-1.0/match-person';\n\n\tconst response = await authServiceInstance.put(\n\t\tonehubConfig.customConfig?.resourceHostId,\n\t\tendpoint,\n\t\tJSON.stringify(identityKitCompleteMatch),\n\t);\n\n\tif (!response.ok) {\n\t\tthrow new Error(`GET request failed with code ${response.status}`);\n\t}\n\n\treturn response.json() as Promise;\n};\n","import {\n\tFeatureServiceBinder,\n\tFeatureServiceEnvironment,\n\tFeatureServices,\n\tSharedFeatureService,\n} from '@feature-hub/core';\nimport { Store } from 'redux';\nimport { getPincode } from 'src/bff';\nimport { FormDataFields } from 'src/types';\nimport {\n\tDpsData,\n\tEsOneformCoreServiceV1,\n\tFieldType,\n\tOneFormDataV1 as OneformData,\n\tOneFormDataV1,\n\tPersonV1,\n} from './types';\nimport { BehaviorSubject } from 'rxjs';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport parsePhoneNumber from 'libphonenumber-js';\nimport { isValidPhoneNumber } from 'libphonenumber-js';\nimport { checkIfIsTestPincode, getTestPincode } from './pincode-data';\nimport { AuthServiceProviderV2, IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { ProfileServiceV2Impl, UserService } from '@vwdfive/myvw-services';\nimport { existPerson } from 'src/feature-service/identity-kit-service';\n\nexport interface SharedEsOneformCoreService extends SharedFeatureService {\n\treadonly '1.0.0': FeatureServiceBinder;\n}\n\nexport interface RequiredFeatureServices extends FeatureServices {\n\treadonly 'service-config-provider': ServiceConfigProviderV1;\n}\n\nexport const oneformCoreServiceDefinition = {\n\tid: 'es:oneform-core',\n\n\tdependencies: {\n\t\tfeatureServices: {\n\t\t\t'service-config-provider': '^1.0.0',\n\t\t\t'fa-content-service': '^1.0.0',\n\t\t},\n\t},\n\n\toptionalDependencies: {\n\t\tfeatureServices: { ['vw:authService']: '2.0.0' },\n\t},\n\n\tcreate(env: FeatureServiceEnvironment) {\n\t\tlet oneFormData = {} as OneFormDataV1;\n\t\tlet dpsData = {} as DpsData;\n\t\tconst oneFormCoreDpsIsLoaded: BehaviorSubject = new BehaviorSubject(false);\n\n\t\tlet { 'service-config-provider': serviceConfig, ['vw:authService']: provider } = env.featureServices;\n\n\t\tconst getLoadedState = () => oneFormCoreDpsIsLoaded;\n\t\tconst get = () => oneFormData;\n\t\tconst getDpsData = (): DpsData => dpsData;\n\n\t\tconst v1 = () => ({\n\t\t\tfeatureService: {\n\t\t\t\tgetLoadedState,\n\n\t\t\t\tget,\n\t\t\t\tgetDpsData,\n\n\t\t\t\tset(updatedData: OneFormDataV1) {\n\t\t\t\t\toneFormData = { ...updatedData };\n\t\t\t\t},\n\n\t\t\t\tsetDpsData(updatedData: DpsData) {\n\t\t\t\t\tdpsData = { ...dpsData, ...updatedData };\n\t\t\t\t},\n\n\t\t\t\tasync initializeService(useAuth: boolean, useBff?: boolean) {\n\t\t\t\t\tawait this.checkData(useAuth, useBff);\n\t\t\t\t\toneFormCoreDpsIsLoaded.complete();\n\t\t\t\t},\n\n\t\t\t\tasync checkLogin() {\n\t\t\t\t\t//const authService = getAuthService(serviceConfig, provider as AuthServiceProviderV2);\n\t\t\t\t\tconst authService: IAuthServiceV2 = (provider as AuthServiceProviderV2)?.register('market');\n\t\t\t\t\tconst endpoint = serviceConfig.configs['customer-profile']?.urlOrigin;\n\t\t\t\t\tconst profileService = new ProfileServiceV2Impl(authService, endpoint);\n\t\t\t\t\tconst isAuthenticated = await authService.isAuthenticated();\n\t\t\t\t\tconst userService = new UserService(authService);\n\n\t\t\t\t\tif (!isAuthenticated) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst profile = await profileService.getUserProfile();\n\t\t\t\t\tconst email = await userService.getCurrentUserEmail();\n\t\t\t\t\t// const vumClient = new VumClient(endpoint, authService);\n\t\t\t\t\t// const aa = await vumClient.getUserVehicleRelations();\n\t\t\t\t\t//DATOS PERSONALES\n\t\t\t\t\tif (profile.phoneNumber) {\n\t\t\t\t\t\tconst parsedPhone = parsePhoneNumber(profile.phoneNumber);\n\t\t\t\t\t\tconst isValidPhone = isValidPhoneNumber(profile.phoneNumber);\n\t\t\t\t\t\tif (isValidPhone) {\n\t\t\t\t\t\t\tthis.setField('prefix', `+${parsedPhone.countryCallingCode}`);\n\t\t\t\t\t\t\tthis.setField('cellphone', parsedPhone.nationalNumber);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.setField('name', profile.firstName);\n\t\t\t\t\tthis.setField('surname', profile.lastName);\n\t\t\t\t\tthis.setField('email', email);\n\n\t\t\t\t\tconst identitykitId = await userService.getCurrentUserId();\n\t\t\t\t\tthis.setField('identitykitId', identitykitId);\n\t\t\t\t\tconst personResponse = await existPerson(authService, identitykitId);\n\t\t\t\t\tthis.setField('climaproUserStatus', personResponse?.data?.userStatus);\n\t\t\t\t\tthis.setField('climaproId', personResponse?.data?.climaproId);\n\n\t\t\t\t\t// this.setField('cellphone', '600000000');\n\t\t\t\t\t//this.setField('userIsAuthenticated', isAuthenticated ? 'true' : 'false');\n\n\t\t\t\t\t// VEHÍCULOS\n\t\t\t\t\t// this.setField('userVehicles', [\n\t\t\t\t\t// { matricula: 'A0000BC', kilometros: '30000', modelo: 'Arteon', anoMatriculacion: '' , isMainVehicle: false },\n\t\t\t\t\t// { matricula: 'B0000BC', kilometros: '60000', modelo: 'T-Roc', anoMatriculacion: '' , isMainVehicle: true },\n\t\t\t\t\t// ]);\n\t\t\t\t\t// this.setField('matricula', 'A0000BC');\n\n\t\t\t\t\t// DEALER\n\t\t\t\t\t// this.setField('favouriteDealer', '00031');\n\n\t\t\t\t\t// LEGALES\n\t\t\t\t\t// this.setField('lssi', 'PERMITIDO');\n\t\t\t\t\t// this.setField('tmk', 'PERMITIDO');\n\t\t\t\t},\n\n\t\t\t\tasync checkPincode(useBff?: boolean, isRetry?: boolean) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst pincode = this.getUrlParams('pincode');\n\n\t\t\t\t\t\tif (pincode && checkIfIsTestPincode(pincode)) {\n\t\t\t\t\t\t\t// console.log(getTestPincode(pincode),'pincode');\n\t\t\t\t\t\t\tthis.setDpsData({\n\t\t\t\t\t\t\t\tpincode: {\n\t\t\t\t\t\t\t\t\tpincodeResponse: getTestPincode(pincode),\n\t\t\t\t\t\t\t\t\tpincodeError: false,\n\t\t\t\t\t\t\t\t\tpincodeUsed: false,\n\t\t\t\t\t\t\t\t\tnoPincodeFound: false,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (pincode) {\n\t\t\t\t\t\t\tconst pincodeData = await getPincode(pincode, useBff);\n\n\t\t\t\t\t\t\tthis.setDpsData({\n\t\t\t\t\t\t\t\tpincode: {\n\t\t\t\t\t\t\t\t\tpincodeResponse: pincodeData.pincodeData,\n\t\t\t\t\t\t\t\t\tpincodeError: pincodeData.pincodeError,\n\t\t\t\t\t\t\t\t\tpincodeUsed: pincodeData.pincodeUsed,\n\t\t\t\t\t\t\t\t\tnoPincodeFound: false,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t// person.map((att) => {\n\t\t\t\t\t\t\t// // this.setField(att.name, att.value);\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.setDpsData({\n\t\t\t\t\t\t\t\tpincode: {\n\t\t\t\t\t\t\t\t\tpincodeResponse: null,\n\t\t\t\t\t\t\t\t\tpincodeError: null,\n\t\t\t\t\t\t\t\t\tpincodeUsed: null,\n\t\t\t\t\t\t\t\t\tnoPincodeFound: true,\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} catch (error) {\n\t\t\t\t\t\toneFormCoreDpsIsLoaded.error(error);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tcheckUrl() {\n\t\t\t\t\tconst dealerKvps = this.getUrlParams('dealer');\n\t\t\t\t\tconst motivo = this.getUrlParams('motivo');\n\t\t\t\t\tconst contactado = this.getUrlParams('contactado');\n\t\t\t\t\tconst rating = this.getUrlParams('rating');\n\t\t\t\t\tconst push = this.getUrlParams('push');\n\t\t\t\t\tconst estado = this.getUrlParams('estado');\n\t\t\t\t\tconst waid = this.getUrlParams('wa') || this.getUrlParams('waid');\n\t\t\t\t\tconst cem = this.getUrlParams('cem');\n\t\t\t\t\tconst mgm = this.getUrlParams('mgm');\n\t\t\t\t\tconst adviser = this.getUrlParams('adviser');\n\t\t\t\t\tconst or = this.getUrlParams('or');\n\t\t\t\t\tconst dat = this.getUrlParams('dat');\n\t\t\t\t\tconst env = this.getUrlParams('env');\n\t\t\t\t\tconst fe = this.getUrlParams('fe');\n\t\t\t\t\tconst dealer = this.getUrlParams('dealer');\n\t\t\t\t\tconst kvps = this.getUrlParams('kvps');\n\t\t\t\t\tconst campaign = this.getUrlParams('campaign');\n\t\t\t\t\tconst model = this.getUrlParams('model');\n\t\t\t\t\tconst interes = this.getUrlParams('interes');\n\n\t\t\t\t\tif (motivo) {\n\t\t\t\t\t\tthis.setField('motivo', motivo);\n\t\t\t\t\t}\n\t\t\t\t\tif (dealerKvps) {\n\t\t\t\t\t\tthis.setField('dealerKvps', dealerKvps);\n\t\t\t\t\t}\n\t\t\t\t\tif (contactado) {\n\t\t\t\t\t\tthis.setDpsData({ contactado });\n\t\t\t\t\t}\n\t\t\t\t\tif (rating) {\n\t\t\t\t\t\tthis.setDpsData({ rating });\n\t\t\t\t\t}\n\t\t\t\t\tif (push) {\n\t\t\t\t\t\tthis.setDpsData({ push });\n\t\t\t\t\t}\n\t\t\t\t\tif (estado) {\n\t\t\t\t\t\tthis.setDpsData({ estado });\n\t\t\t\t\t}\n\t\t\t\t\tif (waid) {\n\t\t\t\t\t\tthis.setDpsData({ waid });\n\t\t\t\t\t}\n\t\t\t\t\tif (cem) {\n\t\t\t\t\t\tthis.setDpsData({ cem });\n\t\t\t\t\t}\n\t\t\t\t\tif (mgm) {\n\t\t\t\t\t\tthis.setDpsData({ mgm });\n\t\t\t\t\t}\n\t\t\t\t\tif (adviser) {\n\t\t\t\t\t\tthis.setDpsData({ adviser });\n\t\t\t\t\t}\n\t\t\t\t\tif (or) {\n\t\t\t\t\t\tthis.setDpsData({ or });\n\t\t\t\t\t}\n\t\t\t\t\tif (dat) {\n\t\t\t\t\t\tthis.setDpsData({ dat });\n\t\t\t\t\t}\n\t\t\t\t\tif (env) {\n\t\t\t\t\t\tthis.setDpsData({ env });\n\t\t\t\t\t}\n\t\t\t\t\tif (fe) {\n\t\t\t\t\t\tthis.setDpsData({ fe });\n\t\t\t\t\t}\n\t\t\t\t\tif (dealer) {\n\t\t\t\t\t\tthis.setDpsData({ dealer });\n\t\t\t\t\t}\n\t\t\t\t\tif (kvps) {\n\t\t\t\t\t\tthis.setDpsData({ kvps });\n\t\t\t\t\t}\n\t\t\t\t\tif (campaign) {\n\t\t\t\t\t\tthis.setDpsData({ campaign });\n\t\t\t\t\t}\n\t\t\t\t\tif (model) {\n\t\t\t\t\t\tthis.setDpsData({ model });\n\t\t\t\t\t}\n\t\t\t\t\tif (interes) {\n\t\t\t\t\t\tthis.setDpsData({ interes });\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tasync checkData(useAuth: boolean, useBff?: boolean) {\n\t\t\t\t\tawait this.checkPincode(useBff);\n\t\t\t\t\tif (useAuth && getDpsData().pincode.noPincodeFound) {\n\t\t\t\t\t\tawait this.checkLogin();\n\t\t\t\t\t}\n\t\t\t\t\tthis.checkUrl();\n\t\t\t\t},\n\n\t\t\t\tgetUrlParams(param: string) {\n\t\t\t\t\tif (typeof window === 'undefined') {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\tif (window && window.location) {\n\t\t\t\t\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\t\t\t\t\treturn urlParams.get(param);\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t},\n\n\t\t\t\tasync retryPincodeLoad(useBff?: boolean) {\n\t\t\t\t\tawait this.checkPincode(useBff);\n\t\t\t\t},\n\n\t\t\t\tsetField(field: FieldType | string, value: any): void {\n\t\t\t\t\tconst { person } = this.get();\n\t\t\t\t\tconst updatedPerson: PersonV1 = { ...person };\n\t\t\t\t\tupdatedPerson[field] = value;\n\t\t\t\t\tconst updatedOneFormData: OneformData = { ...oneFormData, person: { ...updatedPerson } };\n\t\t\t\t\tthis.set(updatedOneFormData);\n\t\t\t\t},\n\n\t\t\t\tsubscribeToFields(store: Store): void {\n\t\t\t\t\tconst { fields }: { fields: FormDataFields } = store.getState().formData;\n\t\t\t\t\tObject.keys(fields).forEach((field) => {\n\t\t\t\t\t\tthis.setField(field, fields[field]);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\treturn { '1.0.0': v1 };\n\t},\n};\n","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { default as _parsePhoneNumber } from '../../core/index.js'\r\n\r\nexport function parsePhoneNumber() {\r\n\treturn withMetadataArgument(_parsePhoneNumber, arguments)\r\n}","import { ApiKeyProviderV1 } from '@volkswagen-onehub/api-key-provider';\nimport { AsyncSsrManagerV1 } from '@feature-hub/async-ssr-manager';\nimport { AuthServiceProviderV2 } from '@volkswagen-onehub/authservice';\nimport { CarConfigurationServiceV2 } from '@volkswagen-onehub/car-configuration-feature-service';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { FaContentServiceV1 } from '@volkswagen-onehub/fa-content-service';\nimport { FeatureAppDefinition, FeatureServices } from '@feature-hub/core';\nimport { FeatureAppEnvironmentContext } from 'src/feature-app/hooks/use-feature-app-environment';\nimport { FinancialDataServiceV1 } from '@volkswagen-onehub/financial-data-feature-service';\nimport { HistoryServiceV2 } from '@feature-hub/history-service';\nimport { ImageServiceV1 } from '@volkswagen-onehub/image-service';\nimport { initialState } from 'src/feature-app/redux/index';\nimport { initSentry } from './sentry/';\nimport { LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { LocaleServiceV1 } from '@volkswagen-onehub/locale-service';\nimport { Logger } from '@feature-hub/logger';\nimport { NavigationServiceV1 } from '@volkswagen-onehub/navigation-service';\nimport { oneformCoreServiceDefinition } from 'src/feature-service/es-oneform-core-feature-service/index';\nimport { ReactFeatureApp } from '@feature-hub/react';\nimport { saveEnvironment } from './save-feature-app';\nimport { saveFeatureServices } from 'src/feature-app';\nimport { SerializedStateManagerV1 } from '@feature-hub/serialized-state-manager';\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport { ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { TrackingManagerV1 } from '@volkswagen-onehub/tracking-service';\nimport { UserInteractionServiceV1 } from '@volkswagen-onehub/user-interaction-service';\nimport * as React from 'react';\nimport App from './App';\nimport ErrorBoundary from './sentry/ErrorBoundary';\n\nexport type Trigger =\n | 'adhoc-2021-diamadre'\n | 'adhoc-2021-eurocopa'\n | 'adhoc-2021-fidelizacion_clientes'\n | 'adhoc-2021-navidad'\n | 'adhoc-2023-test_id'\n | 'adhoc-2023-concurso_rodaje'\n | 'adhoc-2023-plan_ideal'\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 | 'feedback'\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 ;\nexport interface FeatureAppConfig {\n readonly trigger?: Trigger;\n}\n\ninterface Installation {\n name: string;\n code: string;\n}\n\ninterface CalculatorData {\n carYear: number;\n familyModelCode?: string;\n familyModelDesc?: string;\n installation: Installation;\n kilometres?: string;\n license?: string;\n licensePlate?: string;\n modelDescr?: string;\n modelKey?: string;\n vin?: string;\n}\ninterface CalculatorService {\n setInstallation?: (installation: Installation) => void;\n getCalculatorData?: () => CalculatorData;\n}\n\nexport interface Dependencies extends FeatureServices {\n readonly 's2:async-ssr-manager': AsyncSsrManagerV1 | undefined;\n readonly 's2:serialized-state-manager': SerializedStateManagerV1;\n readonly 'layer-manager': LayerManagerV2;\n readonly 'es:oneform-core': EsOneformCoreServiceV1;\n readonly 'car-configuration': CarConfigurationServiceV2;\n readonly 'locale-service': LocaleServiceV1;\n readonly 'service-config-provider': ServiceConfigProviderV1;\n readonly 'fa-content-service': FaContentServiceV1;\n readonly 's2:history': HistoryServiceV2;\n readonly 'financial-data': FinancialDataServiceV1;\n readonly 'vw:authService': AuthServiceProviderV2;\n readonly 'user-interaction-service'?: UserInteractionServiceV1;\n readonly 'image-service'?: ImageServiceV1;\n readonly 'api-key-provider': ApiKeyProviderV1;\n readonly 'calculator-feature-service'?: CalculatorService;\n readonly 's2:logger': Logger;\n readonly 'navigation-service': NavigationServiceV1;\n\n readonly tracking?: TrackingManagerV1;\n}\n\nconst featureAppDefinition: FeatureAppDefinition = {\n dependencies: {\n featureServices: {\n 's2:serialized-state-manager': '^1.0.0',\n 'layer-manager': '^2.3.0',\n 'es:oneform-core': '^1.0.0',\n 'car-configuration': '^2.0.0',\n 'locale-service': '^1.0.0',\n 'service-config-provider': '^1.0.0',\n 'fa-content-service': '^1.0.0',\n 's2:history': '^2.0.0',\n 'financial-data': '^1.0.0',\n 'user-interaction-service': '^1.0.0',\n 'image-service': '^1.1.1',\n 's2:logger': '^1.0.0',\n 'navigation-service': '^1.0.0',\n 'api-key-provider': '^1.0.1',\n },\n },\n\n optionalDependencies: {\n featureServices: {\n 's2:async-ssr-manager': '^1.0.0',\n tracking: '^1.0.0',\n ['vw:authService']: '2.0.0',\n 'calculator-feature-service': '^1.0.0',\n },\n },\n\n ownFeatureServiceDefinitions: [oneformCoreServiceDefinition],\n\n create: (env) => {\n let oneFormState = JSON.stringify(initialState);\n\n let { 's2:async-ssr-manager': asyncSsrManager, 's2:serialized-state-manager': serializedStateManager } =\n env.featureServices;\n // Necesario para que cualquier función pueda acceder a los featureServices sin usar hooks, especialmente\n // para acceder a los service configs.\n saveFeatureServices(env.featureServices);\n saveEnvironment(env);\n\n const { hub } = initSentry(env.featureServices, env.config);\n // oneFormService.initializeService();\n // We use the presence of the asyncSsrManager to determine whether we are\n // rendered on the server or on the client.\n if (asyncSsrManager) {\n serializedStateManager.register(() => JSON.stringify(initialState));\n\n asyncSsrManager\n .scheduleRerender\n // (async () =>\n // (initialState = await fetchInitialState(config, carConfiguration)))()\n ();\n } else {\n const serializedState = serializedStateManager.getSerializedState();\n if (serializedState) {\n oneFormState = serializedState;\n }\n }\n\n return {\n render: () => (\n \n \n \n \n \n \n \n ),\n };\n },\n};\n\nexport default featureAppDefinition;\n","import { isMobileOnly, isTablet } from 'react-device-detect';\n\nexport const getParamsForm = () => {\n let tc: string;\n if (typeof s !== 'undefined' && typeof s.persCmp !== 'undefined') {\n tc = s.persCmp;\n } else {\n tc = 'undefined';\n }\n\n const date = new Date();\n const device = isMobileOnly ? 'mobile' : isTablet ? 'tablet' : 'desktop';\n const location = window.location.href;\n const referalUrl = document.referrer.substring(0, 30);\n const today = date.toISOString().replace(\"T\",\" \").split(\".\")[0];\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\t| 'es-ofertas'\n\t| 'es-stock-teaser'\n\t| 'es-match'\n\t| 'es-calculadora'\n\t| 'es-maintenance-plan'\n\t| 'es-portal'\n\t| 'es-bono'\n\t| 'es-my-benefits'\n\t| 'Configure';\n\nexport interface VehiclePortal {\n\tvehicleClimaproId: number;\n\tframe: string;\n\timage: string;\n\tcomercialDenomination: string;\n\tcommercialDenominationSli: string;\n\tfamilyModelCode: string;\n\tfamilyModelDesc: string;\n\ttmaimg: string | null;\n\tlicense: string | null;\n\tdealerDate: number;\n\tlicenseDate: number | undefined;\n\tdeliveryDate: number;\n\n\t//Maintenance\n\tclimaProKM?: number;\n\tlocalKM?: number;\n\tmaintenanceYears?: number;\n\tmaintenanceMonths?: number;\n\tmaintenanceDays?: number;\n\tmaintenanceTotalDays?: number;\n\talertNextMaintenance?: boolean;\n\tmaintenance?: any;\n\trepairOrders?: any;\n\teditKm?: boolean;\n\n\t//Benefits\n\tsalesGroup?: string;\n\tpersonVehicleRelation?: boolean;\n\tflagIsVO?: boolean;\n}\n\ninterface PortalFields {\n\tvehicle: VehiclePortal[];\n\tquotePvp?: string;\n\tquoteOperations?: {\n\t\tid: string; // Identificador único de la operación\n\t\tname: string; // Nombre de la operación\n\t\tpvp: string | undefined; // Precio de la operación\n\t}[];\n\toperation?: {\n\t\tid: string; // Identificador único de la operación\n\t\tname: string; // Nombre de la operación\n\t}[];\n}\n\n//NO SE USA\nexport interface VehicleCalculadora {\n\tfamilyCode: string;\n\tfamilyDesc: string;\n\tmodelDescr: string;\n\tmodelKey: string;\n\tvin: string;\n\tmileage: number;\n\tplate: string;\n\tplateDate: string;\n}\n\n// interface 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, PortalFields {\n\t'bodycopy-logged'?: string;\n\t'headline-logged'?: string;\n\t'action'?: string;\n\t'argumentatives'?: string;\n\t'bodycopy'?: string;\n\t'bono'?: any;\n\t'carlines'?: number[] | string[];\n\t'cem'?: 'VENTA' | 'POSVENTA';\n\t'cta'?: string;\n\t'dpsFields'?: {\n\t\tfield: 'headers[DESC_FORM_DETAIL]' | 'headers[DETALLE_TIPO_PETICION_SIM]';\n\t\tvalue: string;\n\t}[];\n\t'encuesta'?:\n\t\t| 'CEM - VENTA'\n\t\t| 'CEM - VENTA PRODUCTO'\n\t\t| 'CEM - POSVENTA'\n\t\t| 'CEM - ONESHOP'\n\t\t| 'CEM - SEGUNDA ENTREGA - INVITACION'\n\t\t| 'CEM - SEGUNDA ENTREGA - VALORACION'\n\t\t| 'LEM'\n\t\t| 'NO COMPRA'\n\t\t| 'NO RENOVACIÓN';\n\t'featureApp'?: EmbeddedFeatureApp;\n\t'forms'?: LeadForm[];\n\t'headline'?: string;\n\t'intro'?: string;\n\t'isCitaPosventaStageOrDefault'?: 'Default' | 'Stage';\n\t'lead_type'?: 'test-drive' | 'presupuesto' | 'mas-informacion' | 'cita' | 'stock' | 'call-center';\n\t'marketingCodeConfig'?: { SalesgroupId: string; SalesgroupName: string };\n\t'match'?: Offer; // Hay que implementar el type Preconfiguration\n\t'matchOptions'?: MatchSelectedOptions;\n\t'mgm'?: 'Bono Cliente' | 'Bono Regalo' | 'Envío Regalo';\n\t'mgmImgSrc'?: string;\n\t'mode'?: 'Salesgroup' | 'Carline' | 'CarConfiguratorFS' | 'Mixed';\n\t'modo'?: 'Dark' | 'Light';\n\t'motivo'?: string;\n\t'navidadImgSrc'?: string;\n\t'observaciones'?: string;\n\t'oferta'?: Offer;\n\t'race'?: 'true' | 'false';\n\t'salesgroups'?: number[];\n\t'stageCitaImgSrc'?: string;\n\t'thankYouPage'?: string;\n\t'triggerCase'?: 'Generico' | 'OneShop';\n\t'userInteraction'?: 'false' | 'true';\n\t'widget'?: WidgetOptions;\n\t'feedback'?: string;\n\t'idkit'?: string;\n\t'climapro'?: string;\n}\n\nexport type LeadForm = 'lead-presupuesto' | 'lead-mas_informacion' | 'lead-test_drive' | 'lead-cita' | 'lead-stock';\n\nexport function useFaContent(): OneFormContent | undefined {\n\treturn useFeatureServices()['fa-content-service'].content as OneFormContent;\n}\n","import { FeatureAppConfig, useFeatureAppEnvironment } from 'src/feature-app';\n\nexport function useFeatureAppConfig(): FeatureAppConfig {\n const { config } = useFeatureAppEnvironment();\n\n return config || {};\n}\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useState, useEffect } from 'react';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nexport const useGetBoundingClientRect = (identifier: string) => {\n\n const [boundingObject, setBoundingObject] = useState(null);\n const [bottom, setBottom] = useState(null);\n const [top, setTop] = useState(null);\n const [left, setLeft] = useState(null);\n const [right, setRight] = useState(null);\n const [y, setY] = useState(null);\n\n //boundingObject contiene varias keys, bottom hace referencia a la distancia entre el bottom del elemento y el top del window\n\n const getBoundingObject = () => {\n const element = document.querySelector(identifier);\n if (element) {\n const { top, right, bottom, left, width, height, x, y } = element.getBoundingClientRect();\n //la librería de autosuggest no permite poner id, por eso el querySelector\n setBoundingObject({ top, right, bottom, left, width, height, x, y });\n setBottom(bottom);\n setTop(top);\n setLeft(left);\n setRight(right);\n setY(y);\n }\n };\n\n const getAndUpdateState = () => {\n getBoundingObject();\n };\n\n return { boundingObject, bottom, top, left, right, y, getAndUpdateState };\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getDealerKvps } from 'src/bff/api/get-dealer-kvps';\n\nexport function useGetDealer() {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (!window.location) {\n setLoading(false);\n }\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n if (!dealer) {\n setLoading(false);\n return;\n }\n getDealerKvps(dealer)\n .then((selectedDealer) => {\n if (selectedDealer) {\n setDealerName(selectedDealer.name);\n setSelectedDealer(selectedDealer);\n dispatch({ type: 'SET_SELECTED_DEALER', payload: selectedDealer });\n dispatch({ type: 'SET_URL_DEALER', payload: selectedDealer });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: selectedDealer });\n const { longitude, latitude } = selectedDealer.markerInfo.svcLocation;\n const point = {\n type: 'Feature',\n properties: { cluster: false, concesionId: selectedDealer.id, dealer: selectedDealer },\n geometry: {\n type: 'Point',\n coordinates: [longitude, latitude],\n },\n };\n const points = [point];\n dispatch({ type: 'SET_DEALERS', payload: [selectedDealer] });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'dealers' });\n } else {\n setDealerName(null);\n setSelectedDealer(null);\n }\n\n setLoading(false);\n })\n .catch(() => {\n setLoading(false);\n });\n }, []);\n return { dealerName, selectedDealer, loading };\n}\n","import { isNull } from 'src/feature-app';\nimport { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getDealerKvps } from 'src/bff/api/get-dealer-kvps';\nimport { DealersData } from 'src/types';\nimport { getDealers } from 'src/bff';\n\nexport function useGetDealers(kvps?: string) {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const [loading, setLoading] = useState(true);\n const [dealers, setDealers] = useState(null);\n\n useEffect(() => {\n const handleDealer = async (kvps: string) => {\n const selectedDealer = await getDealerKvps(kvps);\n\n if (selectedDealer) {\n setDealerName(selectedDealer.name);\n setSelectedDealer(selectedDealer);\n dispatch({ type: 'SET_SELECTED_DEALER', payload: selectedDealer });\n dispatch({ type: 'SET_URL_DEALER', payload: selectedDealer });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: selectedDealer });\n } else {\n setDealerName(null);\n setSelectedDealer(null);\n }\n };\n\n if (window && window.location) {\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n\n if (dealer) {\n handleDealer(dealer);\n }\n }\n if (kvps) {\n handleDealer(kvps);\n }\n\n const requestDealers = async () => {\n const dealers = await getDealers();\n\n const points = dealers\n .map((dealer: DealersData) => {\n if (isNull(dealer.markerInfo.svcLocation)) return {};\n const { longitude, latitude } = dealer.markerInfo.svcLocation;\n return {\n type: 'Feature',\n properties: { cluster: false, concesionId: dealer.id, dealer: dealer },\n geometry: {\n type: 'Point',\n coordinates: [longitude, latitude],\n },\n };\n })\n .filter((point) => Object.keys(point).length > 0);\n\n dispatch({ type: 'SET_DEALERS', payload: dealers });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'dealers' });\n setDealers(dealers);\n setLoading(false);\n };\n\n requestDealers();\n }, []);\n return { dealers, dealerName, selectedDealer, loading };\n}\n","import { getDataServiceConfig } from 'src/feature-app';\n\nexport const useGetBrand = (): 'V' |'N' |undefined => {\n const data = getDataServiceConfig();\n const brand = data.customConfig?.brand;\n\n return brand;\n};\n","import { useGetBrand } from './use-get-brand';\n\nexport const useIsComerciales = () => {\n const brand = useGetBrand();\n\n return brand === 'N'; \n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getInstallations, getInstallationsLegacy } from 'src/bff';\nimport { DealersData, DomainAttributesValues, Installation, InstallationResponse, Points } from 'src/types';\nimport { useIsComerciales } from './use-is-comerciales';\nimport { provinces } from '../NewMap';\n\nexport function useGetInstalaciones(token?: string, domain?: string): string {\n const dispatch = useDispatch();\n const [dealerName, setDealerName] = useState(null);\n const store = useStore()\n\n useEffect(() => {\n const requestInstallations = async () => {\n\t\t\n\t\tconst installationsResponse = await getInstallations(token, domain);\n\n // La respuesta viene como una array de arrays de attributes. Eliminamos este nivel para simplificar.\n const installationsDomainAtt: DomainAttributesValues[][] = installationsResponse.map((inst) => inst.attributes);\n const isComerciales = useIsComerciales();\n const selectedCarlineCode = store.getState().dealersInfo?.selectedCarline?.code;\n const excludedInstallationCodes = ['03812', '03394', 'EX1Q2', '0311X', '0321C', 'EX2C3', 'EX2H4', '30559', '53V50', '0310W', '30724', '03917', '30083', 'EX2Y1', 'EX1P0', '03910']\n const isIdBuzz = () => selectedCarlineCode === 72005 || selectedCarlineCode === 72006;\n\n const getProvince = (provinceCode: string): string | null => {\n const province = provinces.find(p => p.attributes.some(attr => attr.value === provinceCode));\n return province ? province.attributes.find(attr => attr.name === 'NAME')?.value?.toUpperCase() ?? null : null;\n };\n\n let points: Points[] = [];\n let installations: Installation[] = [];\n\n installationsDomainAtt.forEach((installation) => {\n const newInstallation: Installation = {\n Id: '',\n VGED_CommercialName__c: '',\n ShippingStreet: '',\n ShippingPostalCode: '',\n ShippingCity: '',\n ShippingLatitude: '',\n ShippingLongitude: '',\n VGED_DealerCode__c: '',\n ShippingStateCode: '',\n KVPSCode__c: '',\n Province: '',\n };\n\n installation.forEach((property) => {\n const { name, value } = property;\n if (name === 'ShippingStateCode') {\n newInstallation[name] = value;\n const provinceName = getProvince(value);\n newInstallation['Province'] = provinceName ?? '';\n }\n else {\n (newInstallation.hasOwnProperty(name))\n newInstallation[name] = value;\n }\n });\n\n if (\n !newInstallation.ShippingLatitude ||\n !newInstallation.ShippingLongitude ||\n newInstallation.ShippingLatitude === '' ||\n newInstallation.ShippingLongitude === ''\n ) {\n return;\n }\n\n // Necesario para el correcto funcionamiento del mapa.\n const dealer: Partial = {\n kvps: newInstallation.KVPSCode__c,\n name: newInstallation.VGED_CommercialName__c,\n markerInfo: {\n dealerInfo: {\n name: newInstallation.VGED_CommercialName__c,\n address: newInstallation.ShippingStreet,\n zipCode: newInstallation.ShippingPostalCode,\n city: newInstallation.ShippingCity,\n province: newInstallation.Province,\n },\n },\n };\n\n const point = {\n type: 'Feature',\n properties: { cluster: false, installation: newInstallation, dealer }, //concesionId: dealer.id, dealer: dealer\n geometry: {\n type: 'Point',\n coordinates: [newInstallation.ShippingLongitude, newInstallation.ShippingLatitude],\n },\n };\n\n const isExcludedInstallation = (): boolean => {\n return excludedInstallationCodes.includes(newInstallation.VGED_DealerCode__c)\n }\n if (isComerciales && !isIdBuzz() && isExcludedInstallation()) {\n return\n }\n else {\n points.push(point);\n installations.push(newInstallation);\n }\n });\n dispatch({ type: 'SET_INSTALLATIONS', payload: installations });\n dispatch({ type: 'SET_POINTS', payload: points });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'installations' });\n };\n\n requestInstallations();\n }, []);\n return dealerName;\n}\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getMarketingCode } from 'src/bff';\nimport { useFaContent } from 'src/feature-app';\n\n/**\n * Hook necesario para disparar ambos formularios de match. El objetivo es enviar las variables de match y matchMarketingCodeData para\n * que desde la parte de analítica se puedan obtener todas las variables que se están utilizando tambien para la analítica de match.\n * @param setSelectedJourney\n * @param Form\n */\nexport function useInitiateMatchTriggers(setSelectedJourney: any, Form: JSX.Element) {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n useEffect(() => {\n getMarketingCode(faContent?.match?.marketingCode)\n .then((res) => {\n dispatch({ type: 'SET_MATCH', payload: faContent.match });\n dispatch({\n type: 'UPDATE_FIELDS',\n payload: { matchMarketingCodeData: res.response, argumentatives: faContent?.argumentatives },\n });\n\n setSelectedJourney(Form, true);\n })\n .catch((err) => {\n dispatch({ type: 'SET_MATCH', payload: faContent.match });\n dispatch({ type: 'UPDATE_FIELDS', payload: { argumentatives: faContent?.argumentatives } });\n setSelectedJourney(Form, true);\n });\n }, []);\n}\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFaContent } from 'src/feature-app';\n\n/**\n * Hook necesario para disparar formularios desde bonos. El objetivo es enviar como observaciones la descripción del bono.\n * @param setSelectedJourney\n * @param Form\n */\nexport function useInitiateBonosTriggers(setSelectedJourney: any, Form: JSX.Element) {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n useEffect(() => {\n dispatch({\n type: 'UPDATE_FIELDS', // Pendiente propagar el valor del campo observaciones desde faContent\n payload: { },\n });\n\n setSelectedJourney(Form, true);\n }, []);\n}\n","import { useFeatureServices } from 'src/feature-app';\n\nexport const useIsDevStage = () => {\n const stageCustomConfig = useFeatureServices()['service-config-provider'].configs?.stage?.customConfig;\n\n return stageCustomConfig?.stage === 'dev';\n};\n","import { useState, useEffect } from 'react';\n\nexport function useLoaded() {\n const [loaded, setLoaded] = useState(false);\n\n useEffect(() => {\n setLoaded(true);\n }, []);\n\n return loaded;\n}\n","import { Spinner } from '@volkswagen-onehub/components-core';\nimport { Checkmark, Locate } from 'src/icons-core-imports';\n\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport {\n GooglePlace,\n isNull,\n Suggestion,\n useOneFormContext,\n updateMapVariables,\n useFeatureServices,\n useFeatureAppEnvironment,\n} from 'src/feature-app';\nimport { handleLocation } from 'src/feature-app/NewMap/handle-location';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { OneFormState } from 'src';\nimport { renderAvisoIslasCanariasLayer } from 'src/components';\nimport { Store } from 'redux';\n\n// está hecho a saco para extraer la lógica del componente LocateUser y no tenerla por duplicado\n// por temas de front y comportamiento de la caja del suggest no se puede usar LocateUser en filtros\n\nexport function useLocateUser() {\n const [value, setValue] = useState('');\n const [suggestion, setSuggestion] = useState(null);\n const [loading, setLoading] = useState(false);\n const [icon, setIcon] = useState();\n const [isLocating, setIsLocating] = useState(false);\n const [locationDisabled, setLocationDisabled] = useState(false);\n // locationSuccess lo suyo seria subirlo a un context para que no se resetee entre LocateUser y filtros\n const [locationSuccess, setLocationSuccess] = useState(false);\n const { triggerValidation } = useFormContext();\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const { setIsValueSelected, handleNextStep } = useOneFormContext();\n const store: Store = useStore();\n const env = useFeatureAppEnvironment();\n const layerManager = useFeatureServices()['layer-manager'];\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n setSuggestion(suggestion);\n updateMapVariables(dispatch, suggestion).then(() => {\n const { suggestionIsInCanaryIslands } = store.getState().formInfo;\n\n if (suggestionIsInCanaryIslands) {\n renderAvisoIslasCanariasLayer(store, env, layerManager);\n return;\n }\n // Avanza a la siguiente pantalla\n handleNextStep();\n });\n };\n\n const handleLocate = async () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Localiza mi posición actual',\n });\n setIsLocating(true);\n setLoading(true);\n setIcon();\n const { geometry, name } = await handleLocation();\n setIcon();\n setIsLocating(false);\n setLoading(false);\n if (isNull(geometry)) {\n setLocationDisabled(true);\n setLocationSuccess(false);\n } else {\n setLocationDisabled(false);\n const suggestion: GooglePlace = { isGooglePlace: true, name, skipSearch: true, isGeoLocated: true };\n // dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n // handleMapVariables(dispatch, { lat: geometry.lat, lng: geometry.lng }, 10, geometry, false, suggestion);\n\n setSuggestion(suggestion);\n setLocationSuccess(true);\n triggerValidation();\n setValue(name);\n setIsValueSelected(true);\n updateMapVariables(dispatch, suggestion, geometry);\n }\n };\n\n const handleLocateFilters = async () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Localiza mi posición actual',\n });\n setIsLocating(true);\n setLoading(true);\n setIcon();\n const { geometry, name } = await handleLocation();\n setIcon();\n setIsLocating(false);\n setLoading(false);\n\n if (isNull(geometry)) {\n setLocationDisabled(true);\n setLocationSuccess(false);\n } else {\n setLocationDisabled(false);\n const suggestion: GooglePlace = { isGooglePlace: true, name, skipSearch: true, isGeoLocated: true };\n // dispatch({ type: 'UPDATE_USER_GEOLOCATION', payload: suggestion });\n // handleMapVariables(dispatch, { lat: geometry.lat, lng: geometry.lng }, 10, geometry, false, suggestion);\n\n triggerValidation();\n setValue(name);\n setLocationSuccess(true);\n return { suggestion, geometry };\n // setSuggestion(suggestion);\n }\n };\n\n useEffect(() => {\n locationSuccess ? setIcon() : setIcon();\n }, [locationSuccess]);\n\n return {\n suggestion,\n setSuggestion,\n value,\n setValue,\n icon,\n handleLocate,\n loading,\n locationDisabled,\n locationSuccess,\n setLocationSuccess,\n isLocating,\n handleLocateFilters,\n onSuggestionSelectedFn,\n };\n}\n","import { useIsDevStage } from './use-is-dev-stage';\nimport { useRef } from 'react';\nimport { useFeatureServices } from 'src/feature-app';\n\nconst citaPreviaKey = 'es-posventa-cita_previa';\n\nexport function useNavigate() {\n const navigationService = useFeatureServices()['navigation-service'];\n\n const navigateToCita = (): void => {\n const target = navigationService.navigateTo(citaPreviaKey, {});\n target.push();\n };\n\n const navigateToThankyouNewsletter = (action: string): void => {\n const resultsPage = `inscripcion-${action}`;\n\n const target = navigationService.navigateTo(resultsPage, {});\n\n target.push();\n };\n\n return {\n navigateToCita,\n navigateToThankyouNewsletter,\n };\n}\n","import { useState, useEffect } from 'react';\n\nexport function useOnScreen(ref) {\n const [isIntersecting, setIntersecting] = useState(false);\n\n const observer = new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting));\n\n useEffect(() => {\n observer.observe(ref.current);\n // Remove the observer as soon as the component is unmounted\n return () => {\n observer.disconnect();\n };\n }, []);\n\n return isIntersecting;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { isNull } from 'src/feature-app';\nimport { OneFormState, Steps } from 'src/types';\nimport { useWindowWidth} from '@react-hook/window-size';\n\nexport const useShowOverflow = (isLayerScreen: boolean, selectedStep?: Steps ) => {\n /**\n *\n * @param stepsToIterate La lista de steps donde hay que buscar el paso previo.\n * @param screenIndexToGet La lista de steps donde hay que buscar el paso previo.\n */\n const windowWidth = useWindowWidth();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { \n multiStepScreenIndex, \n screenIndex, \n steps,\n multiSteps, notALayer\n } = formInfo;\n\n const [ showOverflow, setShowOverflow ] = useState(false);\n\n\n const handleShowOverflow = (stepsToIterate: Steps[], screenIndexToGet: number) => {\n if (!stepsToIterate || isNull(screenIndexToGet) || screenIndexToGet === -1) {\n setShowOverflow(false);\n }\n\n const actualStep = stepsToIterate.find((step) => step.screenIndex === screenIndexToGet);\n\n if(actualStep && actualStep.showOverflow) {\n setShowOverflow(true);\n } else {\n setShowOverflow(false);\n }\n };\n\n \n useEffect(()=>{\n \n if(windowWidth < 960 && !notALayer || windowWidth < 960 && !isLayerScreen ) {\n setShowOverflow(false);\n } else {\n\n if(selectedStep && selectedStep.showOverflow) {\n setShowOverflow(true);\n }\n \n if(!steps) {\n setShowOverflow(false);\n } else {\n //console.log(1, screenIndex, steps, multiStepScreenIndex);\n if (multiStepScreenIndex === null) {\n //console.log('22222', multiSteps, screenIndex, multiStepScreenIndex);\n handleShowOverflow(steps, screenIndex);\n } else {\n //console.log('333333', multiSteps, multiStepScreenIndex);\n handleShowOverflow(multiSteps, multiStepScreenIndex);\n } \n }\n }\n \n }, [steps, multiSteps, selectedStep]);\n\n return { showOverflow };\n};\n","import { useEffect, useState } from 'react';\n\n//El texto que se quiera introducir des de la feature app incorporando la posibilidad de editarlo \n// en el fragmento de JSX donde se renderize debe figurar de la siguiente manera:\n//
\n\nexport const useTransformToHtml = (text: string) => {\n return {__html: text};\n};\n","import { TrackingForm } from 'src/feature-app';\n\nexport interface NDPSField {\n name: string;\n value: string;\n}\n\nexport const getTrackingForm = (formResponse): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n //LeadID Molecular\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }else if (formResponse && formResponse.content && formResponse.content.headers){\n //LeadID OneFormBFF\n const leadField: NDPSField = formResponse.content.headers.find(\n (header: NDPSField) => header.name === 'FK_SYSTEM'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n};\n","import { IdPerson } from \"src/types\";\nimport { EsOneformCoreServiceV1 } from \"src/feature-service/es-oneform-core-feature-service/types\";\nimport { createPincodeEntity } from 'src/forms';\nimport { useFeatureServices } from \"./use-feature-services\";\n\nexport const useGetIdPerson = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dpsData = oneFormService.getDpsData();\n const idPerson: IdPerson = createPincodeEntity(dpsData, 'PERSON');\n\n return idPerson;\n}","import { IdVehicle} from \"src/types\";\nimport { EsOneformCoreServiceV1 } from \"src/feature-service/es-oneform-core-feature-service/types\";\nimport { createPincodeEntity } from 'src/forms';\nimport { useFeatureServices } from \"./use-feature-services\";\n\nexport const useGetIdVehicle = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dpsData = oneFormService.getDpsData();\n const idVehicle: IdVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n\n return idVehicle;\n}","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport React from 'react';\nimport { FeatureAppConfig, Dependencies } from 'src/feature-app';\n\nexport type OneFormFeatureAppEnvironment = FeatureAppEnvironment;\n\nexport const FeatureAppEnvironmentContext = React.createContext(undefined);\n\nexport function useFeatureAppEnvironment(): OneFormFeatureAppEnvironment {\n const featureAppEnvironment = React.useContext(FeatureAppEnvironmentContext);\n\n if (!featureAppEnvironment) {\n throw new Error('No featureAppEnvironment context value was provided.');\n }\n\n return featureAppEnvironment;\n}\n","import { useFeatureAppEnvironment, Dependencies } from 'src/feature-app';\n\nexport function useFeatureServices(): Dependencies {\n const { featureServices } = useFeatureAppEnvironment();\n\n return featureServices;\n}\n","\nimport { ServiceConfigProviderV1 } from '@volkswagen-onehub/service-config-provider';\nimport { useFeatureServices } from './use-feature-services';\nimport { AuthServiceProviderV2, IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport const getAuthService = (serviceConfig: ServiceConfigProviderV1, authServiceProvider:AuthServiceProviderV2 ) => {\n const endpoint = serviceConfig.configs['customer-profile']?.urlOrigin; \n const authService: IAuthServiceV2 = authServiceProvider?.register('market');\n\n \n return authService;\n};\n\nexport const useGetAuthService = () => {\n const serviceConfig = useFeatureServices()['service-config-provider'];\n const authService = useFeatureServices()['vw:authService'] as AuthServiceProviderV2;\n\n return getAuthService(serviceConfig, authService);\n};\n","import { useFeatureServices } from './use-feature-services';\n\nexport const useGetWaidLitera = () => {\n const oneFormService = useFeatureServices()['es:oneform-core'];\n const waid = oneFormService.getDpsData().waid;\n\n return waid;\n};\n","import React from 'react';\nimport { useStore } from 'react-redux';\nimport { Store } from 'redux';\nimport { useFeatureAppConfig, useGetBrand } from 'src/feature-app';\nimport {\n createPartner,\n createPartnerWithSearch,\n createTrackingLink,\n createTrackingProcess,\n getBaseEventInfo,\n getCarlineConfiguration,\n getCompleteConfigurationFromVicci,\n getFormAppointments,\n getMarketingConsent,\n} from 'src/feature-app/tracking-helpers';\nimport {\n emptyCarlineConfig,\n emptyConfig,\n emptyLatLongZip,\n emptyOwnership,\n emptyPersonalization,\n} from 'src/feature-app/tracking-objects';\nimport {\n ErrorFormFields,\n OffersTrackingEvent,\n OneFormTrackingManager,\n TrackingError,\n TrackingEvent,\n TrackingEventInfo,\n TrackingFilter,\n TrackingForm,\n TrackingPartner,\n TrackingProcess,\n} from 'src/feature-app/tracking-types';\nimport { DealersData, OneFormState } from 'src/types';\nimport { useFeatureServices } from './use-feature-services';\n\nconst defaultTrackingEvent: OffersTrackingEvent = {\n personalization: emptyPersonalization,\n};\n\nexport function useTrackingManager(): OneFormTrackingManager {\n const { tracking: trackingManager } = useFeatureServices();\n const store: Store = useStore();\n const config = useFeatureAppConfig();\n const brand = useGetBrand();\n\n return React.useMemo((): OneFormTrackingManager => {\n function track(action: string, event: OffersTrackingEvent): void {\n const { trackingIsDisabled } = store.getState().formInfo;\n if (trackingManager && !trackingIsDisabled) {\n trackingManager.track(action, event as TrackingEvent);\n }\n }\n\n return {\n trackFormButtonClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormButton_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfig,\n PriceType: 'price',\n PriceTypeParameter: undefined,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormStepButtonClick(eventInfo: TrackingEventInfo) {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const emptyConfigStep = { ...emptyConfig };\n delete emptyConfigStep.PriceTotalTotal;\n\n track('VWBasic_FormStepButton_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfigStep,\n WheelsAdditionalExternalRollingNoise: undefined,\n ...getCarlineConfiguration(store),\n },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormStepLoad(eventInfo: TrackingEventInfo, formInfo?: TrackingForm, processInfo?: TrackingProcess) {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const baseEventInfoForLoad = { ...getBaseEventInfo(store, brand) };\n delete baseEventInfoForLoad.sectionName;\n\n const emptyConfigLoad = { ...emptyConfig };\n delete emptyConfigLoad.PriceTotalTotal;\n\n track('VWBasic_FormStep_Load', {\n ...defaultTrackingEvent,\n form: {\n ...formInfo,\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n },\n eventInfo: { ...baseEventInfoForLoad, ...eventInfo, contentLabels: undefined },\n configuration: {\n ...emptyConfigLoad,\n WheelsAdditionalExternalRollingNoise: undefined,\n ...getCarlineConfiguration(store),\n },\n user: { ...emptyLatLongZip },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store, processInfo),\n },\n partner: createPartner(store),\n ownership: emptyOwnership,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackButtonClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const processInfo = createTrackingProcess(store);\n track('VWBasic_Button_Click', {\n ...defaultTrackingEvent,\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n process: processInfo,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n questionnaire: { QuestionAnswerSet: undefined },\n SC: {\n ResultsRecommendationPosition: undefined,\n ResultsRecommendationFirst: undefined,\n ResultsRecommendationSecond: undefined,\n },\n });\n },\n trackFormCTAClick(eventInfo: TrackingEventInfo, dealer?: DealersData) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormCTA_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n Questionnaire: undefined,\n ...getMarketingConsent(store),\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyConfig,\n PriceType: undefined,\n PriceTypeParameter: undefined,\n ...getCarlineConfiguration(store),\n },\n partner: createPartner(store, dealer),\n ownership: emptyOwnership,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormSubmissionSuccessMessageLoad(eventInfo: TrackingEventInfo, formInfo?: TrackingForm) {\n const { formName, formType, vicciData, pageCategory } = store.getState().formData.fields;\n const processInfo = createTrackingProcess(store);\n\n track('VWBasic_FormSubmissionSuccessMessage_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n ErrorFormFields: undefined,\n Questionnaire: undefined,\n SourceID: undefined,\n OpportunityUID: undefined,\n CycleID: undefined,\n FormStart: false,\n LeadID: undefined,\n ...getFormAppointments(store),\n ...getMarketingConsent(store),\n ...formInfo,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n user: { ...emptyLatLongZip },\n configuration: {\n ...emptyConfig,\n ...getCompleteConfigurationFromVicci(vicciData),\n ...getCarlineConfiguration(store),\n },\n process: { ...processInfo, Name: pageCategory },\n partner: createPartnerWithSearch(store),\n ownership: emptyOwnership,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormLayerLoad() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n\n const emptyConfigLoad = { ...emptyConfig };\n delete emptyConfigLoad.PriceTypeParameter;\n delete emptyConfigLoad.PriceType;\n\n track('VWBasic_FormLayer_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n NewsletterType: undefined,\n CycleID: undefined,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormLoad() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n const emptyConfigLoad = { ...emptyConfig };\n\n track('VWBasic_Form_Pageload', {\n ...defaultTrackingEvent,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n user: { ...emptyLatLongZip },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n });\n },\n trackFormLoadRace() {\n const { formName, formType, pageCategory } = store.getState().formData.fields;\n const emptyConfigLoad = { ...emptyConfig };\n\n track('VWBasic_Form_Load', {\n ...defaultTrackingEvent,\n environment: { featureAppIdAppVersion: process.env.VERSION },\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n FormStart: true,\n },\n eventInfo: {\n ...getBaseEventInfo(store, brand),\n contentId: config.trigger ? config.trigger : undefined,\n contentLabels: undefined,\n },\n user: { ...emptyLatLongZip },\n configuration: { ...emptyConfigLoad, ...getCarlineConfiguration(store) },\n process: {\n Name: pageCategory,\n ...createTrackingProcess(store),\n },\n partner: createPartner(store),\n });\n },\n\n trackFormErrorMessageLoad(errorInfo?: TrackingError, errorFields?: ErrorFormFields[]) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormErrorMessage_Load', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ErrorFormFields: { FieldNameandID: [...errorFields] },\n ErrorAdressValidationFields: undefined,\n },\n eventInfo: { ...getBaseEventInfo(store, brand) },\n error: { message: errorInfo.message, code: undefined, referringUrl: undefined },\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormFieldClick(eventInfo: TrackingEventInfo, form: TrackingForm) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormField_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ...form,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n process: createTrackingProcess(store),\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormFilterSelect(eventInfo: TrackingEventInfo, filter: TrackingFilter, form: TrackingForm) {\n const { formName, formType } = store.getState().formData.fields;\n\n track('VWBasic_FormFilterSelect_Click', {\n ...defaultTrackingEvent,\n form: {\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n ...form,\n },\n eventInfo: { ...getBaseEventInfo(store, brand), ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCarlineConfiguration(store),\n },\n filter,\n process: createTrackingProcess(store),\n partner: createPartner(store),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n trackFormCloseClick(eventInfo: TrackingEventInfo, formInfo?: TrackingForm) {\n const baseEventInfoCloseClick = { ...getBaseEventInfo(store, brand) };\n delete baseEventInfoCloseClick.templateType;\n\n const partner: TrackingPartner = createPartnerWithSearch(store);\n delete partner.informationDepartment;\n\n const processInfo = createTrackingProcess(store);\n // delete processInfo.StepNumber;\n const { formName, formType, vicciData, pageCategory } = store.getState().formData.fields;\n\n track('VWBasic_FormClose_Click', {\n ...defaultTrackingEvent,\n form: {\n ...formInfo,\n FormType: formType,\n FormName: `vw-oneform-${formName}`,\n PrefContactChannels: undefined,\n SourceID: undefined,\n ErrorFormFields: undefined,\n OpportunityUID: undefined,\n FormVersion: `vw-oneform-${formName}-${process.env.VERSION}`,\n CycleID: undefined,\n FormFields: undefined,\n ...getFormAppointments(store),\n },\n eventInfo: { ...baseEventInfoCloseClick, ...eventInfo },\n configuration: {\n ...emptyCarlineConfig,\n ...getCompleteConfigurationFromVicci(vicciData),\n ...getCarlineConfiguration(store),\n },\n process: {...processInfo, Name: pageCategory},\n partner,\n link: createTrackingLink(eventInfo.contentId),\n environment: { featureAppIdAppVersion: process.env.VERSION },\n });\n },\n };\n }, [trackingManager]);\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { NuevaCitaPosventaFormController } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nconst BlueBackground = styled.div`\n background: radial-gradient(circle at center bottom, #00437A 0%, #001E50 100%);\n color: #ffffff;\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, FidelizacionTrigger, LeadDealerTrigger, LeadEmbededTrigger, LeadInPageTrigger, LeadTrigger, MGMTrigger, NavidadTrigger, NewsletterTrigger, ProspectEmbeddedTrigger, ProspectPosventaEmbedded, ProspectsTrigger, RaceTrigger, SACTrigger, WidgetTrigger, SuvperheroesTrigger, AutosubmitTrigger, ConcursoRodajeTrigger, PlanIdealTrigger, FeedbackTrigger\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-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 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 'feedback':\n triggerLoaded.current = 'feedback';\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","export const isLowRating = (rating: string) => Number(rating) == 1 || Number(rating) == 2 || Number(rating) == 3;\nexport const isHighRating = (rating: string) => Number(rating) == 4 || Number(rating) == 5;\nexport const isNoRating = (rating: string) => isNaN(Number(rating)) || Number(rating) < 1 || Number(rating) > 5; // is text or lower than 1 or higher than 5\n\nexport const allHighRatings = (ratings: [...any]) => {\n\tfor (const rating of ratings) {\n\t\tif (!isHighRating(rating)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\n\nexport const allLowRatings = (ratings: [...any]) => {\n\tfor (const rating of ratings) {\n\t\tif (!isLowRating(rating)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\n\nexport const allNoRatings = (ratings: [...any]) => {\n\tfor (const rating of ratings) {\n\t\tif (!isNoRating(rating)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\n\nexport const allHighOrNoRatings = (ratings: [...any]) => {\n\tfor (const rating of ratings) {\n\t\tif (isLowRating(rating)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\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_VEHICLES = 'UPDATE_VEHICLES';\n\ninterface UpdateVehicles {\n type: typeof UPDATE_VEHICLES;\n payload: [];\n}\n\nexport type VehiclesInfoActionTypes = UpdateVehicles;\n","import { vehiclesInfo } from '.';\nimport { VehiclesInfo } from 'src/types';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport { VehiclesInfoActionTypes, UPDATE_VEHICLES } from './vehicles-types';\n\nexport function vehiclesReducer(state: VehiclesInfo = null, action: OneFormActionTypes | VehiclesInfoActionTypes): any {\n\tswitch (action.type) {\n\t\tcase RESET_STATE:\n\t\t\treturn { ...vehiclesInfo };\n\t\tcase UPDATE_VEHICLES:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.payload,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n}\n","export const UPDATE_FORM = 'UPDATE_FORM';\nexport const UPDATE_FIELDS = 'UPDATE_FIELDS';\n\ninterface UpdateFormAction {\n type: typeof UPDATE_FORM;\n payload: any;\n}\n\ninterface UpdateFieldsAction {\n type: typeof UPDATE_FIELDS;\n payload: any;\n}\n\nexport type FormDataActionTypes = UpdateFieldsAction | UpdateFormAction;\n","import { formData } from './';\nimport { FormDataGroup } from 'src/types';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport { FormDataActionTypes, UPDATE_FIELDS, UPDATE_FORM } from './form-data-types';\n\nexport function formDataReducer(state: FormDataGroup = null, action: OneFormActionTypes | FormDataActionTypes): any {\n switch (action.type) {\n case RESET_STATE:\n return { ...formData };\n case UPDATE_FORM:\n return {\n fields: { ...state.fields, ...action.payload.fields },\n headers: { ...state.headers, ...action.payload.headers },\n flags: { ...state.flags, ...action.payload.flags },\n };\n case UPDATE_FIELDS:\n return {\n ...state,\n fields: { ...state.fields, ...action.payload },\n };\n default:\n return state;\n }\n}\n","import { Center, FormInfo, Geometry, Steps } from 'src/types';\nimport { Suggestion } from '../NewMap';\n\nexport const RESET_FORM_INFO = 'RESET_FORM_INFO';\nexport const SEND_FORM = 'SEND_FORM';\nexport const SET_FORM_INFO = 'SET_FORM_INFO';\nexport const SET_FORM_RESPONSE = 'SET_FORM_RESPONSE';\nexport const HIDE_LEGAL = 'HIDE_LEGAL';\nexport const SET_CUSTOM_LEGAL = 'SET_CUSTOM_LEGAL';\nexport const SET_SHOW_CALENDAR_ON_LOAD = 'SET_SHOW_CALENDAR_ON_LOAD';\nexport const SET_DELETE_CLOSE_AND_PREVIOUS = 'SET_DELETE_CLOSE_AND_PREVIOUS';\nexport const SET_FORM_SUBMITTED = 'SET_FORM_SUBMITTED';\nexport const UPDATE_LITERAL_FIELDS_STEPS = 'UPDATE_LITERAL_FIELDS_STEPS';\nexport const SET_INITIAL_STEPS = 'SET_INITIAL_STEPS';\nexport const SET_MOLECULAR_SERVICE_CONFIG = 'SET_MOLECULAR_SERVICE_CONFIG';\nexport const SET_NUMBER_OF_SCREENS = 'SET_NUMBER_OF_SCREENS';\nexport const SET_SEND_DMS_FAILED = 'SET_SEND_DMS_FAILED';\nexport const SET_STEPS_HISTORY = 'SET_STEPS_HISTORY';\nexport const SET_NAVIGATION_MOVING_FORWARD = 'SET_NAVIGATION_MOVING_FORWARD';\nexport const SHOW_FINAL_SCREEN = 'SHOW_FINAL_SCREEN';\nexport const SUGGESTION_IS_DEALER = 'SUGGESTION_IS_DEALER';\nexport const SUGGESTION_IS_ADDRESS = 'SUGGESTION_IS_ADDRESS';\nexport const SUGGESTION_IS_IN_CANARY_ISLANDS = 'SUGGESTION_IS_IN_CANARY_ISLANDS';\nexport const TRIGGER_EXIT_ANIMATION = 'TRIGGER_EXIT_ANIMATION';\nexport const UPDATE_FIRST_MAP_LOAD = 'UPDATE_FIRST_MAP_LOAD';\nexport const UPDATE_FORM_ENDED = 'UPDATE_FORM_ENDED';\nexport const UPDATE_FULLSCREEN = 'UPDATE_FULLSCREEN';\nexport const UPDATE_GENERIC_ERROR = 'UPDATE_GENERIC_ERROR';\nexport const UPDATE_GEOMETRY = 'UPDATE_GEOMETRY';\nexport const DISABLE_TRACKING = 'DISABLE_TRACKING';\nexport const UPDATE_INITIAL_ZOOM = 'UPDATE_INITIAL_ZOOM';\nexport const UPDATE_LAST_STEP = 'UPDATE_LAST_STEP';\nexport const UPDATE_MULTISTEP_SCREENINDEX = 'UPDATE_MULTISTEP_SCREENINDEX';\nexport const UPDATE_MULTISTEPS = 'UPDATE_MULTISTEPS';\nexport const UPDATE_NEXT_STEP = 'UPDATE_NEXT_STEP';\nexport const UPDATE_SCREEN = 'UPDATE_SCREEN';\nexport const UPDATE_SEND_FORM = 'UPDATE_SEND_FORM';\nexport const UPDATE_STEP = 'UPDATE_STEP';\nexport const UPDATE_STEPS = 'UPDATE_STEPS';\nexport const UPDATE_STEPS_HISTORY = 'UPDATE_STEPS_HISTORY';\nexport const UPDATE_SUGGESTION = 'UPDATE_SUGGESTION';\nexport const UPDATE_USER_CENTER = 'UPDATE_USER_CENTER';\nexport const UPDATE_USER_GEOLOCATION = 'UPDATE_USER_GEOLOCATION';\nexport const UPDATE_WAIT_FOR_NEXT_STEP = 'UPDATE_WAIT_FOR_NEXT_STEP';\n\ninterface SetFormInfoAction {\n type: typeof SET_FORM_INFO;\n payload: Partial;\n}\ninterface SetFormResponseAction {\n type: typeof SET_FORM_RESPONSE;\n payload: any;\n}\ninterface SetFormSubmittedAction {\n type: typeof SET_FORM_SUBMITTED;\n payload: boolean;\n}\ninterface UpdateLiteralFieldsSteps {\n type: typeof UPDATE_LITERAL_FIELDS_STEPS;\n payload: [];\n}\ninterface SetStepsHistoryAction {\n type: typeof SET_STEPS_HISTORY;\n payload: number[];\n}\ninterface SetShowCalendarAction {\n type: typeof SET_SHOW_CALENDAR_ON_LOAD;\n payload: boolean;\n}\n\ninterface DeleteCloseAndPrevious {\n type: typeof SET_DELETE_CLOSE_AND_PREVIOUS;\n payload: boolean;\n}\ninterface SetCustomLegalAction {\n type: typeof SET_CUSTOM_LEGAL;\n payload: JSX.Element;\n}\ninterface HideLegalAction {\n type: typeof HIDE_LEGAL;\n payload: boolean;\n}\ninterface SetInitialStepsAction {\n type: typeof SET_INITIAL_STEPS;\n payload: Steps[];\n}\ninterface SetNavigationMovingForwardAction {\n type: typeof SET_NAVIGATION_MOVING_FORWARD;\n payload: boolean;\n}\ninterface SetSendDmsFailedAction {\n type: typeof SET_SEND_DMS_FAILED;\n payload: boolean;\n}\ninterface SendFormAction {\n type: typeof SEND_FORM;\n payload: any;\n}\n\ninterface ResetFormInfoAction {\n type: typeof RESET_FORM_INFO;\n}\ninterface UpdateScreenAction {\n type: typeof UPDATE_SCREEN;\n payload: number;\n}\n\ninterface UpdateStepsHistoryAction {\n type: typeof UPDATE_STEPS_HISTORY;\n payload: number;\n}\ninterface UpdateInitialZoomAction {\n type: typeof UPDATE_INITIAL_ZOOM;\n payload: number;\n}\ninterface UpdateStepAction {\n type: typeof UPDATE_STEP;\n payload: Steps;\n}\ninterface UpdateLastStepAction {\n type: typeof UPDATE_LAST_STEP;\n payload: Steps;\n}\ninterface UpdateStepsAction {\n type: typeof UPDATE_STEPS;\n payload: Steps[];\n}\ninterface UpdateGenericErrorAction {\n type: typeof UPDATE_GENERIC_ERROR;\n payload: boolean;\n}\ninterface UpdateWaitForNextStepAction {\n type: typeof UPDATE_WAIT_FOR_NEXT_STEP;\n payload: boolean;\n}\n\ninterface TriggerExitAnimationAction {\n type: typeof TRIGGER_EXIT_ANIMATION;\n payload: boolean;\n}\n\ninterface UpdateFirstMapLoadAction {\n type: typeof UPDATE_FIRST_MAP_LOAD;\n payload: boolean;\n}\ninterface UpdateNextStepAction {\n type: typeof UPDATE_NEXT_STEP;\n payload: () => number;\n}\n\ninterface UpdateSendFormAction {\n type: typeof UPDATE_SEND_FORM;\n payload: () => boolean;\n}\n\ninterface ShowFinalScreenAction {\n type: typeof SHOW_FINAL_SCREEN;\n payload: boolean;\n}\n\ninterface SetNumberOfScreensAction {\n type: typeof SET_NUMBER_OF_SCREENS;\n payload: number;\n}\n\ninterface UpdateFullscreenAction {\n type: typeof UPDATE_FULLSCREEN;\n payload: boolean;\n}\ninterface UpdateMultiStepsAction {\n type: typeof UPDATE_MULTISTEPS;\n payload: Steps[];\n}\ninterface UpdateMultiScreenIndexAction {\n type: typeof UPDATE_MULTISTEP_SCREENINDEX;\n payload: number;\n}\n\ninterface UpdateUserCenterAction {\n type: typeof UPDATE_USER_CENTER;\n payload: Center;\n}\n\ninterface UpdateSuggestionIsDealer {\n type: typeof SUGGESTION_IS_DEALER;\n payload: boolean;\n}\ninterface UpdateSuggestionIsInCanaryIslands {\n type: typeof SUGGESTION_IS_IN_CANARY_ISLANDS;\n payload: boolean;\n}\ninterface UpdateSuggestionIsAddress {\n type: typeof SUGGESTION_IS_ADDRESS;\n payload: boolean;\n}\ninterface UpdateSuggestion {\n type: typeof UPDATE_SUGGESTION;\n payload: Suggestion;\n}\ninterface UpdateUserGeolocation {\n type: typeof UPDATE_USER_GEOLOCATION;\n payload: Suggestion;\n}\n\ninterface UpdateFormEnded {\n type: typeof UPDATE_FORM_ENDED;\n payload: boolean;\n}\n\ninterface UpdateGeometryAction {\n type: typeof UPDATE_GEOMETRY;\n payload: Geometry;\n}\ninterface DisableTrackingAction {\n type: typeof DISABLE_TRACKING;\n}\n\nexport type FormInfoActionTypes =\n | SetInitialStepsAction\n | ResetFormInfoAction\n | SendFormAction\n | SetCustomLegalAction\n | SetShowCalendarAction\n | DeleteCloseAndPrevious\n | HideLegalAction\n | SetFormInfoAction\n | SetFormResponseAction\n | SetFormSubmittedAction\n | UpdateLiteralFieldsSteps\n | SetNavigationMovingForwardAction\n | SetNumberOfScreensAction\n | SetSendDmsFailedAction\n | SetStepsHistoryAction\n | ShowFinalScreenAction\n | TriggerExitAnimationAction\n | UpdateFirstMapLoadAction\n | UpdateFormEnded\n | UpdateFullscreenAction\n | UpdateGenericErrorAction\n | UpdateGeometryAction\n | UpdateInitialZoomAction\n | UpdateLastStepAction\n | UpdateMultiScreenIndexAction\n | UpdateMultiStepsAction\n | UpdateNextStepAction\n | UpdateScreenAction\n | UpdateSendFormAction\n | UpdateStepAction\n | UpdateStepsAction\n | UpdateStepsAction\n | UpdateStepsHistoryAction\n | UpdateSuggestion\n | UpdateSuggestionIsAddress\n | UpdateSuggestionIsDealer\n | UpdateSuggestionIsInCanaryIslands\n | UpdateUserCenterAction\n | UpdateUserGeolocation\n | DisableTrackingAction\n | UpdateWaitForNextStepAction;\n","import { FormInfo } from 'src/types';\nimport { formInfoInitialState } from './';\nimport { OneFormActionTypes, RESET_STATE } from './types';\nimport {\n FormInfoActionTypes,\n SET_FORM_INFO,\n SET_FORM_RESPONSE,\n SET_INITIAL_STEPS,\n SET_FORM_SUBMITTED,\n UPDATE_LITERAL_FIELDS_STEPS,\n SET_SHOW_CALENDAR_ON_LOAD,\n SET_DELETE_CLOSE_AND_PREVIOUS,\n SET_NUMBER_OF_SCREENS,\n SET_SEND_DMS_FAILED,\n SET_STEPS_HISTORY,\n SHOW_FINAL_SCREEN,\n SET_NAVIGATION_MOVING_FORWARD,\n SUGGESTION_IS_DEALER,\n SUGGESTION_IS_IN_CANARY_ISLANDS,\n TRIGGER_EXIT_ANIMATION,\n UPDATE_FIRST_MAP_LOAD,\n UPDATE_FORM_ENDED,\n UPDATE_FULLSCREEN,\n UPDATE_GENERIC_ERROR,\n UPDATE_GEOMETRY,\n DISABLE_TRACKING,\n UPDATE_INITIAL_ZOOM,\n UPDATE_LAST_STEP,\n UPDATE_MULTISTEP_SCREENINDEX,\n UPDATE_MULTISTEPS,\n UPDATE_NEXT_STEP,\n UPDATE_SCREEN,\n UPDATE_SEND_FORM,\n UPDATE_STEP,\n UPDATE_STEPS_HISTORY,\n UPDATE_STEPS,\n UPDATE_SUGGESTION,\n SUGGESTION_IS_ADDRESS,\n HIDE_LEGAL,\n SET_CUSTOM_LEGAL,\n UPDATE_USER_CENTER,\n UPDATE_USER_GEOLOCATION,\n UPDATE_WAIT_FOR_NEXT_STEP,\n} from './form-info-types';\n\nexport function formInfoReducer(state: FormInfo = null, action: OneFormActionTypes | FormInfoActionTypes): any {\n switch (action.type) {\n case RESET_STATE:\n return { ...formInfoInitialState };\n case SET_FORM_INFO:\n return { ...state, ...action.payload };\n case SET_FORM_RESPONSE:\n return { ...state, formResponse: action.payload };\n case HIDE_LEGAL:\n return { ...state, hideLegal: action.payload };\n \n case SET_CUSTOM_LEGAL:\n return { ...state, customLegal: action.payload };\n\n case SET_FORM_SUBMITTED:\n return { ...state, formSubmitted: action.payload };\n case UPDATE_SCREEN:\n return {\n ...state,\n screenIndex: action.payload,\n };\n case SET_NAVIGATION_MOVING_FORWARD:\n return {\n ...state,\n navigationMovingForward: action.payload,\n };\n case SET_NUMBER_OF_SCREENS:\n return {\n ...state,\n numberOfScreens: action.payload,\n };\n case SET_STEPS_HISTORY:\n return { ...state, stepsHistory: action.payload };\n case UPDATE_STEPS_HISTORY:\n if (!state.stepsHistory || state.stepsHistory.length === 0) {\n return {\n ...state,\n };\n }\n \n const previousSteps = [...state.stepsHistory];\n const newNumber = action.payload;\n const index = previousSteps.indexOf(newNumber);\n\n if (index === -1) {\n previousSteps.push(newNumber);\n return {\n ...state,\n stepsHistory: previousSteps,\n };\n }\n return {\n ...state,\n };\n case UPDATE_STEP:\n return {\n ...state,\n step: action.payload,\n };\n case UPDATE_LAST_STEP:\n return {\n ...state,\n lastStep: action.payload,\n };\n case UPDATE_STEPS:\n return {\n ...state,\n steps: action.payload,\n };\n case SET_INITIAL_STEPS:\n return {\n ...state,\n initialSteps: action.payload,\n };\n case UPDATE_LITERAL_FIELDS_STEPS:\n return { \n ...state, \n stepsLiteralFields: { ...state.stepsLiteralFields, ...action.payload }\n };\n case SET_SHOW_CALENDAR_ON_LOAD:\n return {\n ...state,\n showCalendarOnLoad: action.payload,\n };\n case SET_DELETE_CLOSE_AND_PREVIOUS:\n return {\n ...state,\n deleteCloseAndPrevious: action.payload,\n };\n case TRIGGER_EXIT_ANIMATION:\n return {\n ...state,\n triggerExitAnimation: action.payload,\n };\n case UPDATE_GENERIC_ERROR:\n return {\n ...state,\n genericError: action.payload,\n };\n case SET_SEND_DMS_FAILED:\n return {\n ...state,\n sendDmsFailed: action.payload,\n };\n case UPDATE_NEXT_STEP:\n return {\n ...state,\n nextStepCallback: action.payload,\n };\n case UPDATE_FIRST_MAP_LOAD:\n return {\n ...state,\n firstMapLoad: action.payload,\n };\n case UPDATE_SEND_FORM:\n return {\n ...state,\n sendFormCallback: action.payload,\n };\n case UPDATE_FULLSCREEN:\n return {\n ...state,\n fullScreen: action.payload,\n };\n case SHOW_FINAL_SCREEN:\n return {\n ...state,\n showFinalScreen: action.payload,\n };\n case UPDATE_MULTISTEPS:\n return {\n ...state,\n multiSteps: action.payload,\n };\n case UPDATE_MULTISTEP_SCREENINDEX:\n return {\n ...state,\n multiStepScreenIndex: action.payload,\n };\n case UPDATE_USER_CENTER:\n return {\n ...state,\n userCenter: action.payload,\n };\n case SUGGESTION_IS_DEALER:\n return {\n ...state,\n suggestionIsDealer: action.payload,\n };\n case SUGGESTION_IS_IN_CANARY_ISLANDS:\n return {\n ...state,\n suggestionIsInCanaryIslands: action.payload,\n };\n case SUGGESTION_IS_ADDRESS:\n return {\n ...state,\n suggestionIsAddress: action.payload,\n };\n case UPDATE_SUGGESTION:\n return {\n ...state,\n userSuggestion: action.payload,\n };\n case UPDATE_USER_GEOLOCATION:\n return {\n ...state,\n userGeoLocation: action.payload,\n };\n case UPDATE_WAIT_FOR_NEXT_STEP:\n return {\n ...state,\n waitForNextStep: action.payload,\n };\n case UPDATE_FORM_ENDED:\n return {\n ...state,\n formEnded: action.payload,\n };\n /** deprecated */\n case UPDATE_INITIAL_ZOOM:\n return {\n ...state,\n initialZoom: action.payload,\n };\n case UPDATE_GEOMETRY:\n return {\n ...state,\n geometry: action.payload,\n };\n case DISABLE_TRACKING:\n return {\n ...state,\n trackingIsDisabled: true\n };\n\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport { VehiclesInfo, DealersInfo, FormDataGroup, FormInfo, OneFormState } from 'src/types';\nimport { vehiclesReducer, dealersReducer, formDataReducer, formInfoReducer } from './';\n\nexport const formInfoInitialState: FormInfo = {\n firstMapLoad: true,\n formEnded: false,\n formStarted: false,\n fullScreen: false,\n genericError: false,\n formSubmitted: false,\n multiStepScreenIndex: null,\n numberOfScreens: null,\n screenIndex: null,\n showFinalScreen: false,\n step: null,\n steps: null,\n stepsHistory: null,\n thankYouComponent: null,\n triggerExitAnimation: false,\n userIsAuthenticated: false,\n waitForNextStep: false,\n trackingIsDisabled: false,\n stepsLiteralFields: []\n};\n\nexport const formData: FormDataGroup = { headers: {}, fields: {} };\nexport const dealersInfo: DealersInfo = {\n dealers: null,\n installations: null,\n selectedCarline: null,\n points: null,\n selectedDealer: null,\n favouriteDealer: null,\n urlDealer: null,\n selectedInstallation: null,\n dealersOrInstallationsMode: null,\n carlines: null,\n oferta: null,\n salesGroup: null,\n match: null,\n citaCarlines: null,\n};\nexport const vehiclesInfo: VehiclesInfo = { \n brands: null, \n models: null, \n brandSelected: null, \n modelSelected: null \n};\n\nexport const initialState: OneFormState = {\n formInfo: formInfoInitialState,\n formData,\n dealersInfo,\n vehiclesInfo,\n};\n\nexport const oneFormReducer = combineReducers({\n formData: formDataReducer,\n formInfo: formInfoReducer,\n dealersInfo: dealersReducer,\n vehiclesInfo: vehiclesReducer,\n});\n","// Cache implementation based on Erik Rasmussen's `lru-memoize`:\n// https://github.com/erikras/lru-memoize\nvar NOT_FOUND = 'NOT_FOUND';\n\nfunction createSingletonCache(equals) {\n var entry;\n return {\n get: function get(key) {\n if (entry && equals(entry.key, key)) {\n return entry.value;\n }\n\n return NOT_FOUND;\n },\n put: function put(key, value) {\n entry = {\n key: key,\n value: value\n };\n },\n getEntries: function getEntries() {\n return entry ? [entry] : [];\n },\n clear: function clear() {\n entry = undefined;\n }\n };\n}\n\nfunction createLruCache(maxSize, equals) {\n var entries = [];\n\n function get(key) {\n var cacheIndex = entries.findIndex(function (entry) {\n return equals(key, entry.key);\n }); // We found a cached entry\n\n if (cacheIndex > -1) {\n var entry = entries[cacheIndex]; // Cached entry not at top of cache, move it to the top\n\n if (cacheIndex > 0) {\n entries.splice(cacheIndex, 1);\n entries.unshift(entry);\n }\n\n return entry.value;\n } // No entry found in cache, return sentinel\n\n\n return NOT_FOUND;\n }\n\n function put(key, value) {\n if (get(key) === NOT_FOUND) {\n // TODO Is unshift slow?\n entries.unshift({\n key: key,\n value: value\n });\n\n if (entries.length > maxSize) {\n entries.pop();\n }\n }\n }\n\n function getEntries() {\n return entries;\n }\n\n function clear() {\n entries = [];\n }\n\n return {\n get: get,\n put: put,\n getEntries: getEntries,\n clear: clear\n };\n}\n\nexport var defaultEqualityCheck = function defaultEqualityCheck(a, b) {\n return a === b;\n};\nexport function createCacheKeyComparator(equalityCheck) {\n return function areArgumentsShallowlyEqual(prev, next) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n } // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n\n\n var length = prev.length;\n\n for (var i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n };\n}\n// defaultMemoize now supports a configurable cache size with LRU behavior,\n// and optional comparison of the result value with existing values\nexport function defaultMemoize(func, equalityCheckOrOptions) {\n var providedOptions = typeof equalityCheckOrOptions === 'object' ? equalityCheckOrOptions : {\n equalityCheck: equalityCheckOrOptions\n };\n var _providedOptions$equa = providedOptions.equalityCheck,\n equalityCheck = _providedOptions$equa === void 0 ? defaultEqualityCheck : _providedOptions$equa,\n _providedOptions$maxS = providedOptions.maxSize,\n maxSize = _providedOptions$maxS === void 0 ? 1 : _providedOptions$maxS,\n resultEqualityCheck = providedOptions.resultEqualityCheck;\n var comparator = createCacheKeyComparator(equalityCheck);\n var cache = maxSize === 1 ? createSingletonCache(comparator) : createLruCache(maxSize, comparator); // we reference arguments instead of spreading them for performance reasons\n\n function memoized() {\n var value = cache.get(arguments);\n\n if (value === NOT_FOUND) {\n // @ts-ignore\n value = func.apply(null, arguments);\n\n if (resultEqualityCheck) {\n var entries = cache.getEntries();\n var matchingEntry = entries.find(function (entry) {\n return resultEqualityCheck(entry.value, value);\n });\n\n if (matchingEntry) {\n value = matchingEntry.value;\n }\n }\n\n cache.put(arguments, value);\n }\n\n return value;\n }\n\n memoized.clearCache = function () {\n return cache.clear();\n };\n\n return memoized;\n}","import { defaultMemoize, defaultEqualityCheck } from './defaultMemoize';\nexport { defaultMemoize, defaultEqualityCheck };\n\nfunction getDependencies(funcs) {\n var dependencies = Array.isArray(funcs[0]) ? funcs[0] : funcs;\n\n if (!dependencies.every(function (dep) {\n return typeof dep === 'function';\n })) {\n var dependencyTypes = dependencies.map(function (dep) {\n return typeof dep === 'function' ? \"function \" + (dep.name || 'unnamed') + \"()\" : typeof dep;\n }).join(', ');\n throw new Error(\"createSelector expects all input-selectors to be functions, but received the following types: [\" + dependencyTypes + \"]\");\n }\n\n return dependencies;\n}\n\nexport function createSelectorCreator(memoize) {\n for (var _len = arguments.length, memoizeOptionsFromArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n memoizeOptionsFromArgs[_key - 1] = arguments[_key];\n }\n\n var createSelector = function createSelector() {\n for (var _len2 = arguments.length, funcs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n funcs[_key2] = arguments[_key2];\n }\n\n var _recomputations = 0;\n\n var _lastResult; // Due to the intricacies of rest params, we can't do an optional arg after `...funcs`.\n // So, start by declaring the default value here.\n // (And yes, the words 'memoize' and 'options' appear too many times in this next sequence.)\n\n\n var directlyPassedOptions = {\n memoizeOptions: undefined\n }; // Normally, the result func or \"output selector\" is the last arg\n\n var resultFunc = funcs.pop(); // If the result func is actually an _object_, assume it's our options object\n\n if (typeof resultFunc === 'object') {\n directlyPassedOptions = resultFunc; // and pop the real result func off\n\n resultFunc = funcs.pop();\n }\n\n if (typeof resultFunc !== 'function') {\n throw new Error(\"createSelector expects an output function after the inputs, but received: [\" + typeof resultFunc + \"]\");\n } // Determine which set of options we're using. Prefer options passed directly,\n // but fall back to options given to createSelectorCreator.\n\n\n var _directlyPassedOption = directlyPassedOptions,\n _directlyPassedOption2 = _directlyPassedOption.memoizeOptions,\n memoizeOptions = _directlyPassedOption2 === void 0 ? memoizeOptionsFromArgs : _directlyPassedOption2; // Simplifying assumption: it's unlikely that the first options arg of the provided memoizer\n // is an array. In most libs I've looked at, it's an equality function or options object.\n // Based on that, if `memoizeOptions` _is_ an array, we assume it's a full\n // user-provided array of options. Otherwise, it must be just the _first_ arg, and so\n // we wrap it in an array so we can apply it.\n\n var finalMemoizeOptions = Array.isArray(memoizeOptions) ? memoizeOptions : [memoizeOptions];\n var dependencies = getDependencies(funcs);\n var memoizedResultFunc = memoize.apply(void 0, [function recomputationWrapper() {\n _recomputations++; // apply arguments instead of spreading for performance.\n\n return resultFunc.apply(null, arguments);\n }].concat(finalMemoizeOptions)); // If a selector is called with the exact same arguments we don't need to traverse our dependencies again.\n\n var selector = memoize(function dependenciesChecker() {\n var params = [];\n var length = dependencies.length;\n\n for (var i = 0; i < length; i++) {\n // apply arguments instead of spreading and mutate a local list of params for performance.\n // @ts-ignore\n params.push(dependencies[i].apply(null, arguments));\n } // apply arguments instead of spreading for performance.\n\n\n _lastResult = memoizedResultFunc.apply(null, params);\n return _lastResult;\n });\n Object.assign(selector, {\n resultFunc: resultFunc,\n memoizedResultFunc: memoizedResultFunc,\n dependencies: dependencies,\n lastResult: function lastResult() {\n return _lastResult;\n },\n recomputations: function recomputations() {\n return _recomputations;\n },\n resetRecomputations: function resetRecomputations() {\n return _recomputations = 0;\n }\n });\n return selector;\n }; // @ts-ignore\n\n\n return createSelector;\n}\nexport var createSelector = /* #__PURE__ */createSelectorCreator(defaultMemoize);\n// Manual definition of state and output arguments\nexport var createStructuredSelector = function createStructuredSelector(selectors, selectorCreator) {\n if (selectorCreator === void 0) {\n selectorCreator = createSelector;\n }\n\n if (typeof selectors !== 'object') {\n throw new Error('createStructuredSelector expects first argument to be an object ' + (\"where each property is a selector, instead received a \" + typeof selectors));\n }\n\n var objectKeys = Object.keys(selectors);\n var resultSelector = selectorCreator( // @ts-ignore\n objectKeys.map(function (key) {\n return selectors[key];\n }), function () {\n for (var _len3 = arguments.length, values = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n values[_key3] = arguments[_key3];\n }\n\n return values.reduce(function (composition, value, index) {\n composition[objectKeys[index]] = value;\n return composition;\n }, {});\n });\n return resultSelector;\n};","import { OneFormState } from 'src/types';\n\nimport { createSelector } from 'reselect';\n\nconst getPoint = (state: OneFormState) => {\n return state.dealersInfo.points;\n};\n\nexport const getPoints = createSelector(getPoint, (getPoint) => getPoint);\n\nconst getGeometryProperty = (state: OneFormState) => {\n return state.formInfo.geometry;\n};\n\nexport const getGeometry = createSelector(getGeometryProperty, (getGeometryProperty) => getGeometryProperty);\n\nconst getUserSuggestionProperty = (state: OneFormState) => {\n return state.formInfo.userSuggestion;\n};\n\nexport const getUserSuggestion = createSelector(\n getUserSuggestionProperty,\n (getUserSuggestionProperty) => getUserSuggestionProperty\n);\n\nconst getUserGeolocationProperty = (state: OneFormState) => {\n return state.formInfo.userGeoLocation;\n};\n\nexport const getUserGeolocation = createSelector(\n getUserGeolocationProperty,\n (getUserGeolocationProperty) => getUserGeolocationProperty\n);\n","import { FeatureAppEnvironment } from '@feature-hub/core';\nimport { Dependencies } from 'src';\n\nlet featureServicesMirror: Dependencies = null;\nlet featureEnvironmentMirror: FeatureAppEnvironment = null;\n\nexport const saveFeatureServices = (featureServices: Dependencies) => {\n featureServicesMirror = featureServices;\n};\nexport const saveEnvironment = (environment: FeatureAppEnvironment) => {\n featureEnvironmentMirror = environment;\n};\nexport const getFeatureServices = () => featureServicesMirror;\nexport const getEnvironment = () => featureEnvironmentMirror;\nexport const getOneHubConfig = () => featureServicesMirror['service-config-provider'].configs['es-onehub-vw'];\nexport const getDataServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-vwdata'];\nexport const getMolecularCdnServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-molecular-cdn'];\nexport const getMolecularServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-molecular'];\nexport const getVicciServiceConfig = () => featureServicesMirror['service-config-provider'].configs['oneapi-vicci'];\nexport const getVicciApiKey = () => featureServicesMirror['api-key-provider'].apiKey;\nexport const getGoogleApiKeyServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-google-apikey'];\nexport const getOneformBFFCdnServiceConfig = () =>\n featureServicesMirror['service-config-provider'].configs['es-oneform-bff-cdn'];\nexport const getOneformBFFServiceConfig = () => featureServicesMirror['service-config-provider'].configs['es-oneform-bff'];\nexport const getVwEventosConfig = () => featureServicesMirror['service-config-provider'].configs['es-vweventos'];\n","import * as React from 'react';\nimport * as Sentry from '@sentry/react';\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\n\ninterface Props {\n hub: Sentry.Hub;\n close?: CloseHandleV2;\n children: React.ReactNode;\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 { oneformBFFNdpsSend } 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\ninterface BajaComunicacionesProps {\n idPerson: IdPerson;\n dpsData: DpsData;\n}\n\nexport const BajaComunicacionesForm = (props: BajaComunicacionesProps) => {\n const { initializeForm } = useOneFormContext();\n const { idPerson, dpsData } = props;\n const store = useStore();\n const dispatch = useDispatch();\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 let NuevoFormData: Partial = {\n headers: {\n DPS_TOKEN: 'VW_DDB_FRM_BAJA_COMUNICACIONES',\n FORM_OBJECTIVE: 'Baja Comunicaciones',\n FORM_NAME: 'vw-oneform-baja-comunicaciones',\n },\n fields: {\n formName: 'baja-comunicaciones',\n formType: 'otherform',\n pageCategory: 'Baja Comunicaciones',\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 const { headers, fields, flags } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[FORM_REFERER]': url,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[FORM_VERSION]': `vw-oneform-baja-comunicaciones-${process.env.VERSION}`,\n 'headers[FK_SYSTEM]': idPerson && idPerson.Id ? idPerson.Id : '',\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_EMAIL]': idPerson && idPerson.PersonEmail ? idPerson.PersonEmail : removeWhiteSpace(fields.email),\n 'fields[PERSON_UNSUBSCRIBE_REASON]': fields.motivoBaja,\n 'fields[COMMENTS_PERSON]': fields.masInformacion,\n 'fields[PERSON_NAME]' : idPerson && idPerson.FirstName ? idPerson.FirstName : fields.name,\n 'fields[PERSON_SURNAME_1]' : idPerson && idPerson.LastName ? idPerson.LastName : fields.surname,\n 'fields[PERSON_SURNAME_2]' : idPerson && idPerson.MiddleName ? idPerson.MiddleName : fields.secondSurname,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': 'NO PERMITE',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\n 'flags[PERSON_RGPD_ADAPTED]': 'true',\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': 'true',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response?.data?.status?.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: '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 }, []);\n\n return !steps ? null : ;\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouBaja = () => {\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import {\n styled,\n Container,\n ContainerPadding,\n CTA,\n Text,\n ContainerGutter,\n BreakpointWrapper,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nimport {\n InputError,\n PoliticaPrivacidad,\n Email,\n MultipleCTASelection,\n TextAreaExtended,\n KoScreen,\n LoadingScreen,\n Nombre,\n Apellido,\n GeneralInputWidthWrapper,\n} from 'src/components';\nimport 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 const motivosOptions = [\n {\n label: 'Ya no me interesa el contenido',\n value: 'No me interesa el contenido'\n },\n {\n label: 'Recibo demasiadas comunicaciones vuestras',\n value: 'Recibo demasiadas comunicaciones'\n },\n {\n label: 'Tengo otras razones',\n value: 'Otras razones'\n },\n ];\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.PersonEmail ? (\n <>\n \n ¿Por qué quieres dar de baja el email {idPerson.PersonEmail}?\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.PersonEmail ) {\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.PersonEmail ? idPerson.PersonEmail : 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.MiddleName ? idPerson.MiddleName : 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\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\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n dpsDataRef.current = dpsData;\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setLoading(false);\n } else if (dpsData.pincode.pincodeUsed) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\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\t\treturn null;\n\t} else {\n return (\n \n );\n }\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n CTA,\n Spinner,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Alert } from 'src/icons-core-imports';\n\nimport { CloseHandleV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState, useCallback } from 'react';\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 44px 31px;\n flex: auto;\n text-align: center;\n width: 100%;\n @media screen and (min-width: 560px) {\n padding: 52px 46px;\n }\n @media screen and (min-width: 960px) {\n padding: var(--size-grid001);\n }\n`;\n\ninterface loadingSreenProps {\n isleads?: boolean;\n copy?: string;\n}\n\nexport function LoadingScreen(props: loadingSreenProps) {\n return (\n \n \n {props.copy ? {props.copy} : Enviando tu petición}\n \n );\n}\n\ninterface KoScreenProps {\n retrySubmit: (e: any) => void;\n closeLayerCallback?: CloseHandleV2;\n title?:string;\n bodyCopy?:string;\n isLEM?: boolean;\n hideSecondCTA?: boolean;\n}\n\nexport function KoScreen(props: KoScreenProps) {\n const { retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA } = props;\n\n return (\n \n \n
\n \n
\n \n {title? title : 'Uy, algo ha pasado'}\n \n \n \n {bodyCopy? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n stretchContent\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n {\n e.preventDefault();\n retrySubmit(e);\n closeLayerCallback({}, {}, {});\n }}\n >\n Reintentar\n \n { hideSecondCTA ? null :\n isLEM ? (\n \n Ir a la web\n \n ) : (\n {\n e.preventDefault();\n closeLayerCallback({}, {}, {});\n }}\n >\n Seguir navegando\n \n )\n }\n \n \n \n \n \n
\n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n CTA,\n styled,\n Layout,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, PoliticaPrivacidad } from 'src/components';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from './ConfirmarCallMeLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nfunction ConfirmacionCallMeOferta() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n\n
\n \n
\n \n \n
\n );\n}\n\ninterface LastNavigationProps {\n tmk?: string;\n lssi?: string;\n setTmkError?: React.Dispatch>;\n setLssiError?: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCallMe(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n\n const isValid = await triggerValidation();\n\n if (!isValid) return;\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCallMe(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCallMe(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionCallMeOferta);\n\nexport { ConnectedComponent as ConfirmacionCallMeOferta };\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { TwoElementsTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionCallMeOferta } from './ConfirmacionCallMeOferta';\nimport { Nombre, Telefono, GeneralInputWidthWrapper } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { FormController, useFaContent, useFeatureAppConfig, useOneFormContext } from 'src/feature-app';\nimport { ThankYouCallMeOferta } from '.';\nimport { useGetBrand } from 'src/feature-app/hooks';\n\nexport enum CallMeOfertaSteps {\n NombreTelefono,\n Confirmacion,\n}\n\nexport function CallMeOfertaForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n const brand = useGetBrand();\n\n const steps: Steps[] = [\n {\n title: (\n \n \n Para llamarte, necesitamos tus datos de contacto\n \n \n Nos pondremos en contacto contigo de lunes a viernes de 9:00 h a 19:30 h (excepto\n festivos nacionales) para darte más información.\n \n \n ),\n fields: (\n \n \n \n \n }\n secondElement={}\n />\n \n ),\n screenIndex: CallMeOfertaSteps.NombreTelefono,\n name: 'NombreTelefono',\n outputs: ['name', 'cellphone'],\n outputsText: ['name', 'cellphone'],\n },\n {\n fields: ,\n screenIndex: CallMeOfertaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'callme-oferta', formType: 'contact', pageCategory: 'Call Me Oferta' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n //Set de data para Producción\n const dataPro = {\n name: fields.name,\n // phone: `${fields.prefix}${fields.cellphone}`,\n phone: `${fields.cellphone}`,\n\n DESC_LSSI: fields.lssi === 'PERMITIDO' ? 'S' : 'N',\n DESC_LOPD_GDPR_PERFILADO: fields.tmk === 'PERMITIDO' ? 'S' : 'N',\n\n ref: url,\n\n oferta: faContent.oferta.modalidad + ' ' + faContent.oferta.cuotaText + ' ' + faContent.oferta.financiacionText,\n modelo: faContent.oferta.carline.title + ' ' + faContent.oferta.motorizacion,\n modelo_code: faContent.oferta.carline.code + '_' + faContent.marketingCodeConfig.SalesgroupId,\n };\n\n //Set de data para Preproducción\n const dataPre = {\n PRE: 1,\n name: fields.name,\n // phone: `${fields.prefix}${fields.cellphone}`,\n phone: `${fields.cellphone}`,\n\n DESC_LSSI: fields.lssi === 'PERMITIDO' ? 'S' : 'N',\n DESC_LOPD_GDPR_PERFILADO: fields.tmk === 'PERMITIDO' ? 'S' : 'N',\n\n ref: url,\n\n oferta: faContent.oferta.modalidad + ' ' + faContent.oferta.cuotaText + ' ' + faContent.oferta.financiacionText,\n modelo: faContent.oferta.carline.title + ' ' + faContent.oferta.motorizacion,\n modelo_code: faContent.oferta.carline.code + '_' + faContent.marketingCodeConfig.SalesgroupId,\n };\n\n const response: AxiosResponse = await Axios.post(\n 'https://www.volkswagencomerciales.es/call-me-now/email',\n window.location.hostname === 'www.volkswagen-comerciales.es' ? dataPro : dataPre\n ).catch((err) => {\n return null;\n });\n\n if (response && response.data && response.data.success && response.status == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n notALayer: false,\n formType: 'layer',\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { useGetBrand } from 'src/feature-app/hooks';\n\n\nexport const ThankYouCallMeOferta = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const brand = useGetBrand();\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n const comercialesScreen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import React, { useState } from 'react';\nimport { RadioButton, styled, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Info } from 'src/icons-core-imports';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { OneFormState } from 'src/types';\n\nconst LabelInfoWrapper = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-between;\n`;\n\nconst InfoWrapper = styled.div`\n\tmargin-left: 16px;\n\tcursor: pointer;\n\tsvg {\n\t\tfill: #001e50;\n\t}\n`;\n\ninterface ChecksEnvioProps {\n\tname: string;\n\tisPosventa?: boolean;\n\tisProducto?: boolean;\n}\n\nexport const ctasCheckEnvio = (isPosventa: boolean, isProducto: boolean) => {\n\tconst ctas = [\n\t\t{\n\t\t\tlabel: 'Sí, mis respuestas pueden ser enviadas y analizadas junto a mi nombre y bastidor del vehículo',\n\t\t\tvalue: isProducto ? '1' : '3',\n\t\t},\n\t\t{\n\t\t\tlabel: 'Mis respuestas pueden ser enviadas pero sin mencionar mi nombre ni el bastidor de mi vehículo',\n\t\t\textraInfo:\n\t\t\t\t'Seleccionando esta opción, el ' +\n\t\t\t\t(isPosventa ? 'Servicio Oficial' : 'punto de venta') +\n\t\t\t\t' no podrá ponerse en contacto contigo en relación a tus comentarios.',\n\t\t\tvalue: '2',\n\t\t},\n\t\t{\n\t\t\tlabel: 'No, mis respuestas solo deben ser analizadas de manera anónima',\n\t\t\textraInfo:\n\t\t\t\t'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\t\t\tvalue: '0',\n\t\t},\n\t];\n\treturn ctas;\n};\n\nexport const ChecksEnvio = (props: ChecksEnvioProps) => {\n\tconst { name, isPosventa, isProducto } = props;\n\n\tconst { handleNextStep } = useOneFormContext();\n\tconst dispatch = useDispatch();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst [firstCta, secondCta, thirdCta] = ctasCheckEnvio(isPosventa, isProducto);\n\tconst [firstOpen, setFirstOpen] = useState(false);\n\tconst [secondOpen, setSecondOpen] = useState(false);\n\n\tconst [value, setValue] = useState(fields[name]);\n\tconst { register } = useFormContext();\n\n\tconst [checkedOne, setCheckedOne] = useState(fields[name] == firstCta.value);\n\tconst [checkedTwo, setCheckedTwo] = useState(fields[name] == secondCta.value);\n\tconst [checkedThree, setCheckedThree] = useState(fields[name] == thirdCta.value);\n\n\tconst handleOnClick = (e: any) => {\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n\t\tsetTimeout(() => {\n\t\t\thandleNextStep();\n\t\t}, 0);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetValue(firstCta.value);\n\t\t\t\t\t\tsetCheckedOne(true);\n\t\t\t\t\t\tsetCheckedTwo(false);\n\t\t\t\t\t\tsetCheckedThree(false);\n\t\t\t\t\t\thandleOnClick(e);\n\t\t\t\t\t}}\n\t\t\t\t\tchecked={checkedOne}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetValue(secondCta.value);\n\t\t\t\t\t\t\tsetCheckedOne(false);\n\t\t\t\t\t\t\tsetCheckedTwo(true);\n\t\t\t\t\t\t\tsetCheckedThree(false);\n\t\t\t\t\t\t\thandleOnClick(e);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tchecked={checkedTwo}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetFirstOpen(!firstOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{firstOpen ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{secondCta.extraInfo}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tsetValue(thirdCta.value);\n\t\t\t\t\t\t\tsetCheckedOne(false);\n\t\t\t\t\t\t\tsetCheckedTwo(false);\n\t\t\t\t\t\t\tsetCheckedThree(true);\n\t\t\t\t\t\t\thandleOnClick(e);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tchecked={checkedThree}\n\t\t\t\t\t/>\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetSecondOpen(!secondOpen);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{secondOpen ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{thirdCta.extraInfo}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { LegalesCEM, LegalesSinConsentimientosCEM } from '.';\n\nconst ContentWrapper = styled.div`\n\tmin-height: calc(100vh - 227px);\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\t@media all and (min-width: 960px) {\n\t\tmin-height: calc(100vh - 227px);\n\t}\n\t.content-wrapper {\n\t\twidth: 100%;\n\t}\n`;\n\nexport const ConfirmacionCem = () => {\n\tconst dispatch = useDispatch();\n\tconst { fields } = useSelector((state: OneFormState) => state.formData);\n\tconst [lssiPincode, setLssiPincode] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (fields) {\n\t\t\tsetLssiPincode(fields.lssiPincode);\n\t\t}\n\t}, [fields]);\n\n\tuseEffect(() => {\n\t\tif (lssiPincode === 'PERMITE') {\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n\t\t}\n\t}, [lssiPincode]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{lssiPincode === 'PERMITE' ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t¿Listo para enviar?\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\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tMantente al día\n\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\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t{lssiPincode === 'PERMITE' ? (\n\t\t\t\t\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n","import {getInstallations, reportErrorSentry} from 'src/bff';\nimport {DpsData} from 'src/feature-service/es-oneform-core-feature-service/types';\nimport {arrayToObject, transformDate} from 'src/helpers';\nimport {IdDealer} from 'src/types';\n\nexport const valueWrongMarca = 1;\nexport const valueWrongModelo = 2;\nexport const valueWrongConcesion = 3;\nexport const valueWrongPersona = 4;\n\nexport const stepNameToFieldName = (str: string) => {\n\tif (!str) return str;\n\treturn str.charAt(0).toLowerCase() + str.slice(1);\n};\n\nexport const sanitizeKvps = (kvps: string) => {\n\tif (kvps.substring(0, 3) == 'ESP') {\n\t\tkvps = kvps.substring(3);\n\t}\n\n\tif (kvps.substring(kvps.length - 1) == 'V') {\n\t\tkvps = kvps.substring(0, kvps.length - 1);\n\t}\n\n\tif (kvps.substring(kvps.length - 1) == 'N') {\n\t\tkvps = kvps.substring(0, kvps.length - 1);\n\t}\n\n\treturn kvps;\n};\n\nexport const formatSinRespuestaValue = (answer: string) => {\n\tif (!answer) return undefined;\n\tif (answer == 'Sin respuesta' || Number(answer) == -1) return '9';\n\treturn answer;\n};\n\ninterface Data {\n\t[key: string]: string;\n}\n\nclass CEMDataError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'CEMDataError';\n\t}\n}\n\nexport const checkUndefinedsInData = (data: Data, form: string) => {\n\tObject.entries(data).map((entry) => {\n\t\tconst [field, data] = entry;\n\t\tif (data?.includes('undefined')) {\n\t\t\tconst error = new CEMDataError(`Undefined en el formulario CEM ${form}. ${field} tiene el valor ${data}`);\n\t\t\treportErrorSentry(error);\n\t\t}\n\t});\n};\n\nexport const getCemDate = (date: string) => {\n\tconst cemDate1 = transformDate(date, 'DD/MM/YYYY', 'YYYY-MM-DD');\n\tconst cemDate2 = transformDate(date, 'DD/MM/YYYY', 'DD-MM-YYYY');\n\tconst cemDate3 = transformDate(date, 'DD/MM/YYYY', 'DD/MM/YYYY');\n\tif (cemDate1) {\n\t\treturn cemDate1 + ' 12:00:00';\n\t} else if (cemDate2) {\n\t\treturn cemDate2 + ' 12:00:00';\n\t} else if (cemDate3) {\n\t\treturn cemDate3 + ' 12:00:00';\n\t}\n\treturn '';\n};\n\nexport const getInstallation = async (dpsData: DpsData, idDealer: IdDealer) => {\n\tconst installationsRaw = await getInstallations('VW_DDB_FRM_LEM_REC_LEM', 'VOLKSWAGEN_SF_INSTALLATION_ALL');\n\tif (!installationsRaw) {\n\t\tconsole.error('Installations not found');\n\t\treturn null;\n\t}\n\tconst installations = installationsRaw.map((instal) => arrayToObject(instal.attributes)) as IdDealer[];\n\tlet installation = null;\n\n\tif (dpsData.dealer) {\n\t\tinstallation = installations.find((instal) => instal.VGED_DealerCode__c == dpsData.dealer) as IdDealer;\n\t} else if (dpsData.kvps) {\n\t\tinstallation = installations.find(\n\t\t\t(instal) => sanitizeKvps(instal.KVPSCode__c) == sanitizeKvps(dpsData.kvps),\n\t\t) as IdDealer;\n\t}\n\n\tif (!installation && idDealer.VGED_DealerCode__c) {\n\t\tinstallation = installations.find((instal) => instal.VGED_DealerCode__c == idDealer.VGED_DealerCode__c) as IdDealer;\n\t} else if (!installation && idDealer.KVPSCode__c) {\n\t\tinstallation = installations.find(\n\t\t\t(instal) => sanitizeKvps(instal.KVPSCode__c) == sanitizeKvps(idDealer.KVPSCode__c),\n\t\t) as IdDealer;\n\t}\n\n\tif (installation) {\n\t\tif (\n\t\t\tinstallation.VGED_DealerCode__c == '03905' ||\n\t\t\tsanitizeKvps(installation.KVPSCode__c) == '00494' ||\n\t\t\tinstallation.VGED_CommercialName__c == 'SAFA FUENGIROLA'\n\t\t) {\n\t\t\tinstallation.VGED_CommercialName__c = 'SAFAMOTOR';\n\t\t}\n\n\t\treturn installation;\n\t}\n\n\tconsole.error('Installation not found into installations');\n\treturn null;\n};\n\nexport const getSfAddressRest = (addressSf: string, node?: string) => {\n\tconst address = addressSf\n\t\t.replace(/^SfAddressRest\\(|\\)$/g, '')\n\t\t.split(', ')\n\t\t.reduce((obj, pair) => {\n\t\t\tconst [key, value] = pair.split('=');\n\t\t\tobj[key] = value === 'null' ? null : value;\n\t\t\treturn obj;\n\t\t}, {});\n\n\tif (node) {\n\t\treturn address[node];\n\t} else {\n\t\treturn address;\n\t}\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport dayjs from 'dayjs';\nimport { useFeatureServices, useFaContent } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdOrder, IdPerson, IdVehicle, IdDealer } from 'src/types';\nimport { CemFormVenta, CemFormPosventa } from 'src/forms';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { LoadingEncuestas } from 'src/components';\nimport { getInstallation } from 'src/forms/Cem/helpers';\n\nexport interface CemFormProps {\n\tidOrder?: IdOrder;\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer?: IdDealer;\n\tdpsData: DpsData;\n\tinstallation?: IdDealer;\n}\n\nexport function CemController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\tconst [isPosventa, setIsPosventa] = useState(false);\n\tconst [caducado, setCaducado] = useState(false);\n\tconst today = dayjs(new Date());\n\n\tconst dpsDataRef = useRef(null);\n\tconst idPersonRef = useRef(null);\n\tconst idVehicleRef = useRef(null);\n\tconst idDealerRef = useRef(null);\n\tconst idOrderRef = useRef(null);\n\n\tconst [installation, setInstallation] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\tconst faContent = useFaContent();\n\tconst dpsData = oneFormService.getDpsData();\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = async () => {\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError('Pincode not found');\n\t\t} else if (dpsData.pincode.pincodeUsed) {\n\t\t\tsetUsado(true);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tconst idPerson = createPincodeEntity(dpsData, 'PERSON') as IdPerson;\n\t\t\tconst idVehicle = createPincodeEntity(dpsData, 'VEHICLE') as IdVehicle;\n\t\t\tconst idDealer = createPincodeEntity(dpsData, 'DEALER') as IdDealer;\n\t\t\tconst idOrder = createPincodeEntity(dpsData, 'ORDER') as IdOrder;\n\n\t\t\tdpsDataRef.current = dpsData;\n\t\t\tidPersonRef.current = idPerson;\n\t\t\tidVehicleRef.current = idVehicle;\n\t\t\tidDealerRef.current = idDealer;\n\t\t\tidOrderRef.current = idOrder;\n\n\t\t\tconst fechaEnvio = dpsData.fe ? dayjs(atob(dpsData.fe), 'DD/MM/YYYY') : null;\n\t\t\tif (!fechaEnvio || today.diff(dayjs(fechaEnvio), 'day') > 8) {\n\t\t\t\tsetCaducado(true);\n\t\t\t} else {\n\t\t\t\tif (faContent.cem == 'POSVENTA' || faContent.encuesta == 'CEM - POSVENTA') {\n\t\t\t\t\tsetIsPosventa(true);\n\t\t\t\t} else if ((faContent.cem == 'VENTA' || faContent.encuesta == 'CEM - VENTA')) {\n\t\t\t\t\tsetIsPosventa(false);\n\t\t\t\t} else {\n\t\t\t\t\thandleError('Form not found');\n\t\t\t\t}\n\t\t\t\tconst installation = await getInstallation(dpsData, idDealer);\n\t\t\t\tif (installation) {\n\t\t\t\t\tsetInstallation(installation);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thandleError();\n\t\t\t\t}\n\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst handleError = (message?: string) => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t\tif (message) {\n\t\t\tconsole.error(message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (caducado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{isPosventa ? (\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 { 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\tconst { formResponse } = useSelector((state: OneFormState) => state.formInfo);\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formResponse.numberOfScreens;\n\n\t\tdispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\t\tdispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(formResponse)\n\t\t);\n\t}, []);\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { checkUndefinedsInData, formatSinRespuestaValue, getCemDate, getSfAddressRest, sanitizeKvps, stepNameToFieldName, valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from 'src/forms/Cem/helpers';\nimport { formatToTwoChars, strTitlelize } from 'src/helpers';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getArrayOfStepsNames, getIndexInSteps, removeMultipleStepsAndResetScreenIndex, resetStepsScreenIndex, } from 'src/forms/helpers/add-remove-steps';\nimport { stepsPosventa, CemFormProps, LastQuestionFlow } from 'src/forms/Cem';\nimport { ThankYouCEM } from 'src/forms/Cem/ThankYouCem';\n\nexport function CemFormPosventa(props: CemFormProps) {\n\tconst { idOrder, idPerson, idVehicle, idDealer, dpsData, installation } = props;\n\tconst { initializeForm, handleNextStep } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst adviser = urlParams.get('adviser');\n\tconst dev = urlParams.get('dev') !== null;\n\n\tconst {\n\t\tdatosCorrectos,\n\t\tdatosIncorrectos,\n\t\tsatisfaccionTrato,\n\t\tsatisfaccionOrganizacion,\n\t\tsatisfaccionTrabajoRealizado,\n\t\tsatisfaccionConcesion,\n\t\tmodelo,\n\t\tenviarConcesion,\n\t\tmasPreguntas,\n\t} = formData.fields;\n\n\tconst modeloRef = useRef(null);\n\n\t// 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\tconst NuevoFormData: Partial = {\n\t\theaders: {\n\t\t\tFORM_DETAILS: 'CEM Posventa',\n\t\t\tFORM_OBJECTIVE: 'Encuesta',\n\t\t\tDPS_TOKEN: 'VW_DDB_FRM_CEM_PV_2024',\n\t\t\tFORM_ID: 'Email_B04_C01_CEM_Aftersales',\n\t\t},\n\t\tfields: {\n\t\t\tlssiPincode: idPerson.LSSI__c,\n\t\t\tformName: 'cem-posventa',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t\tname: idPerson.FirstName,\n\t\t\tsurname: idPerson.LastName,\n\t\t\tsecondSurname: idPerson.MiddleName,\n\t\t\tinstallation: installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : '',\n\t\t}, // Analítica\n\t};\n\n\tconst sendSurvey = () => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn !( // negation\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongMarca)\n\t\t\t||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongPersona)\n\t\t\t||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongConcesion)\n\t\t);\n\t};\n\n\tconst getData = () => {\n\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields, headers } = formData;\n\t\tconst { tc, today, url, device } = getParamsForm();\n\n\t\tconst data = {\n\t\t\t...formatHeaders(headers),\n\t\t\t'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n\t\t\t'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n\t\t\t'headers[FORM_URL]': url,\n\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t\t'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\t\t\t'headers[FK_SYSTEM]': dpsData.or,\n\n\t\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t\t'fields[SF_LEAD_INSTALLATION_ID]': installation.Id,\n\t\t\t'fields[SF_LEAD_INSTALLATION_NAME]': installation.VGED_CommercialName__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE]': installation.VGED_DealerCode__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE_KVPS]': sanitizeKvps(installation.KVPSCode__c),\n\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t'fields[PERSON_NAME]': fields.name,\n\t\t\t'fields[PERSON_SURNAME_1]': fields.surname,\n\t\t\t'fields[PERSON_SURNAME_2]': fields.secondSurname,\n\t\t\t'fields[PERSON_EMAIL]': idPerson.PersonEmail,\n\t\t\t'fields[PERSON_PHONE_MOBILE]': idPerson.PersonMobilePhone,\n\t\t\t'fields[PERSON_POSTAL_ROAD_NAME]': getSfAddressRest(idPerson.PersonMailingAddress, 'street'),\n\t\t\t'fields[PERSON_POSTAL_CP]': getSfAddressRest(idPerson.PersonMailingAddress, 'postalCode'),\n\t\t\t'fields[PERSON_POSTAL_PROVINCE_CODE]': formatToTwoChars(getSfAddressRest(idPerson.PersonMailingAddress, 'stateCode')),\n\t\t\t'fields[VEH_ACTUAL_PLATE]': idVehicle.VGED_RegistrationPlate__c,\n\t\t\t'fields[VEH_ACTUAL_FRAME]': idVehicle.Name,\n\t\t\t'fields[VEH_ACTUAL_MODEL]': idVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : null,\n\t\t\t\n\t\t\t'fields[SURVEY_ANSWER_01]': fields.datosCorrectos == 'true' ? '1' : '2',\n\t\t\t'fields[SURVEY_ANSWER_02]': fields.datosCorrectos == 'false' ? fields.datosIncorrectos : null,\n\t\t\t'fields[SURVEY_ANSWER_03]': fields.datosCorrectos == 'false' && fields.datosIncorrectos == 2 ? fields.modelo : null,\n\t\t\t// conditional send\n\t\t\t'fields[SURVEY_ANSWER_30]': fields.publicarRespuestas == '1' ? 'PERMITE' : 'NO PERMITE',\n\t\t\t'fields[SURVEY_ANSWER_32]': adviser,\n\t\t\t'fields[SURVEY_ANSWER_34]': fields.enviarConcesion,\n\n\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t\t//'flags[FLAG_RELACION_MARCA_SIN_IC]': 'false',\n\t\t};\n\n\t\tif(sendSurvey()) {\n\t\t\tdata['fields[SURVEY_ANSWER_06]'] = formatSinRespuestaValue(fields.satisfaccionTrato);\n\t\t\tdata['fields[SURVEY_ANSWER_07]'] = formatSinRespuestaValue(fields.satisfaccionTratoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_08]'] = formatSinRespuestaValue(fields.satisfaccionOrganizacion);\n\t\t\tdata['fields[SURVEY_ANSWER_09]'] = formatSinRespuestaValue(fields.satisfaccionOrganizacionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_10]'] = formatSinRespuestaValue(fields.satisfaccionTrabajoRealizado);\n\t\t\tdata['fields[SURVEY_ANSWER_11]'] = formatSinRespuestaValue(fields.satisfaccionTrabajoRealizadoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_12]'] = formatSinRespuestaValue(fields.satisfaccionConcesion);\n\t\t\tdata['fields[SURVEY_ANSWER_13]'] = formatSinRespuestaValue(fields.satisfaccionConcesionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_14]'] = formatSinRespuestaValue(fields.aspectoSatisfaccionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_15]'] = fields.informado,\n\t\t\tdata['fields[SURVEY_ANSWER_16]'] = formatSinRespuestaValue(fields.alternativaTransporte);\n\t\t\tdata['fields[SURVEY_ANSWER_17]'] = formatSinRespuestaValue(fields.tiempoSatisfaccion);\n\t\t\tdata['fields[SURVEY_ANSWER_18]'] = fields.motivoVisita?.split(',').sort((a, b) => a - b).join('|');\n\t\t\tdata['fields[SURVEY_ANSWER_19]'] = formatSinRespuestaValue(fields.satisfaccionVehiculo);\n\t\t\tdata['fields[SURVEY_ANSWER_20]'] = formatSinRespuestaValue(fields.satisfaccionVehiculoMotivo);\n\t\t}\n\n\t\tif (dpsData.dat) {\n\t\t\tdata['fields[CEM_DATE]'] = getCemDate(dpsData.dat);\n\t\t}\n\n\t\treturn data;\n\t};\n\n\tuseEffect(() => {\n\t\tif(dev) {\n\t\t\tconsole.log(getData());\n\t\t}\n\t}, [formData]);\n\n\tconst sendForm = (): Promise => {\n\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst dataStringified = JSON.stringify(getData());\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tcheckUndefinedsInData(getData(), 'Posventa');\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response && response.data?.status?.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\t/**\n\t * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps\n\t * ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n\t * @param stepsToAdd\n\t * @param alternativeSteps\n\t * @returns\n\t */\n\tconst addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tconst stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n\t\t// Hay que revertir los steps para que se añadan en el orden correcto\n\t\tconst indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n\t\tlet newSteps = [...stepsToUse];\n\n\t\tindexesInSteps.forEach((index, i) => {\n\t\t\tif (index === -1) {\n\t\t\t\tnewSteps = addRemovedStep(stepsPosventa, stepsToUse, stepsToAdd[i], screenIndex);\n\t\t\t}\n\t\t});\n\t\tconst finalSteps = resetStepsScreenIndex(newSteps);\n\t\treturn finalSteps;\n\t};\n\n\tconst addSteps = (stepsToAdd: string[]) => {\n\t\tsetLoading(true);\n\n\t\tconst finalSteps = addingStepsLogic(stepsToAdd);\n\t\tupdateSteps(finalSteps);\n\t\thandleNextStep();\n\n\t\tsetLoading(false);\n\t};\n\n\tconst removeSteps = (stepsToDelete: string[]) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst updateSteps = (steps: Steps[]) => {\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: steps });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n\t};\n\n\tconst replaceWithLeadInfo = (string: string) => {\n\t\treturn string\n\t\t\t.replace(\n\t\t\t\t'[Modelo]',\n\t\t\t\tidVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : 'Volkswagen'\n\t\t\t)\n\t\t\t.replace('[Marca]', idVehicle.RCY_BrandList__c)\n\t\t\t.replace('[Installation]', strTitlelize(installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : ''));\n\t};\n\n\tconst replaceModelo = (string: string) => {\n\t\tif (modeloRef.current) {\n\t\t\treturn string.replace(modeloRef.current, modelo);\n\t\t} else {\n\t\t\treturn string.replace(idVehicle.VGED_ModelGroup__c, modelo);\n\t\t}\n\t};\n\n\tconst modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n\t\treturn steps.map((step) => {\n\t\t\tif (!step.title) return step;\n\t\t\tif (Array.isArray(step.title.props.children)) {\n\t\t\t\tstep.title.props.children = step.title.props.children.map((child: any) => {\n\t\t\t\t\tif (typeof child === 'object') {\n\t\t\t\t\t\tif (typeof child.props.children === 'object') {\n\t\t\t\t\t\t\tchild.props.children.props.children = replaceCallback(child.props.children.props.children);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchild.props.children = replaceCallback(child.props.children);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild = replaceCallback(child);\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t});\n\t\t\t} else if (typeof step.title.props.children === 'object') {\n\t\t\t\tstep.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n\t\t\t} else {\n\t\t\t\tstep.title.props.children = replaceCallback(step.title.props.children);\n\t\t\t}\n\t\t\treturn step;\n\t\t});\n\t};\n\n\tconst getOrderStep = (order: number, sc4: number, sc5: number, sc6: number) => {\n\t\treturn order === 1 ? sc4 : order === 2 ? sc5 : order === 3 ? sc6 : null;\n\t};\n\n\tconst shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n\t/**\n\t * El orden de las preguntas Sc_4,Sc_5 y Sc_6 tiene que ser aleatorio.\n\t * @param steps\n\t */\n\tconst randomizeSteps = (steps: Steps[]): Steps[] => {\n\t\tconst sc4 = getIndexInSteps(steps, 'SatisfaccionTrato');\n\t\tconst sc4Motivo = getIndexInSteps(steps, 'SatisfaccionTratoMotivo');\n\n\t\tconst sc5 = getIndexInSteps(steps, 'SatisfaccionOrganizacion');\n\t\tconst sc5Motivo = getIndexInSteps(steps, 'SatisfaccionOrganizacionMotivo');\n\n\t\tconst sc6 = getIndexInSteps(steps, 'SatisfaccionTrabajoRealizado');\n\t\tconst sc6Motivo = getIndexInSteps(steps, 'SatisfaccionTrabajoRealizadoMotivo');\n\n\t\tconst newSteps = [...steps];\n\t\tconst [first, second, third] = shuffle([1, 2, 3]);\n\t\tconst firstStep = getOrderStep(first, sc4, sc5, sc6);\n\t\tconst secondStep = getOrderStep(second, sc4, sc5, sc6);\n\t\tconst thirdStep = getOrderStep(third, sc4, sc5, sc6);\n\t\tnewSteps[sc4] = steps[firstStep];\n\t\tnewSteps[sc4Motivo] = steps[firstStep + 1];\n\t\tnewSteps[sc5] = steps[secondStep];\n\t\tnewSteps[sc5Motivo] = steps[secondStep + 1];\n\t\tnewSteps[sc6] = steps[thirdStep];\n\t\tnewSteps[sc6Motivo] = steps[thirdStep + 1];\n\t\treturn newSteps;\n\t};\n\n\tconst getFormInfo = (steps: Steps[]) => {\n\t\tconst newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n\t\tconst randomizedSteps = randomizeSteps(newSteps);\n\n\t\treturn {\n\t\t\tfirstStep: randomizedSteps[0],\n\t\t\tlastStep: randomizedSteps[randomizedSteps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: randomizedSteps.length,\n\t\t\tnewSteps: randomizedSteps,\n\t\t};\n\t};\n\n\t// Lógica para modificar el flujo del formulario\n\tuseEffect(() => {\n\t\tif (modelo) {\n\t\t\tconst newSteps = modifyTitleSteps(stepsPosventa, replaceModelo);\n\t\t\tmodeloRef.current = modelo;\n\t\t\tupdateSteps(newSteps);\n\t\t}\n\t}, [modelo]);\n\n\tuseEffect(() => {\n\t\tif (datosCorrectos === 'true') {\n\t\t\tconst steps = store.getState().formInfo.steps;\n\t\t\tconst modelo = getIndexInSteps(steps, 'Modelo');\n\t\t\t// 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\t\t\tif (modelo === -1) {\n\t\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['DatosIncorrectos', 'Modelo']);\n\t\t\t\tupdateSteps(finalSteps);\n\t\t\t} else {\n\t\t\t\tremoveSteps(['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n\t\t\t}\n\t\t} else if (datosCorrectos === 'false') {\n\t\t\taddSteps(['DatosIncorrectos', 'Modelo']);\n\t\t}\n\t}, [datosCorrectos]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tdatosIncorrectos == valueWrongMarca || \n\t\t\tdatosIncorrectos == valueWrongConcesion || \n\t\t\tdatosIncorrectos === valueWrongPersona \n\t\t) {\n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n\t\t\tconst finalSteps = resetStepsScreenIndex(newsteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t\tif (datosIncorrectos == valueWrongModelo) { \n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = resetStepsScreenIndex(initialSteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t}, [datosIncorrectos]);\n\n\tuseEffect(() => {\n\t\tif (!enviarConcesion) {\n\t\t\treturn;\n\t\t}\n\t\tif (enviarConcesion === '3') {\n\t\t\taddSteps(['DatosPersonales']);\n\t\t} else {\n\t\t\tremoveSteps(['DatosPersonales']);\n\t\t}\n\t}, [enviarConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!masPreguntas) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (masPreguntas === 'true') {\n\t\t\tconst stepNames = getArrayOfStepsNames(stepsPosventa, 'MasPreguntas', 'EnviarConcesion');\n\t\t\taddSteps(stepNames);\n\t\t} else if (masPreguntas === 'false') {\n\t\t\tconst { steps } = store.getState().formInfo;\n\t\t\tconst stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n\t\t\tremoveSteps(stepNames);\n\t\t}\n\t}, [masPreguntas]);\n\n\t/**\n\t * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y no funciona de la manera esperada.\n\t *\n\t * @param stepToRemove\n\t * @param stepToAdd\n\t */\n\tconst removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n\t\tconst addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n\t\tconst finalSteps = resetStepsScreenIndex(addedSteps);\n\t\thandleNextStep();\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst handleShowMotivo = (nameOfMotivoStep: string, value?: string) => {\n\t\tif (value) {\n\t\t\tif (Number(value) == -1) value = 'Sin respuesta';\n\t\t\tif (isLowRating(value)) {\n\t\t\t\taddSteps([nameOfMotivoStep]);\n\t\t\t} else if (isHighRating(value) || isNoRating(value)) {\n\t\t\t\tremoveSteps([nameOfMotivoStep]);\n\t\t\t\tdelete formData.fields[stepNameToFieldName(nameOfMotivoStep)];\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionTratoMotivo', satisfaccionTrato);\n\t}, [satisfaccionTrato]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionOrganizacionMotivo', satisfaccionOrganizacion);\n\t}, [satisfaccionOrganizacion]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionTrabajoRealizadoMotivo', satisfaccionTrabajoRealizado);\n\t}, [satisfaccionTrabajoRealizado]);\n\n\tuseEffect(() => {\n\t\tconst stepName = store.getState().formInfo?.step?.name;\n\n\t\t// Verificamos que se ha contestado SatisfaccionConcesion\n\t\tif (stepName == 'SatisfaccionConcesion') {\n\n\t\t\tconst ratings = [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionTrabajoRealizado];\n\t\t\tconst { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionConcesion);\n\n\t\t\tif (mostrarQlast1 && mostrarQlast2) {\n\t\t\t\taddSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n\t\t\t\tdelete formData.fields.satisfaccionConcesionMotivo;\n\t\t\t\tdelete formData.fields.aspectoSatisfaccionMotivo;\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n\t\t\t\tdelete formData.fields.satisfaccionConcesionMotivo;\n\t\t\t}\n\t\t\tif (mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n\t\t\t\tdelete formData.fields.aspectoSatisfaccionMotivo;\n\t\t\t}\n\t\t}\n\t}, [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionTrabajoRealizado, satisfaccionConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!installation) return null;\n\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(stepsPosventa);\n\n\t\tconst NuevoFormInfo: 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\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : stepsPosventa,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t\thideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n\t\t};\n\n\t\tinitializeForm(NuevoFormInfo, NuevoFormData);\n\t}, [installation]);\n\n\treturn !loading ? : null;\n}\n","import React, { useState, useEffect } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { ctaEnvioCEM } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { strTitlelize } from 'src/helpers';\n\ninterface ChecksPublicacionProps {\n\tname: string;\n}\n\nexport const ChecksPublicacion = (props: ChecksPublicacionProps) => {\n\tconst { name } = props;\n\n\tconst dispatch = useDispatch();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst [firstCta, secondCta] = ctaEnvioCEM;\n\tconst { installation } = useSelector((state: OneFormState) => state.formData.fields);\n\n\tconst { handleNextStep } = useOneFormContext();\n\tconst [value, setValue] = useState(fields[name]);\n\tconst { register } = useFormContext();\n\n\tconst [checkedOne, setCheckedOne] = useState(fields[name] == firstCta.value);\n\tconst [checkedTwo, setCheckedTwo] = useState(fields[name] == secondCta.value);\n\n\tconst handleOnClick = (e: any) => {\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: e.currentTarget.value } });\n\t\tsetTimeout(() => {\n\t\t\thandleNextStep();\n\t\t}, 0);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetValue(firstCta.value);\n\t\t\t\t\t\tsetCheckedOne(true);\n\t\t\t\t\t\tsetCheckedTwo(false);\n\t\t\t\t\t\thandleOnClick(e);\n\t\t\t\t\t}}\n\t\t\t\t\tchecked={checkedOne}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\tsetValue(secondCta.value);\n\t\t\t\t\t\tsetCheckedOne(false);\n\t\t\t\t\t\tsetCheckedTwo(true);\n\t\t\t\t\t\thandleOnClick(e);\n\t\t\t\t\t}}\n\t\t\t\t\tchecked={checkedTwo}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n","import React, { useEffect, useState } from 'react';\nimport { Breakpoints, BreakpointWrapper, Container, ContainerPadding, styled, Text, TokenTextAppearance, } from '@volkswagen-onehub/components-core';\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 { getVilmaAssets } from 'src/bff';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { OneFormState } from 'src/types';\nimport { strTitlelize } from 'src/helpers';\n\nconst LayoutWrapper = styled.div`\n\t@media all and (min-width: 960px) {\n\t\tdisplay: flex;\n\t}\n`;\n\nconst InfoWrapper = styled.div`\n\twidth: 100%;\n\tpadding-left: var(--size-grid002);\n\tpadding-right: var(--size-grid002);\n\t@media all and (min-width: 960px) {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tflex-direction: column;\n\t\twidth: var(--size-grid012);\n\t\tpadding-left: var(--size-grid002);\n\t\tpadding-right: 0;\n\t\tpadding-top: 0;\n\t}\n\t@media all and (min-width: 1280px) {\n\t\tpadding-left: var(--size-grid003);\n\t}\n\t@media all and (min-width: 1600px) {\n\t\tpadding-left: var(--size-grid002);\n\t}\n`;\n\nexport const FirstStepCEM = () => {\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst dispatch = useDispatch();\n\tconst [model, setModel] = useState(null);\n\tconst { installation } = formData.fields;\n\tconst [imageSrc, setImageSrc] = useState(null);\n\tconst [dataVilma, setDataVilma] = useState(null);\n\tconst idVehicle = useGetIdVehicle();\n\tconst idVehicleModel = idVehicle.VGED_ModelGroup__c;\n\t//const isElectrico = idVehicle.VGED_ModelGroup__c.substring(0, 2) == 'ID';\n\tconst frame = idVehicle.Name;\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst modelUrl = urlParams.get('model');\n\tconst faContent = useFaContent();\n\tconst isPosventa = faContent.cem === 'POSVENTA' || faContent.encuesta === 'CEM - POSVENTA';\n\tconst height = useWindowHeight();\n\n\tconst dataVilmaRequest = async () => {\n\t\tif (frame) {\n\t\t\tconst data = await getVilmaAssets(frame);\n\t\t\t//Respuesta cuando el bastidor no es correcto {message: 'No image found for VIN [WVWZZZAUZLW025556]', context: 'the requested image is not available'}\n\t\t\tif (data && data.status?.code == 200) {\n\t\t\t\tsetDataVilma(data.content);\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!dataVilma || dataVilma.message == 'SERVICE UNAVAILABLE') {\n\t\t\tsetImageSrc(null);\n\t\t} else if (dataVilma) {\n\t\t\tconst Front_Left = dataVilma.find((e: any) => e.view === 'Front_Left');\n\t\t\tFront_Left === undefined ? setImageSrc(null) : setImageSrc(Front_Left.url);\n\t\t}\n\t}, [dataVilma]);\n\n\tuseEffect(() => {\n\t\tif (idVehicleModel !== 'null') {\n\t\t\tsetModel(idVehicleModel);\n\t\t\tdataVilmaRequest();\n\t\t} else if (modelUrl) {\n\t\t\tsetModel(modelUrl);\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { modelo: modelUrl } });\n\t\t} else {\n\t\t\tsetModel(null);\n\t\t}\n\t}, []);\n\n\tconst BodyCopy = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t{isPosventa ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tSegún nuestros datos, visitaste el Servicio Oficial {strTitlelize(installation)} con tu{' '}\n\t\t\t\t\t\t\t{model}.\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\tSegún nuestros registros compraste un nuevo {model} en nuestro punto de venta{' '}\n\t\t\t\t\t\t\t{strTitlelize(installation)}.\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{isPosventa ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre\n\t\t\t\t\t\t\tla última visita al taller?\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>¿Puedes confirmar que estos datos son correctos?\n\t\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\treturn dataVilma && imageSrc ? (\n\t\t\n\t\t\t{height <= 600 ? null : (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t) : (\n\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 from 'react';\nimport { Breakpoints, Layout, LayoutRowGap, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, PantallaNombreApellido, MultipleCTASelection, RatingStars, PantallaIntroduccionStars, DetalleMotivo, } from 'src/components';\nimport { Steps } from 'src/types';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { ChecksPublicacion } from 'src/forms/Cem/ChecksPublicacion';\nimport { CTAsSiNo, ctaTestDrive, ctaContactoSatisfaccion } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { FirstStepCEM } from 'src/forms/Cem/FirstStepCEM';\nimport { valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from './helpers';\n\nfunction OneElementTemplateFullScreen(props: any) {\n\tconst { element, allowOverflowingContent } = props;\n\treturn (\n\t\t\n\t\t\t{element}\n\t\t\n\t);\n}\n\nenum CemSteps {\n\tDatosCorrectos,\n\tDatosIncorrectos,\n\tModelo,\n\tConfirmacionConcesion,\n\tExplicacion,\n\tSatisfaccionTrato,\n\tSatisfaccionTratoMotivo,\n\tSatisfaccionOrganizacion,\n\tSatisfaccionOrganizacionMotivo,\n\tSatisfaccionAsesor,\n\tSatisfaccionAsesorMotivo,\n\tSatisfaccionConcesion,\n\tSatisfaccionConcesionMotivo,\n\tAspectoSatisfaccionMotivo,\n\tTestDrive,\n\tContactoSatisfaccion,\n\tSatisfaccionVehiculo,\n\tSatisfaccionVehiculoMotivo,\n\tEnviarConcesion,\n\tDatosPersonales,\n\tPublicarRespuestas,\n\tConfirmacion,\n}\n\nexport const getStepsVenta = (isElectrico?: boolean) => {\n\n\tconst ctaDatosIncorrectos = [\n\t\t{ label: 'Marca incorrecta', value: valueWrongMarca.toString() },\n\t\t{ label: 'Modelo incorrecto', value: valueWrongModelo.toString() },\n\t\t{ label: 'Punto de venta incorrecto', value: valueWrongConcesion.toString() },\n\t\t{ label: 'Persona de contacto incorrecta', value: valueWrongPersona.toString() },\n\t];\n\n\tconst stepsVenta: Steps[] = [\n\t\t{\n\t\t\tfields: ,\n\t\t\tscreenIndex: CemSteps.DatosCorrectos,\n\t\t\tname: 'DatosCorrectos',\n\t\t\talternateTitle: ¿Puedes confirmar que estos datos son correctos?,\n\t\t\toutputs: ['datosCorrectos'],\n\t\t\toutputsText: ['datosCorrectos'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tPor favor, ¿puedes confirmar qué dato no es correcto?\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: CemSteps.DatosIncorrectos,\n\t\t\tname: 'DatosIncorrectos',\n\t\t\toutputs: ['datosIncorrectos'],\n\t\t\toutputsText: ['datosIncorrectos'],\n\t\t\tctas: ctaDatosIncorrectos,\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Compraste tu vehículo en [Installation]?,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.ConfirmacionConcesion,\n\t\t\tname: 'ConfirmacionConcesion',\n\t\t\toutputs: ['confirmacionConcesion'],\n\t\t\toutputsText: ['confirmacionConcesion'],\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es el modelo correcto?,\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: CemSteps.Modelo,\n\t\t\tname: 'Modelo',\n\t\t\toutputs: ['modelo'],\n\t\t\toutputsText: ['modelo'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tA continuación,{' '}\n\t\t\t\t\t\n\t\t\t\t\t\tindica tu nivel de satisfacción con cada uno de estos aspectos relacionados con la compra de tu coche.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: ,\n\t\t\tscreenIndex: CemSteps.Explicacion,\n\t\t\tname: 'Explicacion',\n\t\t},\n\t\t{\n\t\t\ttitle: El trato recibido,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionTrato,\n\t\t\tname: 'SatisfaccionTrato',\n\t\t\toutputs: ['satisfaccionTrato'],\n\t\t\toutputsText: ['satisfaccionTrato'],\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionTratoMotivo,\n\t\t\tname: 'SatisfaccionTratoMotivo',\n\t\t\toutputs: ['satisfaccionTratoMotivo'],\n\t\t\toutputsText: ['satisfaccionTratoMotivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: La organización del punto de venta,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPor ejemplo, en cuanto a la petición de la cita, la prueba de conducción o la entrega del coche.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionOrganizacion,\n\t\t\tname: 'SatisfaccionOrganizacion',\n\t\t\toutputs: ['satisfaccionOrganizacion'],\n\t\t\toutputsText: ['satisfaccionOrganizacion'],\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionOrganizacionMotivo,\n\t\t\tname: 'SatisfaccionOrganizacionMotivo',\n\t\t\toutputs: ['satisfaccionOrganizacionMotivo'],\n\t\t\toutputsText: ['satisfaccionOrganizacionMotivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: El asesoramiento recibido por parte del asesor comercial Volkswagen,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionAsesor,\n\t\t\tname: 'SatisfaccionAsesor',\n\t\t\toutputs: ['satisfaccionAsesor'],\n\t\t\toutputsText: ['satisfaccionAsesor'],\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionAsesorMotivo,\n\t\t\tname: 'SatisfaccionAsesorMotivo',\n\t\t\toutputs: ['satisfaccionAsesorMotivo'],\n\t\t\toutputsText: ['satisfaccionAsesorMotivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es tu nivel de satisfacción con nuestros servicios prestados como punto de venta?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPensando en el proceso de compra en general de tu nuevo vehículo.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionConcesion,\n\t\t\tname: 'SatisfaccionConcesion',\n\t\t\toutputs: ['satisfaccionConcesion'],\n\t\t\toutputsText: ['satisfaccionConcesion'],\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.SatisfaccionConcesionMotivo,\n\t\t\tname: 'SatisfaccionConcesionMotivo',\n\t\t\toutputs: ['satisfaccionConcesionMotivo'],\n\t\t\toutputsText: ['satisfaccionConcesionMotivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Hay algún aspecto con el que no estuvieras satisfecho y que no hayas mencionado aún?,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.AspectoSatisfaccionMotivo,\n\t\t\tname: 'AspectoSatisfaccionMotivo',\n\t\t\toutputs: ['aspectoSatisfaccionMotivo'],\n\t\t\toutputsText: ['aspectoSatisfaccionMotivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: ¿Te ofreció el asesor comercial realizar una prueba de conducción?,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.TestDrive,\n\t\t\tname: 'TestDrive',\n\t\t\toutputs: ['testDrive'],\n\t\t\toutputsText: ['testDrive'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t¿Te ha contactado [Installation] para preguntarte si estás satisfecho con tu [Modelo] después de\n\t\t\t\t\t\tentregártelo?\n\t\t\t\t\t\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: CemSteps.ContactoSatisfaccion,\n\t\t\tname: 'ContactoSatisfaccion',\n\t\t\toutputs: ['contactoSatisfaccion'],\n\t\t\toutputsText: ['contactoSatisfaccion'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tFinalmente nos gustaría saber si podemos enviar tus respuestas junto con tu nombre al punto\n\t\t\t\t\tde venta [Installation] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CemSteps.EnviarConcesion,\n\t\t\tname: 'EnviarConcesion',\n\t\t\toutputs: ['enviarConcesion'],\n\t\t\toutputsText: ['enviarConcesion'],\n\t\t\tctas: ctasCheckEnvio(false, false),\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tPor favor, introduce o comprueba tus datos:\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: CemSteps.DatosPersonales,\n\t\t\tname: 'DatosPersonales',\n\t\t\toutputs: ['name', 'surname', 'secondSurname'],\n\t\t\toutputsText: ['name', 'surname', 'secondSurname'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t\n\t\t\t\t\t¿Podríamos publicar tus respuestas en la web oficial de Volkswagen y en la de [Installation] sin mencionar tu\n\t\t\t\t\tnombre?\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\t\tPara compartir tu experiencia con otros clientes.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CemSteps.PublicarRespuestas,\n\t\t\tname: 'PublicarRespuestas',\n\t\t\toutputs: ['publicarRespuestas'],\n\t\t\toutputsText: ['publicarRespuestas'],\n\t\t},\n\t\t{\n\t\t\tfields: ,\n\t\t\tscreenIndex: CemSteps.Confirmacion,\n\t\t\tname: 'Confirmacion',\n\t\t\toutputs: ['confirmacion'],\n\t\t\toutputsText: ['confirmacion'],\n\t\t},\n\t];\n\n\treturn stepsVenta;\n};\n","import React from 'react';\nimport { Breakpoints, Container, ContainerPadding, Layout, LayoutRowGap, Text, TokenTextAppearance, } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, DetalleMotivo, MultipleCTASelection, MultipleOptionCTAs, PantallaIntroduccionStars, PantallaNombreApellido, RatingStars, } from 'src/components';\nimport { ctaEnvioCEM, ctaAlternativaTransporte, ctaMotivoVisita, ctaTrabajosAdicionales, } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ChecksPublicacion } from 'src/forms/Cem/ChecksPublicacion';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { FirstStepCEM } from 'src/forms/Cem/FirstStepCEM';\nimport { Steps } from 'src/types';\nimport { valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from './helpers';\n\nfunction OneElementTemplateFullScreen(props: any) {\n\tconst { element, allowOverflowingContent } = props;\n\treturn (\n\t\t\n\t\t\t{element}\n\t\t\n\t);\n}\n\nenum CemSteps {\n\tDatosCorrectos,\n\tDatosIncorrectos,\n\tModelo,\n\tExplicacion,\n\tSatisfaccionTrato,\n\tSatisfaccionTratoMotivo,\n\tSatisfaccionOrganizacion,\n\tSatisfaccionOrganizacionMotivo,\n\tSatisfaccionTrabajoRealizado,\n\tSatisfaccionTrabajoRealizadoMotivo,\n\tSatisfaccionConcesion,\n\tSatisfaccionConcesionMotivo,\n\tAspectoSatisfaccionMotivo,\n\tInformado,\n\tAlternativaTransporte,\n\tTiempoSatisfaccion,\n\tMotivoVisita,\n\tSatisfaccionVehiculo,\n\tSatisfaccionVehiculoMotivo,\n\tEnviarConcesion,\n\tDatosPersonales,\n\tPublicarRespuestas,\n\tConfirmacion,\n}\n\nconst ctaDatosIncorrectos = [\n\t{ label: 'Marca incorrecta', value: valueWrongMarca.toString() },\n\t{ label: 'Modelo incorrecto', value: valueWrongModelo.toString() },\n\t{ label: 'Servicio Oficial', value: valueWrongConcesion.toString() },\n\t{ label: 'Persona de contacto incorrecta', value: valueWrongPersona.toString() },\n];\n\nexport const stepsPosventa: Steps[] = [\n\t{\n\t\tfields: ,\n\t\tscreenIndex: CemSteps.DatosCorrectos,\n\t\tname: 'DatosCorrectos',\n\t\talternateTitle: (\n\t\t\t\n\t\t\t\t¿Puedes confirmar que estos datos son correctos y que eres la persona que mejor nos puede informar sobre la\n\t\t\t\túltima visita al taller?\n\t\t\t\n\t\t),\n\t\toutputs: ['datosCorrectos'],\n\t\toutputsText: ['datosCorrectos'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPor favor, ¿puedes confirmar qué dato no es correcto?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.DatosIncorrectos,\n\t\tname: 'DatosIncorrectos',\n\t\toutputs: ['datosIncorrectos'],\n\t\toutputsText: ['datosIncorrectos'],\n\t\tctas: ctaDatosIncorrectos,\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\t¿Cuál es el modelo correcto?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.Modelo,\n\t\tname: 'Modelo',\n\t\toutputs: ['modelo'],\n\t\toutputsText: ['modelo'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tA continuación,{' '}\n\t\t\t\t\n\t\t\t\t\tindica tu nivel de satisfacción con cada uno de estos aspectos relacionados con tu visita al Servicio Oficial.\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t),\n\t\tscreenIndex: CemSteps.Explicacion,\n\t\tname: 'Explicacion',\n\t},\n\t{\n\t\ttitle: El trato recibido,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTrato,\n\t\tname: 'SatisfaccionTrato',\n\t\toutputs: ['satisfaccionTrato'],\n\t\toutputsText: ['satisfaccionTrato'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTratoMotivo,\n\t\tname: 'SatisfaccionTratoMotivo',\n\t\toutputs: ['satisfaccionTratoMotivo'],\n\t\toutputsText: ['satisfaccionTratoMotivo'],\n\t},\n\t{\n\t\ttitle: La organización de [Installation],\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPor ejemplo: el establecimiento de la cita, tiempos de espera en el taller, la fecha de entrega o el\n\t\t\t\t\t\t\ttiempo que estuvo el coche en el taller.{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionOrganizacion,\n\t\tname: 'SatisfaccionOrganizacion',\n\t\toutputs: ['satisfaccionOrganizacion'],\n\t\toutputsText: ['satisfaccionOrganizacion'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionOrganizacionMotivo,\n\t\tname: 'SatisfaccionOrganizacionMotivo',\n\t\toutputs: ['satisfaccionOrganizacionMotivo'],\n\t\toutputsText: ['satisfaccionOrganizacionMotivo'],\n\t},\n\t{\n\t\ttitle: La calidad del trabajo realizado en tu [Modelo],\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTrabajoRealizado,\n\t\tname: 'SatisfaccionTrabajoRealizado',\n\t\toutputs: ['satisfaccionTrabajoRealizado'],\n\t\toutputsText: ['satisfaccionTrabajoRealizado'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTrabajoRealizadoMotivo,\n\t\tname: 'SatisfaccionTrabajoRealizadoMotivo',\n\t\toutputs: ['satisfaccionTrabajoRealizadoMotivo'],\n\t\toutputsText: ['satisfaccionTrabajoRealizadoMotivo'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPensando en tu última visita a [Installation],{' '}\n\t\t\t\t¿cuál es tu nivel de satisfacción con nuestros servicios en general?\n\t\t\t\n\t\t),\n\t\talternateTitle: ¿Cuál es tu nivel de satisfacción con nuestros servicios en general?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPensando en tu última visita.\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionConcesion,\n\t\tname: 'SatisfaccionConcesion',\n\t\toutputs: ['satisfaccionConcesion'],\n\t\toutputsText: ['satisfaccionConcesion'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: ¿Cuál es la razón por la que has dado esta puntuación?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionConcesionMotivo,\n\t\tname: 'SatisfaccionConcesionMotivo',\n\t\toutputs: ['satisfaccionConcesionMotivo'],\n\t\toutputsText: ['satisfaccionConcesionMotivo'],\n\t},\n\t{\n\t\ttitle: ¿Hay algún aspecto con el que no estuvieras satisfecho y que no hayas mencionado aún?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.AspectoSatisfaccionMotivo,\n\t\tname: 'AspectoSatisfaccionMotivo',\n\t\toutputs: ['aspectoSatisfaccionMotivo'],\n\t\toutputsText: ['aspectoSatisfaccionMotivo'],\n\t},\n\t{\n\t\ttitle: ¿Se te informó de la realización de trabajos adicionales a los inicialmente acordados?,\n\t\tfields: (\n\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.Informado,\n\t\tname: 'Informado',\n\t\toutputs: ['informado'],\n\t\toutputsText: ['informado'],\n\t\tctas: ctaTrabajosAdicionales,\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t¿Te ofreció el Servicio Oficial alguna alternativa de de movilidad para volver al trabajo o a casa tras dejar\n\t\t\t\t\ttu vehiculo en el taller?\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.AlternativaTransporte,\n\t\tname: 'AlternativaTransporte',\n\t\toutputs: ['alternativaTransporte'],\n\t\toutputsText: ['alternativaTransporte'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\t¿Cuál es tu nivel de satisfacción con la gestión que hizo el Servicio Oficial de tu tiempo? \n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tEl tiempo total desde que entró y desde que salió tu vehículo del taller.\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.TiempoSatisfaccion,\n\t\tname: 'TiempoSatisfaccion',\n\t\toutputs: ['tiempoSatisfaccion'],\n\t\toutputsText: ['tiempoSatisfaccion'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\t¿Cuál o cuáles de los aspectos de la siguiente lista fueron{' '}\n\t\t\t\t el motivo de tu última visita al Servicio Oficial?\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPuedes elegir tres opciones\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\talternateTitle: (\n\t\t\t<>\n\t\t\t\t¿Cuál o cuáles de los aspectos de la siguiente lista fueron{' '}\n\t\t\t\t el motivo de tu última visita al Servicio Oficial?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.MotivoVisita,\n\t\tname: 'MotivoVisita',\n\t\toutputs: ['motivoVisita'],\n\t\toutputsText: ['motivoVisita'],\n\t},\n\t{\n\t\ttitle: Pensando en tu actual [Modelo], ¿cuál es tu nivel de satisfacción?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionVehiculo,\n\t\tname: 'SatisfaccionVehiculo',\n\t\toutputs: ['satisfaccionVehiculo'],\n\t\toutputsText: ['satisfaccionVehiculo'],\n\t\toutputsIsStars: true,\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPor favor háblanos de tu experiencia con tu nuevo [Modelo]\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionVehiculoMotivo,\n\t\tname: 'SatisfaccionVehiculoMotivo',\n\t\toutputs: ['satisfaccionVehiculoMotivo'],\n\t\toutputsText: ['satisfaccionVehiculoMotivo'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tFinalmente nos gustaría saber si podemos enviar tus respuestas junto con tu nombre al Servicio\n\t\t\t\tOficial [Installation] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n\t\t\t\n\t\t),\n\t\tfields: } />,\n\t\tscreenIndex: CemSteps.EnviarConcesion,\n\t\tname: 'EnviarConcesion',\n\t\toutputs: ['enviarConcesion'],\n\t\toutputsText: ['enviarConcesion'],\n\t\tctas: ctasCheckEnvio(true, false),\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPor favor, introduce o comprueba tus datos:\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.DatosPersonales,\n\t\tname: 'DatosPersonales',\n\t\toutputs: ['name', 'surname', 'secondSurname'],\n\t\toutputsText: ['name', 'surname', 'secondSurname'],\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t¿Podríamos publicar tus respuestas en la web oficial de Volkswagen y en la de [Installation] sin mencionar tu\n\t\t\t\t\tnombre?\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tPara compartir tu experiencia con otros clientes.\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.PublicarRespuestas,\n\t\tname: 'PublicarRespuestas',\n\t\toutputs: ['publicarRespuestas'],\n\t\toutputsText: ['publicarRespuestas'],\n\t\tctas: ctaEnvioCEM,\n\t},\n\t{\n\t\tfields: ,\n\t\tscreenIndex: CemSteps.Confirmacion,\n\t\tname: 'Confirmacion',\n\t\toutputs: ['confirmacion'],\n\t\toutputsText: ['confirmacion'],\n\t},\n];\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { checkUndefinedsInData, formatSinRespuestaValue, getCemDate, getSfAddressRest, sanitizeKvps, stepNameToFieldName, valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from 'src/forms/Cem/helpers';\nimport { formatToTwoChars, strTitlelize } from 'src/helpers';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getArrayOfStepsNames, getIndexInSteps, removeMultipleStepsAndResetScreenIndex, resetStepsScreenIndex, } from 'src/forms/helpers/add-remove-steps';\nimport { getStepsVenta, CemFormProps, LastQuestionFlow } from 'src/forms/Cem';\nimport { ThankYouCEM } from 'src/forms/Cem/ThankYouCem';\n\nexport function CemFormVenta(props: CemFormProps) {\n\tconst { idOrder, idPerson, idVehicle, idDealer, dpsData, installation } = props;\n\tconst { initializeForm, handleNextStep } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst adviser = urlParams.get('adviser');\n\tconst agency = urlParams.get('agency');\n\tconst dev = urlParams.get('dev') !== null;\n\n\tconst {\n\t\tdatosCorrectos,\n\t\tdatosIncorrectos,\n\t\tconfirmacionConcesion,\n\t\tsatisfaccionTrato,\n\t\tsatisfaccionOrganizacion,\n\t\tsatisfaccionAsesor,\n\t\tsatisfaccionConcesion,\n\t\tmodelo,\n\t\tenviarConcesion,\n\t\tmasPreguntas,\n\t} = formData.fields;\n\n\tconst isElectrico = idVehicle.VGED_ModelGroup__c?.substring(0, 2) == 'ID';\n\n\tconst 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\tconst NuevoFormData: Partial = {\n\t\theaders: {\n\t\t\tFORM_DETAILS: 'CEM Venta',\n\t\t\tFORM_OBJECTIVE: 'Encuesta',\n\t\t\tDPS_TOKEN: 'VW_DDB_FRM_CEM_VN_2024',\n\t\t\tFORM_ID: 'Email_B04_C01_CEM_Sales',\n\t\t},\n\t\tfields: {\n\t\t\tlssiPincode: idPerson.LSSI__c,\n\t\t\tformName: 'cem-venta',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t\tname: idPerson.FirstName,\n\t\t\tsurname: idPerson.LastName,\n\t\t\tsecondSurname: idPerson.MiddleName,\n\t\t\tinstallation: installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : '',\n\t\t}, // Analítica\n\t};\n\n\tconst sendSurvey = () => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn !( // negation\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongMarca) ||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongPersona) ||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongConcesion && fields.confirmacionConcesion == 'false')\n\t\t);\n\t};\n\n\tconst getData = () => {\n\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields, headers } = formData;\n\t\tconst { tc, today, url, device } = getParamsForm();\n\n\t\tconst data = {\n\t\t\t...formatHeaders(headers),\n\t\t\t'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n\t\t\t'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n\t\t\t'headers[FORM_URL]': url,\n\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t\t'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\t\t\t'headers[FK_SYSTEM]': idOrder.VGED_ClimaproOrderID__c,\n\n\t\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t\t'fields[SF_LEAD_INSTALLATION_ID]': installation.Id,\n\t\t\t'fields[SF_LEAD_INSTALLATION_NAME]': installation.VGED_CommercialName__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE]': installation.VGED_DealerCode__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE_KVPS]': sanitizeKvps(installation.KVPSCode__c),\n\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t'fields[PERSON_NAME]': fields.name,\n\t\t\t'fields[PERSON_SURNAME_1]': fields.surname,\n\t\t\t'fields[PERSON_SURNAME_2]': fields.secondSurname,\n\t\t\t'fields[PERSON_EMAIL]': idPerson.PersonEmail,\n\t\t\t'fields[PERSON_PHONE_MOBILE]': idPerson.PersonMobilePhone,\n\t\t\t'fields[PERSON_POSTAL_ROAD_NAME]': getSfAddressRest(idPerson.PersonMailingAddress, 'street'),\n\t\t\t'fields[PERSON_POSTAL_CP]': getSfAddressRest(idPerson?.PersonMailingAddress, 'postalCode'),\n\t\t\t'fields[PERSON_POSTAL_PROVINCE_CODE]': formatToTwoChars(getSfAddressRest(idPerson?.PersonMailingAddress, 'stateCode')),\n\t\t\t'fields[VEH_ACTUAL_PLATE]': idVehicle.VGED_RegistrationPlate__c,\n\t\t\t'fields[VEH_ACTUAL_FRAME]': idVehicle.Name,\n\t\t\t'fields[VEH_ACTUAL_MODEL]': idVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : null,\n\t\t\t\n\t\t\t'fields[SURVEY_ANSWER_01]': fields.datosCorrectos == 'true' ? '1' : '2',\n\t\t\t'fields[SURVEY_ANSWER_02]': fields.datosCorrectos == 'false' ? fields.datosIncorrectos : null,\n\t\t\t'fields[SURVEY_ANSWER_03]': fields.datosCorrectos == 'false' && fields.datosIncorrectos == 2 ? fields.modelo : null,\n\t\t\t'fields[SURVEY_ANSWER_04]': fields.datosCorrectos == 'false' && fields.datosIncorrectos == 3 ? fields.confirmacionConcesion == 'true' ? '1' : '2' : null,\n\t\t\t// conditional send\n\t\t\t'fields[SURVEY_ANSWER_15]': fields.testDrive,\n\t\t\t'fields[SURVEY_ANSWER_16]': fields.contactoSatisfaccion,\n\t\t\t'fields[SURVEY_ANSWER_30]': fields.publicarRespuestas == '1' ? 'PERMITE' : 'NO PERMITE',\n\t\t\t'fields[SURVEY_ANSWER_32]': adviser,\n\t\t\t'fields[SURVEY_ANSWER_34]': fields.enviarConcesion,\n\n\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t\t//'flags[FLAG_RELACION_MARCA_SIN_IC]': 'false',\n\t\t};\n\n\t\tif(sendSurvey()) {\n\t\t\tdata['fields[SURVEY_ANSWER_06]'] = formatSinRespuestaValue(fields.satisfaccionTrato);\n\t\t\tdata['fields[SURVEY_ANSWER_07]'] = formatSinRespuestaValue(fields.satisfaccionTratoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_08]'] = formatSinRespuestaValue(fields.satisfaccionOrganizacion);\n\t\t\tdata['fields[SURVEY_ANSWER_09]'] = formatSinRespuestaValue(fields.satisfaccionOrganizacionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_10]'] = formatSinRespuestaValue(fields.satisfaccionAsesor);\n\t\t\tdata['fields[SURVEY_ANSWER_11]'] = formatSinRespuestaValue(fields.satisfaccionAsesorMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_12]'] = formatSinRespuestaValue(fields.satisfaccionConcesion);\n\t\t\tdata['fields[SURVEY_ANSWER_13]'] = formatSinRespuestaValue(fields.satisfaccionConcesionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_14]'] = formatSinRespuestaValue(fields.aspectoSatisfaccionMotivo);\n\t\t}\n\n\t\tif (agency) {\n\t\t\tdata['flags[FLAG_AGENCY]'] = agency == 'AGENCIA' ? 'true' : 'false';\n\t\t}\n\n\t\tif (idOrder.VGED_CEMDeliveryDate__c && idOrder.VGED_CEMDeliveryDate__c != 'null') {\n\t\t\tdata['fields[CEM_DATE]'] = getCemDate(idOrder.VGED_CEMDeliveryDate__c);\n\t\t}\n\n\t\treturn data;\n\t};\n\n\tuseEffect(() => {\n\t\tif(dev) {\n\t\t\tconsole.log(getData());\n\t\t}\n\t}, [formData]);\n\n\tconst sendForm = (): Promise => {\n\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst dataStringified = JSON.stringify(getData());\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tcheckUndefinedsInData(getData(), 'Venta');\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response && response.data?.status?.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\t/**\n\t * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n\t * \n\t * @param stepsToAdd\n\t * @param alternativeSteps\n\t * @returns\n\t */\n\tconst addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tconst stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n\t\t// Hay que revertir los steps para que se añadan en el orden correcto\n\t\tconst indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n\t\tlet newSteps = [...stepsToUse];\n\n\t\tindexesInSteps.forEach((index, i) => {\n\t\t\tif (index === -1) {\n\t\t\t\tnewSteps = addRemovedStep(getStepsVenta(isElectrico), stepsToUse, stepsToAdd[i], screenIndex);\n\t\t\t}\n\t\t});\n\t\tconst finalSteps = resetStepsScreenIndex(newSteps);\n\t\treturn finalSteps;\n\t};\n\n\tconst addSteps = (stepsToAdd: string[]) => {\n\t\tsetLoading(true);\n\n\t\tconst finalSteps = addingStepsLogic(stepsToAdd);\n\t\tupdateSteps(finalSteps);\n\t\thandleNextStep();\n\n\t\tsetLoading(false);\n\t};\n\n\tconst removeSteps = (stepsToDelete: string[]) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst updateSteps = (steps: Steps[]) => {\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: steps });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n\t};\n\n\tconst replaceWithLeadInfo = (string: string) => {\n\t\treturn string\n\t\t\t.replace(\n\t\t\t\t'[Modelo]',\n\t\t\t\tidVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : 'Volkswagen'\n\t\t\t)\n\t\t\t.replace('[Marca]', idVehicle.RCY_BrandList__c)\n\t\t\t.replace(\n\t\t\t\t'[Installation]',\n\t\t\t\tstrTitlelize(installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : '')\n\t\t\t);\n\t};\n\n\tconst replaceModelo = (string: string) => {\n\t\tif (modeloRef.current) {\n\t\t\treturn string.replace(modeloRef.current, modelo);\n\t\t} else {\n\t\t\treturn string.replace(idVehicle.VGED_ModelGroup__c, modelo);\n\t\t}\n\t};\n\n\tconst modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n\t\treturn steps.map((step) => {\n\t\t\tif (!step.title) return step;\n\t\t\tif (Array.isArray(step.title.props.children)) {\n\t\t\t\tstep.title.props.children = step.title.props.children.map((child: any) => {\n\t\t\t\t\tif (typeof child === 'object') {\n\t\t\t\t\t\tif (typeof child.props.children === 'object') {\n\t\t\t\t\t\t\tchild.props.children.props.children = replaceCallback(child.props.children.props.children);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchild.props.children = replaceCallback(child.props.children);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild = replaceCallback(child);\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t});\n\t\t\t} else if (typeof step.title.props.children === 'object') {\n\t\t\t\tstep.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n\t\t\t} else {\n\t\t\t\tstep.title.props.children = replaceCallback(step.title.props.children);\n\t\t\t}\n\t\t\treturn step;\n\t\t});\n\t};\n\n\tconst getOrderStep = (order: number, sc4: number, sc5: number, sc6: number) => {\n\t\treturn order === 1 ? sc4 : order === 2 ? sc5 : order === 3 ? sc6 : null;\n\t};\n\n\tconst shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n\t/**\n\t * El orden de las preguntas Sc_4,Sc_5 y Sc_6 tiene que ser aleatorio.\n\t * @param steps\n\t */\n\tconst randomizeSteps = (steps: Steps[]): Steps[] => {\n\t\tconst sc4 = getIndexInSteps(steps, 'SatisfaccionTrato');\n\t\tconst sc4Motivo = getIndexInSteps(steps, 'SatisfaccionTratoMotivo');\n\n\t\tconst sc5 = getIndexInSteps(steps, 'SatisfaccionOrganizacion');\n\t\tconst sc5Motivo = getIndexInSteps(steps, 'SatisfaccionOrganizacionMotivo');\n\n\t\tconst sc6 = getIndexInSteps(steps, 'SatisfaccionAsesor');\n\t\tconst sc6Motivo = getIndexInSteps(steps, 'SatisfaccionAsesorMotivo');\n\n\t\tlet newSteps = [...steps];\n\t\tconst [first, second, third] = shuffle([1, 2, 3]);\n\t\tconst firstStep = getOrderStep(first, sc4, sc5, sc6);\n\t\tconst secondStep = getOrderStep(second, sc4, sc5, sc6);\n\t\tconst thirdStep = getOrderStep(third, sc4, sc5, sc6);\n\t\tnewSteps[sc4] = steps[firstStep];\n\t\tnewSteps[sc4Motivo] = steps[firstStep + 1];\n\t\tnewSteps[sc5] = steps[secondStep];\n\t\tnewSteps[sc5Motivo] = steps[secondStep + 1];\n\t\tnewSteps[sc6] = steps[thirdStep];\n\t\tnewSteps[sc6Motivo] = steps[thirdStep + 1];\n\n\t\treturn newSteps;\n\t};\n\n\tconst getFormInfo = (steps: Steps[]) => {\n\t\tconst newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n\t\tconst randomizedSteps = randomizeSteps(newSteps);\n\n\t\treturn {\n\t\t\tfirstStep: randomizedSteps[0],\n\t\t\tlastStep: randomizedSteps[randomizedSteps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: randomizedSteps.length,\n\t\t\tnewSteps: randomizedSteps,\n\t\t};\n\t};\n\n\t// Lógica para modificar el flujo del formulario\n\tuseEffect(() => {\n\t\tif (modelo) {\n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newSteps = modifyTitleSteps(pastSteps, replaceModelo);\n\t\t\tmodeloRef.current = modelo;\n\t\t\tupdateSteps(newSteps);\n\t\t}\n\t}, [modelo]);\n\n\tuseEffect(() => {\n\t\tif (datosCorrectos === 'true') {\n\t\t\tconst steps = store.getState().formInfo.steps;\n\t\t\tconst modelo = getIndexInSteps(steps, 'Modelo');\n\t\t\t// 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\t\t\tif (modelo === -1) {\n\t\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, [\n\t\t\t\t\t'DatosIncorrectos',\n\t\t\t\t\t'Modelo',\n\t\t\t\t\t'ConfirmacionConcesion',\n\t\t\t\t]);\n\t\t\t\tupdateSteps(finalSteps);\n\t\t\t} else {\n\t\t\t\tremoveSteps(['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n\t\t\t}\n\t\t} else if (datosCorrectos === 'false') {\n\t\t\taddSteps(['DatosIncorrectos', 'Modelo']);\n\t\t}\n\t}, [datosCorrectos]);\n\n\tuseEffect(() => {\n\t\tif (\n\t\t\tdatosIncorrectos == valueWrongMarca ||\n\t\t\tdatosIncorrectos == valueWrongPersona\n\t\t) { \n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n\t\t\tconst finalSteps = resetStepsScreenIndex(newsteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t\tif (datosIncorrectos == valueWrongConcesion) { \n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t\tif (datosIncorrectos == valueWrongModelo) { \n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['ConfirmacionConcesion']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t}, [datosIncorrectos]);\n\n\tuseEffect(() => {\n\t\tif (confirmacionConcesion === 'false') {\n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newsteps = [pastSteps[0], pastSteps[1], pastSteps[2], pastSteps[pastSteps.length - 1]];\n\t\t\tconst finalSteps = resetStepsScreenIndex(newsteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t} else if (confirmacionConcesion === 'true') {\n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t}, [confirmacionConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!enviarConcesion) {\n\t\t\treturn;\n\t\t}\n\t\tif (enviarConcesion === '3') {\n\t\t\taddSteps(['DatosPersonales']);\n\t\t} else {\n\t\t\tremoveSteps(['DatosPersonales']);\n\t\t}\n\t}, [enviarConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!masPreguntas) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (masPreguntas === 'true') {\n\t\t\tconst stepNames = getArrayOfStepsNames(getStepsVenta(isElectrico), 'MasPreguntas', 'EnviarConcesion');\n\t\t\taddSteps(stepNames);\n\t\t} else if (masPreguntas === 'false') {\n\t\t\tconst { steps } = store.getState().formInfo;\n\t\t\tconst stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n\t\t\tremoveSteps(stepNames);\n\t\t}\n\t}, [masPreguntas]);\n\n\t/**\n\t * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y no funciona de la manera esperada.\n\t *\n\t * @param stepToRemove\n\t * @param stepToAdd\n\t */\n\tconst removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n\t\tconst addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n\t\tconst finalSteps = resetStepsScreenIndex(addedSteps);\n\t\thandleNextStep();\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst handleShowMotivo = (nameOfMotivoStep: string, value?: string) => {\n\t\tif (value) {\n\t\t\tif (Number(value) == -1) value = 'Sin respuesta';\n\t\t\tif (isLowRating(value)) {\n\t\t\t\taddSteps([nameOfMotivoStep]);\n\t\t\t} else if (isHighRating(value) || isNoRating(value)) {\n\t\t\t\tremoveSteps([nameOfMotivoStep]);\n\t\t\t\tdelete formData.fields[stepNameToFieldName(nameOfMotivoStep)];\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionTratoMotivo', satisfaccionTrato);\n\t}, [satisfaccionTrato]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionOrganizacionMotivo', satisfaccionOrganizacion);\n\t}, [satisfaccionOrganizacion]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionAsesorMotivo', satisfaccionAsesor);\n\t}, [satisfaccionAsesor]);\n\n\tuseEffect(() => {\n\t\tconst stepName = store.getState().formInfo?.step?.name;\n\n\t\t// Verificamos que se ha contestado SatisfaccionConcesion\n\t\tif (stepName == 'SatisfaccionConcesion') {\n\n\t\t\tconst ratings = [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionAsesor];\n\t\t\tconst { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionConcesion);\n\n\t\t\tif (mostrarQlast1 && mostrarQlast2) {\n\t\t\t\taddSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveSteps(['SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo']);\n\t\t\t\tdelete formData.fields.satisfaccionConcesionMotivo;\n\t\t\t\tdelete formData.fields.sspectoSatisfaccionMotivo;\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('SatisfaccionConcesionMotivo', 'AspectoSatisfaccionMotivo');\n\t\t\t\tdelete formData.fields.satisfaccionConcesionMotivo;\n\t\t\t}\n\t\t\tif (mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('AspectoSatisfaccionMotivo', 'SatisfaccionConcesionMotivo');\n\t\t\t\tdelete formData.fields.aspectoSatisfaccionMotivo;\n\t\t\t}\n\t\t}\n\t}, [satisfaccionTrato, satisfaccionOrganizacion, satisfaccionAsesor, satisfaccionConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!installation) return null;\n\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(getStepsVenta(isElectrico));\n\n\t\tconst NuevoFormInfo: 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\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : getStepsVenta(isElectrico),\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t\thideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n\t\t};\n\n\t\tinitializeForm(NuevoFormInfo, NuevoFormData);\n\t}, [installation]);\n\n\treturn !loading ? : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { isHighRating, isLowRating, isNoRating, allHighRatings, allLowRatings, allNoRatings, allHighOrNoRatings } from 'src/feature-app';\n\n\nexport function LastQuestionFlow(ratings: string[], lastQuestion: string) {\n\n\tconst goodRating = allHighRatings(ratings);\n\tconst badRating = allLowRatings(ratings);\n\tconst emptyRating = allNoRatings(ratings);\n\tconst goodOrEmptyRating = allHighOrNoRatings(ratings);\n\n\t/* \n\tQfinal=4,5 AND NOT [Q1=3,2,1 AND Q2=3,2,1 AND Qn=3,2,1]\n\tOR\n\tQfinal=3,2,1 AND Q1=5,4,9 AND Q2=5,4,9 AND Qn=5,4,9\n\t*/\n\tconst mostrarQlast1 =\n\t\t(isHighRating(lastQuestion) && !badRating)\n\t\t||\n\t\t(isLowRating(lastQuestion) && goodOrEmptyRating);\n\n\t/* \n\tQfinal=3,2,1 \n\tAND\n\tNOT [Q1=5,4,9 AND Q2=5,4,9 AND Qn=5,4,9]\n\tAND\n\tNOT [Q1=3,2,1 AND Q2=3,2,1 AND Qn=3,2,1]\n\t*/\n\tconst mostrarQlast2 = isLowRating(lastQuestion) && !goodOrEmptyRating && !badRating;\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst dev = urlParams.get('dev') !== null;\n\n\tif(dev) {\n\t\tconsole.log('LAST RATING:', lastQuestion, 'isHigh:', isHighRating(lastQuestion), 'isLow:', isLowRating(lastQuestion));\n\t\tconsole.log('RATINGS:', ratings, 'allgood:', goodRating, 'allbad:', badRating, 'allempty:', emptyRating, 'allgoodroempty:', goodOrEmptyRating);\n\t\tconsole.log('show1:', mostrarQlast1, 'show2:', mostrarQlast2);\n\t}\n\n\treturn {\n\t\tmostrarQlast1: mostrarQlast1,\n\t\tmostrarQlast2: mostrarQlast2\n\t};\n\n}\n","import React from 'react';\nimport { Layout, Breakpoints, Text, styled, Container, ContainerGutter, CTA, TokenTextAppearance, TokenTextColor, } from '@volkswagen-onehub/components-core';\n\nconst PaddingWrapper = styled.div`\n\tpadding-top: 32px;\n`;\ninterface LegalesCEMProps {\n\tisPosventa?: boolean;\n}\n\nexport const LegalesCEM = (props: LegalesCEMProps) => {\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tTexto legal de Volkswagen\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tEl responsable de tus datos es Volkswagen Group España Distribución, S.A.U. Vamos a utilizar tus datos para realizar un control de calidad sobre los productos y servicios contratados, mediante la realización de la presente encuesta de satisfacción, y contactarte para resolución de incidencias, reclamaciones o quejas. Tus datos podrán ser comunicados a las empresas del grupo para las finalidades de controlar la calidad de los productos y servicios, así como contactarte para resolución de incidencias, reclamaciones o quejas y, en el caso que hayas consentido, para elaborar tu perfil como usuario para enviarte comunicaciones comerciales según lo indicado en el consentimiento. También en el supuesto de haber consentido, tus datos y las respuestas de la presente encuesta de satisfacción serán comunicadas al {props.isPosventa ? 'Servicio Oficial' : 'punto de venta'}.\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tTienes derecho a oponerte al tratamiento, limitar el mismo, acceder, rectificar, suprimir los datos y ejercer tu derecho a portabilidad, mediante el envío de un correo electrónico a:{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tatencioncliente@volkswagen.es\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\tPuedes consultar la información adicional en la{' '}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tpolítica de privacidad\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n","import React from 'react';\nimport { Layout, Breakpoints } from '@volkswagen-onehub/components-core';\nimport { LegalFullScreenSinConsentmientos } from 'src/components';\n\nexport const LegalesSinConsentimientosCEM = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\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\treturn {\n\t\tbrand: 'V',\n\t\tframe: vehicle.vin,\n\t\tmillage: transformMillage(vehicle.mileage),\n\t\tmodelVersion: vehicle.modelDescr,\n\t\tmodelYear: 0,\n\t\tplate: vehicle.plate.toUpperCase(),\n\t\tplateDate: `${vehicle.plateDate} 00:00:00`,\n\t\ttmaimg: vehicle.modelKey,\n\t\tmodel: {\n\t\t\tcode: vehicle.familyCode,\n\t\t\tkey: vehicle.familyCode,\n\t\t\tname: vehicle.familyDesc,\n\t\t},\n\t};\n};\n\n//NO SE USA\n\nexport function CitaPosventaCalculadoraForm({setSelectedJourney}: TriggerProps) {\n\t// const faContent = useFaContent();\n\t// const { loading } = useGetDealers(faContent?.dealer);\n\n\t// const renderForm = (fields: FormDataFields) => {\n\t// setSelectedJourney(\n\t// ,\n\t// true\n\t// );\n\t// };\n\t// useEffect(() => {\n\t// if (loading) return;\n\n\t// const fields = {\n\t// motivo: 'MANTENIMIENTO',\n\t// formName: 'cita-posventa-calculadora',\n\t// matricula: faContent?.vehicle[0]?.plate,\n\t// vehicleForCalculadora: getAppointmentVehicle(faContent?.vehicle[0]),\n\t// kilometros: transformMillage(faContent?.vehicle[0]?.mileage),\n\t// anoMatriculacion: faContent?.vehicle[0]?.plateDate,\n\t// modelo: faContent?.vehicle[0]?.modelDescr,\n\t// budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n\t// deepLink: faContent?.deepLink,\n\t// };\n\t// const kvps = faContent?.dealer;\n\n\t// getDealerKvps(kvps)\n\t// .then((dealer) => {\n\t// renderForm({ ...fields, dealer });\n\t// })\n\t// .catch((err) => {\n\t// renderForm({ ...fields, dealer: {} }); // Hay que ver que hacer en estos casos.\n\t// });\n\t// }, [loading]);\n\n\treturn <>;\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\tconst faContent = useFaContent();\n\tconst {loading} = useGetDealers(faContent?.dealer);\n\n\tconst renderForm = (fields: FormDataFields) => {\n\t\tsetSelectedJourney(\n\t\t\t,\n\t\t\ttrue,\n\t\t);\n\t};\n\tuseEffect(() => {\n\t\tif (loading) return;\n\n\t\tconst fields = {\n\t\t\tmotivo: 'OTROS',\n\t\t\tformName: 'cita-posventa-bono',\n\t\t\tmasInformacion: faContent?.bono[0].desc,\n\t\t\tdeepLink: faContent?.deepLink,\n\t\t};\n\t\tconst kvps = faContent?.dealer;\n\n\t\tgetDealers()\n\t\t\t.then(() => {\n\t\t\t\trenderForm({...fields});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trenderForm({...fields}); // Hay que ver que hacer en estos casos.\n\t\t\t});\n\t}, [loading]);\n\n\treturn <>;\n}\n","import React, {useEffect} from 'react';\nimport {getDealers} from 'src/bff';\nimport {TriggerProps, useFaContent, useGetDealers, VehiclePortal} 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: VehiclePortal): AppointmentVehicle => {\n\treturn {\n\t\tbrand: 'V',\n\t\tframe: vehicle.frame,\n\t\tmillage: vehicle.localKM == -1 ? vehicle.climaProKM : vehicle.localKM,\n\t\tmodelVersion: vehicle.commercialDenominationSli,\n\t\tmodelYear: 0,\n\t\tplate: vehicle.license.toUpperCase(),\n\t\tplateDate: transformTimestampToDate(vehicle.licenseDate, false),\n\t\ttmaimg: vehicle.tmaimg,\n\t\tmodel: {\n\t\t\tcode: vehicle.familyModelCode,\n\t\t\tkey: vehicle.familyModelCode,\n\t\t\tname: vehicle.familyModelDesc,\n\t\t},\n\t};\n};\n\nconst transformTimestampToDate = (date: number, isOnlyYear: boolean) => {\n\tconst timestamp = date;\n\tlet formattedDate: string;\n\tif (isOnlyYear) {\n\t\tformattedDate = new Date(timestamp).toLocaleDateString('es-ES', {\n\t\t\tyear: 'numeric',\n\t\t});\n\t} else {\n\t\tformattedDate = new Date(timestamp).toISOString().replace(/T/, ' ').replace(/\\..+/, '');\n\t}\n\treturn formattedDate;\n};\n\nexport function CitaPosventaMaintenanceForm({setSelectedJourney}: TriggerProps) {\n\tconst faContent = useFaContent();\n\tconst {loading} = useGetDealers(faContent?.dealer);\n\tconst vehicle = faContent?.vehicle[0];\n\n\tconst renderForm = (fields: FormDataFields) => {\n\t\tsetSelectedJourney(\n\t\t\t,\n\t\t\ttrue,\n\t\t);\n\t};\n\tuseEffect(() => {\n\t\tif (loading) return;\n\n\t\tconst fields = {\n\t\t\tmotivo: 'MANTENIMIENTO',\n\t\t\tformName: 'cita-posventa-maintenance-plan',\n\t\t\tmatricula: vehicle.license,\n\t\t\tvehicleForMaintenance: getAppointmentVehicle(vehicle),\n\t\t\tkilometros: vehicle.localKM == -1 ? vehicle.climaProKM : vehicle.localKM,\n\t\t\tanoMatriculacion: transformTimestampToDate(vehicle.licenseDate, true),\n\t\t\tmodelo: vehicle.commercialDenominationSli,\n\t\t\t//budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n\t\t};\n\n\t\tgetDealers()\n\t\t\t.then(() => {\n\t\t\t\trenderForm({...fields});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trenderForm({...fields}); // Hay que ver que hacer en estos casos.\n\t\t\t});\n\t}, [loading]);\n\n\treturn <>;\n}\n","import React, {useEffect} from 'react';\nimport {getDealers} from 'src/bff';\nimport {TriggerProps, useFaContent, useGetDealers, VehiclePortal} 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: VehiclePortal): AppointmentVehicle => {\n\treturn {\n\t\tbrand: 'V',\n\t\tframe: vehicle.frame,\n\t\tmillage: vehicle.localKM == -1 ? vehicle.climaProKM : vehicle.localKM,\n\t\tmodelVersion: vehicle.commercialDenominationSli,\n\t\tmodelYear: 0,\n\t\tplate: vehicle.license.toUpperCase(),\n\t\tplateDate: transformTimestampToDate(vehicle.licenseDate, false),\n\t\ttmaimg: vehicle.tmaimg,\n\t\tmodel: {\n\t\t\tcode: vehicle.familyModelCode,\n\t\t\tkey: vehicle.familyModelCode,\n\t\t\tname: vehicle.familyModelDesc,\n\t\t},\n\t};\n};\n\nconst transformTimestampToDate = (date: number, isOnlyYear: boolean) => {\n\tconst timestamp = date;\n\tlet formattedDate: string;\n\tif (isOnlyYear) {\n\t\tformattedDate = new Date(timestamp).toLocaleDateString('es-ES', {\n\t\t\tyear: 'numeric',\n\t\t});\n\t} else {\n\t\tformattedDate = new Date(timestamp).toISOString().replace(/T/, ' ').replace(/\\..+/, '');\n\t}\n\treturn formattedDate;\n};\n\nexport function CitaPosventaPortalForm({setSelectedJourney}: TriggerProps) {\n\tconst faContent = useFaContent();\n\tconst {loading} = useGetDealers(faContent?.dealer);\n\tconst vehicle = faContent?.vehicle[0];\n\n\tconst renderForm = (fields: FormDataFields) => {\n\t\tsetSelectedJourney(\n\t\t\t,\n\t\t\ttrue,\n\t\t);\n\t};\n\tuseEffect(() => {\n\t\tif (loading) return;\n\n\t\tconst fields = {\n\t\t\tformName: 'cita-posventa-portal',\n\t\t\tmatricula: vehicle.license,\n\t\t\tvehicleForMaintenance: getAppointmentVehicle(vehicle),\n\t\t\tkilometros: vehicle.localKM == -1 ? vehicle.climaProKM : vehicle.localKM,\n\t\t\tanoMatriculacion: transformTimestampToDate(vehicle.licenseDate, true),\n\t\t\tmodelo: vehicle.commercialDenominationSli,\n\t\t\t//budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n\t\t};\n\n\t\tgetDealers()\n\t\t\t.then(() => {\n\t\t\t\trenderForm({...fields});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trenderForm({...fields}); // Hay que ver que hacer en estos casos.\n\t\t\t});\n\t}, [loading]);\n\n\treturn <>;\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\tisNull,\n\tLayerManagerWrapper,\n\tNewDealerCard,\n\tuseFeatureAppConfig,\n\tuseFeatureAppEnvironment,\n\tuseMapGeneralController,\n\tweekDay_Day_Hour,\n} from 'src/feature-app';\nimport {LoadingLayer, ReservaCitaLayer} from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport {\n\tAssessors,\n\tAvailability,\n\tCalendarSlot,\n\tDealersData,\n\tDmsInfo,\n\tHorario,\n\tOneFormState,\n\tSelectedTab,\n\tPoints,\n\tSteps,\n} from 'src/types';\nimport {CalendarioCita} from 'src/feature-app/CalendarioCita/';\nimport {useOneFormContext} from 'src/feature-app/OneForm';\nimport {useFeatureServices} from 'src/feature-app/hooks/use-feature-services';\nimport {\n\tgetDistanceFromLatLngCenter,\n\tcreateNoDmsSlotAndAssessor,\n\tLayerDesktopView,\n\tLayerMobileView,\n} from 'src/feature-app/NewMap';\nimport {getEarliestSlot, sortPointsByDistance} from 'src/feature-app/NewMap/sort-points';\nimport {useIsComerciales} from 'src/feature-app/hooks';\nimport {getEapiAvailability} from 'src/bff';\nimport {getFirstAndLastDayOfMonth} from 'src/helpers';\n\ninterface AvailabilityHistory {\n\tdealerkvps: string;\n\tavailabilityHistory: AvailabilityHistoryDealer[];\n}\n\ninterface AvailabilityHistoryDealer {\n\tdealer: DmsInfo;\n\tfrom: number;\n\tto: number;\n\tavailability: Availability;\n}\n\nexport const JourneyCitaPosventaController = () => {\n\tconst {formData, formInfo, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst {horario, dealer}: {horario?: Horario; dealer?: DealersData} = formData.fields;\n\tconst {formEnded, showCalendarOnLoad} = formInfo;\n\tconst {points, selectedDealer} = dealersInfo;\n\tconst {handleNextStep, handleScreenChange, setIsFullScreen} = useOneFormContext();\n\tconst layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst env = useFeatureAppEnvironment();\n\tconst config = useFeatureAppConfig();\n\tconst [showCalendar, setShowCalendar] = useState(false);\n\t// const [selectedPoint, handleSelectedPoint] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [error, setError] = useState(false);\n\tconst [preSelectedOrderValue, setPreSelectedOrderValue] = useState('ubicacion');\n\tconst pointsByTimeRef = useRef(null);\n\tconst pointsByDistanceRef = useRef(null);\n\tconst isComerciales = useIsComerciales();\n\n\tconst [firstAvailability, setFirstAvailability] = useState(null);\n\tconst availabilityHistory = useRef([]);\n\tconst loadingLayer = useRef(null);\n\tconst {\n\t\tclusters,\n\t\tcenterToCalculateDistance,\n\t\tsuperClusterRef,\n\t\tcardsDistanceRef,\n\t\tcardsTimeRef,\n\t\tselectedPoint,\n\t\thandleSelectedPoint,\n\t} = useMapGeneralController();\n\n\tconst [pointsToList, setPointsToList] = useState(null);\n\tconst [selectedSlot, setSelectedSlot] = useState(null);\n\n\tuseEffect(() => {\n\t\tif ((formEnded && dealer && showCalendarOnLoad) || selectedDealer || showCalendarOnLoad) {\n\t\t\tconst point = points.find((point: Points) => {\n\t\t\t\tif (point.properties.dealer.kvps === dealer?.kvps || point.properties.dealer.kvps === selectedDealer?.kvps) {\n\t\t\t\t\treturn point;\n\t\t\t\t}\n\t\t\t});\n\t\t\thandleShowCalendarOnClick(point);\n\t\t}\n\t}, []);\n\n\t//\n\t// Este useEffect sustituye a los anteriores.\n\t//\n\tuseEffect(() => {\n\t\tif (clusters && superClusterRef.current) {\n\t\t\tconst pointsByDistance = sortPointsByDistance(\n\t\t\t\tclusters,\n\t\t\t\tcenterToCalculateDistance.current,\n\t\t\t\tsuperClusterRef.current,\n\t\t\t);\n\t\t\tpointsByDistanceRef.current = pointsByDistance;\n\t\t\tsetPointsToList(pointsByDistance);\n\t\t}\n\t}, [clusters, superClusterRef.current]);\n\n\tconst getAvailability = async (\n\t\tdealer: DealersData,\n\t\tstart: number,\n\t\tend: number,\n\t\tskipHandleAvailability?: boolean,\n\t): Promise => {\n\t\tconst cachedAvailability = checkIfAvailabilityIsInCache(dealer, start);\n\n\t\tif (cachedAvailability) {\n\t\t\tsetFirstAvailability(cachedAvailability);\n\t\t\treturn cachedAvailability;\n\t\t} else {\n\t\t\tshowLoadingLayer();\n\t\t\tconst response = await getEapiAvailability(dealer.kvps, dealer.codInstalacion, start, end);\n\t\t\tif (!response) {\n\t\t\t\t// Error desde EAPI\n\t\t\t\thandleAvailabilityErrorLayer();\n\t\t\t}\n\t\t\tconst availability = response?.data;\n\t\t\tsaveAvailabilityInCache(dealer, start, end, availability);\n\t\t\thideLoadingLayer();\n\t\t\tsetError(false);\n\n\t\t\tif (availability.content?.calendar) {\n\t\t\t\tsetFirstAvailability(availability);\n\t\t\t\treturn availability;\n\t\t\t} else {\n\t\t\t\t// Error desde EAPI\n\t\t\t\t// handleAvailabilityErrorLayer();\n\t\t\t\t// Nuevo layer sin conexión DMS\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst checkIfAvailabilityIsInCache = (dealer: DealersData, start: number): Availability | null => {\n\t\tconst dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === dealer.kvps);\n\n\t\tif (dealerHistory) {\n\t\t\tconst availabiliyDealer = dealerHistory.availabilityHistory.find(\n\t\t\t\t(dealerAv) => dealerAv.from === start || start < dealerAv.to,\n\t\t\t);\n\t\t\treturn availabiliyDealer ? availabiliyDealer.availability : null;\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst getAvailabilityFromDealer = (kvps: string): AvailabilityHistory | null => {\n\t\tconst dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === kvps);\n\n\t\treturn dealerHistory ? dealerHistory : null;\n\t};\n\n\tconst saveAvailabilityInCache = (dealer: DealersData, start: number, end: number, availability: Availability) => {\n\t\tconst dealerInAvailability = availability.content.dealer;\n\t\tconst availabilityHistoryDealer: AvailabilityHistoryDealer = {\n\t\t\tdealer: dealerInAvailability ? dealerInAvailability : dealer.dmsInfo,\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tavailability,\n\t\t};\n\n\t\tconst dealerHistoryIndex = availabilityHistory.current.findIndex((a) => a.dealerkvps === dealer.kvps);\n\t\t// Si ya existe el dealer se añade a la array de availability.\n\t\tif (dealerHistoryIndex !== -1) {\n\t\t\tavailabilityHistory.current[dealerHistoryIndex].availabilityHistory.push(availabilityHistoryDealer); // Testear\n\t\t} else {\n\t\t\t// Si no existe el dealer se crea una entrada en el histórico.\n\t\t\tavailabilityHistory.current = [\n\t\t\t\t...availabilityHistory.current,\n\t\t\t\t{\n\t\t\t\t\tdealerkvps: dealer.kvps,\n\t\t\t\t\tavailabilityHistory: [availabilityHistoryDealer],\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t};\n\n\tconst getRandomInt = (max: number): number => {\n\t\tconst min = 1;\n\t\tmax = Math.floor(max);\n\t\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n\t};\n\n\tconst handleDmsMapExit = (slot: CalendarSlot | CalendarSlot[], point: Points) => {\n\t\tconst {dealer} = point.properties;\n\t\tconst dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n\t\tif (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n\t\t\tconst dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n\t\t\tdealer.dmsInfo = dealerFromDms;\n\t\t}\n\t\tconst {assessors} = dealer.dmsInfo;\n\n\t\tlet assessor: Assessors;\n\t\t// En ocasiones un mismo slot puede tener distintos asesores\n\t\t// por lo que hay que seleccionar uno de manera aleatoria.\n\t\tif (Array.isArray(slot)) {\n\t\t\tconst max = slot.length;\n\t\t\tconst index = getRandomInt(max) - 1;\n\t\t\t// slot = slot[selectedIndex];\n\t\t\tassessor = findAssessor(slot[index], assessors);\n\t\t} else {\n\t\t\tassessor = findAssessor(slot, assessors);\n\t\t}\n\n\t\tif (!assessor) {\n\t\t\tassessor = {\n\t\t\t\tcode: 'Undefined',\n\t\t\t\tname: 'Todos',\n\t\t\t};\n\t\t}\n\n\t\thandleDealerFlags(dealer);\n\n\t\tdispatch({\n\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\tpayload: {assessor, slot, dealer},\n\t\t});\n\t\t// setWaitForNextStep(false);\n\t\tif (!formEnded) {\n\t\t\thandleNextStep();\n\t\t}\n\t};\n\n\tconst findAssessor = (slot: CalendarSlot, assessors: Assessors[]): Assessors => {\n\t\treturn assessors.find((assessor) => {\n\t\t\treturn assessor.name === slot.assessor || assessor.code === slot.assessorCode;\n\t\t});\n\t};\n\n\tconst handleNoDmsMapExit = (franjaHoraria: string, day: string, point: Points) => {\n\t\tlet {dealer} = point.properties;\n\t\tconst dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n\t\tif (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n\t\t\tconst dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n\t\t\tdealer.dmsInfo = dealerFromDms;\n\t\t}\n\n\t\t// Validamos que la cita a crear sea sin DMS mediante el flag dmsAvailable en false\n\t\tif (dealer && dealer.dmsInfo) {\n\t\t\tdealer.dmsInfo.dmsAvailable = false;\n\t\t}\n\n\t\tconst {slot, assessor} = createNoDmsSlotAndAssessor(franjaHoraria, day);\n\n\t\thandleDealerFlags(dealer);\n\n\t\tdispatch({\n\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\tpayload: {slot, assessor, dealer},\n\t\t});\n\n\t\tif (!formEnded) {\n\t\t\thandleNextStep();\n\t\t}\n\t};\n\n\tconst handleShowSlots = useCallback((point: Points): string | null => {\n\t\tconst {slots} = point.properties?.dealer;\n\t\tlet finalSlot;\n\n\t\tif (!isNull(slots)) {\n\t\t\tfinalSlot = getFinalSlot(getEarliestSlot(slots));\n\n\t\t\treturn finalSlot ? finalSlot : null;\n\t\t}\n\n\t\treturn null;\n\t}, []);\n\n\tconst getFinalSlot = (from: number) => {\n\t\tif (!from) {\n\t\t\treturn null;\n\t\t}\n\t\tconst momentSlot = weekDay_Day_Hour(from);\n\t\tconst capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n\t\treturn capitalizedSlot.replace('-', ' a las ').concat('h');\n\t};\n\n\tconst handleShowCalendarOnClick = useCallback(async (point: Points) => {\n\t\tconst {firstDayOfMonth, lastDayOfMonth} = getFirstAndLastDayOfMonth();\n\t\t// if (point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.dmsAvailable) {\n\t\tconst availability = await getAvailability(point.properties.dealer, firstDayOfMonth, lastDayOfMonth);\n\t\t// if (availability && availability.content.calendar) {\n\t\t// handleSelectedPoint(point);\n\t\t// setShowCalendar(true);\n\t\t// }\n\t\t// } else {\n\t\thandleSelectedPoint(point);\n\t\tsetShowCalendar(true);\n\t\t// }\n\t}, []);\n\n\tconst handleHideCalendarOnClick = () => {\n\t\thandleSelectedPoint(null);\n\t\tsetShowCalendar(false);\n\t};\n\n\tconst handleDealerFlags = (dealer: DealersData) => {\n\t\tconst {formInfo, formData} = store.getState();\n\t\tconst {steps} = formInfo;\n\t\tconst {initialSteps, formEnded}: {initialSteps: Steps[]; formEnded: boolean} = formInfo;\n\t\tconst {\n\t\t\tcocheSustitucion,\n\t\t\tcocheAlTaller,\n\t\t\tdealer: pastDealer,\n\t\t}: {\n\t\t\tcocheSustitucion: 'true' | 'false';\n\t\t\tcocheAlTaller: 'true' | 'false';\n\t\t\tdealer: DealersData;\n\t\t} = formData.fields;\n\t\tlet newSteps = [...steps];\n\n\t\tif (isComerciales) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!dealer || !dealer.dmsInfo || !dealer.dmsInfo.pickupCarServiceAvailabe) {\n\t\t\tconst tallerIndex = newSteps.findIndex((step) => step.name === 'CocheAlTaller');\n\t\t\tnewSteps.splice(tallerIndex, 1);\n\t\t}\n\n\t\tif (!dealer || !dealer.dmsInfo || !dealer.dmsInfo.replacementCarServiceAvailable) {\n\t\t\tconst sustitucionIndex = newSteps.findIndex((step) => step.name === 'CocheSustitucion');\n\t\t\tnewSteps.splice(sustitucionIndex, 1);\n\t\t}\n\n\t\tconst newStepsWithIndex = newSteps.map((step, index) => {\n\t\t\tstep.screenIndex = index;\n\t\t\treturn step;\n\t\t});\n\n\t\t// 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\t\tlet newIndex: number;\n\t\tlet newCocheAlTaller = cocheAlTaller;\n\t\tlet newCocheSustitucion = cocheSustitucion;\n\t\tif (formEnded) {\n\t\t\t// dispatch({ type: 'UPDATE_FIELDS', payload: { cocheSustitucion: null, cocheAlTaller: null } });\n\t\t\tdispatch({type: 'UPDATE_FORM_ENDED', payload: false});\n\n\t\t\tif (pastDealer.kvps !== dealer.kvps) {\n\t\t\t\tif (dealer.dmsInfo.pickupCarServiceAvailabe) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tcocheAlTaller === 'false' &&\n\t\t\t\t\t\tpastDealer &&\n\t\t\t\t\t\tpastDealer.dmsInfo &&\n\t\t\t\t\t\t!pastDealer.dmsInfo.pickupCarServiceAvailabe\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewIndex = newStepsWithIndex.findIndex((step) => step.name === 'CocheAlTaller');\n\t\t\t\t\t\tnewCocheAlTaller = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (dealer.dmsInfo.replacementCarServiceAvailable) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tcocheAlTaller === 'false' &&\n\t\t\t\t\t\tpastDealer &&\n\t\t\t\t\t\tpastDealer.dmsInfo &&\n\t\t\t\t\t\t!pastDealer.dmsInfo.replacementCarServiceAvailable\n\t\t\t\t\t) {\n\t\t\t\t\t\tnewIndex = newStepsWithIndex.findIndex((step) => step.name === 'CocheSustitucion');\n\t\t\t\t\t\tnewCocheSustitucion = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdispatch({type: 'UPDATE_STEPS', payload: newStepsWithIndex});\n\t\tdispatch({\n\t\t\ttype: 'UPDATE_LAST_STEP',\n\t\t\tpayload: newStepsWithIndex[newStepsWithIndex.length - 1],\n\t\t});\n\t\tdispatch({\n\t\t\ttype: 'SET_NUMBER_OF_SCREENS',\n\t\t\tpayload: newStepsWithIndex.length,\n\t\t});\n\t\t// Solo se llega a esta parte después de finalizar el journey y volver al mapa para editar la concesión.\n\t\tif (formEnded) {\n\t\t\tnewIndex = newIndex ? newIndex : newStepsWithIndex.length - 1;\n\t\t\tdispatch({\n\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\tpayload: {\n\t\t\t\t\tcocheSustitucion: newCocheSustitucion,\n\t\t\t\t\tcocheAlTaller: newCocheAlTaller,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'UPDATE_STEP',\n\t\t\t\tpayload: newStepsWithIndex[newIndex],\n\t\t\t});\n\t\t\thandleScreenChange(newIndex);\n\t\t\tif (newStepsWithIndex[newIndex].name !== 'Confirmacion') {\n\t\t\t\tdispatch({type: 'UPDATE_FULLSCREEN', payload: false});\n\t\t\t\tsetIsFullScreen(false);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst renderCalendar = (): JSX.Element => {\n\t\tconst {centerToCalculateDistance, userIsGeoLocated} = useMapGeneralController();\n\n\t\treturn error ? null : (\n\t\t\t\n\t\t);\n\t};\n\n\tconst renderPoints = (\n\t\tpoints: Points[],\n\t\tcarPickupSelected?: boolean,\n\t\treplacementCarSelected?: boolean,\n\t): JSX.Element[] => {\n\t\treturn pointsByDistanceRef.current\n\t\t\t? pointsByDistanceRef.current.map((point: Points, index: number) => {\n\t\t\t\t\tif (!point.properties.cluster) {\n\t\t\t\t\t\tconst {dealer} = point.properties;\n\t\t\t\t\t\tconst distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tcardsDistanceRef.current[index] = el;\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\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\treturn null;\n\t\t\t })\n\t\t\t: null;\n\t};\n\n\t// Gestión del point seleccionado y del boton de seleccionar (dms)\n\tconst handleSeleccionarOnClick = useCallback((point: any) => {\n\t\thandleSelectedPoint(point);\n\t\thandleReservaCitaLayer(point);\n\t}, []);\n\n\tconst renderReservaCita = (state: any, close: CloseHandleV2) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\tconst renderLoadingLayer = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst handleReservaCitaLayer = (point: Points) => {\n\t\tlayerManager.openFocusLayer(renderReservaCita, {selectedPoint: point}, {size: FocusLayerSizeV2.A});\n\t};\n\tconst handleAvailabilityErrorLayer = () => {\n\t\thideLoadingLayer();\n\t\tsetError(true);\n\t\tlayerManager.openFocusLayer(renderAvailabilityErrorLayer, {}, {size: FocusLayerSizeV2.A});\n\t};\n\n\tconst showLoadingLayer = () => {\n\t\tconst layer = layerManager.openFocusLayer(renderLoadingLayer, {}, {size: FocusLayerSizeV2.A});\n\t\tloadingLayer.current = layer;\n\t};\n\n\tconst hideLoadingLayer = () => {\n\t\tif (loadingLayer.current) {\n\t\t\tloadingLayer.current.close();\n\t\t\tloadingLayer.current = null;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tshowLoadingLayer();\n\t\t} else {\n\t\t\thideLoadingLayer();\n\t\t}\n\t}, [loading]);\n\n\treturn (\n\t\t
\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\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 {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\tLayerManagerWrapper,\n\tuseFeatureAppConfig,\n\tuseFeatureAppEnvironment,\n\tuseMapGeneralController,\n} from 'src/feature-app';\nimport {useFeatureServices} from 'src/feature-app/hooks/use-feature-services';\nimport {LoadingLayer} from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport {Assessors, Availability, CalendarSlot, DealersData, DmsInfo, Horario, OneFormState, Points} from 'src/types';\nimport {createNoDmsSlotAndAssessor} from 'src/feature-app/NewMap';\nimport {CalendarioCita} from 'src/feature-app/CalendarioCita';\nimport {useOneFormContext} from 'src/feature-app/OneForm';\nimport {getFirstAndLastDayOfMonth} from 'src/helpers';\nimport {getEapiAvailability} from 'src/bff';\n\ninterface AvailabilityHistory {\n\tdealerkvps: string;\n\tavailabilityHistory: AvailabilityHistoryDealer[];\n}\n\ninterface AvailabilityHistoryDealer {\n\tdealer: DmsInfo;\n\tfrom: number;\n\tto: number;\n\tavailability: Availability;\n}\n\nexport const JourneyCitaPosventaDealerController = () => {\n\tconst {formData, formInfo, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst {horario, dealer, dealerKvps}: {horario?: Horario; dealer?: DealersData; dealerKvps?: string} = formData.fields;\n\tconst {points} = dealersInfo;\n\tconst {handleNextStep} = useOneFormContext();\n\tconst layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst env = useFeatureAppEnvironment();\n\tconst config = useFeatureAppConfig();\n\tconst [showCalendar, setShowCalendar] = useState(false);\n\t// const [selectedPoint, handleSelectedPoint] = useState(null);\n\tconst [loading, setLoading] = useState(false);\n\tconst [error, setError] = useState(false);\n\tconst [loadingPoint, setLoadingPoint] = useState(true);\n\n\tconst [firstAvailability, setFirstAvailability] = useState(null);\n\tconst availabilityHistory = useRef([]);\n\tconst loadingLayer = useRef(null);\n\tconst {selectedPoint, handleSelectedPoint} = useMapGeneralController();\n\n\tconst [pointsToList, setPointsToList] = useState(null);\n\tconst [selectedSlot, setSelectedSlot] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetLoadingPoint(true);\n\t\t// setTimeout(() => {\n\t\tconst point = points.find((point: Points) => {\n\t\t\tif (point.properties.dealer.kvps === dealer?.kvps || point.properties.dealer.kvps === dealerKvps) {\n\t\t\t\treturn point;\n\t\t\t}\n\t\t});\n\t\t// handleShowCalendarOnClick(point);\n\t\tsetLoadingPoint(false);\n\t\t// }, 0);\n\t}, []);\n\n\tconst getAvailability = async (\n\t\tdealer: DealersData,\n\t\tstart: number,\n\t\tend: number,\n\t\tskipHandleAvailability?: boolean,\n\t): Promise => {\n\t\tconst cachedAvailability = checkIfAvailabilityIsInCache(dealer, start);\n\n\t\tif (cachedAvailability) {\n\t\t\tsetFirstAvailability(cachedAvailability);\n\t\t\treturn cachedAvailability;\n\t\t} else {\n\t\t\tshowLoadingLayer();\n\t\t\tif (availabilityHistory.current.length === 0) {\n\t\t\t\tconst {firstDayOfMonth, lastDayOfMonth} = getFirstAndLastDayOfMonth();\n\t\t\t\tstart = firstDayOfMonth;\n\t\t\t\tend = lastDayOfMonth;\n\t\t\t}\n\t\t\tconst response = await getEapiAvailability(dealer.kvps, dealer.codInstalacion, start, end);\n\t\t\tif (!response) {\n\t\t\t\t// Error desde EAPI\n\t\t\t\thandleAvailabilityErrorLayer();\n\t\t\t}\n\t\t\tconst availability = response?.data;\n\t\t\tsetError(false);\n\t\t\tsaveAvailabilityInCache(dealer, start, end, availability);\n\t\t\thideLoadingLayer();\n\n\t\t\tif (availability.content?.calendar) {\n\t\t\t\tsetFirstAvailability(availability);\n\t\t\t\treturn availability;\n\t\t\t} else {\n\t\t\t\t// Error desde EAPI\n\t\t\t\t// handleAvailabilityErrorLayer();\n\t\t\t\t// Nuevo layer sin conexión DMS\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst checkIfAvailabilityIsInCache = (dealer: DealersData, start: number): Availability | null => {\n\t\tconst dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === dealer.kvps);\n\n\t\tif (dealerHistory) {\n\t\t\tconst availabiliyDealer = dealerHistory.availabilityHistory.find(\n\t\t\t\t(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\t\t\t);\n\t\t\treturn availabiliyDealer ? availabiliyDealer.availability : null;\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst getAvailabilityFromDealer = (kvps: string): AvailabilityHistory | null => {\n\t\tconst dealerHistory = availabilityHistory.current.find((a) => a.dealerkvps === kvps);\n\n\t\treturn dealerHistory ? dealerHistory : null;\n\t};\n\n\tconst saveAvailabilityInCache = (dealer: DealersData, start: number, end: number, availability: Availability) => {\n\t\tconst dealerInAvailability = availability.content.dealer;\n\t\tconst availabilityHistoryDealer: AvailabilityHistoryDealer = {\n\t\t\tdealer: dealerInAvailability ? dealerInAvailability : dealer.dmsInfo,\n\t\t\tfrom: start,\n\t\t\tto: end,\n\t\t\tavailability,\n\t\t};\n\n\t\tconst dealerHistoryIndex = availabilityHistory.current.findIndex((a) => a.dealerkvps === dealer.kvps);\n\t\t// Si ya existe el dealer se añade a la array de availability.\n\t\tif (dealerHistoryIndex !== -1) {\n\t\t\tavailabilityHistory.current[dealerHistoryIndex].availabilityHistory.push(availabilityHistoryDealer); // Testear\n\t\t} else {\n\t\t\t// Si no existe el dealer se crea una entrada en el histórico.\n\t\t\tavailabilityHistory.current = [\n\t\t\t\t...availabilityHistory.current,\n\t\t\t\t{dealerkvps: dealer.kvps, availabilityHistory: [availabilityHistoryDealer]},\n\t\t\t];\n\t\t}\n\t};\n\n\tconst getRandomInt = (max: number): number => {\n\t\tconst min = 1;\n\t\tmax = Math.floor(max);\n\t\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n\t};\n\n\tconst handleDmsMapExit = (slot: CalendarSlot | CalendarSlot[], point: Points) => {\n\t\tconst {dealer} = point.properties;\n\t\tconst dealerAvailability = getAvailabilityFromDealer(dealer.kvps);\n\t\tif (dealerAvailability && dealerAvailability.availabilityHistory[0].dealer) {\n\t\t\tconst dealerFromDms = dealerAvailability.availabilityHistory[0].dealer;\n\t\t\tdealer.dmsInfo = dealerFromDms;\n\t\t}\n\t\tconst {assessors} = dealer.dmsInfo;\n\t\tlet assessor: Assessors;\n\t\t// En ocasiones un mismo slot puede tener distintos asesores\n\t\t// por lo que hay que seleccionar uno de manera aleatoria.\n\t\tif (Array.isArray(slot)) {\n\t\t\tconst max = slot.length;\n\t\t\tconst index = getRandomInt(max) - 1;\n\t\t\t// slot = slot[selectedIndex];\n\t\t\tassessor = findAssessor(slot[index], assessors);\n\t\t} else {\n\t\t\tassessor = findAssessor(slot, assessors);\n\t\t}\n\n\t\tif (!assessor) {\n\t\t\tassessor = {\n\t\t\t\tcode: 'Undefined',\n\t\t\t\tname: 'Todos',\n\t\t\t};\n\t\t}\n\n\t\tconst appointmentDealer = createAppointmentDealer(dealer);\n\n\t\tdispatch({\n\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\tpayload: {assessor, slot, dealer, appointmentDealer},\n\t\t});\n\t\t// setWaitForNextStep(false);\n\t\thandleNextStep();\n\t};\n\n\tconst findAssessor = (slot: CalendarSlot, assessors: Assessors[]): Assessors => {\n\t\treturn assessors.find((assessor) => {\n\t\t\treturn assessor.name === slot.assessor || assessor.code === slot.assessorCode;\n\t\t});\n\t};\n\n\tconst createAppointmentDealer = (dealer: DealersData) => {\n\t\tconst {markerInfo, dmsInfo} = dealer;\n\n\t\treturn {\n\t\t\tassessors: dmsInfo.assessors ? [...dmsInfo.assessors] : undefined,\n\t\t\tdealerId: dmsInfo.dealerId ? {...dmsInfo.dealerId} : {...markerInfo.dealerInfo.dealerId},\n\t\t\tdmsAvailable: dmsInfo.dmsAvailable ? dmsInfo.dmsAvailable : false,\n\t\t\temail: dmsInfo.email ? dmsInfo.email : markerInfo.dealerInfo.mail,\n\t\t\tname: dmsInfo.name ? dmsInfo.name : markerInfo.dealerInfo.name,\n\t\t\tphone: dmsInfo.phone ? dmsInfo.phone : markerInfo.dealerInfo.phone,\n\t\t\toverhaulingServiceAvialable: dmsInfo.overhaulingServiceAvialable ? dmsInfo.overhaulingServiceAvialable : false,\n\t\t\tpickupCarServiceAvailabe: dmsInfo.pickupCarServiceAvailabe ? dmsInfo.pickupCarServiceAvailabe : false,\n\t\t\treplacementCarServiceAvailable: dmsInfo.replacementCarServiceAvailable\n\t\t\t\t? dmsInfo.replacementCarServiceAvailable\n\t\t\t\t: false,\n\t\t\treference: dmsInfo.reference,\n\t\t};\n\t};\n\n\tconst handleNoDmsMapExit = (franjaHoraria: string, day: string, point: Points) => {\n\t\tlet {dealer} = point.properties;\n\t\tconst {slot, assessor} = createNoDmsSlotAndAssessor(franjaHoraria, day);\n\n\t\tdealer = {\n\t\t\t...dealer,\n\t\t\tdmsInfo: {\n\t\t\t\t...dealer.dmsInfo,\n\t\t\t\tdmsAvailable: false,\n\t\t\t\tpickupCarServiceAvailabe: false,\n\t\t\t\treplacementCarServiceAvailable: false,\n\t\t\t\toverhaulingServiceAvialable: false,\n\t\t\t},\n\t\t};\n\n\t\tconst appointmentDealer = createAppointmentDealer(dealer);\n\n\t\tdispatch({\n\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\tpayload: {slot, assessor, dealer, appointmentDealer},\n\t\t});\n\n\t\thandleNextStep();\n\t};\n\n\tconst handleHideCalendarOnClick = () => {\n\t\thandleSelectedPoint(null);\n\t\tsetShowCalendar(false);\n\t};\n\n\tconst renderCalendar = (): JSX.Element => {\n\t\tconst {centerToCalculateDistance, userIsGeoLocated} = useMapGeneralController();\n\n\t\treturn error ? null : (\n\t\t\t\n\t\t);\n\t};\n\n\tconst renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\tconst renderLoadingLayer = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\tconst handleAvailabilityErrorLayer = () => {\n\t\thideLoadingLayer();\n\t\tsetError(true);\n\t\tlayerManager.openFocusLayer(renderAvailabilityErrorLayer, {}, {size: FocusLayerSizeV2.A});\n\t};\n\n\tconst showLoadingLayer = () => {\n\t\tconst layer = layerManager.openFocusLayer(renderLoadingLayer, {}, {size: FocusLayerSizeV2.A});\n\t\tloadingLayer.current = layer;\n\t};\n\n\tconst hideLoadingLayer = () => {\n\t\tif (loadingLayer.current) {\n\t\t\tloadingLayer.current.close();\n\t\t\tloadingLayer.current = null;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (loading) {\n\t\t\tshowLoadingLayer();\n\t\t} else {\n\t\t\thideLoadingLayer();\n\t\t}\n\t}, [loading]);\n\n\treturn !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\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\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\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\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\tDealer,\n\tSeleccionCita,\n\tHorario,\n}\n\ninterface MapaCitaProps {\n\tshowHorario?: boolean;\n\tformName?: string;\n}\n\nconst SaltoDeLinea = styled.div`\n\tdisplay: none;\n\t@media all and (min-width: 736px) {\n\t\tdisplay: inline;\n\t}\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\tconst {formName, showHorario} = props;\n\tconst dispatch = useDispatch();\n\tconst store = useStore();\n\tconst {formData, formInfo, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst {dealer}: {dealer?: DealersData} = formData.fields;\n\tconst {selectedDealer} = dealersInfo;\n\tconst {firstMapLoad, multiStepScreenIndex, navigationMovingForward} = formInfo;\n\n\tconst {\n\t\thandleScreenChange,\n\t\tsetNextMultiStep,\n\t\tsetNextMultiStepScreenIndex,\n\t\tsetPreviousMultiStep,\n\t\tsetWaitForPreviousStep,\n\t\twaitForPreviousStep,\n\t\tsetIsFullScreen,\n\t\tsetShowPreviousStep,\n\t} = useOneFormContext();\n\n\tconst steps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t\n\t\t\t\t\tBien, empecemos con los detalles de tu visita.{' '}\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t¿A dónde quieres llevar tu{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tcoche?*\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: MapaCitaSteps.Dealer,\n\t\t\tname: 'MapSearch',\n\t\t\toutputs: ['location'],\n\t\t\toutputsText: ['location'],\n\t\t\tshowOverflow: true,\n\t\t},\n\t\t{\n\t\t\tscreenIndex: MapaCitaSteps.SeleccionCita,\n\t\t\tname: 'MapSelect',\n\t\t\talternateTitle: (\n\t\t\t\t\n\t\t\t\t\tEsta es la cita que has elegido\n\t\t\t\t\n\t\t\t),\n\t\t\ttitle: <>,\n\t\t\tfields: ,\n\t\t\toutputs: ['slot.from', 'dealer.name'],\n\t\t\toutputsText: ['slot.from', 'en el taller', 'dealer.name'],\n\t\t\tfullScreen: true,\n\t\t\tmultiStepLastScreen: true,\n\t\t\thidePreviousStep: true,\n\t\t},\n\t];\n\n\tconst [selectedStep, setSelectedStep] = useState(steps[0]);\n\n\t/**\n\t * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n\t */\n\tconst onMapLoad = () => {\n\t\thandleFirstLoad();\n\t};\n\n\t//\n\t//\n\t//\n\t// Falta añadir la parte del dealer precargado\n\t//\n\t//\n\t//\n\tconst handleFirstLoad = async () => {\n\t\tif (firstMapLoad) {\n\t\t\t// Inicialización\n\t\t\tif (dealer) {\n\t\t\t\tinitializeMultiStep(dealer);\n\t\t\t\treturn;\n\t\t\t} else if (selectedDealer) {\n\t\t\t\tinitializeMultiStep(selectedDealer);\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tinitializeMultiStep();\n\t\t\t}\n\t\t} else {\n\t\t\tif (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n\t\t\t\t// 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\t\t\t\tinitializeMultiStep();\n\t\t\t} else {\n\t\t\t\t// En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n\t\t\t\tconst newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n\t\t\t\t// Lo mismo para previous, solo le desactivamos si estamos en la primera.\n\t\t\t\tconst newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n\t\t\t\tupdateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n\t\t\t\tupdateScreenChangeVariables(multiStepScreenIndex);\n\n\t\t\t\ttimeoutPreviousStep();\n\t\t\t\t// 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\t\t\t\ttimeoutPreviousStep(1000);\n\t\t\t}\n\t\t}\n\t\tdispatch({type: 'UPDATE_FIELDS', payload: {horario: 'before'}}); // Al eliminar la pantalla de horario seleccionamos por defecto \"before\" para preseleccionar el primer slot disponible.\n\n\t\tsetNextMultiStep(() => nextMapaCita);\n\t\tsetPreviousMultiStep(() => previousMapaCita);\n\t};\n\n\tconst initializeMultiStep = async (dealer?: DealersData) => {\n\t\tif (dealer) {\n\t\t\tawait updateMapVariables(dispatch, dealer);\n\t\t\tupdateWaitForNextAndPreviousStep(false, true);\n\t\t\tupdateScreenChangeVariables(steps.length - 1);\n\t\t\ttimeoutPreviousStep();\n\t\t} else {\n\t\t\tupdateWaitForNextAndPreviousStep(true, false);\n\t\t\tupdateScreenChangeVariables(0);\n\t\t}\n\t};\n\n\tconst updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n\t\tif (waitForNextStep !== null) {\n\t\t\tdispatch({type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep});\n\t\t}\n\t\tif (waitForPreviousStep !== null) {\n\t\t\tsetWaitForPreviousStep(waitForPreviousStep);\n\t\t}\n\t};\n\n\tconst nextMapaCita = () => {\n\t\tconst {multiStepScreenIndex} = store.getState().formInfo;\n\n\t\thandleScreenChange();\n\n\t\t// Una vez avanzamos dentro de los multisteps se activa el wait\n\t\t// previous step para volver hacia atrás dentro del propio multistep.\n\t\tif (!waitForPreviousStep || multiStepScreenIndex === 0) {\n\t\t\tupdateWaitForNextAndPreviousStep(null, true);\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tupdateScreenChangeVariables(multiStepScreenIndex + 1);\n\t\t\t// Si estamos en el último paso del multistep se desactiva el\n\t\t\t// wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n\t\t\tif (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n\t\t\t\tupdateWaitForNextAndPreviousStep(false, null);\n\t\t\t\tif (multiStepScreenIndex === 0) {\n\t\t\t\t\tsetShowPreviousStep(false);\n\t\t\t\t} else {\n\t\t\t\t\tsetShowPreviousStep(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}, TIME_FOR_TRANSFORM);\n\t};\n\n\tconst previousMapaCita = () => {\n\t\tconst {multiStepScreenIndex, waitForNextStep} = store.getState().formInfo;\n\n\t\thandleScreenChange();\n\n\t\t// Se desactiva el wait previous step en la segunda pantalla para que\n\t\t// en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n\t\tif (multiStepScreenIndex === 1) {\n\t\t\tupdateWaitForNextAndPreviousStep(null, false);\n\t\t}\n\n\t\tif (!waitForNextStep) {\n\t\t\tupdateWaitForNextAndPreviousStep(true, null);\n\t\t}\n\n\t\t// Se fija en la pantalla previa a la primera para que cuando se cambie\n\t\t// a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n\t\tsetTimeout(() => {\n\t\t\tupdateScreenChangeVariables(multiStepScreenIndex - 1);\n\t\t}, TIME_FOR_TRANSFORM);\n\t};\n\n\t/**\n\t * En algunas ocasiones no funciona correctamente el setShowPreviousStep(false) por lo que conviene aplicar un timeout.\n\t */\n\tconst timeoutPreviousStep = (ms?: number) => {\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tsetShowPreviousStep(false);\n\t\t\t},\n\t\t\tms ? ms : TIME_FOR_TRANSFORM,\n\t\t);\n\t};\n\n\tconst updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n\t\tsetNextMultiStepScreenIndex(newMultiStepScreenIndex);\n\t\tdispatch({type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex});\n\t\tsetSelectedStep(steps[newMultiStepScreenIndex]);\n\t\tsetIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n\t\tsetShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n\t};\n\n\tuseEffect(() => {\n\t\tdispatch({type: 'UPDATE_MULTISTEPS', payload: steps});\n\n\t\thandleFirstLoad();\n\n\t\treturn () => {\n\t\t\tdispatch({type: 'UPDATE_FIRST_MAP_LOAD', payload: false});\n\t\t\tsetShowPreviousStep(true);\n\t\t\tupdateWaitForNextAndPreviousStep(false, false);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import {Text} from '@volkswagen-onehub/components-core';\nimport React, {useEffect, useState} from 'react';\nimport {useDispatch, useSelector} 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\tshowHorario?: boolean;\n\tformName?: string;\n}\n\nexport function MapaCitaDealer(props: MapaCitaProps) {\n\tconst dispatch = useDispatch();\n\tconst {formData, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst {selectedDealer, urlDealer} = dealersInfo;\n\n\tconst {dealer}: {dealer?: DealersData} = formData.fields;\n\n\tconst {\n\t\thandleScreenChange,\n\t\tsetNextMultiStep,\n\t\tsetNextMultiStepScreenIndex,\n\t\tsetPreviousMultiStep,\n\t\tsetWaitForPreviousStep,\n\t\tsetIsFullScreen,\n\t\tsetShowPreviousStep,\n\t} = useOneFormContext();\n\n\tconst steps: Steps[] = [\n\t\t{\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'MapSelect',\n\t\t\talternateTitle: (\n\t\t\t\t\n\t\t\t\t\tEsta es la cita que has elegido\n\t\t\t\t\n\t\t\t),\n\t\t\ttitle: <>,\n\t\t\tfields: ,\n\t\t\toutputs: ['slot.from', 'dealer.name'],\n\t\t\toutputsText: ['slot.from', 'en el taller', 'dealer.name'],\n\t\t\tfullScreen: true,\n\t\t\tmultiStepLastScreen: true,\n\t\t\thidePreviousStep: true,\n\t\t},\n\t];\n\n\tconst [selectedStep, setSelectedStep] = useState(steps[0]);\n\n\tconst handleFirstLoad = async () => {\n\t\tif (urlDealer) {\n\t\t\tinitializeMultiStep(urlDealer);\n\t\t\treturn;\n\t\t} else if (selectedDealer) {\n\t\t\tinitializeMultiStep(selectedDealer);\n\t\t\treturn;\n\t\t} else {\n\t\t\tinitializeMultiStep();\n\t\t}\n\n\t\tsetNextMultiStep(() => navigateMultiStep);\n\t\tsetPreviousMultiStep(() => navigateMultiStep);\n\t};\n\n\tconst initializeMultiStep = async (dealer?: DealersData) => {\n\t\tif (dealer) {\n\t\t\tdispatch({type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: 0});\n\t\t\tawait updateMapVariables(dispatch, dealer);\n\t\t\tupdateScreenChangeVariables(0);\n\t\t\tupdateWaitForNextAndPreviousStep(false, false);\n\t\t\ttimeoutPreviousStep();\n\t\t}\n\t};\n\n\tconst updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n\t\tif (waitForNextStep !== null) {\n\t\t\tdispatch({type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep});\n\t\t}\n\t\tif (waitForPreviousStep !== null) {\n\t\t\tsetWaitForPreviousStep(waitForPreviousStep);\n\t\t}\n\t};\n\n\tconst navigateMultiStep = () => {\n\t\thandleScreenChange();\n\t};\n\n\t/**\n\t * En algunas ocasiones no funciona correctamente el setShowPreviousStep(false) por lo que conviene aplicar un timeout.\n\t */\n\tconst timeoutPreviousStep = (ms?: number) => {\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tsetShowPreviousStep(false);\n\t\t\t},\n\t\t\tms ? ms : TIME_FOR_TRANSFORM,\n\t\t);\n\t};\n\n\tconst updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n\t\tsetIsFullScreen(true);\n\t\tdispatch({type: 'UPDATE_FULLSCREEN', payload: true});\n\t\tsetNextMultiStepScreenIndex(newMultiStepScreenIndex);\n\t\tdispatch({type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex});\n\t\tsetSelectedStep(steps[newMultiStepScreenIndex]);\n\t\tsetShowPreviousStep(false);\n\t};\n\n\tuseEffect(() => {\n\t\tdispatch({type: 'UPDATE_MULTISTEPS', payload: steps});\n\t\thandleFirstLoad();\n\n\t\treturn () => {\n\t\t\tdispatch({type: 'UPDATE_FIRST_MAP_LOAD', payload: false});\n\t\t\tsetShowPreviousStep(true);\n\t\t\tupdateWaitForNextAndPreviousStep(false, false);\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t\n\t);\n}\n","import {\n\tBreakpoints,\n\tBreakpointWrapper,\n\tContainer,\n\tContainerGutter,\n\tContainerPadding,\n\tCTA,\n\tSpinner,\n\tstyled,\n\tText,\n\tTextAlignment,\n\tTokenTextAppearance,\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\tcreateNoDmsSlotAndAssessor,\n\tgetFranjaAndDayFrom,\n\tweekDay_DayNumber_De_Month,\n\tuseFeatureAppConfig,\n\tweekDay_Day_Hour,\n} from 'src/feature-app';\nimport {DealersData, OneFormState, Slot, Horario} from 'src/types';\n\nconst Content = styled.div`\n\tbackground-color: #ffffff;\n\tpadding: 44px 31px;\n\tflex: auto;\n\ttext-align: center;\n\twidth: 100%;\n\t@media screen and (min-width: 560px) {\n\t\tpadding: 52px 46px;\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tpadding: var(--size-grid001);\n\t}\n`;\n\nconst CTAWrapper = styled.div`\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\ttext-align: left;\n\t> div {\n\t\ttext-align: left;\n\t}\n\t> button {\n\t\t@media screen and (min-width: 560px) {\n\t\t\twidth: auto;\n\t\t}\n\t}\n`;\n\ninterface InvalidFormProps {\n\tnotSavedField?: string;\n\tcloseLayerCallback?: CloseHandleV2;\n}\n\nexport function InvalidForm(props: InvalidFormProps) {\n\tconst {notSavedField, closeLayerCallback} = props;\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t¿Quieres conservar estos últimos cambios?\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tSi es así, necesitamos que guardes los cambios que has hecho {notSavedField} antes de confirmar tu cita.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tstretchContent\n\t\t\t\t\t>\n\t\t\t\t\t\tEntendido\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n\ninterface loadingSreenProps {\n\tisleads?: boolean;\n\tcopy?: string;\n}\n\nexport function LoadingScreen(props: loadingSreenProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t{props.copy ? {props.copy} : Enviando tu petición}\n\t\t\n\t);\n}\n\ninterface KoScreenProps {\n\tretrySubmit: (e: any) => void;\n\tcloseLayerCallback?: CloseHandleV2;\n\ttitle?: string;\n\tbodyCopy?: string;\n\tisLEM?: boolean;\n\thideSecondCTA?: boolean;\n}\n\nexport function KoScreen(props: KoScreenProps) {\n\tconst {retrySubmit, closeLayerCallback, title, bodyCopy, isLEM, hideSecondCTA} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{title ? title : 'Uy, algo ha pasado'}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{bodyCopy ? bodyCopy : 'Por alguna razón no hemos podido recoger tus datos. ¿Lo intentamos de nuevo?'}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tretrySubmit(e);\n\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tReintentar\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{hideSecondCTA ? null : isLEM ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tIr a la web\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSeguir navegando\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\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tretrySubmit(e);\n\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tReintentar\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{hideSecondCTA ? null : isLEM ? (\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\tIr a la web\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\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\t\tSeguir navegando\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
\n\t\t\t
\n\t\t
\n\t);\n}\n\ninterface IntermitenciaDMSKoProps {\n\tretrySubmit: (e: any) => void;\n\tcloseLayerCallback?: CloseHandleV2;\n}\n\nexport function IntermitenciaDMSKo(props: IntermitenciaDMSKoProps) {\n\tconst {retrySubmit, closeLayerCallback} = props;\n\tconst [dmsFailed, setDmsFailed] = useState(false);\n\tconst store: Store = useStore();\n\tconst dispatch = useDispatch();\n\tconst config = useFeatureAppConfig();\n\n\tconst [day, setDay] = useState(null);\n\tconst [franjaHoraria, setFranjaHoraria] = useState(null);\n\tconst [name, setName] = useState(null);\n\tconst [selectedPoint, setSelectedPoint] = useState(null);\n\tconst {horario}: {horario?: Horario} = store.getState().formData.fields;\n\n\tuseEffect(() => {\n\t\tconst {sendDmsFailed} = store.getState().formInfo;\n\t\tlet {slot, dealer}: {slot?: Slot; dealer?: DealersData} = store.getState().formData.fields;\n\n\t\tsetDmsFailed(sendDmsFailed);\n\t\tconst {franjaHoraria} = getFranjaAndDayFrom(slot.from);\n\n\t\tsetDay(weekDay_DayNumber_De_Month(slot.from));\n\t\tsetFranjaHoraria(franjaHoraria.toLowerCase());\n\t\tsetName(dealer.name);\n\t\tsetSelectedPoint(slot);\n\t}, []);\n\n\tconst handleShowSlots = useCallback((): string | null => {\n\t\tlet {slot}: {slot?: Slot} = store.getState().formData.fields;\n\n\t\tconst finalSlot = getFinalSlot(slot.from);\n\n\t\treturn finalSlot ? finalSlot : null;\n\t}, []);\n\n\tconst getFinalSlot = (from: number) => {\n\t\tconst momentSlot = weekDay_Day_Hour(from);\n\t\tconst capitalizedSlot = momentSlot.charAt(0).toUpperCase() + momentSlot.slice(1);\n\t\treturn capitalizedSlot.replace('-', ' a las ').concat('h');\n\t};\n\n\tconst createNoDmsSlot = async (e: any) => {\n\t\tlet {slot, dealer}: {slot?: Slot; dealer?: DealersData} = store.getState().formData.fields;\n\t\tdealer = {\n\t\t\t...dealer,\n\t\t\tdmsInfo: {\n\t\t\t\t...dealer.dmsInfo,\n\t\t\t\tdmsAvailable: false,\n\t\t\t},\n\t\t};\n\t\tconst {franjaHoraria, day} = getFranjaAndDayFrom(slot.from);\n\t\tconst {slot: newSlot, assessor} = createNoDmsSlotAndAssessor(franjaHoraria, day);\n\t\tdispatch({type: 'UPDATE_FIELDS', payload: {slot: newSlot, assessor, dealer}});\n\n\t\tretrySubmit(e);\n\t};\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tNo hemos podido confirmar tu cita para el{' '}\n\t\t\t\t\t{handleShowSlots()}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t¿Quieres que {name} se ponga en contacto contigo para\n\t\t\t\t\t\tcerrar tu cita el {day} por la {franjaHoraria}?\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tawait createNoDmsSlot(e);\n\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tConsultar con mi taller\n\t\t\t\t\t\t\n\t\t\t\t\t\t{config.trigger === 'cita-posventa-dealer' ? null : (\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\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tBuscar una nueva cita\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
\n\t\t\t
\n\t\t
\n\t);\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 dayjs from 'dayjs';\nimport {\n\tBreakpoints,\n\tContainer,\n\tContainerGutter,\n\tContainerPadding,\n\tCTA,\n\tFieldset,\n\tLayout,\n\tLayoutRowGap,\n\tRadioButton,\n\tstyled,\n\tSwitch,\n\tText,\n\tTextAlignment,\n\tTokenTextAppearance,\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\tApellido,\n\tAreYouSureLayer,\n\tEmail,\n\tLegalesFormatoLayer,\n\tLssiTkmQuestions,\n\tMatriculaYModelo,\n\tNombre,\n\tSelectExtended,\n\tTelefono,\n\tCarlineSelect,\n\tPoliticaPrivacidad,\n\tLastNavigation,\n\tLegalesMontmelo,\n} from 'src/components';\nimport {\n\tLayerManagerWrapper,\n\tuseFaContent,\n\tuseFeatureAppConfig,\n\tuseFeatureAppEnvironment,\n\tuseFeatureServices,\n\tuseOneFormContext,\n\tweekDay_DayNumber_Month,\n\tweekDay_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\tpadding-top: 82px;\n`;\n\nconst TopInfoBox = styled.div`\n\tborder: 1px solid rgba(255, 255, 255, 0.44);\n\tpadding: 0 20px;\n\twidth: 100%;\n\t@media all and (min-width: 560px) {\n\t\tpadding: 0 24px;\n\t}\n`;\n\ntype BorderType = 'top' | 'bottom' | 'none';\n\ntype ItemProps = {\n\tboxItem?: boolean;\n\tborder: BorderType;\n\tshowEdit?: boolean;\n\tnoPaddingTop?: boolean;\n\tshowOperacionesMantenimiento?: boolean;\n};\n\nconst ItemWrapper = styled.div`\n\twidth: 100%;\n\ttext-align: left;\n\tborder-bottom: ${(props) => (props.border === 'bottom' ? '1px solid rgba(255,255,255,0.45)' : 'none')};\n\tborder-top: ${(props) => (props.border === 'top' ? '1px solid rgba(255,255,255,0.45)' : 'none')};\n\tpadding: ${(props) => (props.boxItem ? '24px 0' : props.noPaddingTop ? '0 24px 44px' : '44px 24px')};\n\n\t.item-header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\tpadding-bottom: ${(props) => (props.showOperacionesMantenimiento ? '32px' : props.showEdit ? '44px' : '12px')};\n\t\tbutton > * {\n\t\t\tfont-weight: ${(props) => (props.showEdit ? 'normal' : 'bold')};\n\t\t}\n\t\t&--legal {\n\t\t\tpadding-bottom: ${(props) => (props.showEdit ? 'unset' : '31.5px')};\n\t\t}\n\t}\n\t.edit-wrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tlabel:first-of-type {\n\t\t\tmargin-bottom: 23px;\n\t\t}\n\t}\n\t.input-error {\n\t\tmargin-left: 0px !important;\n\t}\n`;\n\nconst SelectWrapper = styled.div`\n\tmargin-bottom: 2px;\n\tlabel {\n\t\twidth: 100%;\n\t\t@media all and (min-width: 560px) {\n\t\t\twidth: 303px;\n\t\t}\n\t\t@media all and (min-width: 960px) {\n\t\t\twidth: 320px;\n\t\t}\n\t}\n`;\n\nconst InputWidthWrapper = styled.div`\n\twidth: 100%;\n\tmargin-bottom: 2px;\n\t@media all and (min-width: 560px) {\n\t\twidth: 303px;\n\t}\n\t@media all and (min-width: 960px) {\n\t\twidth: 320px;\n\t}\n`;\n\nconst RadioButtonWrapper = styled.div`\n\tborder: 1px solid #ffffff;\n\tpadding: 20px;\n`;\n\nconst MotivoCalculadora = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-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) =>\n\tformName !== 'cita-posventa-maintenance-plan' &&\n\tformName !== 'cita-posventa-calculadora' &&\n\tformName !== 'cita-posventa-my-benefits';\n\n/**\n * En maintenance plan se tiene que ocultar los km ya que no se deben mostrar\n * @param formName\n * @returns\n */\nconst showKMVW = (formName: string) =>\n\tformName !== 'cita-posventa-maintenance-plan' && formName !== 'cita-posventa-my-benefits';\n\nconst getStepNumber = (steps: Steps[], layerName: 'isMotivoLayer' | 'isTimeLayer' | 'isTallerLayer') => {\n\tconst index = steps.findIndex((step) => {\n\t\tif (layerName === 'isMotivoLayer' && step.name === 'Motivo') {\n\t\t\treturn step;\n\t\t}\n\t\tif (layerName !== 'isMotivoLayer' && step.name === 'Mapa') {\n\t\t\treturn step;\n\t\t}\n\t});\n\treturn index;\n};\n\nconst formatPlateDate = (plateDate: string) => {\n\tif (plateDate.includes('-')) {\n\t\treturn plateDate.split('-')[0];\n\t}\n\treturn plateDate;\n};\n\nexport const ConfirmacionCita = () => {\n\tconst {formData, formInfo} = useSelector((state: OneFormState) => state);\n\tconst {userIsAuthenticated} = formInfo;\n\tconst {fields} = formData;\n\tconst {tmk: tmkData, lssi: lssiData, userVehicles, matricula} = formData.fields;\n\tconst dispatch = useDispatch();\n\tconst {handleScreenChange, setShowPreviousStep} = useOneFormContext();\n\tconst {getValues, register, triggerValidation} = useFormContext();\n\tconst faContent = useFaContent();\n\tconst isComerciales = useIsComerciales();\n\tconst {kilometrosValues, millageValues} = getKilometrosInfo(isComerciales);\n\n\tconst [fechaHora, setFechaHora] = useState('');\n\tconst [cocheAlTaller, setCocheAlTaller] = useState(false);\n\tconst [cocheSustitucion, setCocheSustitucion] = useState(false);\n\n\tconst [showEditServicios, setShowEditServicios] = useState(false);\n\tconst [showEditSobreVW, setShowEditSobreVW] = useState(false);\n\tconst [showEditSobreTi, setShowEditSobreTi] = useState(false);\n\n\tconst [inputValueMatricula, setInputValueMatricula] = useState('');\n\tconst [errorMatricula, setErrorMatricula] = useState(false);\n\tconst [irConOtroCoche, setIrConOtroCoche] = useState(false);\n\n\tconst [lssi, setLssi] = useState(() => (lssiData ? lssiData : null));\n\tconst [tmk, setTmk] = useState(() => (tmkData ? tmkData : null));\n\tconst [lssiError, setLssiError] = useState(false);\n\tconst [tmkError, setTmkError] = useState(false);\n\n\tconst [preselectedDealerForm, setPreselectedDealerForm] = useState(false);\n\tconst config = useFeatureAppConfig();\n\n\tconst useLoggedJourney = false;\n\n\tconst today = dayjs();\n\tconst showMontmeloLegales = today.isBetween('2024-06-26', '2024-08-15', 'day', '[]'); // [] dias incluidos, () dias excluidos\n\n\t// De momento no es necesario usar todas las funciones del journey logueado/no logueado, tan solo el fill de los datos\n\n\tuseEffect(() => {\n\t\tif (config.trigger === 'cita-posventa-dealer') {\n\t\t\tsetPreselectedDealerForm(true);\n\t\t} else {\n\t\t\tsetPreselectedDealerForm(false);\n\t\t}\n\t}, []);\n\n\t//Layer confirmacion edicion:\n\n\tconst layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\tconst store: Store = useStore();\n\tconst env = useFeatureAppEnvironment();\n\n\tconst handleEdit = (layerName: 'isMotivoLayer' | 'isTimeLayer' | 'isTallerLayer') => {\n\t\tconst {steps} = formInfo;\n\t\tconst stepNumber = getStepNumber(steps, layerName);\n\n\t\thandleScreenChange(stepNumber);\n\t\tdispatch({type: 'UPDATE_STEP', payload: steps[stepNumber]});\n\t\tif (layerName !== 'isMotivoLayer') {\n\t\t\tdispatch({type: 'SET_SHOW_CALENDAR_ON_LOAD', payload: layerName === 'isTimeLayer'});\n\t\t\tdispatch({type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: 1});\n\t\t\tdispatch({type: 'SET_NAVIGATION_MOVING_FORWARD', payload: false});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetShowPreviousStep(false);\n\t\t\t}, TIME_FOR_TRANSFORM + 200);\n\t\t}\n\t};\n\n\tconst handleAreYouSureLayer = (layerName: string) => {\n\t\tconst layer = layerManager.openFocusLayer(renderAreYouSureLayer, {layerName}, {size: FocusLayerSizeV2.A});\n\t\treturn layer;\n\t};\n\n\tconst renderAreYouSureLayer = (state: any, close: CloseHandleV2) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\thandleEdit(state.layerName);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\n\t\t);\n\t};\n\t//fin códgo layers\n\n\tconst showLegales = () => userIsAuthenticated && useLoggedJourney && tmk && lssi;\n\n\tconst getKmInitialValue = () => {\n\t\tif (fields.kilometros && Array.isArray(fields.kilometros)) {\n\t\t\tconst indexOfMillage = millageValues.findIndex((e) => e[0] === fields.kilometros[0]);\n\t\t\treturn indexOfMillage !== -1 ? kilometrosValues[indexOfMillage] : kilometrosValues[kilometrosValues.length - 2];\n\t\t} else {\n\t\t\treturn kilometrosValues[kilometrosValues.length - 2];\n\t\t}\n\t};\n\n\tconst [kilometros, setKilometros] = useState(getKmInitialValue());\n\n\tconst CTAsSiNo = [{label: 'Sí'}, {label: 'No'}];\n\n\tconst [millageValue, setMillageValue] = useState(null);\n\n\tfunction updateKilometros(event: any) {\n\t\tconst newMillVal = event.currentTarget.value;\n\t\tsetKilometros(newMillVal);\n\t\tnewMillVal ? setMillageValue(newMillVal) : setMillageValue(0);\n\t\tconst newIndex = kilometrosValues?.findIndex((value) => value === event.target.value);\n\t\tif (newIndex !== -1) {\n\t\t\tconst newValues = millageValues[newIndex];\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: {kilometros: newValues}});\n\t\t}\n\t}\n\n\tasync function updateValues(showEdit: React.Dispatch>) {\n\t\tconst values = getValues();\n\t\tconst isValid = await triggerValidation();\n\t\tif (isValid) {\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: values});\n\t\t\tshowEdit(false);\n\t\t}\n\t}\n\n\t// función para checkear que no se haya dejado ninguna sección editada sin guardar\n\tfunction checkNotSavedFields() {\n\t\tif (showEditServicios && !showEditSobreVW && !showEditSobreTi) {\n\t\t\treturn 'en Servicios Adicionales';\n\t\t} else if (!showEditServicios && showEditSobreVW && !showEditSobreTi) {\n\t\t\treturn 'en Sobre tu Volkswagen';\n\t\t} else if (!showEditServicios && !showEditSobreVW && showEditSobreTi) {\n\t\t\treturn 'en Sobre ti';\n\t\t} else if (\n\t\t\t(showEditServicios && showEditSobreVW && !showEditSobreTi) ||\n\t\t\t(showEditServicios && showEditSobreVW && showEditSobreTi) ||\n\t\t\t(showEditServicios && !showEditSobreVW && showEditSobreTi) ||\n\t\t\t(!showEditServicios && showEditSobreVW && showEditSobreTi)\n\t\t) {\n\t\t\treturn '';\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (inputValueMatricula === '' || inputValueMatricula.length > 10) {\n\t\t\tsetErrorMatricula(true);\n\t\t} else {\n\t\t\tsetErrorMatricula(false);\n\t\t}\n\t}, [inputValueMatricula]);\n\n\tuseEffect(() => {\n\t\tif (lssi) {\n\t\t\tconst values = {lssi: lssi};\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: values});\n\t\t\tsetLssiError(false);\n\t\t}\n\t\tif (tmk) {\n\t\t\tconst values = {tmk: tmk};\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: values});\n\t\t\tsetTmkError(false);\n\t\t}\n\t}, [lssi, tmk]);\n\n\tuseEffect(() => {\n\t\tdispatch({type: 'UPDATE_FORM_ENDED', payload: true});\n\n\t\tconst selectedSlot = fields.slot;\n\t\tlet fromFormatted;\n\n\t\tif (fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable) {\n\t\t\tconst momentSlot = weekDay_DayNumber_Month_Hour(selectedSlot.from);\n\t\t\tconst capitalizedSlot =\n\t\t\t\tmomentSlot.charAt(0).toUpperCase() +\n\t\t\t\tmomentSlot.split(',')[0].slice(1) +\n\t\t\t\t' de ' +\n\t\t\t\tmomentSlot.split(',')[1].charAt(0).toLowerCase() +\n\t\t\t\tmomentSlot.split(',')[1].slice(1);\n\t\t\tfromFormatted = capitalizedSlot.replace('-', ' a las ').replace(',', ' de ').concat('h');\n\t\t\tsetFechaHora(fromFormatted);\n\t\t} else {\n\t\t\tconst momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n\t\t\tconst horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n\t\t\tconst capitalizedSlot =\n\t\t\t\tmomentSlot.charAt(0).toUpperCase() +\n\t\t\t\tmomentSlot.split(',')[0].slice(1) +\n\t\t\t\t' de ' +\n\t\t\t\tmomentSlot.split(',')[1].charAt(0).toLowerCase() +\n\t\t\t\tmomentSlot.split(',')[1].slice(1);\n\n\t\t\tfromFormatted = capitalizedSlot.concat(horarioTranslate.name);\n\t\t\tsetFechaHora(fromFormatted);\n\t\t}\n\t\tif (fields.cocheAlTaller !== null) {\n\t\t\tfields.cocheAlTaller === 'true' ? setCocheAlTaller(true) : setCocheAlTaller(false);\n\t\t}\n\t\tif (fields.cocheAlTaller !== null) {\n\t\t\tfields.cocheSustitucion === 'true' ? setCocheSustitucion(true) : setCocheSustitucion(false);\n\t\t}\n\n\t\tsetShowPreviousStep(false);\n\t\tif (fields.kilometros || fields.kilometros === 0) {\n\t\t\tsetMillageValue(fields.kilometros);\n\t\t}\n\n\t\tif (fields.matricula) setInputValueMatricula(fields.matricula);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst values = {cocheAlTaller: cocheAlTaller ? 'true' : 'false'};\n\t\tdispatch({type: 'UPDATE_FIELDS', payload: values});\n\t}, [cocheAlTaller]);\n\n\tuseEffect(() => {\n\t\tconst values = {cocheSustitucion: cocheSustitucion ? 'true' : 'false'};\n\t\tdispatch({type: 'UPDATE_FIELDS', payload: values});\n\t}, [cocheSustitucion]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tAsí quedaría tu cita. ¿Quieres solicitarla?\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{faContent?.motivo ? null : }\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tFecha y hora\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\thandleAreYouSureLayer('isTimeLayer');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tEditar\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{fechaHora}\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tTaller\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{preselectedDealerForm || !showCTAEditTaller(fields.formName) ? null : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thandleAreYouSureLayer('isTallerLayer');\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\t\tEditar\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\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fields.dealer.name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{fields.dealer.markerInfo.dealerInfo.address}, {fields.dealer.markerInfo.dealerInfo.zipCode}{' '}\n\t\t\t\t\t\t\t{fields.dealer.markerInfo.dealerInfo.city}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{fields.assessor && fields.dealer.dmsInfo && fields.dealer.dmsInfo.dmsAvailable ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tAsesor {fields.assessor.name}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t{isComerciales ||\n\t\t\t\t(fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe) ||\n\t\t\t\t(fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable) ? (\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tServicios adicionales\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{showEditServicios ? (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tsetShowEditServicios(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tGuardar\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tsetShowEditServicios(!showEditServicios);\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\t\tEditar\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\t{showEditServicios ? (\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{isComerciales ||\n\t\t\t\t\t\t\t\t\t(fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable) ? (\n\t\t\t\t\t\t\t\t\t\t setCocheSustitucion(!cocheSustitucion)}\n\t\t\t\t\t\t\t\t\t\t\tdefaultChecked={cocheSustitucion ? true : false}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tCoche de sustitución\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t{isComerciales || (fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe) ? (\n\t\t\t\t\t\t\t\t\t\t setCocheAlTaller(!cocheAlTaller)}\n\t\t\t\t\t\t\t\t\t\t\tdefaultChecked={cocheAlTaller ? true : false}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\tServicio de recogida y entrega\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t) : null}\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\t\t<>\n\t\t\t\t\t\t\t\t{isComerciales || (fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.replacementCarServiceAvailable) ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCoche de sustitución: {cocheSustitucion ? 'Sí' : 'No'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t{isComerciales || (fields.dealer?.dmsInfo && fields.dealer?.dmsInfo?.pickupCarServiceAvailabe) ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tServicio de recogida y entrega: {cocheAlTaller ? 'Sí' : 'No'}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\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) : null}\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSobre tu Volkswagen\n\t\t\t\t\t\t\n\t\t\t\t\t\t{showCTAEditVW(fields.formName) ? (\n\t\t\t\t\t\t\tshowEditSobreVW ? (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tupdateValues(setShowEditSobreVW);\n\t\t\t\t\t\t\t\t\t\tsetIrConOtroCoche(false);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tGuardar\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\tsetShowEditSobreVW(!showEditSobreVW);\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\t\tEditar\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t\t{showEditSobreVW ? (\n\t\t\t\t\t\tuserVehicles && userIsAuthenticated && useLoggedJourney && !irConOtroCoche ? (\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{userVehicles.map((vehicle: VehiclesIdentityKit) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmatricula: vehicle.matricula,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkilometros: vehicle.kilometros,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmodelo: vehicle.modelo,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={matricula === vehicle.matricula ? true : false}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\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})}\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\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tsetIrConOtroCoche(true);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tchecked={false}\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\t;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t\t\t\t\tupdateKilometros(event);\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => null}\n\t\t\t\t\t\t\t\t\t\t\tupdateFields\n\t\t\t\t\t\t\t\t\t\t\tsetOption={setKilometros}\n\t\t\t\t\t\t\t\t\t\t\tisRequired={true}\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\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fields.countryPlate} {fields.matricula}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tAño {formatPlateDate(fields.anoMatriculacion)}\n\t\t\t\t\t\t\t{fields.modelo}\n\t\t\t\t\t\t\t{showKMVW(fields.formName) ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{kilometros === 'No estoy seguro' ? null : kilometros}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tSobre ti\n\t\t\t\t\t\t\n\t\t\t\t\t\t{showEditSobreTi ? (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tupdateValues(setShowEditSobreTi);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGuardar\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tsetShowEditSobreTi(!showEditSobreTi);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tEditar\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{showEditSobreTi ? (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\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\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\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
\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
\n\t\t\t\t\t\t\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fields.name} {fields.surname} {fields.secondSurname}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{fields.prefix} {fields.cellphone}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{fields.email}\n\t\t\t\t\t\t\n\t\t\t\t\t)}\n\t\t\t\t
\n\n\t\t\t\t{/* START Checks legales */}\n\t\t\t\t{showLegales() ? null : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{/* END Checks legales */}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{fields.formName === 'cita-posventa' && showMontmeloLegales ? (\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\nconst VehicleLabel = (props: {vehicle: VehiclesIdentityKit}) => {\n\treturn (\n\t\t\n\t\t\t{props.vehicle.matricula}\n\t\t\t\n\t\t\t\t{props.vehicle.modelo} |{props.vehicle.kilometros}\n\t\t\t\n\t\t\n\t);\n};\n\nconst OperacionDiv = styled.div<{isLast: boolean}>`\n\tpadding-bottom: ${(props) => (props.isLast ? '0px' : '16px')};\n`;\n\nconst OperacionesDiv = styled.div`\n\tpadding-bottom: 24px;\n`;\n\nconst MotivoCita = ({fields, handleAreYouSureLayer}: any) => {\n\tconst [showOperacionesMantenimiento, setShowOperacionesMantenimiento] = useState(false);\n\tconst faContent = useFaContent();\n\n\tconst formatPvp = (pvp: string) => `${Number(pvp).toFixed(0)}€`;\n\n\tconst getMotivo = () => {\n\t\tlet motivo: string;\n\t\tif (fields.masInformacion == 'Actualización Software ID') {\n\t\t\tmotivo = 'Actualización software ID';\n\t\t} else {\n\t\t\tfields.motivoLabel ? (motivo = fields.motivoLabel) : (motivo = fields.motivo);\n\t\t}\n\t\treturn motivo;\n\t};\n\n\tconst renderMotivoCalculadora = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\tPresupuesto total\n\t\t\t\t{formatPvp(faContent?.quotePvp)}\n\t\t\t\n\t\t);\n\t};\n\n\tconst renderOperacionesMantenimiento = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t{faContent?.quoteOperations\n\t\t\t\t\t\t? faContent?.quoteOperations.map((operation, indx) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{operation.name}\n\t\t\t\t\t\t\t\t\t\t{formatPvp(operation.pvp)}\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 })\n\t\t\t\t\t\t: null}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tPresupuesto Total\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{formatPvp(faContent?.quotePvp)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t{isCalculadoraForm(fields.formName) ? 'Operaciones de mantenimiento' : 'Motivo de tu cita'}\n\t\t\t\t\n\t\t\t\t{showCTAEditMotivo(fields.formName) ? (\n\t\t\t\t\t {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleAreYouSureLayer('isMotivoLayer');\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tEditar\n\t\t\t\t\t\n\t\t\t\t) : isCalculadoraForm(fields.formName) ? (\n\t\t\t\t\t : }\n\t\t\t\t\t\temphasis=\"primary\"\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tsetShowOperacionesMantenimiento(!showOperacionesMantenimiento);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{showOperacionesMantenimiento ? 'Cerrar' : 'Ver más'}\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\t{isCalculadoraForm(fields.formName) ? (\n\t\t\t\tshowOperacionesMantenimiento ? null : (\n\t\t\t\t\trenderMotivoCalculadora()\n\t\t\t\t)\n\t\t\t) : (\n\t\t\t\t{getMotivo()}\n\t\t\t)}\n\t\t\t{showOperacionesMantenimiento ? renderOperacionesMantenimiento() : null}\n\t\t
\n\t);\n};\n","import {\n\tBreakpoints,\n\tContainer,\n\tContainerGutter,\n\tLayout,\n\tSpinner,\n\tstyled,\n\tText,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Content = styled.div`\n\tbackground-color: #ffffff;\n\tpadding: 44px 31px;\n\tflex: auto;\n\ttext-align: center;\n\twidth: 100%;\n\t@media screen and (min-width: 560px) {\n\t\tpadding: 52px 46px;\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tpadding: var(--size-grid001);\n\t}\n`;\n\ninterface loadingComponentProps {\n\tcopy?: string;\n}\n\nexport function LoadingLayer(props: loadingComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\nfunction LoadingComponent(props: loadingComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t{props.copy ? {props.copy} : Confirmando tu cita}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tBreakpoints,\n\tContainer,\n\tCTA,\n\tLayout,\n\tText,\n\tTextAlignment,\n\tContainerGutter,\n\tTokenTextAppearance,\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\tisFiltrosSuggest?: boolean;\n}\n\nexport function LocateUser(props: LocateUserProps) {\n\tconst {isFiltrosSuggest} = props;\n\tconst {register} = useFormContext();\n\tconst {\n\t\tvalue,\n\t\tsetValue,\n\t\tsuggestion,\n\t\tsetSuggestion,\n\t\ticon,\n\t\tlocationSuccess,\n\t\tsetLocationSuccess,\n\t\thandleLocate,\n\t\tloading,\n\t\tlocationDisabled,\n\t\tisLocating,\n\t\tonSuggestionSelectedFn,\n\t} = useLocateUser();\n\n\tconst getSuggestionValue = (suggestion: Suggestion) => {\n\t\tif (!isGooglePlace(suggestion) && !isDealerData(suggestion)) {\n\t\t\treturn (suggestion as Installation).VGED_CommercialName__c;\n\t\t} else {\n\t\t\treturn suggestion.name;\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tif (!locationSuccess) handleLocate();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tdisabled={loading ? true : false}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tLocaliza mi posición actual\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{locationDisabled ? (\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\tTu localización está deshabilitada\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) : null}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import dayjs from 'dayjs';\nimport {\n\tBreakpoints,\n\tContainer,\n\tContainerPadding,\n\tLayout,\n\tText,\n\tTextAlignment,\n\tTokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, {useEffect, useState} from 'react';\nimport {useDispatch, useSelector, useStore} from 'react-redux';\nimport {createEapiAppointment, deleteEapiAppointment, getEapiCarlines, oneformBFFNdpsSend} from 'src/bff';\nimport {getDealerKvps} from 'src/bff/api/get-dealer-kvps';\nimport {\n\tDetalleMotivo,\n\tEmail,\n\tKilometros,\n\tMatriculaYModelo,\n\tMultipleCTASelection,\n\tPantallaNombreApellido,\n\tTelefono,\n\tSelectExtendedList,\n} from 'src/components';\nimport {\n\tformatPrefix,\n\tgetDeviceType,\n\tgetTrackingCode,\n\tremoveWhiteSpace,\n\tuseFaContent,\n\tuseOneFormContext,\n\tuseGetWaidLitera,\n} from 'src/feature-app';\nimport {MapaCitaDealer, NewMapaCita} from 'src/forms/CitaPosventa/MapaCita';\nimport {OneElementTemplate} from 'src/feature-app/Screen';\nimport {\n\tresetStepsScreenIndex,\n\tremoveMultipleStepsAndResetScreenIndex,\n\tremoveStep,\n\taddRemovedStep,\n} from 'src/forms/helpers/add-remove-steps';\nimport {\n\tFormDataFields,\n\tDealerInfo,\n\tDealersData,\n\tDmsInfo,\n\tFormDataGroup,\n\tFormInfo,\n\tOneFormState,\n\tSteps,\n\tCarlineBase,\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 {formDataBuilder} from 'src/forms/format-fields';\nimport {transformDate} from 'src/helpers';\n\nexport enum CitaPosventaSteps {\n\tMotivo,\n\tMasInformacion,\n\tMapa,\n\tNombreApellido,\n\tMatricula,\n\tKilometros,\n\tTelefono,\n\tEmail,\n\tCocheSustitucion,\n\tCocheAlTaller,\n\tConfirmacion,\n}\n\ninterface NuevaCitaPosventaFormProps {\n\tisCitaPosventaDealer?: boolean;\n\tisCitaPosventaEmbeddedCalculadora?: boolean;\n\tisCitaPosventaEmbeddedBonos?: boolean;\n\tisCitaPosventaEmbeddedBeneficios?: boolean;\n\tisCitaPosventaEmbeddedMaintenance?: boolean;\n\tisCitaPosventaEmbeddedPortal?: boolean;\n\tupdatedFormData?: Partial;\n\tupdatedFormInfo?: Partial;\n}\n\nconst spliceSteps = (steps: Steps[], step: string, stepName: string) => {\n\tif (step) {\n\t\tconst index = steps.findIndex((step) => step.name === stepName);\n\t\tsteps.splice(index, 1);\n\t\treturn steps;\n\t}\n\treturn steps;\n};\n\nfunction updateTitle(detalles: any): any {\n\treturn (\n\t\t<>\n\t\t\t¿Quieres contarnos algo más sobre {detalles ? detalles : 'el motivo de tu visita?'}?\n\t\t\n\t);\n}\n\nconst getFormName = (\n\tisCitaPosventaDealer: boolean,\n\tisCitaPosventaEmbeddedCalculadora: boolean,\n\tisCitaPosventaEmbeddedBonos: boolean,\n\tisCitaPosventaEmbeddedBeneficios: boolean,\n\tisCitaPosventaEmbeddedMaintenance: boolean,\n) => {\n\treturn isCitaPosventaDealer\n\t\t? 'cita-posventa-dealer'\n\t\t: isCitaPosventaEmbeddedCalculadora\n\t\t? 'cita-posventa-calculadora'\n\t\t: isCitaPosventaEmbeddedBonos\n\t\t? 'cita-posventa-bono'\n\t\t: isCitaPosventaEmbeddedBeneficios\n\t\t? 'cita-posventa-beneficios'\n\t\t: isCitaPosventaEmbeddedMaintenance\n\t\t? 'cita-posventa-maintenance'\n\t\t: 'cita-posventa';\n};\n\nexport const NuevaCitaPosventaFormController = ({\n\tisCitaPosventaDealer,\n\tisCitaPosventaEmbeddedCalculadora,\n\tisCitaPosventaEmbeddedBonos,\n\tisCitaPosventaEmbeddedBeneficios,\n\tisCitaPosventaEmbeddedMaintenance,\n\tisCitaPosventaEmbeddedPortal,\n\tupdatedFormData,\n}: NuevaCitaPosventaFormProps) => {\n\tconst {initializeForm, nextScreenIndex, handleNextStep} = useOneFormContext();\n\tconst {formData, formInfo, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst {motivo} = formData.fields;\n\tconst {selectedDealer} = dealersInfo;\n\tconst {userIsAuthenticated, numberOfScreens} = formInfo;\n\tconst dispatch = useDispatch();\n\tconst store: Store = useStore();\n\tconst faContent = useFaContent();\n\tconst [loaded, setLoaded] = useState(false);\n\tconst [steps, setSteps] = useState([]);\n\tconst [firstStep, setFirstStep] = useState(null);\n\tconst [stepsHistory, setStepsHistory] = useState(null);\n\tconst isComerciales = useIsComerciales();\n\tconst groupBrand = useGetBrand();\n\tconst waid = useGetWaidLitera();\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst wa = urlParams.get('wa');\n\tconst 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\tconst CitaPosventaData: Partial = {\n\t\theaders: {\n\t\t\tDESC_BRAND: 'VW',\n\t\t\tDESC_CAMPAIGNBLOCK: '7011n000000Ajm0AAC',\n\t\t\tDESC_FORMOBJECTIVE: 'Call Me Now',\n\t\t\tDESC_ID_CAMPAIGN: '9. VW LEM',\n\t\t\tDESC_TOKEN: 'VW_DDB_FRM_CALL_ME',\n\t\t\tDESC_VN_VO: 'VN',\n\t\t\tDESC_GDPR_ADAPTED: 'true',\n\t\t\t...updatedFormData?.headers,\n\t\t},\n\t\tfields: {\n\t\t\tformName: getFormName(\n\t\t\t\tisCitaPosventaDealer,\n\t\t\t\tisCitaPosventaEmbeddedCalculadora,\n\t\t\t\tisCitaPosventaEmbeddedBonos,\n\t\t\t\tisCitaPosventaEmbeddedBeneficios,\n\t\t\t\tisCitaPosventaEmbeddedMaintenance,\n\t\t\t),\n\t\t\tformType: 'servicerequest',\n\t\t\tpageCategory: 'Cita Posventa',\n\t\t\t...updatedFormData?.fields,\n\t\t},\n\t};\n\tconst [citaPosventaData, setCitaPosventaData] = useState(CitaPosventaData);\n\n\t// Lógica común a los formularios independientemente del estado del login.\n\tconst getMotivoTitle = (): JSX.Element => {\n\t\tif (!formData.fields || !formData.fields.motivo)\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t¿Quieres contarnos algo más sobre el motivo de tu{' '}\n\t\t\t\t\tvisita?\n\t\t\t\t\n\t\t\t);\n\t\telse {\n\t\t\tconst selectedMotivo = CTAsMotivo.find((motivo) => motivo.value === formData.fields.motivo);\n\t\t\tconst detalles = selectedMotivo ? selectedMotivo.detalles : 'string';\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t¿Quieres contarnos algo más sobre {detalles ? detalles : 'el motivo de tu visita?'}?\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t};\n\n\tconst updateSteps = (steps: Steps[]) => {\n\t\tdispatch({type: 'UPDATE_STEPS', payload: steps});\n\t\tdispatch({type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1]});\n\t\tdispatch({type: 'SET_NUMBER_OF_SCREENS', payload: steps.length});\n\t};\n\n\tconst isMotivoSoftware = () => {\n\t\tconst selectedMotivo = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === motivo);\n\t\treturn selectedMotivo?.detalles === 'Actualización Software ID';\n\t};\n\n\tuseEffect(() => {\n\t\tconst selectedMotivo = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === motivo);\n\t\tconst {steps: actualSteps, screenIndex} = store.getState().formInfo;\n\t\tlet newSteps = [...steps];\n\n\t\tif (isMotivoSoftware()) {\n\t\t\tnewSteps = removeStep(newSteps, 'MasInformacion');\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: {masInformacion: 'Actualización Software ID'}});\n\t\t\tupdateSteps(newSteps);\n\t\t} else if (selectedMotivo && actualSteps.length < defaultSteps.length) {\n\t\t\tupdateSteps(newSteps);\n\t\t}\n\n\t\tif (selectedMotivo && formInfo?.steps && !isMotivoSoftware()) {\n\t\t\tdispatch({type: 'UPDATE_FIELDS', payload: {masInformacion: ''}});\n\n\t\t\tconst formSteps = formInfo.steps;\n\n\t\t\tconst masInformacionIndex = formSteps.findIndex((step) => step.name === 'MasInformacion');\n\n\t\t\tif (masInformacionIndex !== -1) {\n\t\t\t\tformSteps[masInformacionIndex].title = updateTitle(selectedMotivo.detalles);\n\t\t\t}\n\t\t}\n\t}, [motivo]);\n\n\tconst defaultSteps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Por qué motivo quieres{' '}\n\t\t\t\t\t\n\t\t\t\t\t\tvisitarnos?*\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\talternateTitle: (\n\t\t\t\t\n\t\t\t\t\t¿Por qué motivo quieres{' '}\n\t\t\t\t\t\n\t\t\t\t\t\tvisitarnos?*\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\n\t\t\tfields: (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t{nextScreenIndex !== null && nextScreenIndex === 1 ? null : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSelecciona la razón principal de tu visita.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\thidePreviousStep: false,\n\t\t\tisFirstStep: true,\n\t\t\tscreenIndex: CitaPosventaSteps.Motivo,\n\t\t\tname: 'Motivo',\n\t\t\toutputs: ['motivo'],\n\t\t\toutputsText: ['motivo'],\n\t\t},\n\t\t{\n\t\t\ttitle: getMotivoTitle(),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CitaPosventaSteps.MasInformacion,\n\t\t\tname: 'MasInformacion',\n\t\t\toutputs: ['masInformacion'],\n\t\t\toutputsText: ['masInformacion'],\n\t\t},\n\t\t{\n\t\t\tscreenIndex: CitaPosventaSteps.Mapa,\n\t\t\tname: 'Mapa',\n\t\t\tmultiStep: true,\n\t\t\tcomponent: isCitaPosventaDealer ? : ,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tPara poder preparar tu visita, necesitamos saber quién eres\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: CitaPosventaSteps.NombreApellido,\n\t\t\tname: 'NombreApellido',\n\t\t\toutputs: ['name', 'surname', 'secondSurname'],\n\t\t\toutputsText: ['name', 'surname', 'secondSurname'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tCuéntanos más sobre tu coche. ¿Qué matrícula tiene y qué modelo es?\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: CitaPosventaSteps.Matricula,\n\t\t\tname: 'Matricula',\n\t\t\toutputs: ['modelo', 'matricula'],\n\t\t\toutputsText: ['modelo', 'con matrícula', 'matricula'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tY, ¿cuántos kilómetros?\n\t\t\t\t\t*\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: ,\n\t\t\tscreenIndex: CitaPosventaSteps.Kilometros,\n\t\t\tname: 'Kilometros',\n\t\t\toutputs: ['kilometros'],\n\t\t\toutputsText: ['kilometros'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tEn caso de necesitar contactar contigo, ¿a qué número podemos llamarte?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CitaPosventaSteps.Telefono,\n\t\t\tname: 'Telefono',\n\t\t\toutputs: ['cellphone'],\n\t\t\toutputsText: ['cellphone'],\n\t\t},\n\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tY, ¿a qué email te enviamos la confirmación y los datos de tu cita?\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: CitaPosventaSteps.Email,\n\t\t\tname: 'Email',\n\t\t\toutputs: ['email'],\n\t\t\toutputsText: ['email'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Necesitarás otro coche mientras el tuyo está en el{' '}\n\t\t\t\t\t\n\t\t\t\t\t\ttaller?\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\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tCoche de sustitución: este servicio puede tener un coste asociado. El Servicio Oficial contactará contigo para informarte de la disponibilidad y condiciones de este servicio.\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/>\n\t\t\t),\n\t\t\tscreenIndex: CitaPosventaSteps.CocheSustitucion,\n\t\t\tname: 'CocheSustitucion',\n\t\t\toutputs: ['cocheSustitucion'],\n\t\t\toutputsText: ['cocheSustitucion', 'quiero otro coche'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\tY para facilitar tu visita,{' '}\n\t\t\t\t\t\n\t\t\t\t\t\t¿llevamos tu coche al{' '}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\ttaller?*\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\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tRecogida a domicilio: este servicio puede tener un coste asociado. El Servicio Oficial contactará contigo para informarte de la disponibilidad y condiciones de este servicio.\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/>\n\t\t\t),\n\t\t\tscreenIndex: CitaPosventaSteps.CocheAlTaller,\n\t\t\tname: 'CocheAlTaller',\n\t\t\toutputs: ['cocheAlTaller'],\n\t\t\toutputsText: ['cocheAlTaller', 'quiero servicio de recogida y entrega'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: <>,\n\t\t\tfields: ,\n\t\t\tscreenIndex: CitaPosventaSteps.Confirmacion,\n\t\t\tname: 'Confirmacion',\n\t\t\tisLastStep: true,\n\t\t\thidePreviousStep: true,\n\t\t},\n\t];\n\n\tconst getLssiTmk = (value: string) => {\n\t\tswitch (value) {\n\t\t\tcase 'PERMITE':\n\t\t\t\treturn 'PERMITIDO';\n\t\t\t\tbreak;\n\t\t\tcase 'NO PERMITE':\n\t\t\t\treturn 'ROBINSON';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\tconst getModelo = (fields: FormDataFields, carlines: CarlineBase[]) => {\n\t\tif(fields.idBuzzExclusive && carlines?.length > 0) {\n\t\t\treturn carlines.find(carline => carline.name.includes('Buzz'));\n\t\t}\n\t\treturn fields.modeloList\n\t\t\t? fields.modeloList\n\t\t\t: carlines?.length > 0 && fields.modelo\n\t\t\t? carlines.find((carline) => carline.name === fields.modelo)\n\t\t\t: {\n\t\t\t\t\tcode: null,\n\t\t\t\t\tkey: null,\n\t\t\t\t\tname: null,\n\t\t\t};\n\t};\n\n\tconst getInstallationAdress = (markerInfo) => {\n\t\treturn (\n\t\t\tmarkerInfo.dealerInfo?.address +\n\t\t\t' ' +\n\t\t\tmarkerInfo.dealerInfo?.zipCode +\n\t\t\t' ' +\n\t\t\tmarkerInfo.dealerInfo?.city +\n\t\t\t' ' +\n\t\t\tmarkerInfo.dealerInfo?.province\n\t\t);\n\t};\n\n\tconst createAppointmentDealer = (dealer: DealersData) => {\n\t\tconst {markerInfo, dmsInfo} = dealer;\n\n\t\treturn {\n\t\t\tassessors: dmsInfo.assessors ? [...dmsInfo.assessors] : undefined,\n\t\t\tdealerId: dmsInfo.dealerId,\n\t\t\tdmsAvailable: dmsInfo.dmsAvailable ? dmsInfo.dmsAvailable : false,\n\t\t\temail: dmsInfo.email ? dmsInfo.email : markerInfo.dealerInfo.mail,\n\t\t\tname: dmsInfo.name ? dmsInfo.name : markerInfo.dealerInfo.name,\n\t\t\tphone: dmsInfo.phone ? dmsInfo.phone : markerInfo.dealerInfo.phone,\n\t\t\toverhaulingServiceAvialable: dmsInfo.overhaulingServiceAvialable ? dmsInfo.overhaulingServiceAvialable : false,\n\t\t\tpickupCarServiceAvailabe: dmsInfo.pickupCarServiceAvailabe ? dmsInfo.pickupCarServiceAvailabe : false,\n\t\t\treplacementCarServiceAvailable: dmsInfo.replacementCarServiceAvailable\n\t\t\t\t? dmsInfo.replacementCarServiceAvailable\n\t\t\t\t: false,\n\t\t\treference: dmsInfo.reference,\n\t\t};\n\t};\n\n\tconst sendForm = async (): Promise => {\n\t\treturn new Promise(async (resolve) => {\n\t\t\tconst {tc, today, url, device} = getParamsForm();\n\t\t\tconst {formData, dealersInfo} = store.getState();\n\n\t\t\tconst {fields} = formData;\n\t\t\tconst {citaCarlines} = dealersInfo;\n\t\t\tconst {dealer} = fields;\n\t\t\tconst {dmsInfo, markerInfo}: {dmsInfo: DmsInfo; markerInfo: DealerInfo} = dealer;\n\t\t\tconst modelo = getModelo(fields, citaCarlines);\n\t\t\tconst appointmentDealer = createAppointmentDealer(dealer);\n\t\t\tconst appointmentDate = dayjs(fields.slot.from).format('DD/MM/YYYY HH:mm:ss');\n\n\t\t\tconst ctaLabel = CTAsMotivo.find((ctaMotivo) => ctaMotivo.value === fields.motivo).label;\n\n\t\t\tconst appointmentNode = {\n\t\t\t\tappointment: {\n\t\t\t\t\tcomments: fields.masInformacion,\n\t\t\t\t\tcustomer: {\n\t\t\t\t\t\tcontactPhone: `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n\t\t\t\t\t\tcustomerType: 'F',\n\t\t\t\t\t\tdocumentNumber: null,\n\t\t\t\t\t\tdocumentType: null, // Parametrizar [DNI,NIF,NIE] || null\n\t\t\t\t\t\temail: removeWhiteSpace(fields.email),\n\t\t\t\t\t\tgender: 'M', // Parametrizar [M,V]\n\t\t\t\t\t\tname: fields.name?.trim(),\n\t\t\t\t\t\towner: false,\n\t\t\t\t\t\tsurname: fields.surname?.trim(),\n\t\t\t\t\t\tsurname2: fields.secondSurname?.trim(),\n\t\t\t\t\t},\n\t\t\t\t\tvehicle: fields.vehicleForMaintenance\n\t\t\t\t\t\t? fields.vehicleForMaintenance\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tbrand: groupBrand,\n\t\t\t\t\t\t\t\tframe: null,\n\t\t\t\t\t\t\t\tmillage: Array.isArray(fields.kilometros) ? fields.kilometros[0] : fields.kilometros,\n\t\t\t\t\t\t\t\tmodelVersion: 'NO INFORMADO',\n\t\t\t\t\t\t\t\tmodelYear: 0,\n\t\t\t\t\t\t\t\tplate: fields.matricula?.toUpperCase(),\n\t\t\t\t\t\t\t\t// countryPlate: fields.countryPlate,\n\t\t\t\t\t\t\t\tplateDate: `${fields.anoMatriculacion}-1-1 00:00:00`,\n\t\t\t\t\t\t\t\ttmaimg: null,\n\t\t\t\t\t\t\t\tmodel: modelo,\n\t\t\t\t\t\t},\n\t\t\t\t\tdealer: appointmentDealer,\n\t\t\t\t\tslot: {\n\t\t\t\t\t\tfrom: fields.slot.from,\n\t\t\t\t\t\tto: fields.slot.to,\n\t\t\t\t\t\treplacementCarServiceAvailable: fields.slot.replacementCarServiceAvailable,\n\t\t\t\t\t\tdayMoment: fields.slot.dayMoment,\n\t\t\t\t\t\tassessorCode: fields.slot.assessorCode,\n\t\t\t\t\t},\n\t\t\t\t\tassessor: {\n\t\t\t\t\t\tcode: fields.assessor.code,\n\t\t\t\t\t\tname: fields.assessor.name,\n\t\t\t\t\t},\n\t\t\t\t\tintervention: {\n\t\t\t\t\t\tcode: fields.motivo, // Parametrizar [NEUMATICOS, OTROS, MANTENIMIENTO, CARROCERIA, REPARACION, ACCESORIOS, EA189, PREITV, ITV]\n\t\t\t\t\t\tname: ctaLabel === 'Actualización Software ID' ? 'Otros' : ctaLabel, // motivo literal excepto si es software tiene que tener el mismo valor que OTROS\n\t\t\t\t\t},\n\t\t\t\t\tlopd: 'PERMITIDO',\n\t\t\t\t\tlssi: getLssiTmk(fields.lssi),\n\t\t\t\t\tpickupServiceRequired:\n\t\t\t\t\t\ttypeof fields.cocheAlTaller === 'string' ? JSON.parse(fields.cocheAlTaller) : undefined,\n\t\t\t\t\treplacementCarServiceRequired:\n\t\t\t\t\t\ttypeof fields.cocheSustitucion === 'string' ? JSON.parse(fields.cocheSustitucion) : undefined,\n\t\t\t\t\tstatus: 'P',\n\t\t\t\t\ttmk: getLssiTmk(fields.tmk),\n\t\t\t\t\tsms: null,\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst surveyNode = null; // Flag para que Eapi no grabe survey\n\t\t\t/*const surveyNode = {\n\t\t\t\tsurvey: {\n\t\t\t\t\tdealer: {\n\t\t\t\t\t\tdmsInfo: dmsInfo,\n\t\t\t\t\t\tmarkerInfo: markerInfo,\n\t\t\t\t\t},\n\t\t\t\t\tdeviceType: getDeviceType(),\n\t\t\t\t\tformId: `vw-oneform-${fields.formName}`,\n\t\t\t\t\tformVersion: `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n\t\t\t\t\ttc: getTrackingCode(),\n\t\t\t\t\turl,\n\t\t\t\t\turlOrigin: document.referrer || null,\n\t\t\t\t\tdeepLink: fields.deepLink,\n\t\t\t\t\tbudget: fields.budget,\n\t\t\t\t\twaid,\n\t\t\t\t},\n\t\t\t};*/\n\n\t\t\tconst eapiData: CitaFormDataFields = {\n\t\t\t\tgroup_brand: groupBrand,\n\t\t\t\tkvps: dealer.kvps,\n\t\t\t\tcod_instalacion: dealer.codInstalacion,\n\t\t\t\t...appointmentNode,\n\t\t\t\t...surveyNode,\n\t\t\t};\n\n\t\t\tlet eapiDataToSend = new FormData();\n\t\t\tfor (const key in eapiData) {\n\t\t\t\tif (typeof eapiData[key] === 'object') {\n\t\t\t\t\teapiDataToSend.append(key, JSON.stringify(eapiData[key]));\n\t\t\t\t} else {\n\t\t\t\t\teapiDataToSend.append(key, eapiData[key]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst eapiResponse = await createEapiAppointment(eapiDataToSend);\n\n\t\t\tif (eapiResponse && eapiResponse.data?.status?.code == 200) {\n\t\t\t\tconst pincode = eapiResponse.data?.content?.pincode;\n\t\t\t\tconst ndpsData = {\n\t\t\t\t\t'headers[DPS_TOKEN]':\n\t\t\t\t\t\tgroupBrand == 'N' ? 'LCV_DDB_FRM_SERVICE_APPOINTMENT' : 'VW_DDB_FRM_SERVICE_APPOINTMENT',\n\t\t\t\t\t'headers[FK_SYSTEM]':\n\t\t\t\t\t\tgroupBrand == 'N' ? 'LCV_DDB_FRM_SERVICE_APPOINTMENT' : 'VW_DDB_FRM_SERVICE_APPOINTMENT',\n\t\t\t\t\t'headers[FORM_ID]': wa,\n\t\t\t\t\t'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n\t\t\t\t\t'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n\t\t\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t\t\t'headers[FORM_OBJECTIVE]': 'Cita Posventa',\n\t\t\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\n\t\t\t\t\t'fields[DPS_BRAND]': groupBrand == 'N' ? 'Volkswagen CV' : 'Volkswagen',\n\n\t\t\t\t\t'fields[PERSON_NAME]': fields.name,\n\t\t\t\t\t'fields[PERSON_SURNAME_1]': fields.surname,\n\t\t\t\t\t'fields[PERSON_SURNAME_2]': fields.secondSurname,\n\t\t\t\t\t'fields[PERSON_EMAIL]': fields.email,\n\t\t\t\t\t'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n\t\t\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t\t\t'fields[COMMENTS_PERSON]': fields.masInformacion,\n\t\t\t\t\t'fields[CREATIVITY_PERSONALIZATION_DATA]': fields.budget,\n\t\t\t\t\t//'fields[]': fields.deepLink,\n\n\t\t\t\t\t'fields[SURVEY_ANSWER_01]': pincode,\n\n\t\t\t\t\t'fields[VEH_ACTUAL_MODEL]': appointmentNode.appointment.vehicle.model?.name,\n\t\t\t\t\t'fields[VEH_ACTUAL_PLATE]': appointmentNode.appointment.vehicle.plate,\n\t\t\t\t\t'fields[VEH_ACTUAL_PLATE_DATE]': transformDate(appointmentNode.appointment.vehicle.plateDate, 'DD/MM/YYYY HH:mm:ss', 'YYYY-M-D HH:mm:ss'),\n\t\t\t\t\t'fields[VEH_ACTUAL_MILEAGE]': appointmentNode.appointment.vehicle.millage,\n\t\t\t\t\t'fields[VEH_ACTUAL_FRAME]': appointmentNode.appointment.vehicle.frame,\n\n\t\t\t\t\t'fields[APPOINTMENT_TYPE]': 'NUEVA',\n\t\t\t\t\t'fields[APPOINTMENT_INSTALLATION_NAME]': appointmentDealer.name,\n\t\t\t\t\t'fields[APPOINTMENT_INSTALLATION_CODE]': appointmentDealer.dealerId?.codInstalacion,\n\t\t\t\t\t'fields[APPOINTMENT_INSTALLATION_ADDRESS]': getInstallationAdress(markerInfo),\n\t\t\t\t\t'fields[APPOINTMENT_INSTALLATION_EMAIL]': appointmentDealer.email,\n\t\t\t\t\t'fields[APPOINTMENT_INSTALLATION_PHONE]': appointmentDealer.phone?.replace(/\\s+/g, ''),\n\t\t\t\t\t'fields[APPOINTMENT_REQUESTED_TYPE]': fields.motivo,\n\t\t\t\t\t'fields[APPOINTMENT_DATE]': appointmentDate,\n\t\t\t\t\t'fields[PERSON_PREFERRED_SLOT]': fields.slot.dayMoment?.code, // ej: MEDIODIA\n\t\t\t\t\t'fields[APPOINTMENT_COMMERCIAL_ADVISER]': fields.assessor.name,\n\n\t\t\t\t\t'flags[APPOINTMENT_FLAG_PICK_UP_SERVICE]':\n\t\t\t\t\t\ttypeof fields.cocheAlTaller === 'string' ? JSON.parse(fields.cocheAlTaller) : '',\n\t\t\t\t\t'flags[APPOINTMENT_FLAG_SUBSTITUTION_VEHICLE]':\n\t\t\t\t\t\ttypeof fields.cocheSustitucion === 'string' ? JSON.parse(fields.cocheSustitucion) : '',\n\t\t\t\t\t'flags[APPOINTMENT_FLAG_HAS_DMS]': appointmentDealer.dmsAvailable,\n\t\t\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\n\t\t\t\t\t'flags[FLAG_RELACION_MARCA_SIN_IC]': 'true',\n\t\t\t\t\t'flags[FLAG_IS_MYSTERY_LEAD]': 'false',\n\t\t\t\t};\n\n\t\t\t\tconst ndpsDataToSend = formDataBuilder(JSON.parse(JSON.stringify(ndpsData)));\n\t\t\t\tconst ndpsResponse = await oneformBFFNdpsSend(ndpsDataToSend);\n\t\t\t\tif (ndpsResponse && ndpsResponse.data?.status?.code == 200) {\n\t\t\t\t\tdispatch({type: 'SET_FORM_RESPONSE', payload: eapiResponse.data});\n\t\t\t\t\treturn resolve(true);\n\t\t\t\t} else {\n\t\t\t\t\tconst eapiDelete = {\n\t\t\t\t\t\tgroup_brand: groupBrand,\n\t\t\t\t\t\tpincode: pincode,\n\t\t\t\t\t};\n\t\t\t\t\tawait deleteEapiAppointment(formDataBuilder(eapiDelete));\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t} else if (!eapiResponse?.data?.content && dmsInfo?.dmsAvailable) {\n\t\t\t\tdispatch({type: 'SET_SEND_DMS_FAILED', payload: true});\n\t\t\t\tresolve(false);\n\t\t\t} else {\n\t\t\t\tresolve(false);\n\t\t\t}\n\t\t});\n\t};\n\n\tconst repeatKvpsRequest = async (kvps: string) => {\n\t\tconst newSelectedDealer = await getDealerKvps(kvps);\n\n\t\tif (newSelectedDealer) {\n\t\t\tsetCitaPosventaData({...citaPosventaData, fields: {...citaPosventaData.fields, dealer: newSelectedDealer}});\n\t\t\t// CitaPosventaData.fields.dealer = newSelectedDealer;\n\t\t}\n\t};\n\n\tconst getFinalSteps = (steps: Steps[], motivo: string, observaciones: string) => {\n\t\tlet newSteps = [...steps];\n\n\t\tnewSteps = spliceSteps(newSteps, motivo, 'Motivo');\n\t\tnewSteps = spliceSteps(newSteps, observaciones, 'MasInformacion');\n\n\t\tconst finalSteps = resetStepsScreenIndex(newSteps);\n\n\t\treturn finalSteps;\n\t};\n\n\t/**\n\t * 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\t */\n\tconst getFirstStepAndStepsHistory = (): {firstStep: Steps; stepsHistory: number[]; finalSteps: Steps[]} => {\n\t\t// Obtención de los parametros de la url\n\t\tlet selectedMotivo: CTAsMotivoDef = null;\n\t\tlet motivo: string;\n\t\tlet observaciones = faContent?.observaciones;\n\n\t\tif (isCitaPosventaEmbeddedCalculadora || isCitaPosventaEmbeddedMaintenance) {\n\t\t\t// En los forms de Calculadora y Mi Manteniemto nos saltamos algunos pasos\n\t\t\tconst stepsWithoutMap = removeMultipleStepsAndResetScreenIndex(defaultSteps, [\n\t\t\t\t'Motivo',\n\t\t\t\t'MasInformacion',\n\t\t\t\t'Matricula',\n\t\t\t\t'Kilometros',\n\t\t\t]);\n\n\t\t\treturn {finalSteps: stepsWithoutMap, stepsHistory: [0], firstStep: stepsWithoutMap[0]};\n\t\t}\n\n\t\tif (isCitaPosventaEmbeddedPortal) {\n\t\t\t// En los forms de Calculadora y Mi Manteniemto nos saltamos algunos pasos\n\t\t\tconst stepsWithoutMap = removeMultipleStepsAndResetScreenIndex(defaultSteps, [\n\t\t\t\t'Matricula',\n\t\t\t\t'Kilometros',\n\t\t\t]);\n\n\t\t\treturn {finalSteps: stepsWithoutMap, stepsHistory: [0], firstStep: stepsWithoutMap[0]};\n\t\t}\n\n\t\tif (isCitaPosventaEmbeddedBonos) {\n\t\t\tconst stepsWithoutMap = removeMultipleStepsAndResetScreenIndex(defaultSteps, ['Motivo', 'MasInformacion']);\n\n\t\t\treturn {finalSteps: stepsWithoutMap, stepsHistory: [0], firstStep: stepsWithoutMap[0]};\n\t\t}\n\n\t\tif (window && window.location) {\n\t\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\t\tconst motivo = urlParams.get('motivo');\n\t\t\tconst dealer = urlParams.get('dealer');\n\n\t\t\tif (motivo) {\n\t\t\t\tselectedMotivo = CTAsMotivo.find((CTAmotivo) => {\n\t\t\t\t\treturn CTAmotivo.value === motivo;\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (dealer && selectedDealer) {\n\t\t\t\t// CitaPosventaData.fields.dealer = selectedDealer;\n\t\t\t\tsetCitaPosventaData({...citaPosventaData, fields: {...citaPosventaData.fields, dealer: selectedDealer}});\n\t\t\t} else if (dealer && !selectedDealer) {\n\t\t\t\t// En caso de que por algun motivo haya dealer pero no se haya cargado correctamente en el cms repetimos la request\n\t\t\t\trepeatKvpsRequest(dealer);\n\t\t\t}\n\t\t}\n\n\t\tmotivo = faContent?.motivo ? faContent.motivo : motivo;\n\t\tconst finalSteps = getFinalSteps(defaultSteps, motivo, observaciones);\n\n\t\tconst defaultFirstStep = finalSteps[CitaPosventaSteps.Motivo];\n\n\t\tlet firstStep = finalSteps.find((step: Steps) => {\n\t\t\tif (selectedMotivo && (!faContent || !faContent.motivo)) {\n\t\t\t\treturn step.screenIndex === CitaPosventaSteps.MasInformacion;\n\t\t\t} else {\n\t\t\t\treturn step.screenIndex === defaultFirstStep.screenIndex;\n\t\t\t}\n\t\t});\n\n\t\tfirstStep = firstStep ? firstStep : defaultFirstStep;\n\t\tfirstStep.isFirstStep = true;\n\n\t\tlet stepsHistory = [0];\n\t\tif (firstStep.screenIndex === defaultFirstStep.screenIndex) {\n\t\t\tstepsHistory = [0];\n\t\t} else {\n\t\t\tstepsHistory = [0, firstStep.screenIndex];\n\t\t}\n\n\t\tconst motivoData = faContent?.motivo ? faContent.motivo : selectedMotivo ? selectedMotivo.value : null;\n\t\tconst masInformacionData = faContent?.observaciones\n\t\t\t? faContent.observaciones\n\t\t\t: isMotivoSoftware()\n\t\t\t? selectedMotivo.detalles\n\t\t\t: null;\n\n\t\tsetCitaPosventaData({\n\t\t\t...citaPosventaData,\n\t\t\tfields: {...citaPosventaData.fields, motivo: motivoData, masInformacion: masInformacionData},\n\t\t});\n\n\t\treturn {firstStep, stepsHistory, finalSteps};\n\t};\n\n\tconst handleStepsOfCitaDealer = (steps: Steps[], dealer: DealersData) => {\n\t\tlet newSteps = [...steps];\n\n\t\tif (isComerciales) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!dealer.dmsInfo?.pickupCarServiceAvailabe) {\n\t\t\tnewSteps = removeMultipleStepsAndResetScreenIndex(newSteps, ['CocheAlTaller']);\n\t\t}\n\t\tif (!dealer.dmsInfo?.replacementCarServiceAvailable) {\n\t\t\tnewSteps = removeMultipleStepsAndResetScreenIndex(newSteps, ['CocheSustitucion']);\n\t\t}\n\n\t\tsetSteps(newSteps);\n\t\tsetFirstStep(newSteps[0]);\n\t\tsetStepsHistory(stepsHistory);\n\t\tsetLoaded(true);\n\t};\n\n\tconst getSteps = (steps: Steps[]) => {\n\t\tif (isCitaPosventaDealer && selectedDealer) {\n\t\t\thandleStepsOfCitaDealer(defaultSteps, selectedDealer);\n\t\t\treturn;\n\t\t}\n\t\tconst {firstStep, stepsHistory, finalSteps} = getFirstStepAndStepsHistory();\n\t\tsetSteps(finalSteps);\n\t\tsetFirstStep(firstStep);\n\t\tsetStepsHistory(stepsHistory);\n\t\tsetLoaded(true);\n\t};\n\n\tuseEffect(() => {\n\t\tgetSteps(defaultSteps);\n\t\tgetEapiCarlines().then((response) => {\n\t\t\tdispatch({type: 'SET_CITA_CARLINES', payload: response.data?.content});\n\t\t});\n\t}, []);\n\n\treturn loaded ? (\n\t\tuserIsAuthenticated && useLoggedJourney ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t)\n\t) : null;\n};\n","import {\n\tBreakpoints,\n\tBreakpointWrapper,\n\tContainer,\n\tContainerGutter,\n\tContainerPadding,\n\tCTA,\n\tLayout,\n\tstyled,\n\tText,\n\tTextAlignment,\n\tTokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport FileDownload from 'js-file-download';\nimport React, {useEffect, useState} from 'react';\nimport {connect, useDispatch, useSelector} from 'react-redux';\nimport {getEapiAppointmentIcs, getMolecularUrl} from 'src/bff';\nimport {\n\tuseFeatureAppConfig,\n\tweekDay_DayNumber_Month,\n\tweekDay_DayNumber_Month_Hour,\n\tuseTrackingManager,\n\tTrackingForm,\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\tanimation: ${lineKeyframe} 0.5s ease-in;\n`;\n\ninterface FieldProps {\n\tcopyBook?: string;\n}\n\ninterface NDPSField {\n\tname: string;\n\tvalue: string;\n}\n\nfunction Fields(props: FieldProps) {\n\tconst {formData, formInfo} = useSelector((state: OneFormState) => state);\n\tconst {dealer}: {dealer?: DealersData} = formData.fields;\n\tconst {pincode}: {pincode: string} = formInfo.formResponse.content;\n\tconst config = useFeatureAppConfig();\n\n\tconst handleGuardar = async () => {\n\t\tconst response = await getEapiAppointmentIcs(pincode);\n\t\tFileDownload(response, 'cita.ics');\n\t};\n\n\treturn (\n\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{props.copyBook}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{dealer.dmsInfo.dmsAvailable ? (\n\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\thandleGuardar();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tGuárdala en tu calendario\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t
\n\t\t\n\t);\n}\n\ninterface ThankYouProps {\n\tformData: FormDataFields;\n\tformInfo: FormInfo;\n}\n\nfunction ThankYouNuevaCita(props: ThankYouProps) {\n\tconst {formData, formInfo} = props;\n\tconst {formResponse} = formInfo;\n\tconst [fechaHora, setFechaHora] = useState('');\n\tconst [copyBook, setCopyBook] = useState('');\n\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\tconst getTrackingForm = (): TrackingForm => {\n\t\tlet LeadID;\n\t\tif (\n\t\t\tformResponse &&\n\t\t\tformResponse.contentNDPS &&\n\t\t\tformResponse.contentNDPS.data &&\n\t\t\tformResponse.contentNDPS.data.fields\n\t\t) {\n\t\t\tconst leadField: NDPSField = formResponse.contentNDPS.data.fields.find(\n\t\t\t\t(field: NDPSField) => field.name === 'COD_LEAD_ID',\n\t\t\t);\n\t\t\tLeadID = leadField ? leadField.value : undefined;\n\t\t}\n\t\treturn {\n\t\t\tLeadID,\n\t\t\tFormFields: undefined,\n\t\t};\n\t};\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formInfo.numberOfScreens;\n\n\t\tdispatch({type: 'SET_FORM_SUBMITTED', payload: true});\n\t\tdispatch({type: 'SET_FORM_INFO', payload: {step: {screenIndex: screenIndexThankyou, name: 'ThankYou'}}});\n\n\t\tconst selectedSlot = formData.slot;\n\t\tconst franjaHoraria = [\n\t\t\t{code: 'MANANA', name: ' por la mañana'},\n\t\t\t{code: 'MEDIODIA', name: ' al mediodía'},\n\t\t\t{code: 'TARDE', name: ' por la tarde'},\n\t\t];\n\t\tlet fromFormatted;\n\n\t\tif (formInfo.sendDmsFailed) {\n\t\t\tconst momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n\t\t\tconst formattedSlot =\n\t\t\t\tmomentSlot.split(',')[0] +\n\t\t\t\t' de ' +\n\t\t\t\tmomentSlot.split(',')[1].charAt(0).toLowerCase() +\n\t\t\t\tmomentSlot.split(',')[1].slice(1);\n\t\t\tconst horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n\t\t\tfromFormatted = formattedSlot.replace(',', ' de ').concat(horarioTranslate.name);\n\t\t\tsetFechaHora(fromFormatted);\n\t\t} else {\n\t\t\tif (formData.dealer.dmsInfo.dmsAvailable) {\n\t\t\t\tconst momentSlot = weekDay_DayNumber_Month_Hour(selectedSlot.from);\n\t\t\t\tconst formattedSlot =\n\t\t\t\t\tmomentSlot.split(',')[0] +\n\t\t\t\t\t' de ' +\n\t\t\t\t\tmomentSlot.split(',')[1].charAt(0).toLowerCase() +\n\t\t\t\t\tmomentSlot.split(',')[1].slice(1);\n\t\t\t\tfromFormatted = formattedSlot.replace('-', ' a las ').concat('h');\n\t\t\t\tsetFechaHora(fromFormatted);\n\t\t\t} else {\n\t\t\t\tconst momentSlot = weekDay_DayNumber_Month(selectedSlot.from);\n\t\t\t\tconst formattedSlot =\n\t\t\t\t\tmomentSlot.split(',')[0] +\n\t\t\t\t\t' de ' +\n\t\t\t\t\tmomentSlot.split(',')[1].charAt(0).toLowerCase() +\n\t\t\t\t\tmomentSlot.split(',')[1].slice(1);\n\t\t\t\tconst horarioTranslate = franjaHoraria.find((h) => h.code === selectedSlot.dayMoment.code);\n\t\t\t\tfromFormatted = formattedSlot.replace(',', ' de ').concat(horarioTranslate.name);\n\t\t\t\tsetFechaHora(fromFormatted);\n\t\t\t}\n\t\t}\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(),\n\t\t);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst copyDms =\n\t\t\t'Tu asesor te contactará pronto para confirmar la cita. Te acabamos de enviar un email con toda la información.';\n\t\tconst copySinDms =\n\t\t\t'Tu asesor te contactará pronto para confirmar la cita. Te acabamos de enviar un email con toda la información.';\n\n\t\tif (formData.dealer.dmsInfo.dmsAvailable) {\n\t\t\tsetCopyBook(copyDms);\n\t\t} else {\n\t\t\tsetCopyBook(copySinDms);\n\t\t}\n\t}, []);\n\n\tconst renderTitle = (dmsFailed: boolean) => {\n\t\tif (!dmsFailed && formData.dealer.dmsInfo.dmsAvailable) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tHemos enviado tu solicitud para el {fechaHora} en{' '}\n\t\t\t\t\t\t\t{formData.dealer.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tHemos enviado tu solicitud para el {fechaHora} en{' '}\n\t\t\t\t\t\t\t{formData.dealer.name}\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} else {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tHemos enviado tu solicitud para {fechaHora} en{' '}\n\t\t\t\t\t\t\t{formData.dealer.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tHemos enviado tu solicitud para {fechaHora} en{' '}\n\t\t\t\t\t\t\t{formData.dealer.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t};\n\n\tconst screen: Steps = {\n\t\ttitle: <>{renderTitle(formInfo.sendDmsFailed)},\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n\treturn {\n\t\tformData: state.formData.fields,\n\t\tformInfo: state.formInfo,\n\t};\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\tisCitaPosventaDealer?: boolean;\n}\n\ninterface FormProps {\n\tdefaultSteps: Steps[];\n\tsendForm: any;\n\tfirstStep: Steps;\n\tCitaPosventaData: Partial;\n\tstepsHistory?: number[];\n}\n\nexport function NuevaCitaPosventaFormDefault({\n\tdefaultSteps,\n\tsendForm,\n\tfirstStep,\n\tCitaPosventaData,\n\tstepsHistory,\n}: FormProps) {\n\tconst {initializeForm, nextScreenIndex} = useOneFormContext();\n\n\tuseEffect(() => {\n\t\tconst lastStep = defaultSteps[defaultSteps.length - 1];\n\n\t\tconst CitaPosventaInfo: Partial = {\n\t\t\tformEnded: false,\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: defaultSteps.length,\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tnotALayer: false,\n\t\t\tformType: 'layer',\n\t\t\tformTheme: 'inverted',\n\t\t\tsteps: defaultSteps,\n\t\t\tstepsHistory: stepsHistory ? stepsHistory : [],\n\t\t\tthankYouComponent: ,\n\t\t};\n\n\t\tinitializeForm(CitaPosventaInfo, CitaPosventaData);\n\t}, []);\n\n\treturn ;\n}\n","import React, {useEffect} from 'react';\nimport {useDispatch, useSelector, useStore} from 'react-redux';\nimport {\n\tFormController,\n\tuseFaContent,\n\tuseFeatureAppConfig,\n\tuseFeatureServices,\n\tuseOneFormContext,\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\tisCitaPosventaDealer?: boolean;\n}\n\ninterface FormProps {\n\tdefaultSteps: Steps[];\n\tsendForm: any;\n\tfirstStep: Steps;\n\tCitaPosventaData: Partial;\n}\n\nexport function NuevaCitaPosventaFormLogged({defaultSteps, sendForm, firstStep, CitaPosventaData}: FormProps) {\n\tconst {initializeForm, nextScreenIndex} = useOneFormContext();\n\tconst {formData, formInfo, dealersInfo} = useSelector((state: OneFormState) => state);\n\tconst dispatch = useDispatch();\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'];\n\tconst {person} = oneFormService.get();\n\tconst config = useFeatureAppConfig();\n\n\tconst userHasFavouriteDealer = (steps: Steps[]) => {\n\t\tif (person?.favouriteDealer) {\n\t\t\tconst selectedDealer = dealersInfo.dealers?.find((dealer) => dealer.kvps === person.favouriteDealer);\n\t\t\tif (selectedDealer) {\n\t\t\t\t// Sobreescribir el selected dealer en el caso de cita posventa da problemas a la hora de cargar el calendario.\n\t\t\t\tif (config.trigger !== 'cita-posventa-dealer') {\n\t\t\t\t\tdispatch({type: 'SET_SELECTED_DEALER', payload: selectedDealer});\n\t\t\t\t\tdispatch({type: 'UPDATE_SUGGESTION', payload: selectedDealer});\n\t\t\t\t}\n\t\t\t\tdispatch({type: 'SET_FAVOURITE_DEALER', payload: selectedDealer});\n\t\t\t\tdispatch({type: 'SET_SHOW_CALENDAR_ON_LOAD', payload: true});\n\t\t\t}\n\t\t}\n\n\t\treturn steps;\n\t};\n\tconst userHasPersonalData = (steps: Steps[]) => {\n\t\tlet personalDataSteps = [...steps];\n\n\t\tif (person?.name && person?.surname) {\n\t\t\tpersonalDataSteps = removeStep(personalDataSteps, 'NombreApellido');\n\t\t}\n\t\tif (person?.cellphone) {\n\t\t\tpersonalDataSteps = removeStep(personalDataSteps, 'Telefono');\n\t\t}\n\t\tpersonalDataSteps = removeStep(personalDataSteps, 'Email');\n\t\tpersonalDataSteps = resetStepsScreenIndex(personalDataSteps);\n\t\treturn personalDataSteps;\n\t};\n\n\tconst userHasVehicleData = (steps: Steps[]) => {\n\t\tlet vehicleDataSteps = [...steps];\n\n\t\tif (person?.userVehicles && person?.userVehicles.length > 0) {\n\t\t\tconst {userVehicles} = person;\n\t\t\tlet mainVehicle: VehiclesIdentityKit;\n\t\t\tif (userVehicles.length === 1) {\n\t\t\t\tmainVehicle = userVehicles[0];\n\t\t\t} else {\n\t\t\t\tmainVehicle = userVehicles.find((vehicle) => vehicle.isMainVehicle);\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\tpayload: {matricula: mainVehicle.matricula, kilometros: mainVehicle.kilometros, modelo: mainVehicle.modelo},\n\t\t\t});\n\n\t\t\t// 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\t\t\tif (mainVehicle.matricula && mainVehicle.modelo && mainVehicle.anoMatriculacion) {\n\t\t\t\tvehicleDataSteps = removeStep(vehicleDataSteps, 'Matricula');\n\t\t\t}\n\t\t\tif (mainVehicle.kilometros) {\n\t\t\t\tvehicleDataSteps = removeStep(vehicleDataSteps, 'Kilometros');\n\t\t\t}\n\n\t\t\tvehicleDataSteps = resetStepsScreenIndex(vehicleDataSteps);\n\t\t}\n\t\treturn vehicleDataSteps;\n\t};\n\n\tconst getLoggedSteps = (steps: Steps[]) => {\n\t\tlet finalSteps = [...steps];\n\t\tfinalSteps = userHasFavouriteDealer(finalSteps);\n\t\tfinalSteps = userHasPersonalData(finalSteps);\n\t\tfinalSteps = userHasVehicleData(finalSteps);\n\n\t\treturn finalSteps;\n\t};\n\n\tuseEffect(() => {\n\t\tconst finalSteps = getLoggedSteps(defaultSteps);\n\n\t\tconst lastStep = finalSteps[finalSteps.length - 1];\n\n\t\tconst CitaPosventaInfo: Partial = {\n\t\t\tformEnded: false,\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: defaultSteps.length,\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tsteps: finalSteps,\n\t\t\tnotALayer: false,\n\t\t\tformType: 'layer',\n\t\t\tstepsHistory: [],\n\t\t\tthankYouComponent: ,\n\t\t};\n\n\t\tinitializeForm(CitaPosventaInfo, CitaPosventaData);\n\t}, []);\n\n\treturn ;\n}\n","import {\n\tBreakpoints,\n\tBreakpointWrapper,\n\tContainer,\n\tContainerGutter,\n\tContainerPadding,\n\tCTA,\n\tSpinner,\n\tstyled,\n\tText,\n\tTextAlignment,\n\tTokenTextAppearance,\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\tgetFranjaAndDayFrom,\n\tisNull,\n\tweekDay_DayNumber_De_Month,\n\tyear_MonthNumber_DayNumber,\n\tgetToAndFromForCheckCita,\n} from 'src/feature-app';\nimport {useTrackingManager} from 'src/feature-app/hooks/use-tracking-manager';\nimport {\n\tAssessors,\n\tAvailability,\n\tCalendarSlot,\n\tDealersData,\n\tHorario as HorarioType,\n\tOneFormState,\n\tPoints,\n\tSlot,\n\tSlotsTime,\n} from 'src/types';\nimport {getEarliestSlot} from 'src/feature-app/NewMap/sort-points';\nimport {Close} from '@volkswagen-onehub/icons-core';\nimport dayjs from 'dayjs';\n\nconst ZIndexLayer = styled.div`\n\tz-index: 25;\n\tposition: relative;\n`;\n\nconst Content = styled.div`\n\tbackground-color: #ffffff;\n\tposition: relative;\n\tpadding: 44px 31px;\n\tflex: auto;\n\ttext-align: center;\n\twidth: 100%;\n\t@media screen and (min-width: 560px) {\n\t\tpadding: 52px 46px;\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tpadding: var(--size-grid001);\n\t}\n`;\n\nconst CloseDiv = styled.div`\n\tposition: absolute;\n\ttop: var(--size-dynamic0050);\n\tright: var(--size-dynamic0050);\n\tcursor: pointer;\n`;\n\nconst CTAWrapper = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-top: 44px;\n\n\t@media screen and (min-width: 960px) {\n\t\tflex-direction: row;\n\t\talign-items: center;\n\t}\n`;\ninterface LayerComponentProps {\n\tselectedPoint: Points;\n\thandleShowSlots: (point: Points) => string | null;\n\thandleDmsMapExit: (slot: CalendarSlot, point: Points) => void;\n\thandleNoDmsMapExit: (franjaHoraria: string, day: string, point: Points) => void;\n\tgetAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n\t// handleAvailability: (a: Availability, d: DealersData) => void;\n\tcloseLayerCallback?: CloseHandleV2;\n\t// waitForNextStep: any;\n\thandleShowCalendarOnClick: (point: Points) => void;\n}\n\nexport function ReservaCitaLayer(props: LayerComponentProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n\ninterface SlotHorario {\n\tfrom: number;\n\tto: number;\n}\n\nfunction ReservaCita(props: LayerComponentProps) {\n\tconst {\n\t\tselectedPoint,\n\t\thandleShowSlots,\n\t\thandleDmsMapExit,\n\t\thandleNoDmsMapExit,\n\t\tgetAvailability,\n\t\t// handleAvailability,\n\t\tcloseLayerCallback,\n\t\t// waitForNextStep\n\t\thandleShowCalendarOnClick,\n\t} = props;\n\n\tconst trackingManager = useTrackingManager();\n\tconst [assessorName, setAssessorName] = useState('');\n\n\tconst {dealer} = selectedPoint.properties;\n\tconst {motivo, horario, motivoLabel}: {motivo: string; motivoLabel: string; horario: HorarioType} = useSelector(\n\t\t(state: OneFormState) => state.formData.fields,\n\t);\n\tconst {name, address, city, zipCode} = dealer.markerInfo.dealerInfo;\n\n\tconst [loading, setLoading] = useState(false);\n\tconst [DMSError, setDMSError] = useState(false);\n\tconst [slotNotAvailable, setSlotNotAvailable] = useState(false);\n\tconst slotHorarioRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tcheckSlot();\n\t\tif (selectedPoint) {\n\t\t\tgetAssessorName();\n\t\t}\n\t}, []);\n\n\tconst checkSlot = () => {\n\t\tconst {slots} = dealer;\n\t\tlet from: number;\n\t\tlet to: number = null;\n\t\tif (!isNull(slots)) {\n\t\t\tfrom = getEarliestSlot(slots);\n\t\t}\n\n\t\tslotHorarioRef.current = {from, to};\n\t};\n\n\tconst getAssessorName = () => {\n\t\tconst {assessors} = dealer.dmsInfo;\n\t\tif (horario !== 'before' && dealer?.slots[horario]) {\n\t\t\tconst assessorCode = dealer.slots[horario].assessorCode;\n\t\t\tconst assessor = findAssessor(assessors, assessorCode);\n\t\t\tsetAssessorName(assessor.name);\n\t\t} else {\n\t\t\t// Primero se comprueba si el dealer tiene disponibles slots en mañana, mediodía o tarde\n\t\t\t// y luego se comparan estos slots con el earliestSlot para seleccionarlo.\n\t\t\tconst {slots} = selectedPoint.properties.dealer;\n\t\t\tconst keys = Object.keys(slots) as SlotsTime[];\n\t\t\tkeys.map((time: SlotsTime) => {\n\t\t\t\tif (slots[time] && selectedPoint.properties.earliestSlot === slots[time].from) {\n\t\t\t\t\tconst slot: Slot = slots[time];\n\t\t\t\t\tconst assessor = findAssessor(assessors, slot.assessorCode);\n\t\t\t\t\tsetAssessorName(assessor.name);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\tconst findAssessor = (assessors: Assessors[], code: string) => {\n\t\treturn assessors.find((assessor) => assessor.code === code);\n\t};\n\n\tconst handleCitaDisponible = (slot: CalendarSlot, assessors: Assessors[]) => {\n\t\tsetLoading(false);\n\t\tcloseLayerCallback({}, {}, {});\n\t\thandleDmsMapExit(slot, selectedPoint);\n\t\treturn;\n\t};\n\n\tconst handleCitaNoDisponible = (availability: Availability) => {\n\t\tsetLoading(false);\n\t\tif (availability?.content?.calendar) {\n\t\t\tsetSlotNotAvailable(true);\n\t\t\tsetDMSError(false);\n\t\t} else {\n\t\t\tconst {franjaHoraria} = getFranjaAndDayFrom(slotHorarioRef.current.from);\n\t\t\tsetDay(weekDay_DayNumber_De_Month(slotHorarioRef.current.from));\n\t\t\tsetFranjaHoraria(franjaHoraria.toLowerCase());\n\t\t\tsetDMSError(true);\n\t\t\tsetSlotNotAvailable(false);\n\t\t}\n\t};\n\n\t//\n\tconst [day, setDay] = useState(null);\n\tconst [franjaHoraria, setFranjaHoraria] = useState(null);\n\n\tconst continueWithoutDms = (from: number, point: Points) => {\n\t\tconst {day, franjaHoraria} = getFranjaAndDayFrom(from);\n\n\t\thandleNoDmsMapExit(franjaHoraria, day, point);\n\t};\n\n\tconst getToAndFromForCheckCita = (citaTo: number): {from: number; to: number} => {\n\t\tconst from = Number(dayjs().locale('es').utc().format('x'));\n\t\tconst to = Number(dayjs(citaTo).locale('es').utc().format('x'));\n\t\n\t\treturn {from, to};\n\t};\n\n\tconst checkCita = async () => {\n\t\tsetLoading(true);\n\t\tconst {from, to} = getToAndFromForCheckCita(slotHorarioRef.current.from);\n\n\t\tconst availability = await getAvailability(dealer, from, to);\n\n\t\tif (availability?.content?.calendar) {\n\t\t\tconst fromFormatted = year_MonthNumber_DayNumber(slotHorarioRef.current.from);\n\t\t\tconst selectedDay = availability.content.calendar.find((day) => day.date === fromFormatted);\n\t\t\tconst assessors = dealer.dmsInfo.assessors;\n\n\t\t\tif (selectedDay) {\n\t\t\t\tconst finalSlot = selectedDay.slots\n\t\t\t\t\t.map((slot) => {\n\t\t\t\t\t\tif (slot.from === slotHorarioRef.current.from) {\n\t\t\t\t\t\t\treturn slot;\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.filter((a) => a !== undefined);\n\n\t\t\t\tfinalSlot.length > 0 ? handleCitaDisponible(finalSlot[0], assessors) : handleCitaNoDisponible(availability);\n\t\t\t} else {\n\t\t\t\thandleCitaNoDisponible(availability);\n\t\t\t}\n\t\t} else {\n\t\t\thandleCitaNoDisponible(availability);\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{!loading && !slotNotAvailable && !DMSError ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t¿Quieres reservar esta cita?\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tMotivo de tu visita\n\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\t\t{motivoLabel ? motivoLabel : motivo ? motivo : 'Revisión de mantenimiento'}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tFecha y hora\n\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\t\t{handleShowSlots(selectedPoint)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tTaller\n\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\t\t{name}\n\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\t\t{address},
{zipCode} {city}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{assessorName ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tAsesor {assessorName}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormCTAClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Sí, quiero esta cita',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcheckCita();\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tSí­, quiero esta cita\n\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\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormButtonClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Ver más horas',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\thandleShowCalendarOnClick(selectedPoint);\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tVer más horas\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormCTAClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Sí, quiero esta cita',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcheckCita();\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\t\tSí, quiero esta cita\n\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\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormButtonClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Ver más horas',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\thandleShowCalendarOnClick(selectedPoint);\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\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\t\tVer más horas\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) : null}\n\n\t\t\t\t{loading ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\tConfirmando con la agenda del taller\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\t{!loading && DMSError ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tNo hemos podido confirmar tu cita para el{' '}\n\t\t\t\t\t\t\t\t{handleShowSlots(selectedPoint)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t¿Quieres continuar con el proceso y que {name} se\n\t\t\t\t\t\t\t\tponga en contacto contigo para cerrar tu cita el {day} por la {franjaHoraria}?\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormCTAClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Continuar',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcheckCita();\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tContinuar\n\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\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormButtonClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Buscar una nueva cita',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tstretchContent\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tBuscar una nueva cita\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormCTAClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Continuar',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcontinueWithoutDms(slotHorarioRef.current.from, selectedPoint);\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\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\t\tContinuar\n\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\t {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\ttrackingManager.trackFormButtonClick(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcontentId: 'Buscar una nueva cita',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\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\t\tBuscar una nueva cita\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) : null}\n\t\t\t\t{!loading && slotNotAvailable ? (\n\t\t\t\t\t\n\t\t\t\t\t\tLamentablemente la cita seleccionada no está disponible\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\ttrackingManager.trackFormButtonClick(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcontentId: 'Seguir buscando',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdealer,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\thandleShowCalendarOnClick(selectedPoint);\n\t\t\t\t\t\t\t\tcloseLayerCallback({}, {}, {});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tSeguir buscando\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\t\t\n\t);\n}\n","import {\n\tBreakpoints,\n\tBreakpointWrapper,\n\tContainer,\n\tContainerPadding,\n\tLayout,\n\tstyled,\n\tText,\n\tTextAlignment,\n\tCTA,\n\tTokenTextAppearance,\n\tTokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport {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';\nimport {getFirstAndLastDayOfMonth} from 'src/helpers';\n\ninterface SeleccionDealerProps {\n\tpointsByDistance: Points[];\n\tpointsByTime: Points[];\n\t// setShowMap: React.Dispatch>;\n\tsetShowCards: React.Dispatch>;\n\tsetLoading: React.Dispatch>;\n\tsetSelectedPoint: React.Dispatch>;\n\tgetAvailability: (dealer: DealersData, start: number, end: number) => Promise;\n\tselectedPoint: Points;\n\n\thandleShowSlots: (point: Points) => string | null;\n\tshowAllCardsMobile: boolean;\n\tcenter: Center;\n\thandleReservaCitaLayer: (p: Points) => void;\n\thideCards?: () => void;\n}\n\ninterface BoxProps {\n\tselected: boolean;\n\toneCard: boolean;\n}\n\nconst GoBackWrapper = styled.div`\n\tpadding-top: 24px;\n\n\t& button {\n\t\tcolor: #ffffff;\n\t}\n`;\n\nconst Box = styled.div`\n\twidth: 100%;\n\tborder: ${(props) => (props.selected ? '2px solid #FFFFFF' : '1px solid rgba(255,255,255,0.44)')};\n\tpadding: 24px;\n\tmargin-top: ${(props) => (props.oneCard ? '0' : '44px')};\n\n\t:hover {\n\t\tborder: ${(props) => (props.selected ? '2px solid #FFFFFF' : '1px solid #4cc7f4')};\n\t}\n`;\nconst ScrollWrapper = styled.div`\n\theight: calc(100vh - 80px);\n\toverflow-y: auto;\n\tmargin: auto;\n`;\n\nconst TabsWrapper = styled.div`\n\twidth: 83vw;\n\tpadding-top: 24px;\n\theight: 100%;\n\n\t@media all and (min-width: 960px) {\n\t\twidth: 380px;\n\t\toverflow-y: auto;\n\t\tmargin: auto;\n\t}\n\tul {\n\t\tpadding-left: 5px;\n\t}\n\n\t& > div {\n\t\tpadding-bottom: 24px;\n\t}\n`;\n\nconst ArrowLeftWrapper = styled.div`\n\tpadding: 24px 0px;\n\n\t& svg {\n\t\tfill: #ffffff;\n\t}\n`;\n\ninterface Ref {\n\tref: React.RefObject;\n\tkvps: string;\n}\n\nexport function SeleccionDealer(props: SeleccionDealerProps) {\n\tconst {\n\t\tpointsByDistance,\n\t\tpointsByTime,\n\t\tselectedPoint,\n\t\tsetSelectedPoint,\n\t\tgetAvailability,\n\t\tsetLoading,\n\t\thandleShowSlots,\n\t\thandleReservaCitaLayer,\n\t\tcenter,\n\t\thideCards,\n\t\tsetShowCards,\n\t} = props;\n\n\tconst {horario} = useSelector((state: OneFormState) => state.formData.fields);\n\tconst {handleAreYouSureLayer} = useOneFormContext();\n\n\tconst [defaultIndex, setDefaultIndex] = useState(0);\n\tconst [selectedPoints, setSelectedPoints] = useState(null);\n\n\tconst createRefs = (points: Points[]) => {\n\t\tconst refs = [];\n\t\tconst length = points.length;\n\t\tfor (let ix = 0; ix < length; ix++) {\n\t\t\tlet refObject: Ref = {ref: createRef(), kvps: points[ix].properties.dealer.kvps};\n\t\t\trefs.push(refObject);\n\t\t\trefObject = null;\n\t\t}\n\t\treturn refs;\n\t};\n\tconst [isTimeSelected, setIsTimeSelected] = useState(false);\n\tconst [timeRefs, setTimeRefs] = useState(null);\n\tconst [distanceRefs, setDistanceRefs] = useState(null);\n\n\tuseEffect(() => {\n\t\tif (horario === 'before') {\n\t\t\tsetIsTimeSelected(true);\n\t\t\tsetDefaultIndex(1);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\t// setSelectedPoint(null);\n\t\tsetTimeRefs(null);\n\t\tsetDistanceRefs(null);\n\n\t\tconst timeRefs = createRefs(pointsByTime);\n\t\tconst distanceRefs = createRefs(pointsByDistance);\n\t\tsetTimeRefs(timeRefs);\n\t\tsetDistanceRefs(distanceRefs);\n\t}, [pointsByDistance]);\n\n\tuseEffect(() => {\n\t\tsetSelectedPoints(pointsByDistance); // Actualizar con el que está seleccionado.\n\t}, [selectedPoints]);\n\n\tconst handleShowCalendarOnClick = async (point: Points) => {\n\t\tsetSelectedPoint(point);\n\t\tsetLoading(true);\n\t\tconst {firstDayOfMonth, lastDayOfMonth} = getFirstAndLastDayOfMonth();\n\t\tconst availability = await getAvailability(point.properties.dealer, firstDayOfMonth, lastDayOfMonth); // Devuelve el availability.\n\t\tsetLoading(false);\n\t};\n\n\tconst handleSeleccionarOnClick = (point: any) => {\n\t\tsetSelectedPoint(point);\n\t\thandleReservaCitaLayer(point);\n\t};\n\n\tconst renderPoints = (points: any, isTime?: boolean): JSX.Element => {\n\t\treturn points.map((point: Points, i: number) => {\n\t\t\tconst {kvps} = point.properties.dealer;\n\t\t\tconst {cluster} = point.properties;\n\t\t\tconst selected = selectedPoint && selectedPoint.properties.dealer.kvps === kvps ? true : false;\n\n\t\t\tif (selected && !cluster) {\n\t\t\t\tif (\n\t\t\t\t\tisTimeSelected &&\n\t\t\t\t\ttimeRefs[i] &&\n\t\t\t\t\ttimeRefs[i].ref &&\n\t\t\t\t\ttimeRefs[i].ref.current &&\n\t\t\t\t\ttimeRefs[i].kvps === selectedPoint.properties.dealer.kvps\n\t\t\t\t) {\n\t\t\t\t\ttimeRefs[i].ref.current.scrollIntoView({block: 'center', behavior: 'smooth'});\n\t\t\t\t} else if (\n\t\t\t\t\t!isTimeSelected &&\n\t\t\t\t\tdistanceRefs[i] &&\n\t\t\t\t\tdistanceRefs[i].ref &&\n\t\t\t\t\tdistanceRefs[i].ref.current &&\n\t\t\t\t\tdistanceRefs[i].kvps === selectedPoint.properties.dealer.kvps\n\t\t\t\t) {\n\t\t\t\t\tdistanceRefs[i].ref.current.scrollIntoView({block: 'center', behavior: 'smooth'});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (!cluster && !isNull(timeRefs) && timeRefs.length > 0 && !isNull(ref) && isTime) {\n\t\t\t\t\t\t\t\tif (timeRefs[i] && timeRefs[i].ref) {\n\t\t\t\t\t\t\t\t\ttimeRefs[i].ref.current = ref;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (!cluster && !isNull(distanceRefs) && distanceRefs.length > 0 && !isNull(ref) && !isTime) {\n\t\t\t\t\t\t\t\tif (distanceRefs[i] && distanceRefs[i].ref) {\n\t\t\t\t\t\t\t\t\tdistanceRefs[i].ref.current = ref;\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\tclassName=\"Box\"\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});\n\t};\n\n\treturn selectedPoints ? (\n\t\t<>\n\t\t\t\n\t\t\t\t{props.showAllCardsMobile ? (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\t\thideCards();\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\t\t\n\t\t\t\t\t\t\t\t\t\tIr al mapa\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tOrdenar por:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* \n \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\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t) : null}\n\t\t\t\n\n\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\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tOrdenar por:\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t) : null;\n}\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n PoliticaPrivacidad, \n LastNavigation, \n GeneralConfirmacionLayerWrapper \n} from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionEmpresas = () => {\n\n return (\n \n \n \n \n\n \n\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Text, styled } from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\nimport { CodigoPostal, InputError, TextInputExtended } from 'src/components';\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media screen and (min-width: 560px) {\n width: 303px;\n }\n @media screen and (min-width: 960px) {\n width: 320px;\n margin-top: 44px;\n }\n @media all and (max-height: 624px) {\n margin-top: 24px;\n }\n }\n`;\n\nconst WidthWrapper = styled.div`\n width: 100%;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n`;\n\nexport const EmpresaInfoComponent = () => {\n const { register } = useFormContext();\n\n // Nombre de la empresa\n const [inputValueName, setInputValueName] = useState('');\n const [pristineName, setPristineName] = useState(true);\n const [errorName, setErrorName] = useState(false);\n const regExpName = /[a-zA-Z]/gi;\n\n const handleChangeName = (e: any) => {\n setInputValueName(e.target.value);\n setPristineName(false);\n };\n\n useEffect(() => {\n if (!pristineName && inputValueName.match(regExpName) === null) {\n setErrorName(true);\n } else {\n setErrorName(false);\n }\n }, [inputValueName, pristineName]);\n\n // CIF\n const [inputValueCIF, setInputValueCIF] = useState('');\n const [pristineCIF, setPristineCIF] = useState(true);\n const [errorCIF, setErrorCIF] = useState(false);\n const regExpCIF = /[A-Z]\\d{8}/gi;\n\n const handleChangeCIF = (e: any) => {\n setInputValueCIF(e.target.value);\n setPristineCIF(false);\n };\n\n useEffect(() => {\n if (!pristineCIF && inputValueCIF.match(regExpCIF) === null) {\n setErrorCIF(true);\n } else {\n setErrorCIF(false);\n }\n }, [inputValueCIF, pristineCIF]);\n\n\n\n return (\n <>\n \n \n handleChangeName(e)}\n required\n />\n {errorName && Solo se aceptan letras}\n \n \n handleChangeCIF(e)}\n required\n />\n {errorCIF && Ejemplo: A00000000}\n \n \n \n \n \n \n\n \n \n );\n};\n","import React, { useState } from 'react';\nimport { MultipleCTASelection} from 'src/components';\n\nconst fleetOptions = [\n {\n value: '1 - 2',\n label: '1 o 2',\n },\n {\n value: '3 - 10',\n label: 'De 3 a 10',\n },\n {\n value: '11 - 50',\n label: 'De 11 a 50',\n },\n];\n\nexport const Fleet = () => {\n\n return (\n \n );\n};\n","import React, { useEffect } from 'react';\nimport { Text, styled } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { Email, PantallaNombreApellido, Telefono, CarlineSelect, ContactInfoWrapper } from 'src/components';\nimport { MapaEmpresas, EmpresaInfoComponent, ConfirmacionEmpresas, ThankYouEmpresas } from 'src/forms';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n formatPrefix,\n FormController,\n removeWhiteSpace,\n useFaContent,\n useGetInstalaciones,\n useOneFormContext,\n} from 'src/feature-app';\nimport { useInitializeLeadForm } from '../Leads';\nimport { Fleet } from './Fleet';\nimport { formatHeaders, formatFlags, formDataBuilder, getDpsFields } from '../format-fields';\nimport { useGetWaidLitera } from 'src/feature-app/hooks/use-get-waid-litera';\n\nexport enum EmpresasFormSteps {\n Modelo,\n Mapa,\n NombreApellido,\n EmailTelefono,\n Empresa,\n Fleet,\n Confirmacion,\n}\n\nexport function EmpresasForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const installations = useGetInstalaciones('VW_DDB_FRM_VWEMPRESAS', 'VOLKSWAGEN_SF_LEAD_INSTALLATION'); // llama al metodo getInstallations()\n const dispatch = useDispatch();\n const faContent = useFaContent();\n const waid = useGetWaidLitera();\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa para tu flota?\n \n ),\n fields:
} />,\n screenIndex: EmpresasFormSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n screenIndex: EmpresasFormSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Estamos deseando hacerte una propuesta. Pero antes, nos gustaría saber quién eres\n \n ),\n fields:
} allowOverflowingContent />,\n screenIndex: EmpresasFormSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿En qué teléfono e email podemos localizarte?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: EmpresasFormSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Ahora, nos gustaría conocer algunos detalles sobre tu empresa\n \n ),\n fields:
} />,\n screenIndex: EmpresasFormSteps.Empresa,\n name: 'Empresa',\n outputs: ['businessName', 'CIF', 'postalCode'],\n outputsText: ['businessName', '/', 'CIF', '/', 'postalCode'],\n },\n {\n title: (\n <>\n ¿Cuántos coches necesitas para tu{' '}\n \n flota?\n *\n \n \n ),\n fields: } />,\n screenIndex: EmpresasFormSteps.Fleet,\n name: 'Fleet',\n outputs: ['fleet'],\n outputsText: ['fleet'],\n },\n {\n fields: ,\n screenIndex: EmpresasFormSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n\n const EmpresasFormData: Partial = {\n headers: {\n FORM_NAME: 'vw-oneform-empresas',\n FORM_OBJECTIVE: 'Más Información',\n FORM_ID: waid ? waid : 'B10C01_LDEMPR_WA1',\n DPS_TOKEN: 'VW_DDB_FRM_VWEMPRESAS',\n },\n flags: {\n PERSON_RGPD_ADAPTED: 'true',\n FLAG_IS_MYSTERY_LEAD: 'false',\n FLAG_RELACION_MARCA_SIN_IC: 'false',\n FLAG_SF_INTEGRATION: 'true',\n FLAG_ALLOWS_DATA_ENRICHMENT: 'false',\n // FLAG_ISQUALIFIED: 'false',\n // FLAG_MAILRECEPCIONLEAD: 'true',\n // REQUIERE_CONTACTO_DEALER: 'false',\n },\n fields: {\n formName: 'empresas',\n formType: 'contact',\n pageCategory: 'Más Información',\n formularioFlag: 'masInformacion',\n }, // Analítica\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, flags, headers } = formData;\n\n const { selectedInstallation, carlines } = dealersInfo;\n\n const {\n VGED_CommercialName__c,\n ShippingStreet,\n VGED_DealerCode__c,\n ShippingStateCode,\n KVPSCode__c,\n Id\n } = selectedInstallation;\n\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n\n 'headers[FORM_URL]': url,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FORM_VERSION]': `vw-oneform-empresas-${process.env.VERSION}`,\n\n ...formatFlags(flags),\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_PREFIX]': formatPrefix(fields.prefix),\n 'fields[PERSON_POSTAL_CP]': fields.postalCode,\n 'fields[COMPANY_NAME]': fields.businessName,\n 'fields[COMPANY_CIF]': fields.CIF,\n 'fields[COMMENTS_PERSON]': 'Tamaño flota: ' + fields.fleet,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': ShippingStreet,\n 'fields[SF_LEAD_INSTALLATION_CODE]': VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_ID]': Id,\n 'fields[SF_LEAD_INSTALLATION_NAME]': VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': ShippingStateCode.toString().padStart(2, '0'),\n // 'fields[VEH_INTEREST_FUEL]': 'PENDIENTE',\n 'fields[VEH_INTEREST_BRAND]': 'Volkswagen',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': fields.modelo,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...getDpsFields(faContent),\n };\n\n delete data['headers[DETALLE_TIPO_PETICION_SIM]'];\n delete data['headers[DESC_FORM_DETAIL]'];\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.status && response.data.status.code && response.data.status.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(defaultSteps);\n\n useEffect(() => {\n if (loading) {\n return;\n }\n\n const EmpresasFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: steps,\n notALayer: false,\n formType: 'layer',\n formTheme: 'inverted',\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n initializeForm(EmpresasFormInfo, EmpresasFormData);\n }, [loading]);\n\n return loading ? null : ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouEmpresas = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { \n getDistanceFromLatLngCenter, \n LayerDesktopView, \n LayerMobileView \n} from 'src/feature-app/NewMap';\n\n\nexport const JourneyEmpresasController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n
\n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvinceLegacy('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n \n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyEmpresasController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyEmpresasController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyEmpresasWrapper = () => {\n return (\n \n \n \n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { LocateUser } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyEmpresasWrapper } from './JourneyEmpresasWrapper';\n\nenum MapaEmpresasSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\nconst CTAsHorario = [\n { label: 'Por la mañana', value: 'morning' },\n { label: 'Al mediodía', value: 'afternon' },\n { label: 'Por la tarde', value: 'evening' },\n];\n\ninterface MapaEmpresasProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaEmpresas(props: MapaEmpresasProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n fields: ,\n screenIndex: MapaEmpresasSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n handleFirstLoad();\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n setTimeout(() => {\n setShowPreviousStep(false);\n }, TIME_FOR_TRANSFORM);\n }\n }\n setNextMultiStep(() => nextMapaEmpresas);\n setPreviousMultiStep(() => previousMapaEmpresas);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaEmpresas = () => {\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if(multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaEmpresas = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return selectedStep ? (\n \n \n \n ) : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { PlanIdealForm } from './PlanIdealForm';\n\nexport function PlanIdealController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [pincodeAvailable, setPincodeAvailable] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setPincodeAvailable(false);\n setLoading(false);\n } else {\n setPincodeAvailable(true);\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {\n pincodeAvailable ?\n \n :\n \n }\n \n );\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { InputButton } from 'src/components/inputs/InputButton';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\ninterface ChecksProps {\n questionName: string;\n avoidNextStep?: boolean;\n answers: string[];\n skippable: boolean;\n}\n\nexport const Checks = (props: ChecksProps) => {\n const { questionName, answers, skippable} = props;\n const [checkedIndex, setCheckedIndex] = useState(null);\n const dispatch = useDispatch();\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n\n const handleOnClick = (e: any) => {\n setTimeout(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionName]: e.target.value } });\n handleNextStep();\n }, 0);\n };\n\n return (\n
\n {answers.map((answer, index) => {\n return (\n
\n {\n setValue(answer);\n setCheckedIndex(index);\n handleOnClick(e);\n }}\n checked={checkedIndex === index}\n />\n
\n )\n })}\n\n {\n skippable ? (\n
\n {\n setValue(\"No, eso es todo\");\n handleOnClick(e);\n }}\n />\n
\n ) : null\n }\n\n \n
\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { Checks } from './Checks';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n padding-left: var(--size-grid002);\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\ninterface VideoProps {\n isMediumScreen: boolean;\n};\n\nconst Video = styled.video`\n display: block;\n max-height: ${(props) => props.isMediumScreen ? \"auto\" : \"25%\"};\n width: ${(props) => props.isMediumScreen ? \"35%\" : \"100%\"};\n margin: ${(props) => props.isMediumScreen ? \"auto\" : \"0 auto\"};\n padding-bottom: var(--size-grid001);\n`;\n\ninterface QuestionWithImageProps {\n answers: string[];\n imageSrc: string;\n videoSrc: string;\n skippable: boolean;\n\n index: number;\n questionName: string;\n intro: JSX.Element | string;\n title: JSX.Element | string;\n}\n\nexport const QuestionWithImage = (props: QuestionWithImageProps) => {\n const {\n answers,\n imageSrc,\n videoSrc,\n index,\n questionName,\n intro,\n title,\n skippable\n } = props;\n const height = useWindowHeight();\n const windowWidth = useWindowWidth();\n const [isMediumScreen, setIsMediumScreen] = useState(false);\n\n useEffect(() => {\n console.log(\"setIsMediumScreen\", windowWidth >= 960);\n setIsMediumScreen(windowWidth >= 960);\n}, [windowWidth]);\n\n return (\n \n {\n height <= 600 ? null : (\n \n
\n \n
\n
\n )\n }\n \n \n \n \n \n \n <>\n {intro}\n \n \n \n <>\n {title}\n \n \n \n \n \n
\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport { ConfirmationPlanIdeal, ThankYouPlanIdeal } from './';\nimport { QuestionWithImage } from './QuestionWithImage';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n formatPrefix,\n FormController,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport {\n DetalleMotivo,\n} from 'src/components';\nimport {\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../../helpers/add-remove-steps';\n\nexport enum PlanIdealSteps {\n PlanIDeal1,\n PlanIDeal2,\n PlanIDeal3,\n PlanIDeal3Otros,\n Confirmacion\n}\n\nconst questions = [\n {\n questionName: 'PlanIDeal1',\n screenIndex: PlanIdealSteps.PlanIDeal1,\n intro: <>En tus escapadas...,\n title: <>¿Cuánto te gusta conducir?,\n answers: [\n 'Mucho, mi coche es mi segundo hogar',\n 'Ni fu ni na, de copiloto se va mejor',\n 'Poco, solo si es necesario'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video01-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: false\n },\n {\n questionName: 'PlanIDeal2',\n screenIndex: PlanIdealSteps.PlanIDeal2,\n intro: <>En tus escapadas...,\n title: <>¿Quién suele acompañarte?,\n answers: [\n 'Voy solo y sin que nadie me toque la música',\n 'Mi familia, nada nos separa',\n 'Mi pareja es mi mejor copiloto',\n 'Mis amigxs, con ellxs a todos lados'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video02-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: false\n },\n {\n questionName: 'PlanIDeal3',\n screenIndex: PlanIdealSteps.PlanIDeal3,\n intro: <>Ahora es tu turno.,\n title: <>¿Hay algo que quieras saber de nuestros eléctricos?,\n answers: [\n 'La autonomía que tienen',\n 'El tiempo y lugar de carga',\n 'Lo que me ahorro',\n 'Otros'\n ],\n videoSrc: 'https://assets.volkswagen.com/is/content/volkswagenag/video03-0x720-3000k',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg==',\n skippable: true\n }\n];\n\ninterface PlanIdealFormProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function PlanIdealForm(props: PlanIdealFormProps) {\n const { idPerson } = props;\n const { initializeForm, handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loading, setLoading] = useState(true);\n\n const name: string = props.name ? props.name : props.idPerson?.FirstName;\n const surname: string = props.surname ? props.surname : props.idPerson?.LastName;\n const email: string = props.email ? props.email : props.idPerson?.TXT_Email__c;\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname } });\n setLoading(false);\n }, []);\n\n //Logica eliminar o añadir PlanIdeal3Otros\n const { PlanIDeal3 } = formData.fields;\n const handlePlanIDeal3Otros = (PlanIDeal3: String) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (PlanIDeal3 === \"Otros\") {\n const stepIndex = getIndexInSteps(newSteps, 'PlanIDeal3Otros');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'PlanIDeal3Otros', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'PlanIDeal3Otros');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n ...questions.map((question, index) => {\n return {\n fields: ,\n screenIndex: question.screenIndex,\n name: question.questionName,\n showOverflow: true,\n }\n }),\n {\n title: <>¿Nos das más detalles?,\n fields: } />,\n screenIndex: PlanIdealSteps.PlanIDeal3Otros,\n name: 'PlanIDeal3Otros'\n },\n {\n fields: ,\n screenIndex: PlanIdealSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'adhoc-2023-plan_ideal',\n formType: 'otherform',\n pageCategory: 'Concurso'\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '16. OneShots',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORM_DETAIL]': 'Plan IDeal 2023',\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DYShQAO',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_PLAN_IDEAL_2023',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_ID_CLIMAPRO]': idPerson ? idPerson.ID_Person_DIM_IMP__c : \"\",\n\n 'fields[DESC_AUXFIELD1]': fields.PlanIDeal1, // Primera Respuesta\n 'fields[DESC_AUXFIELD2]': fields.PlanIDeal2, // Segunda Respuesta\n 'fields[DESC_AUXFIELD3]': fields.PlanIDeal3, // Tercera Respuesta\n 'fields[M_OBSERVATION]': fields.PlanIDeal3 === 'Otros' ? fields.PlanIDeal3Otros : '', // Mensaje en caso otros en Tercera Respuesta\n\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson? idPerson.TXT_Email__c : null,\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n useEffect(() => {\n if (PlanIDeal3) handlePlanIDeal3Otros(PlanIDeal3);\n }, [PlanIDeal3]);\n\n return loading || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Email,\n LegalItem\n} from 'src/components';\nimport { IdPerson } from 'src/types';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { useStore } from 'react-redux';\nimport { Checks } from './Checks';\n\nconst GridWrapper = styled.div`\n width: 90%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 5%;\n height: 180px;\n @media all and (min-width: 1600px) {\n height: 200px;\n }\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nconst QuestionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-top: 10%;\n @media all and (max-width: 1280px) {\n padding-top: 2%;\n }\n`;\ninterface ConfirmacionTestIDProps {\n idPerson: IdPerson;\n}\n\nconst legalesPlanIdeal = 'https://crm.volkswagen.es/email/2023/service/planideal/Sorteo%20Plan%20Ideal.pdf'\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nexport const ConfirmationPlanIdeal = (props: ConfirmacionTestIDProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n \n Genial, ya está todo a punto. Confírmanos tus datos, para participar en el sorteo del planazo que tenemos para ti junto a uno de nuestros eléctricos 😉\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n \n {!idPerson &&\n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n }\n \n\n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n\n \n \n \n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { OneElementTemplate, RenderController } from 'src/feature-app/Screen';\nimport {\n CTA,\n Container,\n ContainerPadding,\n Text,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouPlanIdeal() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias por participar, {formInfo.formResponse.params.fields.DESC_NAME}!\n \n ),\n fields: (\n \n \n El día 7 de noviembre realizaremos el sorteo y comunicaremos el ganador/a, ¡te deseamos mucha suerte!\n \n\n \n Mientras tanto, puedes mantenerte al día de todas nuestras novedades sobre la movilidad eléctrica y resolver tus dudas aquí.\n \n\n \n Además, nuestros eléctricos son los nuevos protagonistas de un nuevo evento muy especial, el ID.Street, ¿Quieres saber más? Descúbrelo aquí.\n \n \n } />\n )\n };\n return (\n \n );\n}\n","import React from 'react';\nimport {\n Text,\n ThemeProvider,\n CTA,\n styled,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { DiaDeLaMadreForm } from 'src/forms/FormsAdhoc/DiaDeLaMadre';\n\nconst MarginWrapper = styled.div`\n width: var(--size-grid020);\n padding: var(--size-grid002) var(--size-grid001) var(--size-grid006) var(--size-grid003);\n display: flex;\n flex-direction: column;\n\n @media all and (min-width: 560px) {\n margin-top: 40px;\n width: var(--size-grid008);\n margin-bottom: var(--size-grid004);\n padding: 0;\n }\n @media all and (min-width: 960px) {\n margin-top: 64px;\n width: var(--size-grid007);\n margin-bottom: calc(var(--size-grid002) + 40px);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n margin-bottom: 0;\n }\n @media all and (min-width: 1600px) {\n margin-top: 80px;\n }\n @media all and (min-width: 1920px) {\n margin: 52px 0 72px var(--size-grid002);\n width: var(--size-grid005);\n }\n`;\n\nexport const CajaCTATrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Dale amor');\n\n return (\n \n \n
\n \n Solo falta la tuya\n \n
\n
\n \n A veces un {'\"'}te quiero{'\"'} no puede esperar. Díselo ahora para entrar en el{' '}\n sorteo* de un finde para dos personas en tu parador favorito al volante del nuevo ID.4\n , haciendo lo que más desea tu madre:{' '}pasar tiempo contigo.\n \n
\n
\n {\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n
\n
\n \n *Sorteo exclusivo para clientes de Volkswagen.\n \n
\n
\n
\n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions } from 'src/components';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n\nfunction ConfirmacionDiaDeLaMadre() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n \n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n \n política de privacidad.\n \n \n \n \n\n
\n \n
\n \n \n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCita(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionDiaDeLaMadre);\n\nexport { ConnectedComponent as ConfirmacionDiaDeLaMadre };\n","import React, { useEffect, useState } from 'react';\nimport {\n Text,\n styled,\n ThemeProvider,\n BreakpointWrapper,\n Breakpoints,\n Container,\n ContainerPadding,\n} from '@volkswagen-onehub/components-core';\nimport { CajaCTATrigger } from '.';\nimport { CarouselComponent } from 'src/components';\nimport { TriggerProps } from 'src/feature-app';\nimport imageOne from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-1_1280x853px.jpg';\nimport imageTwo from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-2_1280x768px.jpg';\nimport imageThree from 'src/forms/DiaDeLaMadre/assets/turismos_campana_dia-de-la-madre_USP-3_1280x768px.jpg';\n\nconst BackgroundBlue = styled.div`\n margin-right: var(--size-grid002);\n margin-top: calc(var(--size-grid002) * -1);\n background-color: #001e50;\n width: var(--size-grid022);\n position: absolute;\n height: 100%;\n z-index: -1;\n\n @media all and (min-width: 560px) {\n width: var(--size-grid022);\n margin-left: var(--size-grid002);\n margin-right: 0;\n margin-top: 0;\n }\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid003);\n margin-right: var(--size-grid001);\n width: var(--size-grid020);\n height: calc(100% - 24px);\n margin-top: 24px;\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid004);\n margin-right: var(--size-grid002);\n width: var(--size-grid018);\n }\n @media all and (min-width: 1600px) {\n margin-top: 28px;\n height: calc(100% - 28px);\n }\n @media all and (min-width: 1920px) {\n margin-left: var(--size-grid004);\n margin-right: var(--size-grid009);\n width: var(--size-grid011);\n margin-top: 72px;\n margin-bottom: 72px;\n height: calc(100% - 72px);\n }\n`;\n\nconst ImageOneAndTextWrapper = styled.div`\n display: flex;\n margin-left: var(--size-grid001);\n\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid002);\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid003);\n }\n @media all and (min-width: 1920px) {\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n .image-one {\n width: var(--size-grid013);\n margin-right: var(--size-grid001);\n height: fit-content;\n @media all and (min-width: 960px) {\n width: var(--size-grid012);\n margin-bottom: var(--size-grid002);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid011);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid010);\n margin-right: 0;\n margin-bottom: 0;\n }\n }\n`;\n\nconst ImageTwoWrapper = styled.div`\n margin-top: calc(var(--size-grid002) * -1);\n margin-left: var(--size-grid001);\n\n @media all and (min-width: 960px) {\n margin-left: var(--size-grid002);\n margin-top: calc((var(--size-grid001) + 20px) * -1);\n }\n @media all and (min-width: 1280px) {\n margin-left: var(--size-grid003);\n margin-top: calc(var(--size-grid001) * -1);\n }\n @media all and (min-width: 1920px) {\n margin-left: var(--size-grid001);\n margin-top: 0;\n }\n\n .image-two {\n width: var(--size-grid010);\n margin-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n width: var(--size-grid009);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid007);\n margin-right: 0;\n }\n }\n`;\n\nconst ImageThreeWrapper = styled.div`\n margin-top: calc(var(--size-grid002) * -1);\n\n @media all and (min-width: 960px) {\n margin-top: calc((var(--size-grid001) + 20px) * -1);\n }\n @media all and (min-width: 1280px) {\n margin-top: calc(var(--size-grid001) * -1);\n }\n @media all and (min-width: 1920px) {\n margin-top: calc((var(--size-grid003) + 20px) * -1);\n margin-left: var(--size-grid012);\n }\n\n .image-three {\n width: var(--size-grid010);\n @media all and (min-width: 960px) {\n width: var(--size-grid009);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid007);\n }\n }\n`;\n\nconst BottomImagesWrapper = styled.div`\n width: 100%;\n display: flex;\n`;\n\nconst RelativeWrapper = styled.div`\n position: relative;\n\n @media all and (min-width: 1920px) {\n display: flex;\n }\n`;\n\nconst imageArray = [\n {\n src: 'imageOne',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-one',\n },\n {\n src: 'imageTwo',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-two',\n },\n {\n src: 'imageThree',\n name: 'turismos_campana_dia-de-la-madre',\n className: 'image-three',\n },\n];\n\nconst CarouselImageWrapper = styled.div`\n padding: 0 2.5%;\n width: 83.2vw;\n height: 83.2vw;\n overflow: hidden;\n\n .wrapper-image-one {\n padding-left: 6.32%;\n }\n\n .image-one {\n transform: scale(0.6) translate(-82%, -54%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-71%, -47%);\n }\n }\n .image-two {\n transform: scale(0.5) translate(-65%, -63%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-50%, -37%);\n }\n }\n .image-three {\n transform: scale(0.5) translate(-62%, -63%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-50%, -37%);\n }\n }\n`;\n\nconst MovileImageWrapper = styled.div`\n margin: 0 auto;\n width: var(--size-grid020);\n height: var(--size-grid020);\n overflow: hidden;\n margin-left: var(--size-grid002);\n .wrapper-image-one {\n }\n\n .image-one {\n transform: scale(0.6) translate(-82%, -54%);\n @media all and (min-width: 450px) {\n transform: scale(0.6) translate(-71%, -47%);\n }\n }\n`;\n\nexport const DisplayImagenesYCTATrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const renderList = (imageArray: Array) => {\n return imageArray.map((image, ind) => {\n return (\n \n
\n {image.name}\n
\n
\n );\n });\n };\n\n return (\n
\n \n \n
\n \n
\n
\n \n \n \n \n
\n {/* maquetación breakpoints a partir de 560*/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React, { useState } from 'react';\nimport {\n Container,\n ContainerGutter,\n ContainerPadding,\n styled,\n} 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={'default'}\n isFloating={false}\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n placeholder=\"Por ejemplo: Feliz yo de tenerte, mamá <3. Un solo día se te queda corto. Te quiero hoy y los 364 restantes.\"\n rows={3}\n />\n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport {\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CSSTransition } from 'react-transition-group';\n\nconst CardsWrapper = styled.div`\n position: relative;\n height: calc((2 *var(--size-grid003)/1.04) + 89px);\n @media screen and (max-width: 780px) {\n height: calc((2 *var(--size-grid003)/1.04) + 140px);\n }\n @media screen and (max-width: 712px) {\n height: 369px;\n }\n @media screen and (max-width: 654px) {\n height: 410px;\n }\n @media screen and (max-width: 654px) {\n height: 388px;\n }\n @media screen and (max-width: 420px) {\n height: 375px;\n }\n`;\n\ntype CardProps = {\n bgColor: string,\n number: number,\n size?: number,\n position: {\n top?: string,\n right?: string,\n bottom?: string,\n left?: string\n }\n}\n\nconst Card = styled.article`\n position: absolute;\n width: var(--size-grid003);\n height: calc(var(--size-grid003)/1.04);\n display: flex;\n align-items: center;\n justify-content: center;\n color: #ffffff;\n text-align: center;\n top: ${props => props.position.top ? `${props.position.top}` : 'unset'};\n right: ${props => props.position.right ? `${props.position.right}` : 'unset'};\n bottom: ${props => props.position.bottom ? `${props.position.bottom}` : 'unset'};\n left: ${props => props.position.left ? `${props.position.left}` : 'unset'};\n background: ${props => props.bgColor === 'dark' ? '#001E50' : '#00B0F0'};\n padding: 16px;\n display: none;\n &.card-enter {\n transform: scale(0);\n display: flex;\n }\n &.card-enter-active {\n transform: scale(1.1);\n transition: transform 150ms;\n display: flex;\n }\n &.card-enter-done {\n transform: scale(1);\n transition: transform 150ms;\n display: flex;\n }\n @media screen and (max-width: 1188px) {\n width: max-content;\n max-width: 165px;\n height: 131px;\n }\n @media screen and (max-width: 654px) {\n text-align: left;\n }\n @media screen and (max-width: 420px) {\n max-width: unset;\n width: ${\n props => props.number === 0 ? '120px'\n : props.number === 1 ? '120px'\n : props.number === 2 ? '164px'\n : props.number === 3 ? '144px'\n : '140px'\n};\n height: ${\n props => props.number === 0 ? '125px'\n : props.number === 1 ? '121px'\n : props.number === 2 ? '145px'\n : props.number === 3 ? '161px'\n : '140px'\n};\n }\n`;\n\nconst mensajes = [\n {\n bgColor: 'light',\n text: 'Mamá, éste sí que es nuestro año. ¡Te quiero!'\n },\n {\n bgColor: 'dark',\n text: 'Mamá, ¿te ape un plan juntos, solos tú y yo?'\n },\n {\n bgColor: 'light',\n text: '¡Felicidades, Carmen! Prepárate, porque se vienen cositas hihi'\n },\n {\n bgColor: 'dark',\n text: 'Madre no hay más que una, y en eso eres la mejor del mundo <3'\n },\n {\n bgColor: 'dark',\n text: 'Feliz día a ti, mami. ¡Eres mi mayor referente!'},\n];\n\nconst mensajesPosition = {\n default: [\n { name: 'default'},\n {\n top: '25%',\n right: '22%',\n },\n {\n top: '45%',\n left: '22%',\n },\n {\n top: '10.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b1188: [\n { name: 'b1188'},\n {\n top: '25%',\n right: '22%',\n },\n {\n top: '45%',\n left: '7%',\n },\n {\n top: '11.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b960: [\n { name: 'b960'},\n {\n top: '25%',\n right: '25%',\n },\n {\n top: '47%',\n left: '10%',\n },\n {\n top: '11.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b654: [\n { name: 'b654'},\n {\n top: '25%',\n right: '25%',\n },\n {\n top: '37%',\n left: '30%',\n },\n {\n top: '16.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ],\n b420: [\n { name: 'b654'},\n {\n top: '25%',\n right: '14%',\n },\n {\n top: '34%',\n left: '24%',\n },\n {\n top: '6.5%',\n left: '0px',\n },\n {\n top: '0px',\n right: '0px',\n },\n {\n right: '0px',\n bottom: '0px'\n }\n ]\n};\n\nexport function MensajesCards(props: {showMessages: boolean}) {\n const { showMessages } = props;\n const [ showCard1, setShowCard1 ] = useState(false);\n const [ showCard2, setShowCard2 ] = useState(false);\n const [ showCard3, setShowCard3 ] = useState(false);\n const [ showCard4, setShowCard4 ] = useState(false);\n const [ showCard5, setShowCard5 ] = useState(false);\n\n const [positionsArray, setPositionsArray] = useState(mensajesPosition.default);\n\n function activateTriggers(num: number) {\n switch(num) {\n case 2:\n setTimeout(() => {\n setShowCard2(true);\n activateTriggers(3);\n }, 450);\n break;\n case 3:\n setTimeout(() => {\n setShowCard3(true);\n activateTriggers(4);\n }, 450);\n break;\n case 4:\n setTimeout(() => {\n setShowCard4(true);\n activateTriggers(5);\n }, 450);\n break;\n case 5:\n setTimeout(() => {\n setShowCard5(true);\n }, 450);\n break;\n default:\n break;\n }\n }\n\n useEffect(() => {\n if (showMessages) {\n setShowCard1(true);\n activateTriggers(2);\n } else {\n setShowCard1(false);\n setShowCard2(false);\n setShowCard3(false);\n setShowCard4(false);\n setShowCard5(false);\n }\n }, [showMessages]);\n\n useEffect(() => {\n function changeCardsPosition(bp: string) {\n if (bp === '959' && positionsArray[0].name !== 'b960') {\n setPositionsArray(mensajesPosition.b960);\n } else if (bp === '654' && positionsArray[0].name !== 'b654') {\n setPositionsArray(mensajesPosition.b654);\n } else if (bp === '420' && positionsArray[0].name !== 'b420') {\n setPositionsArray(mensajesPosition.b420);\n } else if (bp === '1188' && positionsArray[0].name !== 'b1188') {\n setPositionsArray(mensajesPosition.b1188);\n } else {\n setPositionsArray(mensajesPosition.default);\n }\n }\n\n const mediaQueryListObject1188 = window.matchMedia('(max-width: 1188px)');\n try {\n mediaQueryListObject1188.addEventListener('change', () => changeCardsPosition('1188'));\n } catch (e) {\n try {\n mediaQueryListObject1188.addListener(() => changeCardsPosition('1188'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject959 = window.matchMedia('(max-width: 959px)');\n try {\n mediaQueryListObject959.addEventListener('change', () => changeCardsPosition('959'));\n } catch (e) {\n try {\n mediaQueryListObject959.addListener(() => changeCardsPosition('959'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject654 = window.matchMedia('(max-width: 654px)');\n try {\n mediaQueryListObject654.addEventListener('change', () => changeCardsPosition('654'));\n } catch (e) {\n try {\n mediaQueryListObject654.addListener(() => changeCardsPosition('654'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n const mediaQueryListObject420 = window.matchMedia('(max-width: 420px)');\n try {\n mediaQueryListObject420.addEventListener('change', () => changeCardsPosition('420'));\n } catch (e) {\n try {\n mediaQueryListObject420.addListener(() => changeCardsPosition('420'));\n }\n catch(e) {\n console.log(e);\n }\n }\n\n if (window.matchMedia('(max-width:420px)').matches) {\n setPositionsArray(mensajesPosition.b420);\n } else if (window.matchMedia('(max-width:654px)').matches) {\n setPositionsArray(mensajesPosition.b654);\n } else if (window.matchMedia('(max-width:959px)').matches) {\n setPositionsArray(mensajesPosition.b960);\n } else if (window.matchMedia('(max-width:1188px)').matches) {\n setPositionsArray(mensajesPosition.b1188);\n }\n\n return () => {\n mediaQueryListObject1188.removeEventListener('change', () => changeCardsPosition('1188'));\n mediaQueryListObject959.removeEventListener('change', () => changeCardsPosition('959'));\n mediaQueryListObject654.removeEventListener('change', () => changeCardsPosition('654'));\n mediaQueryListObject420.removeEventListener('change', () => changeCardsPosition('420'));\n };\n }, []);\n\n return (\n \n \n {mensajes.map((mensaje, i) => {\n return (\n \n \n {mensaje.text}\n \n \n );\n })}\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { MensajesCards } from '.';\nimport { keyframes } from 'styled-components';\nimport { useFaContent } from 'src/feature-app';\n\nconst spinnerKeyframe = keyframes`\n 0% {\n stroke-dasharray: 0 100;\n }\n`;\n\nconst Wrapper = styled.div`\n position: relative;\n margin-left: var(--size-grid003);\n margin-right: var(--size-grid003);\n width: var(--size-grid018);\n display: flex;\n justify-content: space-between;\n .cards {\n width: var(--size-grid009);\n @media screen and (max-width: 990px) {\n width: var(--size-grid011);\n }\n @media screen and (max-width: 959px) {\n margin-left: auto;\n width: 56%;\n }\n @media screen and (max-width: 910px) {\n margin-left: auto;\n width: 60%;\n }\n @media screen and (max-width: 840px) {\n margin-left: auto;\n width: 63%;\n }\n @media screen and (max-width: 780px) {\n margin-left: auto;\n width: 70%;\n }\n @media screen and (max-width: 712px) {\n margin-left: auto;\n width: 85%;\n }\n @media screen and (max-width: 654px) {\n width: 100%;\n }\n }\n .info {\n width: var(--size-grid007);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n @media screen and (max-width: 959px) {\n width: 80%;\n }\n @media screen and (max-width: 560px) {\n margin-bottom: 10px;\n width: 90%;\n }\n #number-messages {\n display: inline-block;\n min-width: 100px;\n }\n }\n @media screen and (max-width: 990px) {\n margin-left: var(--size-grid002);\n margin-right: var(--size-grid002);\n width: var(--size-grid020);\n }\n @media screen and (max-width: 959px) {\n flex-wrap: wrap-reverse;\n }\n`;\n\nconst Spinner = styled.div`\n width: 200px;\n height: 200px;\n margin-left: auto;\n margin-bottom: 17px;\n border-radius: 100%;\n position: relative;\n .dashed-circumference {\n position: absolute;\n top: 5.5%;\n left: 4.5%;\n z-index: -1;\n width: 90%;\n height: 90%;\n border-radius: 100%;\n border: 1px dotted #001E50;\n }\n .percentage-bar {\n .circle {\n stroke: #071e50;\n fill: none;\n stroke-width: 0.75;\n animation: ${spinnerKeyframe} 3.5s ease-out forwards;\n }\n }\n .percentage-text {\n position: absolute;\n top: 50%;\n right: 50%;\n transform: translate3d(50%, -50%, 0);\n #percentage-messages {\n width: 28px;\n display: inline-block;\n text-align: right;\n @media screen and (min-width: 960px) {\n width: 40px;\n }\n @media screen and (min-width: 1600px) {\n width: 56px;\n }\n }\n }\n @media screen and (max-width: 959px) {\n width: 150px;\n height: 150px;\n position: absolute;\n margin: 0;\n bottom: 0;\n left: 0;\n }\n @media screen and (max-width: 559px) {\n width: 123px;\n height: 123px;\n }\n`;\n\nfunction animateNumber(id: string, start: number, end: number, duration: number) {\n const range = end - start;\n let current = start;\n const increment = id === 'number-messages' ? 2 : 1;\n const stepTime = Math.abs(Math.floor(duration / range));\n let obj = document.getElementById(id);\n const timer = setInterval(function() {\n current += increment;\n if (id === 'percentage-messages' && current < 10) {\n obj.innerHTML = `${current}`;\n } else {\n obj.innerHTML = current.toString();\n }\n if (current === end) {\n clearInterval(timer);\n }\n }, stepTime);\n}\n\nexport function SectionMensajes() {\n const [ showMessages, setShowMessages ] = useState(false);\n const [ madres, setMadres ] = useState(1000);\n const [ porcentaje, setPorcentaje ] = useState(25);\n const faContent = useFaContent();\n\n useEffect(() => {\n if (faContent.madres) setMadres(parseInt(faContent.madres));\n if (faContent.porcentaje) setPorcentaje(parseInt(faContent.porcentaje));\n }, [faContent]);\n\n useEffect(() => {\n if (showMessages) {\n animateNumber('number-messages', 10, madres, 4000);\n animateNumber('percentage-messages', 0, porcentaje, 3000);\n }\n }, [showMessages]);\n\n useEffect(() => {\n const options = { threshold: 0.8 };\n const element = document.querySelector('#mensajes');\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.intersectionRatio > 0 && !showMessages) {\n setShowMessages(true);\n }\n });\n }, options);\n observer.observe(element);\n }, []);\n\n return (\n \n
\n \n
\n
\n \n \n Más de 10 madres han recibido\n {' '}\n su carga de amor\n \n \n {showMessages ? (\n \n
\n \n \n \n
\n 0%\n
\n \n ) : null}\n \n \n
\n \n {showMessages ? (\n \n
\n \n \n \n
\n 0%\n
\n \n ) : null}\n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Svg = styled.svg`\n width: 100%;\n height: auto;\n fill: #ffffff;\n`;\nconst SvgWrapper = styled.div`\n width: 44px;\n height: 44px;\n`;\n\nexport const FacebookSvg = () => (\n \n \n 631056F4-6CA7-4833-8173-D917CE902E32\n Created with sketchtool.\n \n \n \n \n \n \n \n \n);\n\nexport const TwitterSvg = () => (\n \n \n 13918EB6-6D62-43B8-99A2-2965833D2774\n Created with sketchtool.\n \n \n \n \n \n \n \n \n);\n\nexport const WhatsappSvg = () => (\n \n \n ic_whatsapp\n Created with Sketch.\n \n \n \n \n \n \n);\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useFeatureAppConfig, useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FacebookSvg, TwitterSvg, WhatsappSvg } from '../assets/Svgs';\n\ninterface FieldProps {\n copyBook?: string;\n cliente: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nconst Anchor = styled.a`\n outline: none;\n color: none;\n`;\n\nfunction Fields() {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const config = useFeatureAppConfig();\n\n return (\n \n
\n \n \n {formData.fields.cliente === 'true'\n ? 'Tu madre recibirá tu “te quiero” en su bandeja de entrada y, quizá, también un fin de semana contigo al volante del Nuevo ID.4. ¡Mucha suerte! '\n : 'Tu madre está a punto de recibir tu “te quiero” en su bandeja de entrada. ¡Le alegrarás el día! '}\n \n \n ¿Conoces a más conductores/as Volkswagen? Comparte esta página para que ninguna madre se quede sin su “te\n quiero”.\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouDiaDeLaMadre(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n Seguro que le encanta tu mensaje\n \n \n \n \n Seguro que le encanta tu mensaje\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouDiaDeLaMadre);\n\nexport { ConnectedComponent as ThankYouDiaDeLaMadre };\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { Text, styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { \n Email, \n PantallaNombreApellido, \n Telefono, \n MultipleCTASelection, \n YaTienesVolkswagen, \n NoCliente,\n ContactInfoWrapper \n} from 'src/components';\nimport {\n Mensaje,\n ConfirmacionDiaDeLaMadre,\n ThankYouDiaDeLaMadre\n} from './componentsAndViews';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FormController, removeWhiteSpace, useFeatureAppConfig, useOneFormContext,formatPrefix } from 'src/feature-app';\nimport { formDataBuilder } from '../../format-fields';\n\nconst CTAsTipoVehiculo = [\n { label: 'Un eléctrico', value: 'electrico' },\n { label: 'Un híbrido', value: 'hibrido' },\n { label: 'Uno de combustión', value: 'combustion' },\n { label: 'Ninguno, de momento', value: 'ninguno' },\n];\n\nconst getContactoTitle = (cliente: string) => {\n if (cliente === 'true') {\n return (\n <>\n ¡Listo! ¿Cómo podemos contactar contigo en caso de ganar el fin de semana?\n \n );\n } else {\n return (\n <>\n ¿De parte de quién se lo enviamos?\n \n );\n }\n};\n\nexport enum DiaDeLaMadreSteps {\n NombreApellido,\n Cliente,\n NoCliente,\n Mensaje,\n EmailTelefono,\n MotherEmail,\n TipoVehiculo,\n Confirmacion,\n}\n\nexport function DiaDeLaMadreForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const { cliente } = useSelector((state: OneFormState) => state.formData.fields);\n const { formData } = useSelector((state: OneFormState) => state);\n\n const [notAClient, setNotAClient] = useState(true);\n\n const handleNotAClient = (cliente: string) => {\n let newSteps = [...steps];\n\n if (cliente === 'false') {\n newSteps = [...steps];\n } else {\n newSteps.splice(DiaDeLaMadreSteps.NoCliente, 1);\n setNotAClient(false);\n }\n\n const newStepsWithIndex = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Para poder enviar tu mensaje, necesitamos saber quién eres\n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Ya tienes un Volkswagen, \n \n ¿verdad? \n 1\n \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.Cliente,\n name: 'Cliente',\n outputs: ['cliente'],\n outputsText: ['cliente'],\n },\n {\n title: (\n <>\n Este sorteo es solo para clientes Volkswagen \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.NoCliente,\n name: 'NoCliente',\n outputs: ['noCliente'],\n outputsText: ['noCliente'],\n },\n {\n title: (\n <>\n Pues vayamos a lo que importa. ¿Qué te gustaría{' '}\n \n decirle a tu{' '}\n \n madre?*\n \n \n \n ),\n fields: } />,\n screenIndex: DiaDeLaMadreSteps.Mensaje,\n name: 'Mensaje',\n outputs: ['messageText'],\n outputsText: ['messageText'],\n },\n {\n title: getContactoTitle(cliente),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Y, ¿a qué email le hacemos llegar la sorpresa a tu madre?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.MotherEmail,\n name: 'MotherEmail',\n outputs: ['otherEmail'],\n outputsText: ['otherEmail'],\n },\n {\n title: (\n <>\n Antes de terminar, tenemos curiosidad: ¿qué tipo de coche te ves{' '}\n \n conduciendo{' '}\n \n próximamente?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: DiaDeLaMadreSteps.TipoVehiculo,\n name: 'TipoVehiculo',\n outputs: ['tipoVehiculo'],\n outputsText: ['tipoVehiculo'],\n },\n {\n fields: ,\n screenIndex: DiaDeLaMadreSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'adhoc-2021-diamadre', formType: 'otherform', pageCategory: 'Concurso' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': 'vw-oneform-adhoc_diamadre_2021',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': 'B16 One Shot',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Participación Concurso',\n 'headers[DESC_FORM_DETAIL]': 'Dia Madre 2021', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000Jo8rAAC',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_DIAMADRE',\n\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_GDPR_ADAPTED]': true,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.messageText,\n 'fields[DESC_AUXFIELD2]': removeWhiteSpace(fields.otherEmail),\n 'fields[DESC_AUXFIELD3]': fields.tipoVehiculo,\n 'fields[DESC_AUXFIELD4]': fields.cliente,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_diamadre_2021-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n useEffect(() => {\n if (cliente) handleNotAClient(cliente);\n }, [cliente]);\n\n return (\n \n \n \n );\n}\n","import React from 'react';\nimport { \n Layout,\n Breakpoints,\n CTA,\n Text, \n Container, \n ContainerPadding,\n ThemeProvider,\n styled, \n WhiteSpace,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\nconst videoURL = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/videos/video_eurocopa.mp4';\nconst Video = styled.video`\n background: linear-gradient(321.56deg, #00437A 0%, #00376C 52.11%, #001E50 100%);\n width: auto;\n height: 98vh;\n\n @media all and (min-width: 960px) {\n width: 100vw;\n height: auto;\n }\n`;\nconst HeaderContentPosition = styled.div`\n position: absolute;\n z-index: 1;\n top : 5%;\n @media all and (min-width: 960px) {\n top : 10%;\n }\n @media all and (min-width: 1280px) {\n top : 15%;\n }\n`;\n\nexport const Portada = () => {\n const trackingManager = useTrackingManager();\n const { nextStep } = useOneFormContext();\n return (\n
\n
\n
\n \n \n \n \n Hay tantos tipos de jugadores{' '}como de conductores.{' '}¿Cuál eres tú? \n \n \n \n Nos encantaría que participaras en este sorteo exclusivo para clientes ID. Compártenos tu experiencia.\n \n \n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Comenzar\n \n \n \n \n \n
\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { TextAreaExtended } from 'src/components/inputs';\nimport {\n Text,\n Container,\n ContainerPadding,\n ContainerGutter,\n TextAlignment,\n styled,\n TokenTextAppearance,\n TokenTextColor\n} from '@volkswagen-onehub/components-core';\nimport { useFormContext } from 'react-hook-form';\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={'default'}\n isFloating\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n maxLength={350}\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","import React, { useEffect, useState } from 'react';\nimport {\n Text,\n Container,\n ContainerPadding,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport {\n Telefono,\n MultipleCTASelection,\n DetalleMotivo,\n MultipleOptionCTAs,\n Email,\n PantallaNombreApellido,\n ContactInfoWrapper\n} from 'src/components';\nimport { Portada, Experiencia } from './ComponentsAndViews';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, IdPerson, IdOrder } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFeatureAppConfig,\n useFeatureServices,\n useGetWaidLitera,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { ThankYouEurocopa, ConfirmacionEurocopa } from './';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { GenericErrorLayer } from 'src/components/layers';\n\nexport const CTAsSiNoNsNc = [\n { label: 'Sí, sin dudarlo', value: 'true' },\n { label: 'No lo recomiendo', value: 'false' },\n { label: 'Aún no lo sé, es pronto', value: 'NS/NC' },\n];\nexport const CTASCarga = [\n { label: 'En casa', value: 'casa' },\n { label: 'En el trabajo', value: 'trabajo' },\n { label: 'En ruta', value: 'ruta' },\n { label: 'Otro', value: 'otro' },\n];\nexport const CTAsConduccion = [\n { label: 'Sí, siempre utilizo mi vehículo eléctrico', value: 'electrico' },\n { label: 'Lo combino con otro vehículo no eléctrico', value: 'combinado' },\n];\nexport const CTAsGusta = [\n { label: 'La innovación', value: 'innovacion' },\n { label: 'La velocidad de la carga', value: 'velocidad carga' },\n { label: 'La practicidad para el día a día', value: 'practicidad' },\n { label: 'Que se adapta a mis escapadas/planes', value: 'adaptacion' },\n { label: 'Lo chulísimo que es', value: 'chulisimo' },\n { label: 'El ahorro económico', value: 'ahorro' },\n { label: 'Otro', value: 'otro' },\n];\n\nconst getExperienciaTitle = (entregado: string) => {\n if (entregado === 'true') {\n return (\n <>\n ¿Podrías compartir tu experiencia{' '}\n \n desde que fichaste a tu{' '}\n \n eléctrico?*\n \n \n \n \n Un discurso motivador antes de un partido importante{' '}\n puede marcar la diferencia, del mismo modo que tu respuesta1 aquí es clave para\n que otros se sumen a la movilidad eléctrica. ¡Nos gustaría compartirla!\n \n \n \n );\n } else {\n return (\n <>\n ¿Qué fue lo que más te motivó{' '}\n \n para fichar a tu nuevo{' '}\n \n eléctrico?*\n \n \n \n \n Un discurso motivador antes de un partido importante{' '}\n puede marcar la diferencia, del mismo modo que tu respuesta1 aquí es clave para\n que otros se sumen a la movilidad eléctrica. ¡Nos gustaría compartirla!\n \n \n \n );\n }\n};\nconst getExperienciaAlternateTitle = (entregado: string) => {\n if (entregado === 'true') {\n return (\n <>\n ¿Podrías compartir tu experiencia{' '}\n \n desde que fichaste a tu{' '}\n \n eléctrico?*\n \n \n \n );\n } else {\n return (\n <>\n ¿Qué fue lo que más te motivó{' '}\n \n para fichar a tu nuevo{' '}\n \n eléctrico?*\n \n \n \n );\n }\n};\n\nexport enum EurocopaSteps {\n Trigger,\n Carga,\n MasInformacion,\n Coduccion,\n MultipleChoice,\n MultipleChoiceDetalle,\n Recomendacion,\n Experiencia,\n NombreApellido,\n EmailTelefono,\n Confirmacion,\n}\n\nconst getIndexInSteps = (steps: Steps[], stepName: string) => steps.findIndex((step) => step.name === stepName);\n\nexport function EurocopaForm() {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [formError, setFormError] = useState(false);\n const [formCaducado, setFormCaducado] = useState(false);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const { formData } = useSelector((state: OneFormState) => state);\n const [idOrder, setIdOrder] = useState(false);\n const { carga, multipleChoice } = formData.fields;\n const trackingManager = useTrackingManager();\n const waid = useGetWaidLitera();\n\n const updateExperienciaStep = (conCoche: string, auxSteps?: Steps[]) => {\n const title = getExperienciaTitle(conCoche);\n const alternateTitle = getExperienciaAlternateTitle(conCoche);\n\n let newSteps = auxSteps ? auxSteps : [...steps];\n\n const experienciIndex = newSteps.findIndex((step: Steps) => step.name === 'Experiencia');\n\n newSteps[experienciIndex].title = title;\n newSteps[experienciIndex].alternateTitle = alternateTitle;\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n };\n\n const handleDetalle = (field: string, fieldName: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (field === 'otro' || field.includes('otro')) {\n const detalleIndex = getIndexInSteps(newSteps, fieldName);\n\n if (detalleIndex === -1) {\n // En caso de haber eliminado el step hay que volver a añadirlo de nuevo y llamar a la función handleNextStep ya que\n // ésta se llama antes de volver a añadir el mapa y realiza el cálculo con los steps sin actualizar.\n const detalleStepIndex = getIndexInSteps(steps, fieldName);\n newSteps.splice(screenIndex + 1, 0, steps[detalleStepIndex]);\n\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n const detalleIndex = getIndexInSteps(newSteps, fieldName);\n newSteps.splice(detalleIndex, 1);\n }\n updateExperienciaStep('true', newSteps);\n\n const newStepsWithIndex = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n updateSteps(newStepsWithIndex);\n };\n\n const updateSteps = (steps: Steps[]) => {\n dispatch({ type: 'UPDATE_STEPS', payload: steps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n };\n\n const steps: Steps[] = [\n {\n fields: ,\n screenIndex: EurocopaSteps.Trigger,\n name: 'Trigger',\n outputs: ['trigger'],\n outputsText: ['trigger'],\n },\n {\n title: (\n <>\n ¿Dónde sueles cargar las pilas de tu{' '}\n \n ID.?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Carga,\n name: 'Carga',\n outputs: ['carga'],\n outputsText: ['carga'],\n },\n {\n title: (\n <>\n ¿Cuál?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: EurocopaSteps.MasInformacion,\n name: 'masInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Es tu ID. tu{' '}\n \n vehículo{' '}\n \n titular?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Coduccion,\n name: 'Conduccion',\n outputs: ['conduccion'],\n outputsText: ['conduccion'],\n },\n {\n title: (\n <>\n ¿Qué dirías que supone un golazo por parte de tu{' '}\n \n ID.?*\n \n \n \n Puedes elegir más de una respuesta.\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Qué dirías que supone un golazo por parte de tu{' '}\n \n ID.?*\n \n \n ),\n fields: (\n } />\n ),\n screenIndex: EurocopaSteps.MultipleChoice,\n name: 'MultipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\n },\n {\n title: (\n <>\n Cuéntanos más\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: EurocopaSteps.MultipleChoiceDetalle,\n name: 'MultipleChoiceDetalle',\n outputs: ['multipleChoiceDetalle'],\n outputsText: ['multipleChoiceDetalle'],\n },\n {\n title: (\n <>\n ¿Recomendarías a tus amigos o conocidos{' '}\n \n que se pasen al equipo{' '}\n \n eléctrico?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: EurocopaSteps.Recomendacion,\n name: 'Recomendacion',\n outputs: ['recomendacion'],\n outputsText: ['recomendacion'],\n },\n {\n title: <>, //Se actualiza en updateExperienciaStep\n alternateTitle: <>, //Se actualiza en updateExperienciaStep\n fields: } />,\n screenIndex: EurocopaSteps.Experiencia,\n name: 'Experiencia',\n outputs: ['experiencia'],\n outputsText: ['experiencia'],\n },\n {\n title: (\n <>\n Para poder entrar en el sorteo, necesitamos confirmar quién eres\n \n ),\n fields: } />,\n screenIndex: EurocopaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Y confirmar los datos para poder contactar contigo\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: EurocopaSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n screenIndex: EurocopaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const getFormInfo = (\n idOrder: IdOrder\n ): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n let newSteps = [...steps];\n\n if (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70) {\n updateExperienciaStep('false');\n } else if (!idOrder?.SLI_State__c || (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70)) {\n updateExperienciaStep('true');\n }\n\n if (idOrder?.SLI_State__c && Number(idOrder.SLI_State__c) < 70) {\n const indexFinalCorte = newSteps.findIndex((step) => step.name === 'Recomendacion');\n newSteps.splice(1, indexFinalCorte);\n setIdOrder(true);\n newSteps = newSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n }\n\n return {\n firstStep: newSteps[0],\n lastStep: newSteps[newSteps.length - 1],\n stepsHistory: [0],\n numberOfScreens: newSteps.length,\n newSteps,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[PINCODE]': fields.pincode,\n 'headers[DESC_ID_CLIMAPRO]': fields.idClimapro,\n\n 'headers[COD_FORM_ID]': 'vw-oneform-adhoc_2021_eurocopa',\n 'headers[DESC_WAID_LITERA]': 'Sorteo Eurocopa 2021',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '2. VW Sponsorship',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_FORM_DETAIL]': 'Sorteo Eurocopa 2021',\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JooQAAS',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_CONCURSO_EUROCOPA', //CONSULTAR\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[TC]': tc,\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${fields.prefix}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.experiencia,\n 'fields[DESC_AUXFIELD2]': fields.enCurso,\n 'fields[DESC_AUXFIELD3]': fields.carga,\n 'fields[DESC_AUXFIELD4]': fields.masInformacion,\n 'fields[DESC_AUXFIELD5]': fields.conduccion,\n 'fields[DESC_AUXFIELD6]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD7]': fields.multipleChoiceDetalle,\n 'fields[DESC_AUXFIELD8]': fields.recomendacion,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_2021_eurocopa-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const idPerson = createPincodeEntity(dpsData, 'PERSON') as IdPerson;\n const idOrder = createPincodeEntity(dpsData, 'ORDER') as IdOrder;\n\n const enCursoAux = idOrder && parseFloat(idOrder.SLI_State__c) < 70 ? 'true' : 'false';\n\n if (!idPerson) {\n if (dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n console.log(dpsData);\n setFormError(true);\n } else if (dpsData.pincode.pincodeUsed) {\n setFormCaducado(true);\n }\n }\n\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(idOrder);\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n COD_FORM_ID: 'vw-oneform-adhoc_2021_eurocopa',\n DESC_WAID_LITERA: waid ? waid : 'Sorteo Eurocopa 2021',\n DESC_CAMPAIGNBLOCK: '2. VW Sponsorship',\n DESC_FORMOBJECTIVE: 'Concurso',\n DESC_FORM_DETAIL: 'Sorteo Eurocopa 2021',\n DESC_ID_CAMPAIGN: '7011n000000JooQAAS',\n DESC_TOKEN: 'VW_DDB_FRM_CONCURSO_EUROCOPA', //CONSULTAR\n },\n\n fields: {\n name: idPerson?.FirstName,\n surname: idPerson?.LastName,\n secondSurname: idPerson?.TXT_2_Surname__c,\n email: idPerson?.TXT_Email__c,\n cellphone: idPerson?.NUM_Phone_mobile__c,\n pincode: dpsData.pincode?.pincodeResponse?.params?.pincode,\n enCurso: enCursoAux,\n idClimapro: idPerson?.ID_Person_DIM_IMP__c,\n formName: 'adhoc-2021-eurocopa',\n formType: 'otherform',\n pageCategory: 'Concurso',\n }, // Analítica\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {},\n error(err) {\n console.error(err);\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n useEffect(() => {\n if (!idOrder) {\n if (carga) {\n handleDetalle(carga, 'masInformacion');\n }\n }\n }, [carga]);\n useEffect(() => {\n if (!idOrder) {\n if (multipleChoice) {\n handleDetalle(multipleChoice, 'MultipleChoiceDetalle');\n }\n }\n }, [multipleChoice]);\n\n return (\n <>\n {loading ? null : (\n <>\n {formError ? (\n \n ) : formCaducado ? (\n \n ) : (\n \n )}\n \n )}\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n return (\n \n
\n \n \n Pronto sabrás si eres una de las personas afortunadas. Mientras tanto, ¡sigue disfrutando de la movilidad eléctrica!\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouEurocopa(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n {' '}\n ¡Muchas gracias por participar!\n \n ),\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouEurocopa);\n\nexport { ConnectedComponent as ThankYouEurocopa };\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions } from 'src/components';\nimport {\n CloseHandleV2,\n FocusLayerSizeV2,\n LayerHandleV2,\n LayerManagerV2\n} from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { connect, useDispatch, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\n\nconst GeneralconfirmacionWrapper = styled.div`\n\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n font-weight: bold;\n }\n`;\n\nfunction ConfirmacionEurocopa() {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n ¡Gracias! Unas{' '}últimas preguntas{' '} para tenerlo todo claro\n \n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n \n política de privacidad.\n \n \n \n \n\n \n \n
\n \n \n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n // 1. check de lssi y tmk\n // 2. submit de la cita y activación la pantalla de feedback correspondiente\n // no se hace ninguna validación en este último paso porque esta ya se ha hecho en el edit-guardar de cada campo previamente\n async function handleConfirmarCita(e: any) {\n if (tmk === null && tmk === null) {\n setTmkError(true);\n setLssiError(true);\n } else if (tmk === null) {\n setTmkError(true);\n } else if (lssi === null) {\n setLssiError(true);\n } else {\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n >\n Enviar\n \n \n \n );\n}\n\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formInfo: state.formInfo,\n formData: state.formData,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ConfirmacionEurocopa);\n\nexport { ConnectedComponent as ConfirmacionEurocopa };\n","import {\n BreakpointWrapper,\n Breakpoints,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from '../../CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\n\ninterface lastNavigationProps {\n refProps?: any;\n formMin?: any;\n setShowError?: any;\n}\n\nconst NavigationWrapper = styled.div`\n display: block;\n padding-top: 44px;\n`;\n\nexport const LastNavigationFidelizacion = (props: lastNavigationProps) => {\n const { setShowError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset, getValues, triggerValidation } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const [isValid, setIsValid] = useState(false);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleConfirmarEnvio = async (e: any) => {\n const values = getValues();\n const isValid = await triggerValidation();\n setShowError(false);\n\n if (isValid) {\n setShowError(false);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n } else {\n setShowError(true);\n }\n };\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n if (fields.otrosServicios) setIsValid(true);\n }, [fields]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n política de privacidad.\n \n \n \n\n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n >\n Enviar\n \n \n \n \n \n );\n};\n","import React, { useState, useEffect} from 'react';\nimport { Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { RatingStars} from 'src/components';\nimport styled from 'styled-components';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { OneElementTemplateFullScreen } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport {LastNavigationFidelizacion} from '.';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n & > button {\n margin: 12px;\n width: 81px;\n }\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nfunction Fields() {\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const [ selectedValue, setSelectedValue] = useState('');\n const { control, register, setValue } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [showError, setShowError] = useState(false);\n\n useEffect(() => {\n if (fields.enviarInformacion) setSelectedValue(fields.enviarInformacion);\n }, []);\n\n return (\n <>\n \n {\n showError ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null\n }\n \n \n );\n}\n\nexport function FidelizacionLastScreenFields() {\n return (\n } />\n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeFidelizacionForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } else {\n requestCarlines();\n }\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport {\n Text,\n CTA,\n Container,\n ContainerPadding,\n ContainerGutter,\n Layout,\n Breakpoints,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FidelizacionLastScreenFields } from './FidelizacionLastScreenFields';\nimport { TextAreaExtended, MultipleOptionCTAs, RatingStars } from 'src/components';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n FormController,\n useOneFormContext\n} from 'src/feature-app';\nimport { useFormContext } from 'react-hook-form';\nimport { ThankYouFidelizacion } from '.';\nimport { formDataBuilder } from '../../format-fields';\nimport { FidelizacionFormProps } from './FidelizacionController';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useInitializeFidelizacionForm } from './use-initialize-fidelizacion-form';\n\nconst CTAsObtenerNuevas = [\n { label: 'Participando en encuestas, en experiencias, en sorteos, en eventos...', value: 'lealtad' },\n { label: 'Con Volkswagen Long Drive, utilizando el servicio de recogida y entrega, pidiendo cita online...', value: 'relacion' },\n { label: 'Otras formas', value: 'otros' },\n];\n\nconst CTAsListadoVentajas = [\n { label: 'Mantenimiento incluido', value: 'mantenimiento' },\n { label: 'Garantías Volkswagen', value: 'garantias' },\n { label: 'Asistencia en carretera', value: 'asistencia' },\n { label: 'Coche de sustitución', value: 'coche-sustitucion' },\n { label: 'Revisión Pre-ITV gratuita', value: 'pre-itv' },\n { label: 'Servicio de recogida y entrega', value: 'recogida-entrega' },\n { label: 'Volkswagen Long Drive¹', value: 'long-drive' },\n { label: 'Experiencias de conducción²', value: 'experiencias' },\n { label: 'We: Coche conectado³', value: 'we' },\n];\n\nexport enum FidelizacionSteps {\n QuieroTener,\n MasConoces,\n ListadoVentajas,\n Valoracion,\n ServicioPosventa,\n ProcesoCompra,\n OpcionesFinanciacion,\n VentajasBeneficions,\n InformacionExclusiva,\n InformacionTecnologia,\n OtrosServicios,\n Confirmacion,\n}\n\nexport function FidelizacionForm(props: FidelizacionFormProps) {\n const { dpsData, idPerson, trackFormLoad } = props;\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { obtenerNuevas } = formData.fields;\n const { screenIndex } = formInfo;\n const { initializeForm, nextStep, handleNextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const { register } = useFormContext();\n const [currentValue, setCurrentValue] = useState('');\n const dispatch = useDispatch();\n\n const handleChange = (e: any) => {\n const aux = e.currentTarget.value;\n e.preventDefault();\n setCurrentValue(aux);\n };\n\n const stepsForm: Steps[] = [\n {\n title: (\n <>\n ¿Qué beneficios y ventajas te gustaría tener como cliente Volkswagen?\n \n ),\n fields: (\n \n handleChange(e)}\n appearance={'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={'default'}\n isFloating={false}\n innerRef={register({\n required: {\n value: true,\n message: 'Requerido',\n },\n })}\n placeholder=\"Ejemplo: Me parece muy útil el servicio de recogida y entrega de Volkswagen. A veces hacer un hueco para ir al taller es misión imposible, ¡así que toda acción que te facilite la vida es bienvenida!\"\n rows={3}\n maxLength={350}\n />\n \n }\n />\n ),\n screenIndex: FidelizacionSteps.MasConoces,\n name: 'MasConoces',\n outputs: ['masConoces'],\n outputsText: ['masConoces'],\n },\n {\n title: (\n <>\n Hemos listado algunas de nuestras ventajas como cliente de la familia Volkswagen. ¿Cuáles te parecen más atractivas?\n \n \n Selecciona 3 opciones.\n \n \n \n ),\n alternateTitle: (\n <>\n Hemos listado algunas de nuestras ventajas como cliente de la familia Volkswagen. ¿Cuáles te parecen más atractivas?\n \n ),\n fields: (\n \n \n \n
    \n
  1. Planes de mantenimiento Volkswagen Long Drive (Standard y Advance)
  2. \n
  3. Race Tours y otras experiencias de conducción para clientes
  4. \n
  5. Servicios de conectividad como We Connect, We Connect GO...
  6. \n
\n
\n }\n />\n ),\n screenIndex: FidelizacionSteps.ListadoVentajas,\n name: 'ListadoVentajas',\n outputs: ['listadoVentajas'],\n outputsText: ['listadoVentajas'],\n },\n {\n title: (\n <>\n ¿Qué importancia le darías a los siguientes conceptos?\n \n ),\n fields: (\n \n \n \n Como cliente de Volkswagen, siendo 1 {'\"'}mayor importancia{'\"'} y 5 {'\"'}menor importancia{'\"'}\n \n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Empezar\n \n \n \n ),\n screenIndex: FidelizacionSteps.Valoracion,\n name: 'Valoracion',\n },\n {\n title: (\n <>\n Servicio de Posventa: trato, precio y planes de mantenimiento.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.ServicioPosventa,\n name: 'ServicioPosventa',\n outputs: ['servicioPosventa'],\n outputsText: ['servicioPosventa'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Proceso de compra o renovación: personalización por ser cliente, ofrecimiento de prueba test drive, asesoramiento comercial...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.ProcesoCompra,\n name: 'ProcesoCompra',\n outputs: ['procesoCompra'],\n outputsText: ['procesoCompra'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Opciones de financiación en la venta: nuevas fórmulas, condiciones ventajosas...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.OpcionesFinanciacion,\n name: 'OpcionesFinanciacion',\n outputs: ['opcionesFinanciacion'],\n outputsText: ['opcionesFinanciacion'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Ventajas y Beneficios como descuentos, premios, entradas a eventos, posibilidad de participar en foros de la marca...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.VentajasBeneficions,\n name: 'VentajasBeneficions',\n outputs: ['ventajasBeneficions'],\n outputsText: ['ventajasBeneficions'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Información exclusiva sobre novedades de la marca y del sector: nuevos lanzamientos, productos o funcionalidades, recomendaciones, noticias...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.InformacionExclusiva,\n name: 'InformacionExclusiva',\n outputs: ['informacionExclusiva'],\n outputsText: ['informacionExclusiva'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Innovación y Tecnología: coche conectado, coche autónomo, sostenibilidad...\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: FidelizacionSteps.InformacionTecnologia,\n name: 'InformacionTecnologia',\n outputs: ['informacionTecnologia'],\n outputsText: ['informacionTecnologia'],\n outputsIsStars: true\n },\n {\n title: (\n <>\n Otros Servicios: servicio de atención al cliente, garantía de movilidad Volkswagen, asistencia...\n \n ),\n fields: ,\n screenIndex: FidelizacionSteps.OtrosServicios,\n name: 'OtrosServicios',\n outputs: ['otrosServicios'],\n outputsText: ['otrosServicios'],\n isLastStep: true\n },\n ];\n\n const FidelizacionFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'adhoc-2021-fidelizacion_clientes', formType: 'otherform', pageCategory: 'Fidelización Clientes 2021' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '16. VW One Shots',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_FORM_DETAIL]': fields.pageCategory,\n 'headers[DESC_ID_CAMPAIGN]': '7011n000000JqqSAAS',\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_ENCUESTA_FIDELIZACION_CLIENTES',\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[M_OBSERVATION]': fields.quieroTener,\n 'fields[DESC_AUXFIELD1]': fields.masConoces,\n 'fields[DESC_AUXFIELD2]': fields.listadoVentajas,\n 'fields[DESC_AUXFIELD5]': fields.servicioPosventa,\n 'fields[DESC_AUXFIELD6]': fields.procesoCompra,\n 'fields[DESC_AUXFIELD7]': fields.opcionesFinanciacion,\n 'fields[DESC_AUXFIELD8]': fields.ventajasBeneficions,\n 'fields[DESC_AUXFIELD9]': fields.informacionExclusiva,\n 'fields[DESC_AUXFIELD10]': fields.informacionTecnologia,\n 'fields[DESC_AUXFIELD11]': fields.otrosServicios,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE'\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeFidelizacionForm(stepsForm, null);\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const FidelizacionFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(FidelizacionFormInfo, FidelizacionFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n\n return loading || !steps ? null : ;\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdPerson } from 'src/types';\nimport { FidelizacionForm } from './FidelizacionForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from '../../dps-utils';\n\nexport interface FidelizacionFormProps {\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n presubmit: boolean;\n trackFormLoad: () => void;\n showPantallaModelo: boolean;\n}\n\nexport function FidelizacionController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [presubmit, setPresubmit] = useState(false);\n const [showPantallaModelo, setShowPantallaModelo] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n \n );\n }\n}\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nconst Loading = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n\n return (\n \n
\n \n \n Las tendremos en cuenta para seguir mejorando tu experiencia Volkswagen 😊\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouFidelizacion(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n {' '}\n ¡Muchas gracias por tu tiempo y tus respuestas!\n \n ),\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouFidelizacion);\n\nexport { ConnectedComponent as ThankYouFidelizacion };\n","import React, { useEffect, useRef, useState } from 'react';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { TestIDForm } from './TestIDForm';\n\nexport function TestIDController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [pincodeAvailable, setPincodeAvailable] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setPincodeAvailable(false);\n setLoading(false);\n } else {\n setPincodeAvailable(true);\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {\n pincodeAvailable ?\n \n :\n \n }\n \n );\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\ninterface ChecksProps {\n questionName: string;\n avoidNextStep?: boolean;\n answers: string[];\n correctAnswer?: string;\n}\n\nexport const Checks = (props: ChecksProps) => {\n const { questionName, answers, avoidNextStep, correctAnswer } = props;\n const [checkedIndex, setCheckedIndex] = useState(null);\n const dispatch = useDispatch();\n\n const { handleNextStep } = useOneFormContext();\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const currentCorrectAnswers = fields.answers || 0;\n\n const handleOnClick = (e: any) => {\n if (avoidNextStep) {\n // si no vamos a next step guardaremos el valor en store\n dispatch({ type: 'UPDATE_FIELDS', payload: { [questionName]: e.target.value } });\n } else {\n setTimeout(\n () => {\n if (correctAnswer && correctAnswer === e.target.value) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['answers']: currentCorrectAnswers + 1 } });\n }\n handleNextStep();\n }, 0\n );\n }\n };\n\n return (\n
\n {answers.map((answer, index) => {\n return (\n
\n {\n setValue(answer);\n setCheckedIndex(index);\n handleOnClick(e);\n }}\n checked={checkedIndex === index}\n />\n
\n )\n })}\n\n \n
\n );\n};\n","import React from 'react';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n Image,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { Checks } from './Checks';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n padding-left: var(--size-grid002);\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\ninterface QuestionWithImageProps {\n answers: string[];\n correctAnswer?: string;\n imageSrc: string;\n index: number;\n questionName: string;\n title: JSX.Element | string;\n}\n\nexport const QuestionWithImage = (props: QuestionWithImageProps) => {\n const {\n answers,\n correctAnswer,\n imageSrc,\n index,\n questionName,\n title,\n } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n return (\n \n {\n height <= 600 ? null : (\n \n
\n \"\"\n
\n
\n )\n }\n \n \"imagen\n \n \n \n {index === 0 && Y... ¡que empiece el test!}\n \n <>\n {title}\n \n \n \n \n \n
\n )\n};\n","import React, { useEffect, useState } from 'react';\nimport { ConfirmationTestID, ThankYouTestID } from './';\nimport { QuestionWithImage } from './QuestionWithImage';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n formatPrefix,\n FormController,\n removeWhiteSpace,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { questions } from './';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\n\ninterface TestIDFormProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function TestIDForm(props: TestIDFormProps) {\n const { idPerson } = props;\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const name: string = props.name ? props.name : props.idPerson?.FirstName;\n const surname: string = props.surname ? props.surname : props.idPerson?.LastName;\n const email: string = props.email ? props.email : props.idPerson?.TXT_Email__c;\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname } });\n setLoading(false);\n }, []);\n\n const steps: Steps[] = [\n ...questions.map((question, index) => {\n return {\n fields: ,\n screenIndex: index,\n name: question.questionName,\n showOverflow: true,\n }\n }),\n {\n fields: ,\n screenIndex: questions.length,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'adhoc-2023-test_id',\n formType: 'otherform',\n pageCategory: 'Concurso'\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORM_DETAIL]': 'Test ID 2023',\n 'headers[DESC_FORMOBJECTIVE]': 'Concurso',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUOnQAO',\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_TEST_ID_2023',\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n\n 'fields[DESC_AUXFIELD1]': fields.answers, // respuestas correctas\n 'fields[DESC_AUXFIELD2]': fields.location,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson? idPerson.TXT_Email__c : null,\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_PREFERRED_CONTACT_CHANNEL]': fields.contact,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n return loading || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n CTA,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Email,\n LegalItem\n} from 'src/components';\nimport { IdPerson } from 'src/types';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices } from 'src/feature-app';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport { useStore } from 'react-redux';\n\nconst GridWrapper = styled.div`\n width: 90%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 5%;\n height: 180px;\n @media all and (min-width: 1600px) {\n height: 200px;\n }\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nconst QuestionWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n padding-top: 10%;\n @media all and (max-width: 1280px) {\n padding-top: 2%;\n }\n`;\ninterface ConfirmacionTestIDProps {\n idPerson: IdPerson;\n}\n\nconst legalesTestID2023 = 'https://crm.volkswagen.es/email/2023/service/recertificacion_may23/Sorteo%20Test%20Ele%CC%81ctrico.pdf'\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nexport const ConfirmationTestID = (props: ConfirmacionTestIDProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n\n {!idPerson &&\n \n ¡Genial! Ya lo tenemos casi todo. Ahora solo falta que nos confirmes tus datos para recibir los resultados del test. ¿Serás un pro de los eléctricos?\n \n }\n {idPerson &&\n \n ¡Genial! Aunque el sorteo ya está cerrado, confírmanos tus datos para recibir los resultados del test. ¿Serás un pro de los eléctricos?\n \n }\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n \n {!idPerson &&\n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n }\n \n \n \n \n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n \n \n {idPerson &&\n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n }\n \n \n \n {idPerson &&\n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n }\n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n FixedWidthContainer,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n TokenTextColor,\n} from \"@volkswagen-onehub/components-core\";\nimport {\n getParamsForm,\n getTrackingForm,\n LayerManagerWrapper,\n removeWhiteSpace,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from \"src/feature-app\";\nimport styled from \"styled-components\";\nimport { useDispatch, useStore } from \"react-redux\";\nimport { Apellido, Email, GenericErrorLayer, LegalFullScreenSinConsentmientos, LegalItem, Nombre, PoliticaPrivacidad } from \"src/components\";\nimport { FormDataGroup, OneFormState } from \"src/types\";\nimport { formDataBuilder, formatHeaders } from \"src/forms/format-fields\";\nimport { dpsSend } from \"src/bff\";\nimport { TestIDForm } from \"./\";\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from \"@volkswagen-onehub/layer-manager\";\nimport { useWindowWidth } from \"@react-hook/window-size\";\n\ninterface VideoProps {\n isMediumScreen: boolean;\n};\n\nconst Video = styled.video`\n display: block;\n width: ${(props) => props.isMediumScreen ? \"50%\" : \"100%\"};\n margin: ${(props) => props.isMediumScreen ? \"auto\" : \"0 auto\"};\n padding-bottom: var(--size-grid001);\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n position: relative;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nconst initialData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_TEST_ID_2023',\n DESC_FORMOBJECTIVE: 'Suscripción Newsletter',\n COD_FORM_ID: 'vw-newsletter-electricos-adhoc-2023-test_id',\n },\n fields: {\n formName: 'newsletter-electricos-adhoc-2023-test_id',\n formType: 'newsletter',\n pageCategory: 'Suscripción Newsletter',\n }, // Analítica\n};\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\n\nexport function EmailForm() {\n const [email, setEmail] = useState(null);\n const [showError, setShowError] = useState(false);\n const dispatch = useDispatch();\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const [renderFormID, setRenderFormID] = useState(false);\n const store = useStore();\n const { formData }: OneFormState = store.getState();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const windowWidth = useWindowWidth();\n const [error, setError] = useState(false);\n const [isMediumScreen, setIsMediumScreen] = useState(false);\n\n\n useEffect(() => {\n initializeForm(\n {},\n initialData,\n );\n }, []);\n\n useEffect(() => {\n setIsMediumScreen(windowWidth >= 960 && windowWidth < 1280);\n }, [windowWidth]);\n\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n const sendForm = (): Promise => {\n\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(initialData.headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_CAMPAIGNBLOCK]': '4. VW Newsletter',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUOnQAO',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${initialData.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(email),\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n const response = await dpsSend(formData);\n\n if (response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(response));\n setRenderFormID(true);\n } else {\n setError(true);\n }\n\n });\n };\n\n if (error) {\n return (\n <>\n \n \n );\n } else {\n\n return (\n\n renderFormID ?\n \n :\n <>\n \n\n \n\n <>\n \n Demuestra que eres un pro y entra en el sorteo de uno de los dos cursos de conducción eléctrica.\n \n \n El curso de la escuela ID. es una\n experiencia única al volante de nuestros eléctricos con pilotos profesionales a tu lado. {' '}\n Para participar, haz nuestro test de solo 5 preguntas.\n \n \n \n \n \n ¿Te animas a estar al día de todo sobre los eléctricos, demostrar lo que sabes y participar en el sorteo?\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n \n {\n showError ? (\n <>\n \n \n Necesitamos esta información para seguir\n \n \n \n ) : null\n }\n {\n e.preventDefault();\n if (email && !showError) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { email: email } });\n sendForm();\n } else {\n setShowError(true);\n }\n }}\n >\n Enviar y participar\n \n \n \n \n\n \n \n \n \n )\n }\n\n}\n","import { Text } from \"@volkswagen-onehub/components-core\";\nimport React from \"react\";\n\nexport const questions = [\n {\n questionName: 'Test ID 01',\n title: <>1. Estás en Madrid y te apetece hacer una escapada en tu ID.7.{' '}¿Hasta dónde podrías llegar aproximadamente?,\n answers: [\n 'Hasta Barcelona, podría llegar a hacer 700 km.',\n 'Hasta Zaragoza y no más que esos 300 km.',\n 'Hasta Toledo. Hombre, ni que pudiera recorrer más de 70km.',\n ],\n correctAnswer: 'Hasta Barcelona, podría llegar a hacer 700 km.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00207_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 02',\n title: <>​2. Estás organizando el viaje de verano con tu ID.5 y quieres saber dónde podrás cargarlo.{' '}¿Cuántos puntos habilitados de carga hay en España?,\n answers: [\n '4.444, como las cuatro ruedas de un coche.',\n 'Más de 18.000, es casi imposible no toparse con uno.',\n '93, como días tiene el verano.',\n ],\n correctAnswer: 'Más de 18.000, es casi imposible no toparse con uno.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2020AL01387_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjImaGVpPTQ2MiZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmZTJiZQ=='\n },\n {\n questionName: 'Test ID 03',\n title: <>3. Oh no...está empezando a sonar la canción de tu ex en tu ID.7 y quieres cambiarla.{' '} ¿Cómo lo haces?,\n answers: [\n 'Hago un gesto con la mano de izquierda a derecha, como si fuera un director de orquesta.',\n 'Se lo pido a mi copiloto, que es muy majo.',\n 'Me desespero y toco todos los botones del coche a la vez.',\n ],\n correctAnswer: 'Hago un gesto con la mano de izquierda a derecha, como si fuera un director de orquesta.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2023AU00281_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 04',\n title: <>4. Estás subiendo los pirineos con un ID.4 y quieres cambiar de marcha para que el coche tenga más potencia.{' '}¿Cómo lo haces?,\n answers: [\n '¡Muy fácil! Con el cambio de marchas de toda la vida.',\n '¿Qué marcha? Los coches eléctricos lo dan todo sin marchas.',\n 'Le pongo la banda sonora de UP para que siga subiendo.',\n ],\n correctAnswer: '¿Qué marcha? Los coches eléctricos lo dan todo sin marchas.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2022AU00678_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n {\n questionName: 'Test ID 05',\n title: <>5. Quieres parar a tomarte un descanso y de paso aprovechar para cargar tu ID.3 en un punto de carga rápida.{' '}¿Cuántos minutos necesitarás para cargarlo al 80%?,\n answers: [\n '30 minutos, lo que tardo en tomarme un descansito y un café.',\n '80 minutos, lo mismo que un capítulo de Juego de Tronos.',\n '60 minutos, lo que dura una clase de Cycling en el gimnasio.',\n ],\n correctAnswer: '30 minutos, lo que tardo en tomarme un descansito y un café.',\n imageSrc: 'https://assets.volkswagen.com/is/image/volkswagenag/DB2020NR00454_medium%201?Zml0PWNyb3AlMkMxJndpZD00NjQmaGVpPTQ2NCZmbXQ9cG5nLWFscGhhJmJmYz1vZmYmNjA2Mg=='\n },\n];\n\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouTestID() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias por participar, {formInfo.formResponse.params.fields.DESC_NAME}!\n
\n ¡Ha llegado la hora de la verdad eléctrica! Ve a tu email y descubre tus resultados del test. \n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n BreakpointWrapper,\n ContainerGutter,\n CTA,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useState } from 'react';\nimport { useStore } from 'react-redux';\nimport {\n PoliticaPrivacidad,\n LastNavigation,\n LabelInputWidthWrapper,\n Nombre,\n Apellido,\n Telefono,\n Legales,\n Email,\n CodigoPostal,\n LegalItem,\n} from 'src/components';\nimport { LayerManagerWrapper, useFeatureAppEnvironment, useFeatureServices, useGetIdPerson } from 'src/feature-app';\nimport { IdPerson } from 'src/types';\n\nconst GridWrapper = styled.div`\n width: 100%;\n display: grid;\n grid-template-rows: repeat(2, auto);\n grid-gap: 10%;\n padding-bottom: 6%;\n padding-top: 3%;\n`;\n\nconst GridItem = styled.div <{ row: string }>`\n grid-row: ${props => props.row};\n`;\n\nconst TextBlue = styled(Text)`\n color: #001e50;\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n margin-left: 35px;\n`;\n\nconst InputWrapper = styled.div`\n input, span:first-child, div:last-child {\n width: 320px;\n }\n`;\n\ninterface ConcursoRodajeProps {\n idPerson?: IdPerson;\n sendForm?: () => Promise;\n}\n\nconst infoLayerCopies = {\n lssi: {\n title: 'Estarás mejor informado.',\n body: 'Si nos das tu consentimiento desde Volkswagen Group España Distribución, S.A. como responsable de la marca Volkswagen podremos enviarte por cualquier medio, ya sea por teléfono, correo electrónico, sms o aplicaciones de mensajería instantánea información comercial lo que puede incluir, a título enunciativo, pero no limitativo, descuentos, novedades, próximos lanzamientos, invitaciones a eventos o a concursos, entre otras comunicaciones comerciales.',\n },\n};\n\nconst legalesRodaje = 'https://crm.volkswagen.es/email/2023/newsletter/trimestre_jun23/BBLL_Rodaje_NL_2023.pdf';\n\nexport const ConcursoRodajeConfirmacion = (props: ConcursoRodajeProps) => {\n const { idPerson } = props;\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const env = useFeatureAppEnvironment();\n const store = useStore();\n\n const handleInfoLayer = (\n key: 'lssi',\n renderFn: (state: any, close: CloseHandleV2) => JSX.Element\n ) => {\n const layer = layerManager.openFocusLayer(\n renderFn,\n { ...infoLayerCopies[key] },\n { size: FocusLayerSizeV2.A, userCloseable: true }\n );\n\n return layer;\n };\n\n const renderInfo = (state: { title: string; body: string }, close: CloseHandleV2) => {\n return (\n \n \n \n {state.title}\n {state.body}\n \n {\n e.preventDefault();\n close({}, {}, {});\n }}\n size={'small'}\n >\n Entendido\n \n \n \n );\n };\n\n return (\n <>\n \n \n
\n \n Acompáñanos en el rodaje de nuestro próximo spot{' '}\n y descubre cómo sucede la magia detrás de cámara.\n Completa tus datos y ¡ven a vivirlo!\n \n
\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n \n\n \n {!idPerson &&\n \n handleInfoLayer('lssi', renderInfo)}\n themeColor={'main'}\n name='lssi'\n />\n \n }\n \n \n Enviando el formulario declaro haber leído y estar informado acerca del tratamiento de mis datos personales y declaro aceptar las condiciones de participación recogidas en las{' '}\n \n bases legales\n .\n
\n
\n
\n \n
\n\n {compartirError && Necesitamos esta información para seguir}\n \n \n \n \n \n {/* \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n \n \n Consulta las bases legales de la promoción{' '}\n \n aquí\n .\n \n \n \n */}\n \n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { ConcursoRodajeForm } from './';\n\nexport function ConcursoRodajeController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n \n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else {\n return ;\n }\n}\n","import React, { useEffect } from 'react';\nimport { OneFormState, Steps } from 'src/types';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { useDispatch, useSelector } from 'react-redux';\n\nexport function ThankYouConcursoRodaje() {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: (\n <>\n ¡Gracias, {formInfo.formResponse.params.fields.DESC_NAME}!\n
\n Te confirmamos que tus datos se han registrado correctamente\n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { ThankYouTestID } from '../TestID2023';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n FormController,\n formatPrefix,\n removeWhiteSpace,\n useGetIdPerson,\n useOneFormContext,\n} from 'src/feature-app';\nimport {\n FormDataGroup,\n FormInfo,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { formDataBuilder, formatHeaders } from 'src/forms/format-fields';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useDispatch, useStore } from 'react-redux';\nimport { ConcursoRodajeConfirmacion } from './ConcursoRodajeConfirmacion';\nimport { ThankYouConcursoRodaje } from './ThankYouConcursoRodaje';\n\ninterface ConcursoRodajeFieldsProps {\n dpsData?: any;\n idPerson?: any;\n handleError?: any;\n email?: string;\n name?: string;\n surname?: string;\n}\n\nexport function ConcursoRodajeForm(props: ConcursoRodajeFieldsProps) {\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const idPerson = useGetIdPerson();\n\n useEffect(() => {\n const {\n FirstName: name,\n LastName: surname,\n TXT_Email__c: email,\n TXT_Postal_Code__c: postalCode,\n NUM_Phone_mobile__c: telefono,\n } = idPerson || {};\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { email, name, surname, postalCode, telefono } });\n setLoading(false);\n }, []);\n\n const steps: Steps[] = [\n {\n fields: ,\n screenIndex: 0,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const initialData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_CONCURSO_RODAJE_2023',\n DESC_FORMOBJECTIVE: 'Concurso',\n },\n fields: {\n formName: 'adhoc-2023-concurso_rodaje',\n formType: 'otherform',\n pageCategory: 'Concurso',\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n ...formatHeaders(initialData.headers),\n 'headers[DESC_URLORIGIN]': url,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_CAMPAIGNBLOCK]': '7. VW Driving Experience',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_ID_CAMPAIGN]': '7017Q000000DUlUQAW',\n 'headers[DESC_FORM_DETAIL]': 'Concurso Rodaje 2023',\n 'headers[DESC_GDPR_ADAPTED]': 'true',\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[DESC_VN_VO]': 'VN',\n\n 'fields[DESC_POSTAL_CODE]': fields.postalCode ? fields.postalCode : idPerson.TXT_Postal_Code__c,\n 'fields[DESC_NAME]': fields.name ? fields.name : idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': fields.surname ? fields.surname : idPerson.LastName,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email ? fields.email : idPerson ? idPerson.TXT_Email__c : null,\n\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${initialData.fields.formName}-${process.env.VERSION}`,\n\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[NUM_CELLPHONE]': fields.telefono ? `${formatPrefix(fields.prefix)}${fields.telefono}` : idPerson.NUM_Phone_mobile__c,\n\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = async (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response.data?.content?.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, initialData, true);\n trackingManager.trackFormLoad();\n }\n }, [loading]);\n\n return loading || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport { findCarline } from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.VGED_CodeOfInterestCarline__c &&\n propertyHasValue(idLead.VGED_CodeOfInterestCarline__c);\n\nexport function useInitializeForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n\n const carline = findCarline(carlines, Number(idLead.VGED_CodeOfInterestCarline__c));\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } \n requestCarlines();\n\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { PantallaNombreApellido, CarlineSelect, DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, IdLead, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../format-fields';\nimport { ConfirmacionLEM, ThanKYouLEM } from 'src/forms/LEM';\nimport { LEMFormProps } from './LEMController';\nimport { useInitializeForm, checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum LEMContactadoSteps {\n Modelo,\n PeriodoContacto,\n ProximoContacto,\n TipoVisita,\n Comentario,\n EnviarConcesion,\n DatosPersonales,\n Confirmacion\n}\n\nconst getPeriodoContactoTitle = (modeloPrecargado: boolean) => {\n if (modeloPrecargado) {\n return (\n <>\n Y ¿cuándo te{' '}\n \n respondieron?*\n \n \n );\n } else {\n return (\n <>\n Nos encantaría saber más sobre tu experiencia.{' '}\n \n ¿Cuándo te{' '}\n \n respondieron?*\n \n \n \n );\n }\n};\n\nexport function LEMContactadoForm(props: LEMFormProps) {\n const { dpsData, idLead, idPerson, installation, handleError, presubmit, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const { enviarConcesion } = useSelector((state: OneFormState) => state.formData.fields);\n const { dealersInfo }: OneFormState = store.getState();\n const dispatch = useDispatch();\n\n const ctasPeriodoContacto = [\n {\n label: 'En las primeras 8 horas',\n value: 'En las primeras 8h'\n },\n {\n label: 'En las primeras 24 horas',\n value: 'En las primeras 24h'\n },\n {\n label: 'En más de 24 horas',\n value: 'En más de 24h'\n },\n ];\n\n const ctasProximoContacto = [\n {\n label: 'Sí, una visita al punto de venta',\n value: 'Si, una visita al punto de venta'\n },\n {\n label: 'Sí, una llamada',\n value: 'Si, una llamada'\n },\n {\n label: 'Sí, una videollamada',\n value: 'Si, una videollamada'\n },\n {\n label: 'No, no estoy interesado',\n value: 'No, no estoy interesado'\n },\n {\n label: 'No, pero me hubiera gustado',\n value: 'No, pero me hubiera gustado'\n },\n ];\n\n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n ¿Por qué modelo contactaste con tu punto de venta?\n \n ),\n fields: } />,\n screenIndex: LEMContactadoSteps.Modelo,\n name: 'Modelo',\n },\n {\n title: getPeriodoContactoTitle(checkIdLeadHasCarline(idLead)),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.PeriodoContacto,\n name: 'PeriodoContacto',\n },\n {\n title: (\n <>\n ¿Habéis acordado un{' '}\n \n próximo{' '}\n \n contacto o cita?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.ProximoContacto,\n name: 'ProximoContacto',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n ¿Quieres compartir tus valoraciones con el punto de venta?*\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMContactadoSteps.EnviarConcesion,\n name: 'EnviarConcesion',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Por favor, introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n
\n }\n />\n ),\n screenIndex: LEMContactadoSteps.DatosPersonales,\n name: 'DatosPersonales',\n },\n {\n title: (\n <>\n ¿Quieres añadir algún comentario adicional?\n \n ),\n fields: } />,\n screenIndex: LEMContactadoSteps.Comentario,\n name: 'Comentario',\n },\n {\n fields: ,\n screenIndex: LEMContactadoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const LEMContactadoData: Partial = {\n headers: {},\n fields: {\n formName: 'lem-contactado',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n useEffect(() => {\n if (enviarConcesion) {\n modifySteps(enviarConcesion == '1' || enviarConcesion == 'true', 'DatosPersonales');\n }\n }, [enviarConcesion]);\n\n const modifySteps = (add: boolean, screen: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n if (add) {\n const stepIndex = getIndexInSteps(newSteps, screen);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, screen, screenIndex);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\thandleNextStep();\n\t\t\t\t}, 0);\n\t\t\t}\n }\n else {\n newSteps = removeStep(newSteps, screen);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n if (presubmit) {\n\t\tsendPresubmit();\n } else {\n\t\tsetLoadingPresubmit(false);\n }\n }, []);\n\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA',\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'LEM Contactado',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}`: `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_NAME]': fields.name ? fields.name : idLead.FirstName,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_SURNAME_1]': fields.surname ? fields.surname : idLead.LastName,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname ? fields.secondSurname : idLead.MiddleName,\n 'fields[SF_LEAD_INSTALLATION_ID]': idLead.Dealership__c,\n 'fields[SF_LEAD_INSTALLATION_CODE]': installation ? installation.VGED_DealerCode__c : '',\n 'fields[SF_LEAD_INSTALLATION_NAME]': installation ?installation.VGED_CommercialName__c : '',\n 'fields[SURVEY_ANSWER_01]': dpsData.rating,\n 'fields[SURVEY_ANSWER_03]': fields.periodoContacto,\n 'fields[SURVEY_ANSWER_04]': fields.proximoContacto,\n 'fields[SURVEY_ANSWER_10]': fields.enviarConcesion,\n 'fields[SURVEY_ANSWER_11]': fields.comentario,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_ID]': checkIdLeadHasCarline(idLead) && dealersInfo?.selectedCarline ? dealersInfo.selectedCarline.code : fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': checkIdLeadHasCarline(idLead) && dealersInfo?.selectedCarline ? dealersInfo.selectedCarline.title : fields.modelo\n\n };\n };\n\n const generatePresubmitData = () => {\n const data = generateData(LEMContactadoData);\n\n data['headers[FORM_DETAILS]'] = 'LEM Pregrabación';\n data['headers[DPS_TOKEN]'] = 'VW_DDB_FRM_LEM_ENCUESTA_PREGRABACION';\n\n return data;\n };\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n\n const data = isPresubmit ? generatePresubmitData() : generateData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const LEMContactadoInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(LEMContactadoInfo, LEMContactadoData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, Email, PantallaNombreApellido, Telefono, ContactInfoWrapper, MultipleCTASelection, DetalleMotivo } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, IdLead, IdPerson, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../format-fields';\nimport { LEMFormProps } from './LEMController';\nimport { useInitializeForm, checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { ConfirmacionLEM,ThanKYouLEM } from 'src/forms/LEM';\n\nexport enum LEMNoContactadoSteps {\n Modelo,\n //NombreApellidos,\n EmailTelefono,\n Horario,\n Comentario,\n Confirmacion\n}\n\nexport function LEMNoContactadoForm(props: LEMFormProps) {\n const { dpsData, idLead, idPerson, installation, handleError, presubmit, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { dealersInfo }: OneFormState = store.getState();\n\n const ctasHorarios = [\n {\n label: 'Mañana',\n value: 'Mañana'\n },\n {\n label: 'Tarde',\n value: 'Tarde'\n },\n ];\n\n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n ¿Por qué modelo contactaste con tu punto de venta?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.Modelo,\n name: 'Modelo',\n },\n /*{\n title: (\n <>\n Para averiguar qué ha pasado, necesitamos saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.NombreApellidos,\n name: 'NombreApellidos',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },*/\n {\n title: (\n <>\n ¿Nos podrías confirmar tus datos de contacto?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿En qué horario prefieres ser contactado?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: LEMNoContactadoSteps.Horario,\n name: 'Horario',\n },\n {\n title: (\n <>\n ¿Quieres añadir algun comentario adicional?\n \n ),\n fields: } />,\n screenIndex: LEMNoContactadoSteps.Comentario,\n name: 'Comentario',\n },\n {\n fields: ,\n screenIndex: LEMNoContactadoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const LEMNoContactadoData: Partial = {\n headers: {},\n fields: {\n name: idLead.FirstName,\n surname: idLead.LastName,\n secondSurname: idLead.MiddleName,\n email: idLead.Email,\n cellphone: idLead.MobilePhone,\n formName: 'lem-no_contactado',\n formType: 'otherform',\n pageCategory: 'Más Información',\n }, // Analítica\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n if (presubmit) {\n if(checkIdLeadHasCarline(idLead) && dealersInfo.selectedCarline) {\n sendPresubmit();\n }\n else if(!checkIdLeadHasCarline(idLead)) {\n sendPresubmit();\n }\n } else {\n setLoadingPresubmit(false);\n }\n }, [dealersInfo]);\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_LEM_ENCUESTA',\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'LEM No Contactado',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}` : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_NAME]': fields.name ? fields.name : idLead.FirstName,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_SURNAME_1]': fields.surname ? fields.surname : idLead.LastName,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname ? fields.secondSurname : idLead.MiddleName,\n 'fields[SF_LEAD_INSTALLATION_ID]': idLead.Dealership__c,\n 'fields[SF_LEAD_INSTALLATION_CODE]': installation ? installation.VGED_DealerCode__c : '',\n 'fields[SF_LEAD_INSTALLATION_NAME]': installation ?installation.VGED_CommercialName__c : '',\n 'fields[SURVEY_ANSWER_13]': fields.horario,\n 'fields[SURVEY_ANSWER_14]': fields.comentario,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_ID]': checkIdLeadHasCarline(idLead) && dealersInfo?.selectedCarline ? dealersInfo.selectedCarline.code : fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': checkIdLeadHasCarline(idLead) && dealersInfo?.selectedCarline ? dealersInfo.selectedCarline.title : fields.modelo\n\n };\n };\n\n const generatePresubmitData = () => {\n const data = generateData(LEMNoContactadoData);\n\n data['headers[FORM_DETAILS]'] = 'LEM Pregrabación';\n data['headers[DPS_TOKEN]'] = 'VW_DDB_FRM_LEM_ENCUESTA_PREGRABACION';\n\n return data;\n };\n;\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n\n const data = isPresubmit ? generatePresubmitData() : generateData();\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == 200) {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const LEMNoContactadoInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(LEMNoContactadoInfo, LEMNoContactadoData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { DomainAttributesValues } from 'src';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdDealer, IdLead, IdPerson } from 'src/types';\nimport { LEMContactadoForm } from './LEMContactadoForm';\nimport { LEMNoContactadoForm } from './LEMNoContactadoForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\nimport { getInstallations } from 'src/bff';\nimport { arrayToObject } from 'src/helpers';\n\nexport interface LEMFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n installation: IdDealer;\n handleError: () => void;\n presubmit: boolean;\n trackFormLoad: () => void;\n}\n\nexport function LEMController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const [presubmit, setPresubmit] = useState(false);\n const [contactado, setContactado] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const [installations, setInstallations] = useState(null);\n const [installation, setInstallation] = useState(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n const leadCreatedDate = dayjs(idLead.CreatedDate);\n const fechaEnvio = dpsData.fe ? dayjs(atob(dpsData.fe), 'DD/MM/YYYY') : null;\n let onTime = false;\n if (fechaEnvio) {\n onTime = today.diff(fechaEnvio, 'day') < 7;\n }\n else {\n onTime = today.diff(leadCreatedDate, 'day') < 7;\n }\n\n if (dpsData.push !== 'true' && onTime) {\n setPresubmit(true);\n setContactado(dpsData.contactado === 'true');\n setAllInstallations();\n } \n else if (dpsData.push == 'true') {\n setContactado(dpsData.contactado === 'true');\n setAllInstallations();\n } \n else {\n setCaducado(true);\n }\n setLoading(false);\n }\n };\n\n const setAllInstallations = () => {\n getInstallations('VW_DDB_FRM_LEM_REC_LEM', 'VOLKSWAGEN_SF_LEAD_INSTALLATION').then((dealers) => {\n const installationsDomainAtt = dealers.map((inst) => inst.attributes);\n setInstallations(installationsDomainAtt);\n });\n }\n\n // Guardamos la instalacion por Id (idLead.Dealership__c)\n\tuseEffect(() => {\n if (installations && !installation) {\n const dpsData = oneFormService.getDpsData();\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n\n let found = false;\n let i = 0;\n while (i < installations.length && found === false) {\n const found = installations[i].find((ele: DomainAttributesValues) => {\n if (\n typeof ele.value != 'undefined' && typeof ele.name != 'undefined' &&\n (ele.name.includes('Id') &&\n ele.value.includes(idLead.Dealership__c))\n ) {\n return ele;\n }\n return false;\n });\n if (found) {\n setInstallation(arrayToObject(installations[i]));\n }\n i++;\n }\n }\n\t}, [installations]);\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n }\n\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad(true);\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else if(installation) {\n return (\n <>\n {contactado ? (\n \n ) : (\n \n )}\n \n );\n }\n else {\n return null\n }\n}\n","import React, { useState } from 'react';\nimport { RadioButton, styled, Text, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport { Info } from 'src/icons-core-imports';\nimport { useDispatch } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\n\nconst LabelInfoWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-between;\n`;\n\nconst InfoWrapper = styled.div`\n margin-left: 16px;\n cursor: pointer;\n svg {\n fill: #001e50;\n }\n`;\n\nexport const ChecksEnvioLEM = () => {\n\n const ctaEnviarRespuesta = [\n { \n label: 'Mis respuestas pueden ser enviadas junto a mi nombre', value: '1' \n },\n {\n label: 'Mis respuestas pueden ser enviadas pero sin mencionar mi nombre',\n extraInfo: 'Seleccionando esta opción, el punto de venta no podrá ponerse en contacto contigo en relación a tus comentarios.',\n value: '2',\n },\n {\n label: 'Mis respuestas solo deben ser analizadas de manera anónima',\n extraInfo: 'Seleccionando esta opción, tus respuestas serán analizadas de modo agregado junto al resto de respuestas de todos los entrevistados y no se trasladarán a los comentarios abiertos.',\n value: '0',\n },\n ];\n\n const { handleNextStep } = useOneFormContext();\n const dispatch = useDispatch();\n const [firstCta, secondCta, thirdCta] = ctaEnviarRespuesta;\n const [firstOpen, setFirstOpen] = useState(false);\n const [secondOpen, setSecondOpen] = useState(false);\n\n const [checkedOne, setCheckedOne] = useState(false);\n const [checkedTwo, setCheckedTwo] = useState(false);\n const [checkedThree, setCheckedThree] = useState(false);\n\n const [value, setValue] = useState(null);\n const { register } = useFormContext();\n\n const handleOnClick = (e: any) => {\n dispatch({ type: 'UPDATE_FIELDS', payload: { enviarConcesion: e.currentTarget.value } });\n setTimeout(\n () => {\n handleNextStep();\n }, 0\n );\n };\n\n return (\n
\n
\n {\n setValue(firstCta.value);\n setCheckedOne(true);\n setCheckedTwo(false);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedOne}\n />\n
\n
\n \n {\n setValue(secondCta.value);\n setCheckedOne(false);\n setCheckedTwo(true);\n setCheckedThree(false);\n handleOnClick(e);\n }}\n checked={checkedTwo}\n />\n {\n e.preventDefault();\n setFirstOpen(!firstOpen);\n }}\n >\n \n \n \n {firstOpen ? (\n
\n \n {secondCta.extraInfo}\n \n
\n ) : null}\n
\n
\n \n {\n setValue(thirdCta.value);\n setCheckedOne(false);\n setCheckedTwo(false);\n setCheckedThree(true);\n handleOnClick(e);\n }}\n checked={checkedThree}\n />\n {\n e.preventDefault();\n setSecondOpen(!secondOpen);\n }}\n >\n \n \n \n {secondOpen ? (\n
\n \n {thirdCta.extraInfo}\n \n
\n ) : null}\n
\n \n
\n );\n};\n","import { Breakpoints, styled, Text, TokenTextAppearance, Layout } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst GeneralconfirmacionWrapper = styled.div`\n \n`;\nconst ContentWrapper = styled.div`\n min-height: calc(100vh - 227px);\n width: 100%;\n display: flex;\n align-items: center;\n @media all and (min-width: 960px) {\n min-height: calc(100vh - 227px);\n }\n .content-wrapper {\n width: 100%;\n }\n`;\n\nexport const ConfirmacionLEM = () => {\n const dispatch = useDispatch();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [lssiPincode, setLssiPincode] = useState('PERMITE');\n\n /*useEffect(() => {\n if (fields) {\n setLssiPincode(fields.lssiPincode);\n }\n }, [fields]);\n\n useEffect(() => {\n if (lssiPincode === 'PERMITE') {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n } \n }, [lssiPincode]);*/\n\n return (\n \n \n \n
\n {lssiPincode === 'PERMITE' ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n \n Mantente al día\n \n )}\n\n {lssiPincode === 'PERMITE' ? null : (\n \n )}\n \n\n \n
\n
\n \n {lssiPincode === 'PERMITE' ? (\n null\n ) : (\n null\n )}\n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm} from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThanKYouLEM = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { FormInfo } from 'src/types';\nimport { LeadGenericoForm, LeadsFormsProps } from '../LeadGenericoForm';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n ConsentQuestion\n} from 'src/components';\nimport { ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads } from 'src/forms/Leads';\nimport { Steps } from 'src/types';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { leadsCitaVentaData, leadsCitaVentaDealerData } from '.';\nimport { MapaLeadsInPage, partialDataCitaConfigurador } from 'src/forms/LeadsInPage';\n\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nenum CitaVentaSteps {\n Mapa,\n Modelo,\n NombreApellido,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\n\nexport function CitaVentaForm({ inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (isLeadDealer) {\n setPartialData(leadsCitaVentaDealerData);\n } else {\n setPartialData(leadsCitaVentaData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n isLeadDealer ? null :\n {\n screenIndex: CitaVentaSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n ¿{isLeadDealer ? \"Qué \" : \"Y qué \"}modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>\n Para poder preparar tu visita, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CitaVentaSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: CitaVentaSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsCitaVentaData: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n\nexport const leadsCitaVentaDealerData: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita-dealer',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { LastNavigation, PoliticaPrivacidad, GeneralConfirmacionLayerWrapper, LegalesFormatoLayer } from 'src/components';\nimport icon from './icon.svg'\nimport { useSelector, useStore } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { removePTags } from './helpers';\n\nconst PoliticaWrapper = styled.div`\n width: 100%;\n display: flex;\n justify-content: center;\n`\n\nexport const ConfirmacionLeadsNoQuestions = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const isLayer = formInfo?.formType === 'layer' || !formInfo?.notALayer;\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 React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useGetInstalaciones,\n useGetWaidLitera,\n useOneFormContext\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n CarlineBase,\n FormDataGroup,\n FormDataHeaders,\n FormInfo,\n 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 { getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport {\n getDescInterestCarline,\n getConfiguradorComercialesData,\n getOfertasComercialesData\n} from './helpers';\nimport { LeadGenericoFormProps } from './LeadGenericoForm';\nimport { MultipleCTASelection } from 'src/components';\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\nconst getSfCampaignName = (formName: string, carline: CarlineBase) => {\n\tif (isOfertasForm(formName) && carline?.campaign?.salesforce) {\n\t\tconst sfCampaignName = [];\n\t\tsfCampaignName[\"headers[SF_CAMPAIGN_NAME]\"]=carline?.campaign?.salesforce;\n\t\treturn { ...sfCampaignName };\n\t}\n\treturn null;\n\t};\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', 'LCV_SF_LEAD_INSTALLATION'); // llama al metodo getInstallations()\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\n const {\n VGED_CommercialName__c,\n ShippingStreet,\n VGED_DealerCode__c,\n ShippingStateCode,\n KVPSCode__c,\n Id\n } = selectedInstallation;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_URL]': url,\n 'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n 'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FORM_OBJECTIVE]': getDescFormObjective(fields.formName, selectedCarline, headers),\n\t\t...getSfCampaignName(fields.formName, dealersInfo?.selectedCarline),\n\n ...formatFlags(flags), // Flags comunes a todos los formularios de leads\n ...formatFields(fields.formFields), // Fields comunes a todos los formularios de leads\n\n 'fields[DPS_BRAND]': 'Volkswagen CV',\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n\t\t'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Contact Center Qualification',\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${fields.prefix}${fields.cellphone}`,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_PREFIX]': fields.prefix,\n 'fields[PERSON_PREFERRED_CHANNEL]': fields.contacto,\n 'fields[PERSON_PREFERRED_SLOT]': fields.contacto === 'Teléfono' ? fields.horarioContacto : undefined,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': ShippingStreet,\n 'fields[SF_LEAD_INSTALLATION_CODE]': VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_ID]': Id,\n 'fields[SF_LEAD_INSTALLATION_NAME]': VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': ShippingStateCode.toString().padStart(2, '0'),\n // 'fields[VEH_INTEREST_FUEL]': 'PENDIENTE', -> Pendiente mapear\n 'fields[VEH_INTEREST_BRAND]': 'Volkswagen CV',\n 'fields[VEH_INTEREST_ID]': dealersInfo?.selectedCarline?.code,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n 'fields[VEH_INTEREST_SALESGROUP]': salesGroup?.salesGroupName,\n 'fields[VEH_INTEREST_SALESGROUP_ID]': salesGroup?.salesGroupId,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_LINK]': url,\n ...getDpsFields(faContent),\n //...getSalesGroup(salesGroup),\n //...getHorario(fields.horario),\n\n ...(await getOfertasComercialesData(formData, dealersInfo)),\n //...(await getMatchData(formData, dealersInfo, faContent)), Match no disponible en LCV\n ...(await getConfiguradorComercialesData(formData)),\n\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n // const response = await dpsSend(formDataInfo);\n const response = await oneformBFFNdpsSend(formDataInfo);\n\n if (response && response.data && response.data.status && response.data.status.code && response.data.status.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const 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' || contacto === 'Telefono') {\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_CAMPAIGNBLOCK: '9. VW LEM',\n FK_SYSTEM: 'LCV_DDB_FRM_LEM_REC_LEM',\n DPS_TOKEN: 'LCV_DDB_FRM_LEM_REC_LEM',\n FORM_ID: waid ? waid : '',\n ...leadData.headers,\n },\n flags: {\n PERSON_RGPD_ADAPTED: 'true',\n FLAG_IS_MYSTERY_LEAD: 'false',\n FLAG_RELACION_MARCA_SIN_IC: 'false',\n FLAG_SF_INTEGRATION: 'true',\n FLAG_IS_COMPANY: '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 React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\n useGetInstalaciones,\n useGetWaidLitera,\n useOneFormContext,\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {\n CarlineBase,\n FormDataGroup,\n FormDataHeaders,\n FormInfo,\n Horario,\n OneFormState,\n Steps,\n} from 'src/types';\nimport { ThankYouLeads } from '.';\nimport {\n formatFields,\n formatFlags,\n formatHeaders,\n formDataBuilder,\n getDpsFields\n} from '../format-fields';\nimport {\n getDescInterestCarline,\n getConfiguradorData,\n getOfertasData,\n getMatchData,\n} from './helpers';\n\nexport enum LeadGenerico {\n Empezar,\n Mapa,\n Modelo,\n NombreApellido,\n EmailTelefono,\n Contacto,\n Confirmacion,\n}\n\nexport interface LeadGenericoFormProps {\n steps: Steps[];\n leadData: Partial;\n leadInfo: Partial;\n firstStep: Steps;\n lastStep: Steps;\n inPage?: boolean;\n isConfigurador?: boolean;\n}\n\nexport interface LeadsFormsProps {\n inPage?: boolean;\n isConfigurador?: boolean;\n isLeadDealer?: boolean;\n isOfertasOrMatch?: boolean;\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport const isOfertasForm = (formName: string) => formName === 'lead-oferta';\nconst getDescFormObjective = (formName: string, carline: CarlineBase, headers: FormDataHeaders) =>\n isOfertasForm(formName) && carline?.campaign?.dfo?.ofertas\n ? carline.campaign.dfo.ofertas\n : headers.FORM_OBJECTIVE;\n\nconst getSfCampaignName = (formName: string, carline: CarlineBase) => {\n\tif (isOfertasForm(formName) && carline?.campaign?.salesforce) {\n\t\tconst sfCampaignName = [];\n\t\tsfCampaignName[\"headers[SF_CAMPAIGN_NAME]\"]=carline?.campaign?.salesforce;\n\t\treturn { ...sfCampaignName };\n\t}\n\treturn null;\n\t};\n\nconst getFormDetails = (callCenterCampaign: string) => {\n\tif (callCenterCampaign) {\n\t\tconst formDetails = [];\n\t\tformDetails[\"headers[FORM_DETAILS]\"]=callCenterCampaign;\n\t\treturn { ...formDetails };\n\t}\n\treturn null;\n\t};\n\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', 'VOLKSWAGEN_SF_LEAD_INSTALLATION'); // llama al metodo getInstallations()\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const faContent = useFaContent();\n const waid = useGetWaidLitera();\n\n const getHorario = (horario: Horario) => {\n let horarioField = null;\n\n if (horario) {\n const horarioFormatted = horario === 'morning' ? 'MANANA' : horario === 'evening' ? 'MEDIODIA' : 'TARDE';\n\n horarioField = { 'fields[PERSON_PREFERRED_SLOT]': horarioFormatted };\n }\n return horarioField;\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers, flags } = formData;\n const { selectedInstallation, salesGroup, selectedCarline } = dealersInfo;\n\n const {\n VGED_CommercialName__c,\n ShippingStreet,\n VGED_DealerCode__c,\n ShippingStateCode,\n KVPSCode__c,\n Id\n } = selectedInstallation;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_URL]': url,\n 'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n 'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FORM_OBJECTIVE]': fields.formObjective ? fields.formObjective : getDescFormObjective(fields.formName, selectedCarline, headers),\n\t\t...getSfCampaignName(fields.formName, dealersInfo?.selectedCarline),\n\t\t...getFormDetails(fields.callCenterCampaign),\n\n ...formatFlags(flags), // Flags comunes a todos los formularios de leads\n ...formatFields(fields.formFields), // Fields comunes a todos los formularios de leads\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_TREATMENT]': fields.trato,\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${fields.prefix}${fields.cellphone}`,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_PREFIX]': fields.prefix,\n 'fields[PERSON_POSTAL_CP]': fields.postalCode,\n 'fields[PERSON_PREFERRED_CHANNEL]': fields.contacto,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': ShippingStreet,\n 'fields[SF_LEAD_INSTALLATION_CODE]': VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_ID]': Id,\n 'fields[SF_LEAD_INSTALLATION_NAME]': VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': ShippingStateCode.toString().padStart(2, '0'),\n // 'fields[VEH_INTEREST_FUEL]': 'PENDIENTE', -> Pendiente mapear\n 'fields[VEH_INTEREST_BRAND]': 'Volkswagen',\n 'fields[VEH_INTEREST_ID]': dealersInfo?.selectedCarline?.code,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n 'fields[VEH_INTEREST_SALESGROUP]': salesGroup?.salesGroupName,\n 'fields[VEH_INTEREST_SALESGROUP_ID]': salesGroup?.salesGroupId,\n 'fields[VEH_INTEREST_NEW_OR_USED]': 'New Car',\n 'fields[VEH_INTEREST_LINK]': inPage ? referalUrl : url,\n\t\t'fields[COMMENTS_PERSON]': fields.comments,\n\t\t'fields[COMMENTS_CONTACT_CENTER]': fields.commentsCC,\n ...getDpsFields(faContent),\n //...getSalesGroup(salesGroup),\n ...getHorario(fields.horario),\n\n ...(await getOfertasData(formData, dealersInfo)),\n ...(await getMatchData(formData, dealersInfo, faContent)),\n ...(await getConfiguradorData(formData)),\n\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n // const response = await dpsSend(formDataInfo);\n const response = await oneformBFFNdpsSend(formDataInfo);\n\n if (response && response.data && response.data.status && response.data.status.code && response.data.status.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const leadGenericoData: Partial = {\n headers: {\n // DESC_CAMPAIGNBLOCK: '9. VW LEM',\n FK_SYSTEM: 'VW_DDB_FRM_LEM_REC_LEM',\n DPS_TOKEN: 'VW_DDB_FRM_LEM_REC_LEM',\n FORM_ID: waid ? waid : 'B09C01_LEM_WA1',\n ...leadData.headers,\n },\n flags: {\n PERSON_RGPD_ADAPTED: 'true',\n FLAG_IS_MYSTERY_LEAD: 'false',\n FLAG_RELACION_MARCA_SIN_IC: 'false',\n FLAG_SF_INTEGRATION: 'true',\n FLAG_ALLOWS_DATA_ENRICHMENT: 'false',\n // FLAG_ISQUALIFIED: 'false',\n // FLAG_MAILRECEPCIONLEAD: 'true',\n // REQUIERE_CONTACTO_DEALER: 'false',\n },\n fields: {\n ...leadData.fields\n },\n };\n\n const leadGenericoInfo: Partial = {\n formStarted: true,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n sendFormCallback: sendForm,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory: [steps[0].screenIndex],\n thankYouComponent: ,\n notALayer: inPage ? true : false,\n formTheme: inPage ? 'main' : 'inverted',\n formType: inPage ? 'inPage' : 'layer',\n ...leadInfo,\n };\n\n useEffect(() => {\n initializeForm(leadGenericoInfo, leadGenericoData);\n setLoading(false);\n }, []);\n\n return loading ? null : ;\n}\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport {\n getDistanceFromLatLngCenter,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\n\nexport const JourneyLeadsController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[]): JSX.Element[] => {\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvince('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n\n handleNextStep();\n }, []);\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyLeadsController } from './';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyLeadsController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyLeadsWrapper = () => {\n return (\n \n \n \n );\n};\n","\nimport React, { useEffect, useState } from 'react';\nimport { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { MultipleCTASelection } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app';\nimport { RenderController, OneElementTemplate } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { LocateUser } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyLeadsWrapper } from './JourneyLeadsWrapper';\nimport { CTAsHorario } from 'src/feature-app/InputsValues';\n\nenum MapaLeadsSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaLeadsProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst renderTitle = (formName: string) => {\n return (\n <>\n {formName === 'presupuesto' || formName === 'masInformacion' || formName === 'oferta' ? (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ) : (\n <>\n {formName === 'testDrive' ? (\n \n {' '}\n ¿Dónde prefieres{' '}\n \n provarlo?*\n \n \n ) : (\n \n {' '}\n ¿A dónde quieres{' '}\n \n ir?*\n \n \n )}\n \n )}\n \n );\n};\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaLeads(props: MapaLeadsProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { dealer }: { dealer?: DealersData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n } = useOneFormContext();\n\n let stepsHorario: Steps[] = [\n {\n title: <>{renderTitle(formName)},\n fields: ,\n screenIndex: MapaLeadsSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: MapaLeadsSteps.Horario,\n name: 'MapSlotPref',\n title: (\n <>\n ¿Cúando prefieres pasar por el{' '}\n \n punto de venta?*\n \n \n ),\n fields: (\n } />\n ),\n outputs: ['horario'],\n outputsText: ['horario'],\n },\n {\n screenIndex: MapaLeadsSteps.SeleccionCita,\n name: 'MapSelect',\n alternateTitle: (\n <>\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n {formName === 'presupuesto' ?\n (\n
\n Los encargados de elaborar un presupuesto son los asesores de la red de Concesionarios Oficial Volkswagen. Elige uno y le enviaremos tu petición para que te haga una propuesta a medida.{' '}\n
\n )\n : null\n }\n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n let stepsWithoutHorario: Steps[] = [\n {\n title: (\n <>\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n {formName === 'presupuesto' ?\n (\n
\n Los encargados de elaborar un presupuesto son los asesores de la red de Concesionarios Oficial Volkswagen. Elige uno y le enviaremos tu petición para que te haga una propuesta a medida.{' '}\n
\n )\n : null\n }\n \n ),\n fields: ,\n screenIndex: MapaLeadsSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const steps = showHorario ? stepsHorario : stepsWithoutHorario;\n const [selectedStep, setSelectedStep] = useState(null);\n\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n handleFirstLoad();\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n setTimeout(() => {\n setShowPreviousStep(false);\n }, TIME_FOR_TRANSFORM);\n }\n }\n setNextMultiStep(() => nextMapaLeads);\n setPreviousMultiStep(() => previousMapaLeads);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaLeads = () => {\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if (multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaLeads = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n return selectedStep ? (\n \n \n \n ) : null;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { CanalDeContacto, CarlineSelect, PantallaNombreApellido, Email, Telefono, CodigoPostal, ContactInfoWrapper } from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport {\n DetalleMotivo,\n ConsentQuestion\n} from 'src/components';\nimport { FormInfo, Steps } from 'src/types';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { leadsMasInformacionDealerPartialData, leadsMasInformacionPartialData } from '.';\nimport { MapaLeadsInPage, PartialDataMasInformacionConfigurador } from 'src/forms/LeadsInPage';\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nenum MasInformacionSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Comentarios,\n Confirmacion,\n}\n\n\nexport function MasInformacionForm({ updatedFormData, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } else if (isLeadDealer) {\n setPartialData(leadsMasInformacionDealerPartialData);\n } else {\n setPartialData(leadsMasInformacionPartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: MasInformacionSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder preparar tu visita, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: MasInformacionSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿Quieres saber algo en concreto?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: MasInformacionSteps.Comentarios,\n name: 'Comentarios',\n outputs: ['comments'],\n outputsText: ['comments'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsMasInformacionPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n\nexport const leadsMasInformacionDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion-dealer',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { CanalDeContacto, Email, ContactInfoWrapper, PantallaNombreApellido, Telefono, CodigoPostal, ConsentQuestion } from 'src/components';\nimport { OneElementTemplate } from 'src/feature-app/Screen/Templates';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { FormDataGroup, FormInfo, Steps } from 'src/types';\nimport { ConfirmacionLeads } from '../ConfirmacionLeads';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\n\nexport enum OfertaSteps {\n Contacto,\n EmailTelefono,\n Mapa,\n NombreApellido,\n CodigoPostal,\n}\n\nexport function OfertaForm() {\n const isComerciales = useIsComerciales();\n\n const formSteps: Steps[] = [\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 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\n const confirmSteps: Steps[] =\n [\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n screenIndex: formSteps.length,\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n screenIndex: formSteps.length + 1,\n },\n {\n fields: ,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n screenIndex: formSteps.length + 2,\n },\n ]\n ;\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm([...formSteps, ...confirmSteps], true);\n\n const citaVentaData: Partial = {\n headers: isComerciales ? { FORM_OBJECTIVE : 'SF201903221335'} : {FORM_OBJECTIVE : 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'Presupuesto',\n formName: 'lead-oferta',\n formType: 'quote',\n pageCategory: 'Oferta',\n },\n };\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n CodigoPostal,\n ConsentQuestion\n} from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { FormInfo, Steps } from 'src/types';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { leadsPresupuestoDealerPartialData, leadsPresupuestoPartialData } from '.';\nimport { MapaLeadsInPage, PresupuestoPartialDataConfigurador } from 'src/forms/LeadsInPage';\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nexport enum PresupuestoSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\nexport function PresupuestoForm({ updatedFormData, isOfertasOrMatch, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } else if(isLeadDealer){\n setPartialData(leadsPresupuestoDealerPartialData);\n }\n else {\n setPartialData(leadsPresupuestoPartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te interesa?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: PresupuestoSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n }\n />\n :\n \n \n \n }\n />\n }\n \n ),\n screenIndex: PresupuestoSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: PresupuestoSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: PresupuestoSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsPresupuestoPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n\n};\n\nexport const leadsPresupuestoDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-dealer',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n","import React from 'react';\nimport { MasInformacionForm } from '../MasInformacion';\nimport { leadsStockPartialData } from '.';\n\nexport function StockForm() {\n return ;\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsStockPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Stock' },\n fields: {\n formFields: { COMMENTS_BRAND: 'Usuario interesado en vehículos de stock sin haber encontrado disponibilidad en el rango de KM seleccionados' },\n formularioFlag: 'masInformacion',\n formName: 'lead-stock',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n\nexport const leadsStockInPagePartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Stock' },\n fields: {\n ...leadsStockPartialData.fields,\n formFields: undefined\n },\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport {\n CanalDeContacto,\n CarlineSelect,\n ContactInfoWrapper,\n PantallaNombreApellido,\n Email,\n Telefono,\n CodigoPostal,\n ConsentQuestion\n} from 'src/components';\nimport { ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormInfo, Steps } from 'src/types';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { MapaLeads } from '../MapaLeads';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { leadsTestDriveDealerPartialData, leadsTestDrivePartialData } from '.';\nimport { MapaLeadsInPage, PartialDataTestDriveConfigurador } from 'src/forms/LeadsInPage';\n\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nexport enum TestDriveSteps {\n Modelo,\n Mapa,\n NombreApellido,\n CodigoPostal,\n Contacto,\n EmailTelefono,\n Confirmacion,\n}\n\nexport function TestDriveForm({ updatedFormData, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n const isComerciales = useIsComerciales();\n const [partialData, setPartialData] = useState(null);\n\n useEffect(() => {\n if (updatedFormData) {\n setPartialData(updatedFormData);\n } if (isLeadDealer) {\n setPartialData(leadsTestDriveDealerPartialData);\n } else {\n setPartialData(leadsTestDrivePartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n title: (\n <>\n ¿Qué modelo te apetece conducir?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: TestDriveSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder contactar contigo, necesitamos saber quién eres\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n También nos gustaría conocer tu código postal\n \n ),\n fields:\n (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que contactemos contigo?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: TestDriveSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos tus datos de contacto\n \n ),\n fields: (\n <>\n {inPage ?\n \n \n \n \n }\n />\n :\n \n \n \n \n }\n />\n }\n \n ),\n screenIndex: TestDriveSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsTestDrivePartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n\nexport const leadsTestDriveDealerPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive-dealer',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n","import React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { useGetBrand } from 'src/feature-app/hooks';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { DealersInfo, FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n dealersInfo: DealersInfo;\n inPage?: boolean;\n}\n\nconst copysThankYou = [\n {\n name: 'lead-presupuesto',\n titleCopyRegular: 'Pronto recibirás',\n titleCopyBold: 'el presupuesto para tu ',\n bodyCopy: ['Un asesor contactará contigo para hacerte llegar la información que necesitas.'],\n },\n {\n name: 'lead-oferta',\n titleCopyRegular: 'Estás muy cerca de conducir',\n titleCopyBold: 'tu ',\n bodyCopy: ['Un asesor contactará contigo muy pronto para darte todos los detalles sobre esta oferta.'],\n },\n {\n name: 'lead-match',\n titleCopyRegular: 'Estás muy cerca de conducir',\n titleCopyBold: 'tu ',\n bodyCopy: ['Un asesor contactará muy pronto contigo para hacerte una oferta a medida.'],\n },\n {\n name: 'lead-mas_informacion',\n titleCopyRegular: 'Pronto recibirás',\n titleCopyBold: 'más información sobre el ',\n bodyCopy: ['Un asesor contactará contigo para responder a todas tus preguntas.'],\n },\n {\n name: 'lead-stock',\n titleCopyRegular: 'Pronto ',\n titleCopyBold: 'responderemos a tus preguntas',\n bodyCopy: ['Un asesor contactará contigo para explicártelo todo sobre nuestros modelos con disponibilidad inmediata.'],\n },\n {\n name: 'lead-cita',\n titleCopyRegular: 'Te esperamos en',\n titleCopyBold: '',\n bodyCopy: [\n 'Ya hemos recibido tu solicitud, ',\n '. Muy pronto, un asesor contactará contigo para terminar de cerrar tu cita.',\n ],\n },\n {\n name: 'lead-test_drive',\n titleCopyRegular: 'Te esperamos en',\n titleCopyBold: '',\n bodyCopy: [\n 'Un asesor te llamará pronto para terminar de confirmar contigo los detalles de la prueba de conducción.',\n ],\n },\n {\n name: 'lead-call_center',\n titleCopyRegular: 'Lead enviado a',\n titleCopyBold: '',\n bodyCopy: [\n 'Un asesor contactará con el lead para responder a sus preguntas.',\n ],\n }\n];\n\nfunction ThankYouLeads(props: ThankYouProps) {\n const { dealersInfo, inPage } = props;\n const { formInfo, formData } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const { modelo, formName, name: nombre } = formData.fields;\n const { oferta } = dealersInfo;\n const { match } = dealersInfo;\n\n const dispatch = useDispatch();\n const brand = useGetBrand();\n const trackingManager = useTrackingManager();\n\n const [completeInfo, setCompletInfo] = useState(null);\n const [completarBold, setCompletarBold] = useState(null);\n const [bodyCopy, setbodyCopy] = useState('');\n const [ctaUrl, setCtaUrl] = useState(null);\n\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n const aux = copysThankYou.filter((a: any) => {\n return formName.includes(a.name);\n });\n setCompletInfo(aux);\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n useEffect(() => {\n if (completeInfo && completeInfo.length > 0) {\n\n if (completeInfo[0].bodyCopy.length === 1) {\n setbodyCopy(completeInfo[0].bodyCopy[0]);\n } else {\n const aux = completeInfo[0].bodyCopy[0] + nombre + completeInfo[0].bodyCopy[1];\n setbodyCopy(aux);\n }\n\n if (formName === 'lead-oferta') {\n setCompletarBold(oferta.carline.title);\n } else if (formName === 'lead-match') {\n setCompletarBold(match.carline.title);\n } else if (formName === 'lead-stock') {\n setCompletarBold('');\n } else {\n if (formName.includes('lead-presupuesto') || formName.includes('lead-mas_informacion')) {\n setCompletarBold(modelo);\n } else {\n setCompletarBold(dealersInfo.selectedInstallation.VGED_CommercialName__c);\n }\n }\n }\n }, [completeInfo]);\n\n useEffect(() => {\n if (formName === 'lead-oferta') {\n if (brand === 'V') {\n setCtaUrl(`https://www.volkswagen.es/es/modelos/${oferta.carline.name}.html`);\n } else if (brand === 'N') {\n setCtaUrl(`https://www.volkswagen-comerciales.es/es/modelos/${oferta.carline.name}.html`);\n }\n } else if (formName === 'lead-match') {\n setCtaUrl(`https://www.volkswagen.es/es/modelos/${match.carline.name}.html`);\n }\n }, [dealersInfo]);\n\n const ofertasComercialesFields = 'En breve te llamaremos desde un número terminado en 904.';\n\n const screen: Steps = {\n title: (\n <>\n {completeInfo && completeInfo.length > 0 ? (\n inPage ?\n \n : (\n formName === 'lead-oferta' && brand === 'N' ?\n \n :\n \n )\n\n ) : null\n }\n \n ),\n fields: (\n <>\n {\n inPage ?\n \n :\n \n }\n \n ),\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n dealersInfo: state.dealersInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouLeads);\n\nexport { ConnectedComponent as ThankYouLeads };\n","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 { getModelFilter, getOption } from 'src/bff/get-marketing-code';\nimport { FormDataGroup } from 'src/types';\nimport { isOfertasForm } from '../LeadGenericoForm';\n\nexport const getConfiguradorData = async (formData: FormDataGroup) => {\n const { fields } = formData;\n const { marketingCodeData, marketingCodeResponse } = fields;\n\n if (!marketingCodeResponse) return null;\n //const price = await getPriceDataWithMarketingCode(marketingCodeResponse);\n\n const type = getOption(\"TYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const salesgroup = getOption(\"SALESGROUP\",marketingCodeResponse?.content.consolidatedData.options);\n const trimline = getModelFilter(\"EquipmentLine\",marketingCodeResponse?.content.consolidatedData.meta.modelFilter);\n\n let configuradorData = {\n 'fields[VEH_INTEREST_ID]': marketingCodeResponse?.content.consolidatedData.model_code.split(\"_\")[1],\n 'fields[VEH_INTEREST_MODEL]': marketingCodeResponse?.content.consolidatedData.model_description,\n 'fields[VEH_INTEREST_SALESGROUP]': salesgroup.option.description,\n 'fields[VEH_INTEREST_SALESGROUP_ID]': salesgroup.option.code.split(\":\")[1],\n 'fields[VEH_INTEREST_TRIM_LINE]': trimline.modelFilter.text,\n 'fields[VEH_INTEREST_DETAILS]': type.option.description,\n // 'fields[VEH_INTEREST_MORE_INFO]': \"Color pintura exterior: \" + marketingCodeResponse?.consolidatedData?.exterior?.name, // Pendiente recuperar color exterior\n 'fields[VEH_INTEREST_CONFIGURATION_CODE]': marketingCodeData?.marketingCode,\n /*\n 'fields[VEH_INTEREST_OFFER_PRICE]': price?.body?.amount\n ? `Precio final de la configuración: ${price?.body?.amount}Eur`\n : undefined,\n */\n };\n\n //Si es un form de ofertas no es relevante el precio de la configuración ni su Marketing Code\n if(isOfertasForm(fields.formName)){\n delete configuradorData['fields[VEH_INTEREST_CONFIGURATION_CODE]'];\n // delete configuradorData['fields[VEH_INTEREST_OFFER_PRICE]'];\n }\n\n return configuradorData;\n};\n\nexport const getConfiguradorComercialesData = async (formData: FormDataGroup) => {\n const { fields } = formData;\n const { marketingCodeData, marketingCodeResponse } = fields;\n\n if (!marketingCodeResponse) return null;\n //const price = await getPriceDataWithMarketingCode(marketingCodeResponse);\n console.log(marketingCodeResponse);\n\n const type = getOption(\"TYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const salesgroup = getOption(\"SALESGROUP\",marketingCodeResponse?.content.consolidatedData.options);\n const trimline = getModelFilter(\"EquipmentLine\",marketingCodeResponse?.content.consolidatedData.meta.modelFilter);\n\n\n let configuradorData = {\n 'fields[VEH_INTEREST_ID]': `${marketingCodeResponse?.content.consolidatedData.model_code.split(\"_\")[1]}_${salesgroup?.option.code.replace('SALESGROUP:','')}`,\n 'fields[VEH_INTEREST_MODEL]': marketingCodeResponse?.content.consolidatedData.model_description,\n 'fields[VEH_INTEREST_SALESGROUP]': salesgroup.option.description,\n 'fields[VEH_INTEREST_SALESGROUP_ID]': salesgroup.option.code.split(\":\")[1],\n 'fields[VEH_INTEREST_TRIM_LINE]': trimline.modelFilter.text,\n 'fields[VEH_INTEREST_DETAILS]': type.option.description,\n // 'fields[VEH_INTEREST_MORE_INFO]': \"Color pintura exterior: \" + marketingCodeResponse?.consolidatedData?.exterior?.name, // Pendiente recuperar color exterior\n 'fields[VEH_INTEREST_CONFIGURATION_CODE]': marketingCodeData?.marketingCode,\n /*\n 'fields[VEH_INTEREST_OFFER_PRICE]': price?.body?.amount\n ? `Precio final de la configuración: ${price?.body?.amount}Eur`\n : undefined,\n */\n };\n\n //Si es un form de ofertas no es relevante el precio de la configuración ni su Marketing Code\n if(isOfertasForm(fields.formName)){\n delete configuradorData['fields[VEH_INTEREST_CONFIGURATION_CODE]'];\n // delete configuradorData['fields[VEH_INTEREST_OFFER_PRICE]'];\n }\n\n return configuradorData;\n};\n","import { OneFormContent } from 'src';\nimport { appendJsonKey } from 'src/forms';\nimport { getFeatures, getMarketingCode, getModelFilter, getOption } from 'src/bff/get-marketing-code';\nimport {\n DealersInfo,\n FormDataGroup,\n HighlightsReturn,\n LuggageReturn,\n MatchSelectedOptions,\n Offer,\n PassengersTypes,\n RankedPreconfiguration,\n UsageReturn,\n} from 'src/types';\n\nconst getMatchHash = () => {\n const searchParams = new URLSearchParams(window?.location?.search);\n const hash = searchParams.get('match-app');\n return hash;\n};\n\nexport const isMatchForm = (formName: string) => formName === 'lead-match' || formName === 'prospect-match';\n\nexport const getMatchData = async (formData: FormDataGroup, dealersInfo: DealersInfo, faContent: OneFormContent) => {\n const { fields } = formData;\n const { match } = dealersInfo;\n\n if (!isMatchForm(fields.formName)) {\n return null;\n } else {\n const { response: marketingCodeResponse } = await getMarketingCode(match.marketingCode);\n\n const salesgroup = getOption(\"SALESGROUP\",marketingCodeResponse?.content.consolidatedData.options);\n const type = getOption(\"TYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const baseType = getOption(\"BASETYPE\",marketingCodeResponse?.content.consolidatedData.options);\n const equipmentLine = getModelFilter(\"EquipmentLine\",marketingCodeResponse?.content.consolidatedData.meta.modelFilter);\n\n const matchFields = {\n ...marketingCodeFields,\n // 'fields[COD_INTEREST_CARLINE]': match?.carlineCode,\n // 'fields[DESC_INTEREST_CARLINE]': match?.carlineTitle,\n // 'fields[DESC_FINANCIAL_PRODUCT]': match?.financiacionText?.slice(4),\n // 'fields[DESC_VEH_MARKETING_CODE]': match?.marketingCode,\n // 'fields[DESC_VEH_OFFER_PRICE]': createOfferPrice(match),\n // 'fields[COD_INTEREST_PR]': getFeatures(response?.consolidatedData?.features),\n 'fields[CREATIVITY_PERSONALIZATION_DATA]': getMatchHash(),\n 'fields[MATCH_AFFINITY]': match?.affinity,\n 'fields[MATCH_PRICE]': match?.precio,\n 'fields[MATCH_DGT_BADGE]': match?.etiquetaDGT.toUpperCase(),\n 'fields[MATCH_USER_JOURNEY]': fields?.argumentatives,\n };\n\n const matchOptions = getMatchOptions(faContent?.matchOptions);\n\n return { ...matchFields, ...matchOptions };\n }\n};\n\n\n\nconst getMatchOptions = (options: MatchSelectedOptions) => {\n if (!options) {\n return null;\n }\n\n return {\n 'fields[MATCH_BUDGET]': options.budget,\n 'fields[MATCH_COMPANION]': appendJsonKey(getPassengers(options.passengers)),\n 'fields[MATCH_TRIP]': appendJsonKey(getUsage(options.usage)),\n 'fields[MATCH_BAGGAGE]': appendJsonKey(getLuggage(options.luggage)),\n 'fields[MATCH_CAR_CHARACTERISTICS]': appendJsonKey(getHighlights(options.highlights)),\n 'fields[MATCH_ENGINE]': options.fuel,\n };\n};\n\nconst getPassengers = (passengers: PassengersTypes) => {\n if (!Array.isArray(passengers)) {\n return { adult: 0, kid: 0 };\n }\n return { adult: passengers[0], kids: passengers[1] };\n};\n\nconst getLuggage = (lugagge: number[]): string[] => {\n const lugaggeOptions: LuggageReturn[] = [\n 'unaMaleta',\n 'escapada',\n 'unaSemana',\n 'unMes',\n 'mascota',\n 'bici',\n 'surf',\n 'snow',\n ];\n const [unaMaleta, escapada, unaSemana, unMes, mascota, bici, surf, snow] = lugagge;\n const options = { unaMaleta, escapada, unaSemana, unMes, mascota, bici, surf, snow };\n\n return lugaggeOptions.filter((option) => options[option] === 1);\n};\n\nconst getUsage = (usage: number[]): string[] => {\n const usageOptions: UsageReturn[] = ['urban', 'interurban', 'long', 'allterrain'];\n const [urban, interurban, long, allterrain] = usage;\n const options = { urban, interurban, long, allterrain };\n\n return usageOptions.filter((option) => options[option] === 1);\n};\n\nconst getHighlights = (highlights: number[]): string[] => {\n const hihglightsOptions: HighlightsReturn[] = [\n 'atrevido',\n 'comodo',\n 'deportivo',\n 'sostenible',\n 'elegante',\n 'seguro',\n 'sonido',\n 'tecnologico',\n ];\n const [atrevido, comodo, deportivo, sostenible, elegante, seguro, sonido, tecnologico] = highlights;\n const options = { atrevido, comodo, deportivo, sostenible, elegante, seguro, sonido, tecnologico };\n\n return hihglightsOptions.filter((option) => options[option] === 1);\n};\n\nconst createOfferPrice = (match: RankedPreconfiguration) => {\n return `Precio final de la configuración: ${match.precio}Eur`;\n};\n","import { DealersInfo, FormDataGroup, Offer } from 'src/types';\nimport { formatHeaders } from '../../format-fields';\nimport { isOfertasForm } from '../LeadGenericoForm';\n\nexport const getOfertasData = async (formData: FormDataGroup, dealersInfo: DealersInfo) => {\n const { fields } = formData;\n const { oferta } = dealersInfo;\n\n if (!isOfertasForm(fields.formName)) {\n return null;\n } else {\n const headers = {\n FORM_NAME: 'vw-oneform-lead-oferta',\n };\n\n const ofertaFields = {\n 'fields[VEH_INTEREST_ID]': oferta.carline.code,\n 'fields[VEH_INTEREST_MODEL]': `${oferta.carline.nuevo ? 'Nuevo ' : ''}${oferta.carline.title}`,\n 'fields[VEH_INTEREST_FINANCIAL_PRODUCT]': oferta.financiacionText?.slice(4),\n 'fields[VEH_INTEREST_OFFER_DETAIL]': createOfferPrice(oferta),\n 'fields[COMMENTS_BRAND]': getObservationBrand(oferta),\n };\n\n return { ...formatHeaders(headers), ...ofertaFields };\n }\n};\n\nexport const getOfertasComercialesData = async (formData: FormDataGroup, dealersInfo: DealersInfo) => {\n const { fields } = formData;\n const { oferta } = dealersInfo;\n\n if (!isOfertasForm(fields.formName)) {\n return null;\n } else {\n const headers = {\n FORM_NAME: 'vw-oneform-lead-oferta',\n };\n\n const ofertaFields = {\n 'fields[VEH_INTEREST_ID]': oferta.carline.code+\"_\"+oferta.carline.salesgroup.code,\n 'fields[VEH_INTEREST_MODEL]': `${oferta.carline.nuevo ? 'Nuevo ' : ''}${oferta.carline.salesgroup.name}`,\n 'fields[VEH_INTEREST_FINANCIAL_PRODUCT]': oferta.financiacionText?.slice(4),\n 'fields[VEH_INTEREST_OFFER_DETAIL]': createOfferPrice(oferta),\n 'fields[COMMENTS_BRAND]': getObservationBrand(oferta),\n };\n\n return { ...formatHeaders(headers), ...ofertaFields };\n }\n};\n\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 removePTags = (htmlString: string) => {\n const regex = /<\\/?p[^>]*>/g;\n return htmlString.replace(regex, '');\n}","import {useEffect, useReducer} from 'react';\nimport {useDispatch} from 'react-redux';\nimport {getDataUrl, getSalesgroups} from 'src/bff';\nimport {OneFormContent, useFaContent, useFeatureServices} from 'src/feature-app';\nimport {findCarlineFromSalesgroup, findCarline, isCarlineMode, isConfiguratorMode} from 'src/components';\nimport {CarlineBase, CarlinesWithSalesgroups, SalesGroupInfo, Steps} from 'src/types';\nimport {useIsComerciales} from 'src/feature-app/hooks';\nimport {removeStep, resetStepsScreenIndex} from '../helpers/add-remove-steps';\nimport {getMarketingCode} from 'src/bff';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\nconst carlineInFaContent = (faContent: OneFormContent) => faContent?.carlines && faContent.carlines.length === 1;\nconst salesgroupInFaContent = (faContent: OneFormContent) =>\n\tfaContent?.salesgroups && faContent.salesgroups.length === 1;\nconst findSalesgroup = (carline: CarlinesWithSalesgroups, salesgroupId: string) =>\n\tcarline?.salesGroups?.find((salesgroup) => salesgroup.code === Number(salesgroupId));\n\ninterface LeadsInitialConfig {\n\tloading: boolean;\n\tsteps: Steps[];\n\tfirstStep: Steps;\n\tlastStep: Steps;\n}\n\nconst updateSteps = (steps: Steps[]) => {\n\treturn {\n\t\ttype: 'UPDATE_STEPS',\n\t\tpayload: steps,\n\t};\n};\n\nconst reducer = (state: LeadsInitialConfig, action: any): LeadsInitialConfig => {\n\tswitch (action.type) {\n\t\tcase 'UPDATE_STEPS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tsteps: action.payload,\n\t\t\t\tfirstStep: action.payload[0],\n\t\t\t\tlastStep: getLastItemOfSteps(action.payload),\n\t\t\t\tloading: false,\n\t\t\t};\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\nconst initialState: LeadsInitialConfig = {\n\tloading: true,\n\tsteps: [],\n\tfirstStep: null,\n\tlastStep: null,\n};\n\nexport const createSalesgroup = (code: string | number, name: string) => {\n\tif (!code && !name) {\n\t\treturn null;\n\t}\n\treturn {salesGroupId: String(code), salesGroupName: String(name)};\n};\n\nexport function useInitializeLeadForm(defaultSteps: Steps[], isEmbedded?: boolean, isInPage?: boolean) {\n\tconst dispatch = useDispatch();\n\tconst faContent = useFaContent();\n\tconst {'car-configuration': carConfigurationService} = useFeatureServices();\n\tconst [state, dispatchLead] = useReducer(reducer, initialState);\n\tconst {loading, firstStep, lastStep, steps} = state;\n\tconst isComerciales = useIsComerciales();\n\n\t/**\n\t * Functions\n\t */\n\tconst requestCarlines = async () => {\n\t\tlet carlines = await getSalesgroups();\n\n\t\tdispatch({type: 'SET_CARLINES', payload: carlines});\n\n\t\treturn carlines;\n\t};\n\n\tconst getCarlineInfo = async (carline: string) => {\n\t\tlet dataRes: any;\n\t\tawait fetch(`${getDataUrl()}/getCarlineSalesgroups/${carline}`)\n\t\t\t.then((res) => res.json())\n\t\t\t.then((data) => (dataRes = data));\n\t\treturn dataRes;\n\t};\n\n\tconst getModelFromUrl = () => {\n\t\tconst path = window.location.pathname;\n\t\tlet htmlIndex: number;\n\t\tlet carlineName: string;\n\t\tlet salesGroup: string;\n\t\tconst splittedPath = path.split('/');\n\t\tsplittedPath.filter((e, index) => e.includes('.html') && (htmlIndex = index));\n\t\tcarlineName = splittedPath[htmlIndex + 1]?.replace('.app', '');\n\n\t\tconst hasSalesGroup = () => splittedPath[htmlIndex + 2]?.includes('.app');\n\t\thasSalesGroup() && (salesGroup = splittedPath[htmlIndex + 2]?.replace('.app', ''));\n\t\treturn [carlineName, salesGroup];\n\t};\n\n\tconst findAsset = (mediaAssets: any[], assetName: string) => mediaAssets.find((asset) => asset.mpsId === assetName);\n\n\tconst getAsset = (mediaAssets: any[], assetName: string): string => {\n\t\tconst asset = findAsset(mediaAssets, assetName);\n\t\tlet assetUrl = asset.asset;\n\n\t\tif (assetUrl.includes('r-media') && assetUrl.includes('.jpg')) {\n\t\t\tassetUrl = assetUrl.replace('.jpg', '.png');\n\t\t}\n\n\t\treturn assetUrl;\n\t};\n\n\t/**\n\t * Set initial Product Data based on Form Context and returns Carline and Salesgroup.\n\t */\n\tconst setInitialProductData = (carlines: CarlineBase[]): {carline: CarlineBase; salesgroup: SalesGroupInfo} => {\n\t\tlet carlineCode: string = carConfigurationService.get().carlineId;\n\t\tlet salesgroupId = carConfigurationService.get().salesGroupId;\n\n\t\tlet carline = undefined;\n\t\tlet salesgroup = undefined;\n\n\t\tif ((isEmbedded && faContent?.oferta) || (isEmbedded && faContent?.match)) {\n\t\t\t// Ofertas or Match Form Embedded\n\t\t\tlet offerOrPreconfiguration = faContent?.oferta ? faContent.oferta : faContent.match;\n\t\t\tcarline = findCarline(carlines, offerOrPreconfiguration.carline.code);\n\t\t\tsalesgroup = createSalesgroup(\n\t\t\t\tfaContent.marketingCodeConfig?.SalesgroupId,\n\t\t\t\tfaContent.marketingCodeConfig?.SalesgroupName,\n\t\t\t);\n\n\t\t\t//Initialize MarketingCode and store it\n\t\t\tgetMarketingCode(offerOrPreconfiguration.marketingCode)\n\t\t\t\t.then((res) => {\n\t\t\t\t\tconsole.log(res);\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\t\t\tpayload: {marketingCodeResponse: res.response},\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch((err) => {});\n\n\t\t\tdispatch({type: 'SET_OFERTA', payload: offerOrPreconfiguration});\n\t\t} else if (isConfiguratorMode(faContent) && carlineCode && salesgroupId) {\n\t\t\t// Showroom Context\n\t\t\tcarline = findCarline(carlines, Number(carlineCode), Number(salesgroupId));\n\t\t\tconst salesgroupCarline = findSalesgroup(carline, salesgroupId);\n\t\t\tsalesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n\t\t} else if (carlineInFaContent(faContent)) {\n\t\t\tcarline = findCarline(carlines, faContent.carlines[0]);\n\t\t} else if (salesgroupInFaContent(faContent) && !isCarlineMode(faContent)) {\n\t\t\t// Salesgroup in faContent\n\t\t\tcarline = findCarlineFromSalesgroup(carlines, Number(faContent.salesgroups[0]));\n\t\t\tconst salesgroupCarline = findSalesgroup(carline, String(faContent.salesgroups[0]));\n\t\t\tsalesgroup = createSalesgroup(salesgroupCarline?.code, salesgroupCarline?.name);\n\t\t}\n\n\t\tdispatch({\n\t\t\ttype: 'SET_SELECTED_CARLINE',\n\t\t\tpayload: carline,\n\t\t});\n\n\t\tif (carline) {\n\t\t\tdispatch({\n\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\tpayload: {modelo: carline.title},\n\t\t\t});\n\t\t}\n\n\t\tdispatch({\n\t\t\ttype: 'SET_SALESGROUP',\n\t\t\tpayload: salesgroup,\n\t\t});\n\n\t\treturn {carline, salesgroup};\n\t};\n\n\tconst removeStepAndReset = (steps: Steps[], stepName: string) => {\n\t\tlet updatedSteps = [...steps];\n\t\tupdatedSteps = removeStep(steps, stepName);\n\t\tupdatedSteps = resetStepsScreenIndex(steps);\n\t\treturn updatedSteps;\n\t};\n\n\t/**\n\t * Set initial Form with Marketing Code\n\t */\n\tconst useLeadsWithMarketingCode = (marketingCode: string) => {\n\t\tgetMarketingCode(marketingCode)\n\t\t\t.then((res) => {\n\t\t\t\tconst D6MOFASideview = getAsset(res.response.content?.consolidatedData?.meta.mediaAssets, 'D6MOFASideview');\n\t\t\t\tconst D6Explore1 = getAsset(res.response.content?.consolidatedData?.meta.mediaAssets, 'D6Explore1');\n\t\t\t\tconsole.log(res);\n\t\t\t\tconst modelName = res.marketingCodeConfig.ModelName;\n\t\t\t\tconst marketingCodeData = {marketingCode, modelName, mediaAssets: {D6MOFASideview, D6Explore1}};\n\n\t\t\t\tlet finalSteps: Steps[] = [...defaultSteps];\n\n\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\n\t\t\t\tif (!isComerciales) {\n\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n\t\t\t\t}\n\n\t\t\t\tdispatchLead(updateSteps(finalSteps));\n\n\t\t\t\tdispatch({type: 'SET_DELETE_CLOSE_AND_PREVIOUS', payload: true});\n\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\t\tpayload: {marketingCodeData, marketingCodeResponse: res.response},\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trequestCarlines().then((carlines) => {\n\t\t\t\t\tconst {carline, salesgroup} = setInitialProductData(carlines);\n\n\t\t\t\t\tlet finalSteps: Steps[] = [...defaultSteps];\n\n\t\t\t\t\tif (!isComerciales) {\n\t\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n\t\t\t\t\t}\n\t\t\t\t\tif (carline) {\n\t\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\t\t\t\t\t}\n\t\t\t\t\tdispatchLead(updateSteps(finalSteps));\n\t\t\t\t});\n\t\t\t\t// console.log(err, 'error');\n\t\t\t});\n\t};\n\n\t/**\n\t * Set initial form with Model\n\t */\n\tconst useLeadsWithModel = async (carline: string, salesGroup?: string) => {\n\t\tawait getCarlineInfo(carline)\n\t\t\t.then((res) => {\n\t\t\t\tlet colorCode = res.carline.colores.exterior.hexadecimal;\n\t\t\t\tlet D6MOFASideview: string, D6Explore1: string, modelName: string, salesGroupData: any;\n\t\t\t\tconst carlineCode: number = res.carline.code;\n\n\t\t\t\tconst setDataNoSalesGroup = () => {\n\t\t\t\t\tD6MOFASideview = res.carline.mediaAssets.D6MOFASideview;\n\t\t\t\t\tD6Explore1 = res.carline.mediaAssets.D6MainStageExterior;\n\t\t\t\t\tmodelName = res.carline.title;\n\t\t\t\t};\n\n\t\t\t\tif (salesGroup) {\n\t\t\t\t\tconst salesGroupCoincidences = res.carline.salesgroups.filter((e) => e.name === salesGroup);\n\t\t\t\t\tsalesGroupData = salesGroupCoincidences[0];\n\t\t\t\t}\n\t\t\t\tif (salesGroupData) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tD6MOFASideview = salesGroupData.mediaAssets.D6MOFASideview;\n\t\t\t\t\t\tD6Explore1 = salesGroupData.mediaAssets.D6MainStageExterior;\n\t\t\t\t\t\tcolorCode = salesGroupData.colores?.exterior?.hexadecimal;\n\t\t\t\t\t\tmodelName = salesGroupData.title;\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('No data for salesgroup found');\n\t\t\t\t\t\tsetDataNoSalesGroup();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tsetDataNoSalesGroup();\n\t\t\t\t}\n\n\t\t\t\tconst carlineData = {modelName, colorCode, mediaAssets: {D6MOFASideview, D6Explore1}};\n\n\t\t\t\tlet finalSteps: Steps[] = [...defaultSteps];\n\n\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\n\t\t\t\tif (!isComerciales) {\n\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n\t\t\t\t}\n\n\t\t\t\tdispatchLead(updateSteps(finalSteps));\n\n\t\t\t\tdispatch({type: 'SET_DELETE_CLOSE_AND_PREVIOUS', payload: true});\n\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'UPDATE_FIELDS',\n\t\t\t\t\tpayload: {carlineData, carlineResponse: res, carlineCode, modelo: modelName},\n\t\t\t\t});\n\n\t\t\t\tdispatch({type: 'SET_SELECTED_CARLINE', payload: res.carline});\n\t\t\t\tif (salesGroupData) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'SET_SALESGROUP',\n\t\t\t\t\t\tpayload: {salesGroupId: salesGroupData.code, salesGroupName: salesGroupData.title},\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trequestCarlines().then((carlines) => {\n\t\t\t\t\tconst {carline, salesgroup} = setInitialProductData(carlines);\n\n\t\t\t\t\tlet finalSteps: Steps[] = [...defaultSteps];\n\n\t\t\t\t\tif (!isComerciales) {\n\t\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n\t\t\t\t\t}\n\t\t\t\t\tif (carline) {\n\t\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\t\t\t\t\t}\n\t\t\t\t\tdispatchLead(updateSteps(finalSteps));\n\t\t\t\t});\n\t\t\t\t// console.log(err, 'error');\n\t\t\t});\n\t};\n\n\tconst getModelInfo = async (model: string) => {\n\t\tlet dataRes: any;\n\t\tawait fetch(`${getDataUrl()}/getCarlineSalesgroups/${model}`)\n\t\t\t.then((res) => res.json())\n\t\t\t.then((data) => (dataRes = data));\n\t\treturn dataRes;\n\t};\n\n\tconst ofertasUrl = () => {\n\t\tconst path = window.location.pathname;\n\t\treturn path.includes('ofertas');\n\t};\n\n\tuseEffect(() => {\n\t\t// Si el formulario es inPage la inicialización del formulario dependerá de variables en la URL, sinó de faContent\n\t\tif (isInPage) {\n\t\t\tconst urlParams = new URLSearchParams(window.location.search);\n\t\t\tconst marketingCode = urlParams.get('marketingCode');\n\t\t\tif (marketingCode) {\n\t\t\t\tuseLeadsWithMarketingCode(marketingCode);\n\t\t\t} else {\n\t\t\t\tconst [carline, salesGroup] = getModelFromUrl();\n\t\t\t\tuseLeadsWithModel(carline, salesGroup);\n\t\t\t}\n\t\t} else {\n\t\t\trequestCarlines().then((carlines) => {\n\t\t\t\tconst {carline, salesgroup} = setInitialProductData(carlines);\n\n\t\t\t\tlet finalSteps: Steps[] = [...defaultSteps];\n\n\t\t\t\tif (!isComerciales) {\n\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'CodigoPostal');\n\t\t\t\t}\n\t\t\t\tif (carline) {\n\t\t\t\t\tfinalSteps = removeStepAndReset(finalSteps, 'Modelo');\n\t\t\t\t}\n\t\t\t\tdispatchLead(updateSteps(finalSteps));\n\t\t\t});\n\t\t}\n\t}, []);\n\n\treturn {loading, steps, firstStep, lastStep};\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const partialDataCitaConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Cita' },\n fields: {\n formFields: { M_OBSERVATION_BRAND: 'Petición para reservar una cita en el punto de venta.' },\n formularioFlag: 'prospect',\n formName: 'lead-cita-configure',\n formType: 'contact',\n pageCategory: 'Cita',\n },\n};\n","import {\n Breakpoints,\n Layout,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useStore } from 'react-redux';\nimport { LastNavigation, LssiTkmQuestions, PoliticaPrivacidad } from 'src/components';\nimport { OneFormState } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div`\n \n`;\n\nexport const ConfirmacionLeadInPage = () => {\n const store = useStore();\n\n return (\n \n \n \n \n \n \n \n );\n};\n","/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport React, { useState, useEffect } from 'react';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport car34 from './car_3-4.png';\n\nconst SectionWrapper = styled.div`\n position: relative;\n height: 100%;\n\n @media all and (min-width: 960px) {\n height: max-content;\n min-height: calc(100vh - 164px);\n width: var(--size-grid012);\n margin-top: 0;\n }\n @media all and (min-width: 1600px) {\n min-height: calc(100vh - 180px);\n }\n`;\ninterface CarlineColorCardProps {\n color: string;\n showColorCard: boolean;\n}\nconst CarlineColorCard = styled.div`\n background-color: ${(props) =>\n !props.showColorCard ? '#FFFFFF' : props.color ? props.color : '#C0C5C6'};\n height: 100%;\n z-index: -2;\n position: absolute;\n top: 0;\n width: 100vw;\n @media all and (min-width: 960px) {\n right: 0;\n width: var(--size-grid009);\n height: max-content;\n min-height: calc(100vh - 164px);\n }\n @media all and (min-width: 1600px) {\n right: 0;\n width: var(--size-grid008);\n min-height: calc(100vh - 180px);\n }\n`;\ninterface ImageWrapperProps {\n noMargins?: boolean;\n}\n\nconst ImageWrapper = styled.div`\n @media all and (min-width: 960px) {\n margin-right: var(--size-grid001);\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n padding: 40px 0;\n }\n @media all and (min-width: 1600px) {\n padding: 52px 0;\n }\n img {\n width: var(--size-grid024);\n margin: auto;\n margin-top: ${(props) => props.noMargins ? '-120px' : '0'};\n margin-bottom: ${(props) => props.noMargins ? '-52px' : '0'};\n height: auto;\n @media all and (min-width: 560px) {\n width: var(--size-grid024);\n }\n @media all and (min-width: 960px) {\n margin: auto;\n width: var(--size-grid012);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid011);\n }\n }\n`;\n\ninterface ImageProps {\n image: string;\n color: string;\n modelName: string;\n noMargins?: boolean;\n}\nexport const ImageCar = (props: ImageProps) => {\n const { image, color, modelName, noMargins } = props;\n\n //Ocultar color pastilla en caso de la imagen que llega no sea r-media\n\n const [showColorCard, setShowColorCard] = useState(true);\n const [loadingImage, setLoadingImage] = useState(false);\n\n useEffect(() => {\n if (image) {\n setLoadingImage(false);\n\n if (image.includes('r-media')) {\n setShowColorCard(true);\n } else {\n setShowColorCard(false);\n }\n } else {\n setShowColorCard(true);\n setLoadingImage(true);\n }\n }, [image]);\n\n return (\n \n \n \n {image ? (\n <>\n {loadingImage ? (\n {modelName}\n ) : (\n {modelName}\n )}\n \n ) : null}\n \n\n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { getColorInfo, ImageCar } from '.';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n padding-top: 44px;\n @media all and (min-width: 5600px) {\n padding-top: 68px;\n }\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\nexport const renderTitle = (formName: string) => {\n return (\n <>\n {formName === 'presupuesto' || formName === 'masInformacion' ? (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ) : (\n <>\n {formName === 'testDrive' ? (\n \n {' '}\n ¿Dónde prefieres{' '}\n \n provarlo?*\n \n \n ) : (\n \n {' '}\n ¿A dónde quieres{' '}\n \n ir?*\n \n \n )}\n \n )}\n \n );\n};\n\nexport const LocateUserLeadsInPage = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { marketingCodeData, carlineData, formName } = formData.fields;\n const [imageSrc, setImageSrc] = useState(null);\n const [name, setName] = useState(null);\n const [colorInfo, setColorInfo] = useState(null);\n\n useEffect(() => {\n if (!marketingCodeData) return;\n const { modelName, colorCode, mediaAssets } = marketingCodeData;\n setName(modelName);\n\n\n if (colorCode) {\n getColorInfo(colorCode).then((color) => {\n setColorInfo(color);\n });\n } else {\n setColorInfo('#484A52');\n }\n\n if (mediaAssets?.D6MOFASideview) {\n setImageSrc(mediaAssets?.D6MOFASideview);\n } else {\n setImageSrc(mediaAssets?.D6Explore1);\n }\n }, [marketingCodeData]);\n\n useEffect(() => {\n if (!carlineData) return;\n const { modelName, colorCode, mediaAssets } = carlineData;\n setName(modelName);\n\n if (colorCode) {\n getColorInfo(colorCode).then((color) => {\n setColorInfo(color);\n });\n } else {\n setColorInfo('#484A52');\n }\n\n if (mediaAssets?.D6MOFASideview) {\n setImageSrc(mediaAssets?.D6MOFASideview);\n } else {\n setImageSrc(mediaAssets?.D6Explore1);\n }\n }, [carlineData]);\n\n return (\n \n \n \n \n \n \n {name}\n \n \n \n Genial,{' '}\n {formName.includes('mas_informacion') ? (\n te mandamos toda la información\n ) : formName.includes('test_drive') ? (\n te esperamos para una prueba de conducción\n ) : formName.includes('presupuesto') ? (\n te enviamos tu presupuesto personalizado\n ) : formName.includes('cita') ? (\n te esperamos para contártelo todo\n ) : (\n te mandamos toda la información\n )}\n \n \n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n \n \n \n \n \n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport {\n getDistanceFromLatLngCenter,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\n\nexport const JourneyLeadInPageController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n cardsTimeRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvince('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n\n handleNextStep();\n }, []);\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyLeadInPageController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoCompraController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyLeadsInPageWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen, MultipleCTASelection } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { LocateUserLeadsInPage, renderTitle } from 'src/forms/LeadsInPage';\nimport { JourneyLeadsInPageWrapper } from 'src/forms/LeadsInPage';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\nimport { CTAsHorario } from 'src/feature-app/InputsValues';\n\nconst getTitle = (data) => {\n if (data) {\n return;\n } else {\n return (\n \n {' '}\n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n );\n }\n};\n\nconst getLocatePage = (data) => {\n if (data) {\n return ;\n } else {\n return } />;\n }\n};\n\nenum MapaLeadsInPageSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaLeadsInPageProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaLeadsInPage(props: MapaLeadsInPageProps) {\n const { formName, showHorario } = props;\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { marketingCodeData, carlineData } = formData.fields;\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n } = useOneFormContext();\n\n const mapStep = showHorario ? 2 : 1;\n\n let stepsHorario: Steps[] = [\n {\n title: getTitle(marketingCodeData ? marketingCodeData : carlineData),\n fields: getLocatePage(marketingCodeData ? marketingCodeData : carlineData),\n screenIndex: MapaLeadsInPageSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: MapaLeadsInPageSteps.Horario,\n name: 'MapSlotPref',\n title: (\n <>\n ¿Cúando prefieres pasar por el{' '}\n \n punto de venta?*\n \n \n ),\n fields: (\n }\n />\n ),\n outputs: ['horario'],\n outputsText: ['horario'],\n },\n {\n screenIndex: MapaLeadsInPageSteps.SeleccionCita,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n let stepsWithoutHorario: Steps[] = [\n {\n title: getTitle(marketingCodeData ? marketingCodeData : carlineData),\n fields: getLocatePage(marketingCodeData ? marketingCodeData : carlineData),\n screenIndex: MapaLeadsInPageSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n const steps = showHorario ? stepsHorario : stepsWithoutHorario;\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n // handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n }\n }\n setNextMultiStep(() => nextMapaNoCompra);\n setPreviousMultiStep(() => previousMapaNoCompra);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoCompra = () => {\n if (!showHorario) {\n renderLayer();\n return;\n }\n const { multiStepScreenIndex } = store.getState().formInfo;\n\n if (multiStepScreenIndex === 1) {\n renderLayer();\n updateScreenChangeVariables(mapStep);\n return;\n }\n\n handleScreenChange();\n\n // Una vez avanzamos dentro de los multisteps se activa el wait\n // previous step para volver hacia atrás dentro del propio multistep.\n if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n updateWaitForNextAndPreviousStep(null, true);\n }\n\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex + 1);\n // Si estamos en el último paso del multistep se desactiva el\n // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n updateWaitForNextAndPreviousStep(false, null);\n if (multiStepScreenIndex === 0) {\n setShowPreviousStep(false);\n } else {\n setShowPreviousStep(true);\n }\n }\n }, TIME_FOR_TRANSFORM);\n };\n\n const previousMapaNoCompra = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n /**\n * Necesario para en el caso de que se cierre el mapa se pueda mostrar la pantalla de preferencia horaria\n */\n const onCloseMap = () => {\n updateScreenChangeVariables(mapStep - 1);\n updateWaitForNextAndPreviousStep(true, false);\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[mapStep], nextStepEventEmitter },\n {\n size: InteractionLayerSizeV2.D,\n id: 'mapaLeadInPage',\n shimBackgroundType: ShimBackgroundTypeV2.OPAQUE,\n onClose: onCloseMap,\n }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === mapStep ? null : (\n \n \n \n )\n ) : null;\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const PartialDataMasInformacionConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Más Información' },\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-mas_informacion-configure',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n","import { FormDataGroup } from 'src/types';\n\n export const PresupuestoPartialDataConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-configure',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n","import { FormDataGroup } from 'src/types';\n\nexport const PartialDataTestDriveConfigurador: Partial = {\n headers: { FORM_OBJECTIVE: 'Test Drive' },\n fields: {\n formFields: {},\n formularioFlag: 'testDrive',\n formName: 'lead-test_drive-configure',\n formType: 'testdrive',\n pageCategory: 'Test Drive',\n },\n};\n","import { Color } from 'src';\nimport { getColors } from 'src/bff';\n\nexport const getColorInfo = async (colorCode: string): Promise => {\n if (!colorCode) return null;\n let colorInfo: Color;\n\n const colors = await getColors();\n const aux = colorCode.split(' ');\n if (colorCode.includes('#')) {\n colorInfo = colors.colores.find((a) => a.hex === colorCode);\n }\n else {\n colorInfo = colors.colores.find((a) => a.code === aux[1]);\n }\n\n return colorInfo;\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Image,\n Layout,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useFeatureServices, useFaContent } from 'src/feature-app';\n\nconst TitleTextWrapper = styled.div`\n position: relative;\n`;\nconst TextWrapper = styled.div`\n position: absolute;\n bottom: 5%;\n color: #ffffff;\n padding: 0px var(--size-grid002);\n`;\ninterface MGMTitleProps {\n title: string;\n copy: string;\n}\ninterface MGMLayoutProps {\n title: string;\n fields: JSX.Element;\n}\n\nexport function MGMLayout({ title, fields }: MGMLayoutProps) {\n const imageService = useFeatureServices()['image-service'];\n const mgmImgSrc = useFaContent()?.mgmImgSrc;\n\n // const test = imageService.getImageURL({ contentFile: '/content/dam/evhub-sample/images/16-9/16_9.jpg', scene7File: '/content/dam/evhub-sample/images/16-9/16_9.jpg', });\n // console.log(test, 'test');\n return (\n \n \n \"Volkswagen\"\n \n \n \n {title}\n \n \n \n \n <>{fields}\n \n );\n}\n\nexport const MGMTitle = ({ title, copy }: MGMTitleProps) => {\n return (\n <>\n \n \n {title}\n \n \n
\n \n {copy}\n \n \n );\n};\n","import { Container, ContainerPadding, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { Apellido, Email, Nombre, Telefono, GeneralInputWidthWrapper } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { MGMFieldsProps } from 'src/forms';\nimport { OneFormState } from 'src/types';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function BonoClienteFields({ title, copy }: MGMFieldsProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\nfunction LastNavigation() {\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Quiero mi bono',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Quiero mi bono\n \n \n );\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nexport function LegalMGM({ isFriendForm }: { isFriendForm?: boolean }) {\n return (\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 {isFriendForm ? (\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 ) : null}\n \n Te informamos que el responsable del tratamiento de tus datos es la compañía VOLKSWAGEN GROUP ESPAÑA DISTRIBUCION, S.A.U., 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 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 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","import React, { useEffect } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, formatPrefix } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { BonoClienteFields, ThankYouMGM } from './';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { MGMLayout } from './MGMLayout';\n\nconst bonoClienteCopies = {\n title: 'Solo te queda un Sí, para tener hasta 1.000€.',\n copy: '¡Comprueba tus datos y envía!',\n};\n\nexport function BonoClienteForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const BonoClienteData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_CLIENTE_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Bono Cliente Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-bono-cliente',\n formType: 'otherform',\n pageCategory: 'Cupon',\n name: idPerson.FirstName,\n surname: idPerson.LastName,\n secondSurname: idPerson.TXT_2_Surname__c,\n email: idPerson.TXT_Email__c,\n cellphone: idPerson.NUM_Phone_mobile__c,\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_EMAIL_ADDRESS]': fields.email,\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Bono Cliente',\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': idPerson.LSSI__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': idPerson.Robinson__c,\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'true',\n 'flags[FLAG_VOUCHER]': 'true',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const BonoClienteInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n hideLegal: true,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: steps[0],\n steps,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(BonoClienteInfo, BonoClienteData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import {\n Container,\n CTA,\n styled,\n ContainerPadding,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { MGMFieldsProps } from 'src/forms';\nimport { Apellido, Email, Nombre, Telefono, LssiTkmQuestions, GeneralInputWidthWrapper } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function BonoRegaloFields({ title, copy }: MGMFieldsProps) {\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n tmkError: boolean;\n lssiError: boolean;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n setTmk: React.Dispatch>;\n setLssi: React.Dispatch>;\n}\n\nfunction LastNavigation(props: LastNavigationProps) {\n const { tmk, lssi, setTmkError, setLssiError, tmkError, lssiError, setLssi, setTmk } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Quiero mi bono',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid && !lssiError && !tmkError) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n
\n \n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Quiero mi bono\n \n
\n );\n}\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { formatPrefix, FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { } from 'src/forms/MGM';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { ThankYouMGM } from '.';\nimport { formatHeaders, formDataBuilder } from '../format-fields';\nimport { BonoRegaloFields } from './BonoRegaloFields';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { MGMLayout } from './MGMLayout';\n\nconst bonoRegaloCopies = {\n title: 'Solo te queda un Sí, para tener hasta 1.000€ de descuento.',\n copy: '¡Rellena el formulario con tus datos y envía!',\n};\n\nexport function BonoRegaloForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { getValues } = useFormContext();\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const BonoRegaloData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_REGALO_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Bono Regalo Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-bono-regalo',\n formType: 'otherform',\n pageCategory: 'Cupon',\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n const values = getValues();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': values.secondSurname,\n 'fields[DESC_SURNAME_1]': values.surname,\n 'fields[DESC_NAME]': values.name,\n 'fields[DESC_EMAIL_ADDRESS]': values.email,\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${values.cellphone}`,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Bono Regalo',\n 'fields[DESC_AUXFIELD2]': idPerson.FirstName,\n 'fields[DESC_AUXFIELD3]': idPerson.LastName,\n 'fields[DESC_AUXFIELD4]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_AUXFIELD5]': idPerson.TXT_Email__c,\n 'fields[DESC_AUXFIELD6]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const BonoRegaloInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: steps[0],\n steps,\n hideLegal: true,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(BonoRegaloInfo, BonoRegaloData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import { Container, ContainerPadding, CTA, styled } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { Apellido, Email, GeneralInputWidthWrapper, Nombre, Telefono } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager\n} from 'src/feature-app';\nimport { MGMFieldsProps } from 'src/forms';\nimport { KoScreen, LoadingScreen } from 'src/forms/CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { MGMTitle } from './MGMLayout';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nexport function EnvioRegaloFields({ title, copy }: MGMFieldsProps) {\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n
\n );\n}\n\ninterface LastNavigationProps {\n tmk: string;\n lssi: string;\n tmkError: boolean;\n lssiError: boolean;\n setTmkError: React.Dispatch>;\n setLssiError: React.Dispatch>;\n setTmk: React.Dispatch>;\n setLssi: React.Dispatch>;\n}\n\nfunction LastNavigation() {\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido guardar tu respuesta. ¿Lo intentamos de nuevo? ';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n async function handleConfirmarCita(e: any) {\n trackingManager.trackFormCTAClick({\n contentId: 'Sí a sorprender',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n
\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Sí a sorprender\n \n
\n );\n}\n","\nimport React, { useEffect } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, formatPrefix } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport {} from 'src/forms/MGM';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouMGM } from '.';\nimport { formDataBuilder, formatHeaders } from '../format-fields';\nimport { EnvioRegaloFields } from './EnvioRegaloFields';\nimport { LegalMGM } from './LegalMGM';\nimport { MGMFormProps } from './MGMController';\nimport { MGMLayout } from './MGMLayout';\n\nconst envioRegaloCopies = {\n title: 'Di Sí a sorprender a esa persona tan especial.',\n copy: '¡Rellena el formulario con sus datos!',\n};\n\nexport function EnvioRegaloForm(props: MGMFormProps) {\n const { dpsData, idLead, idPerson, trackFormLoad } = props;\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { getValues } = useFormContext();\n\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: (\n }\n />\n ),\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n const EnvioRegaloData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: '16. One shot',\n DESC_ID_CAMPAIGN: '7011n000001FY4sAAG',\n DESC_TOKEN: 'VW_DDB_FRM_MGM_CLIENTE_RENOVACION_STOCK_22',\n DESC_FORM_DETAIL: 'MGM Envío Regalo Renovación Stock 22',\n },\n fields: {\n formName: 'mgm-envio-regalo',\n formType: 'otherform',\n pageCategory: 'Regalar Cupon',\n }, // Analítica\n };\n\n const generateData = () => {\n const { formData }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n const values = getValues();\n\n return {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_FORMOBJECTIVE]': fields.pageCategory, // Revisar\n 'headers[TC]': tc,\n 'headers[PINCODE]': dpsData?.pincode?.pincodeResponse?.params?.pincode,\n ...formatHeaders(headers), // Headers comunes a todos los formularios de leads\n\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_AUXFIELD20]': idPerson.Id,\n 'fields[DESC_AUXFIELD1]': 'Envío Regalo',\n 'fields[DESC_AUXFIELD2]': values.name,\n 'fields[DESC_AUXFIELD3]': values.surname,\n 'fields[DESC_AUXFIELD4]': values.secondSurname,\n 'fields[DESC_AUXFIELD5]': values.email,\n 'fields[DESC_AUXFIELD6]': `${formatPrefix(fields.prefix)}${values.cellphone}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': idPerson.LSSI__c,\n 'fields[DESC_LOPD_GDPR_PERFILADO]': idPerson.Robinson__c,\n\n 'flags[FLAG_ISLEAD]': 'false',\n 'flags[FLAG_ISPROSPECT]': 'false',\n 'flags[FLAG_VOUCHER]': 'false',\n };\n };\n\n const generateSubmitData = () => generateData();\n\n const sendForm = (): Promise => {\n return new Promise(async (resolve) => {\n const data = generateSubmitData();\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n // const { loading, steps, firstStep, lastStep } = useInitializeMGMForm(steps, idLead);\n\n useEffect(() => {\n const EnvioRegaloInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: steps[0].fullScreen ? true : false,\n lastStep: steps[steps.length - 1],\n numberOfScreens: steps.length,\n screenIndex: steps[0].screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n hideLegal: true,\n step: steps[0],\n steps,\n stepsHistory: [0],\n customLegal: ,\n thankYouComponent: ,\n };\n initializeForm(EnvioRegaloInfo, EnvioRegaloData, true);\n trackFormLoad();\n }, []);\n\n return !steps ? null : ;\n}\n","import { Spinner, styled, Text } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { BonoClienteForm } from './';\n// import { MGMContactadoForm } from './MGMContactadoForm';\n// import { MGMNoContactadoForm } from './MGMNoContactadoForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { useFeatureServices, useTrackingManager, useFaContent} from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson } from 'src/types';\n// import { checkIdLeadHasCarline } from './use-initialize-MGM-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { EnvioRegaloForm } from './EnvioRegaloForm';\nimport { BonoRegaloForm } from './BonoRegaloForm';\n\nexport interface MGMFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n}\n\nexport interface MGMFieldsProps {\n title: string;\n copy: string;\n}\n\nexport function MGMController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const [bonoCliente, setBonoCliente] = useState(false);\n const [envioRegalo, setEnvioRegalo] = useState(false);\n const [bonoRegalo, setBonoRegalo] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const faContent = useFaContent();\n\n const handleNext = (value: any) => {};\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n if (faContent.mgm === 'Bono Cliente') {\n setBonoCliente(true);\n } else if (faContent.mgm === 'Envío Regalo') {\n setEnvioRegalo(true);\n } else if (faContent.mgm === 'Bono Regalo') {\n setBonoRegalo(true);\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {bonoCliente ? (\n \n ) : envioRegalo ? (\n \n ) : bonoRegalo ? (\n \n ) : null}\n \n );\n }\n}\ninterface CenterContentProps {\n height: string;\n}\nconst CenterContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n height: ${(props) => (props.height ? props.height : '100%')};\n`;\n\nconst Loading = () => {\n const [height, setHeight] = useState('100%');\n\n useEffect(() => {\n const viewportHeight = window.innerHeight;\n const viewportWidth = window.innerWidth;\n let aux;\n\n if (viewportWidth < 560) {\n aux = viewportHeight - 152;\n } else if (viewportWidth < 1600) {\n aux = viewportHeight - 252;\n } else {\n aux = viewportHeight - 380;\n }\n setHeight(`${aux}px`);\n }, []);\n\n return (\n \n \n Cargando tus datos\n \n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TrackingForm, useTrackingManager } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\n\nexport function ThankYouMGM({ friend }: { friend?: boolean }) {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => ({\n LeadID: undefined,\n FormFields: undefined,\n });\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const screen: Steps = {\n title: friend ? (\n <>\n ¡Muchas gracias! Esa persona tan especial ya está más cerca de estrenar su Volkswagen.\n \n ) : (\n <>\n ¡Muchas gracias! Ya estás más cerca de estrenar tu Volkswagen.\n \n ),\n fields: <>,\n };\n return (\n \n );\n}\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n LastNavigation, \n PoliticaPrivacidad,\n GeneralConfirmacionLayerWrapper\n} from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionNewsletter = () => {\n\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionNewsletter } from './ConfirmacionNewsletter';\nimport { Email, PantallaNombreApellido } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport { FormController, removeWhiteSpace, useFeatureAppConfig, useOneFormContext } from 'src/feature-app';\nimport { ThankYouNewsletter } from './';\nimport { formDataBuilder } from '../format-fields';\n\nexport enum NewsletterSteps {\n NombreApellido,\n Email,\n Confirmacion,\n}\n\nexport function NewsletterForm() {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const steps: Steps[] = [\n {\n title: (\n <>\n Queremos contártelo todo sobre la familia ID. Pero antes, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NewsletterSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿A qué email te enviamos nuestras novedades?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NewsletterSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n fields: ,\n screenIndex: NewsletterSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'newsletter', formType: 'newsletter', pageCategory: 'Suscripción Newsletter' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_ID_NEWSLETTER',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': 'ID', //Este debería pasarse a variable, aunque actualmente siempre sea ID\n 'headers[FORM_NAME]': 'vw-oneform-newsletter',\n 'headers[FORM_OBJECTIVE]': 'Suscripción Newsletter',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': `vw-oneform-newsletter-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Prospect',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n notALayer: false,\n formType: 'layer',\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouNewsletter = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useGetInstalaciones } from 'src/feature-app';\nimport { IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeNoCompraForm(steps: Steps[]) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const installations = useGetInstalaciones('VW_DDB_FRM_ENCUESTA_NO_COMPRA', 'VOLKSWAGEN_SF_INSTALLATION_ALL'); // llama al metodo getInstallations()\n\n useEffect(() => {\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setLoading(false);\n };\n\n requestCarlines();\n }, []);\n\n return { firstStep: steps[0], lastStep: getLastItemOfSteps(steps), loading };\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson } from 'src/types';\nimport { NoCompraYaTengo, NoCompraNoTengo, NoCompraNoQuiero } from '.';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkHasCarline } from './use-initialize-no-compra-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface NoCompraFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n estado: string;\n}\n\nexport function NoCompraController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [estado, setEstado] = useState(null);\n const [yaTengo, setYaTengo] = useState(false);\n const [noTengo, setNoTengo] = useState(false);\n const [noQuiero, setNoQuiero] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dispatch = useDispatch();\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const { estado } = dpsData;\n setEstado(estado);\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n\n if (estado === 'ya_tengo') {\n setYaTengo(true);\n } else if (estado === 'no_quiero') {\n setNoQuiero(true);\n } else if (estado === 'no_tengo') {\n setNoTengo(true);\n } else {\n handleError();\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n {/* useEffect(() => {\n console.log(error, 'error');\n }, [error]);*/}\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n if (checkHasCarline(idLeadRef.current)) {\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {yaTengo ? (\n \n ) : noTengo ? (\n \n ) : noQuiero ? (\n \n ) : null}\n \n );\n }\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend, getVehiculosModelo } from 'src/bff';\nimport { FechaCompra, PantallaIntroduccionStars, SelectMarcaModelo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, RatingSteps } from '.';\n\nexport enum NoCompraYaTengoSteps {\n //FechaCompra,\n TipoCompra,\n Modelo,\n Valoracion,\n Plazos,\n\tVisita,\n\tPrecio,\n\tEquipamiento,\n\tConsumo,\n\tGarantia,\n\tFinanciacion,\n Confirmacion,\n}\n\nexport function NoCompraYaTengo({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n\n const ctasTipoCompra = [\n {\n label: 'He comprado un vehículo nuevo',\n value: '1'\n },\n {\n label: 'He comprado un vehículo de ocasión',\n value: '2'\n },\n ];\n \n /*\n const getModeloInteresOutputs = (modelo: string, list: any) => {\n const aux = list.find((mod: any) => mod.name === 'modelo');\n return [aux.title];\n };\n\n const { modelo } = formData;\n\n\tuseEffect(() => {\n if (modelo) updateModelo(modelo);\n }, [modelo]);\n\n const updateModelo = (modelo: string) => {\n const outputs = getModeloInteresOutputs(modelo, list);\n\n let newSteps = [...steps];\n\n const modeloIndex = newSteps.findIndex((step: Steps) => step.name === 'Modelo');\n newSteps[modeloIndex].outputsText = outputs;\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n };*/\n\n const [list, setList] = useState(null);\n\n useEffect(() => {\n getVehiculosModelo().then((modelos) => {\n setList(modelos);\n });\n }, []);\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n /*{\n title: (\n <>\n Nos encantaría saber más. ¿Desde cuándo tienes coche nuevo?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.FechaCompra,\n name: 'FechaCompra',\n },*/\n {\n title: (\n <>\n ¿Podrías indicarnos si has comprado finalmente un vehículo nuevo o de ocasión?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.TipoCompra,\n name: 'TipoCompra',\n },\n {\n title: (\n <>\n Por curiosidad,{' '}\n \n ¿qué modelo{' '}\n \n es?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoCompraYaTengoSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n <>\n Nos hubiera encantado que fuera un Volkswagen. ¿Nos ayudas a mejorar?\n \n ),\n fields: ,\n screenIndex: NoCompraYaTengoSteps.Valoracion,\n name: 'Valoracion',\n },\n\n ...RatingSteps('ya_tengo', NoCompraYaTengoSteps.Valoracion),\n \n {\n fields: ,\n screenIndex: NoCompraYaTengoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {},\n\t\tfields: { \n formName: 'no_compra-ya_tengo', \n formType: 'otherform', \n pageCategory: 'Encuesta' \n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData; \n\n\t\tconst submitData = !isPresubmit ? {\n //'fields[SURVEY_ANSWER_02]': fields.fecha,\n 'fields[SURVEY_ANSWER_02]': fields.tipoCompra,\n 'fields[SURVEY_ANSWER_03]': fields.marca,\n 'fields[SURVEY_ANSWER_04]': fields.modelo,\n 'fields[SURVEY_ANSWER_05]': fields.plazos,\n 'fields[SURVEY_ANSWER_06]': fields.visita,\n 'fields[SURVEY_ANSWER_08]': fields.precio,\n 'fields[SURVEY_ANSWER_09]': fields.equipamiento,\n 'fields[SURVEY_ANSWER_10]': fields.consumo,\n 'fields[SURVEY_ANSWER_11]': fields.garantia,\n 'fields[SURVEY_ANSWER_12]': fields.financiacion,\n 'flags[FLAG_SF_INTEGRATION]' : false,\n\t\t} : null;\n\n return {\n\t\t\t...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n\t\t\t...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LastNavigation, LssiTkmQuestions, MultipleCTASelection, PoliticaPrivacidad } from 'src/components';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { IdLead, OneFormState } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\ninterface ConfirmacionNoCompraProps {\n idLead: IdLead;\n}\n\nexport const ConfirmacionNoCompra = (props: ConfirmacionNoCompraProps) => {\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const store = useStore();\n\n const noTengo = formData.fields.formName == 'no_compra-no_tengo';\n const quieroContacto: boolean = store.getState().formData.fields.quieroContacto == 'true';\n const lssiPermite: boolean = props.idLead?.LSSI__c == 'PERMITE';\n\n useEffect(() => {\n if (compartir) {\n const values = { compartir: compartir };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setCompartirError(false);\n }\n }, [compartir]);\n\n useEffect(() => {\n if (lssiPermite) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idLead]);\n\n return (\n \n \n { lssiPermite && (!quieroContacto || !noTengo) ? \n (\n
\n \n ¿Listo para enviar?\n \n
\n ) \n :\n (\n \n Y unas últimas preguntas\n \n )\n }\n { noTengo && quieroContacto ?\n (\n \n
\n \n ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?*\n \n \n
\n \n {compartirError ? Este campo es obligatorio : null}\n
\n )\n :\n null\n }\n\n \n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nconst ctasNoCompra = [\n {\n emphasis: 'primary',\n url: 'https://www.volkswagen.es/stock/',\n label: 'Ofertas y stock'\n },\n {\n emphasis: 'primary',\n url: 'https://www.volkswagen.es/es/financiacion-seguros.html',\n label: 'Tipos de financiación'\n },\n];\n\nexport const ThankYouNoCompra = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: (\n \n ),\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport {\n getDistanceFromLatLngCenter,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\n\nexport const JourneyNoCompraController = () => {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n cardsTimeRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { MapSearch: point.properties.installation.VGED_CommercialName__c } });\n\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvince('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province?.attributes[1]?.value ? province.attributes[1].value : point.properties.installation.Province;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.ShippingStateCode)\n );\n const provinceName = province?.attributes[1]?.value ? province.attributes[1].value : point.properties.installation.Province;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n\n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleAvailabilityErrorLayer = () => {\n layerManager.openFocusLayer(renderAvailabilityErrorLayer, {}, { size: FocusLayerSizeV2.A });\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyNoCompraController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoCompraController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyNoCompraWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, CTA, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { DealersData, OneFormState, Steps } from 'src/types';\nimport { JourneyNoCompraWrapper } from './JourneyNoCompraWrapper';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\n\nenum MapaNoCompraSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\n\ninterface MapaNoCompraProps {\n showHorario?: boolean;\n formName: string;\n}\n\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport function MapaNoCompra(props: MapaNoCompraProps) {\n const dispatch = useDispatch();\n const store = useStore();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n nextStep,\n handleNextStep\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Si tienes dudas, puedes pedir a un punto de venta que te contacte.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: MapaNoCompraSteps.Dealer,\n name: 'MapSearch',\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n ¿Qué experto quieres que se{' '}\n \n encargue?*\n \n \n ),\n title: <>,\n fields: ,\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n\n }\n }\n setNextMultiStep(() => nextMapaNoCompra);\n setPreviousMultiStep(() => previousMapaNoCompra);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoCompra = () => {\n // const { multiStepScreenIndex } = store.getState().formInfo;\n\n // handleScreenChange();\n\n // // Una vez avanzamos dentro de los multisteps se activa el wait\n // // previous step para volver hacia atrás dentro del propio multistep.\n // if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n // updateWaitForNextAndPreviousStep(null, true);\n // }\n\n // setTimeout(() => {\n // updateScreenChangeVariables(multiStepScreenIndex + 1);\n // // Si estamos en el último paso del multistep se desactiva el\n // // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n // if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n // updateWaitForNextAndPreviousStep(false, null);\n // setShowPreviousStep(true);\n // }\n // }, TIME_FOR_TRANSFORM);\n renderLayer();\n };\n\n const previousMapaNoCompra = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[1], nextStepEventEmitter },\n { size: InteractionLayerSizeV2.D, id: 'mapaNoCompra', shimBackgroundType: ShimBackgroundTypeV2.OPAQUE }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === 1 ? null : (\n \n \n \n )\n ) : null;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, MultipleCTASelection, PantallaIntroduccionStars } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, MapaNoCompra, PantallaOtrosModelos, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, RatingSteps } from '.';\nimport { getDescInterestCarline } from '../Leads/helpers';\n\nexport enum NoCompraNoTengoSteps {\n ContactoConcesionario,\n QuieroVolkswagen,\n QuieroContacto,\n Modelo,\n Valoracion,\n\tVisita,\n\tPrecio,\n\tEquipamiento,\n\tConsumo,\n\tGarantia,\n\tFinanciacion,\n Mapa,\n Confirmacion,\n}\n\nexport function NoCompraNoTengo({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { contactoConcesionario, quieroVolkswagen, quieroContacto } = formData.fields;\n const dispatch = useDispatch();\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const store = useStore();\n\n const ctasContactoConcesionario = [\n {\n label: 'Sí',\n value: 'true'\n },\n {\n label: 'No he tenido contacto con el concesionario',\n value: 'false'\n },\n ];\n\n const ctasQuieroContacto = [\n {\n label: 'Sí',\n value: 'true'\n },\n {\n label: 'No, ya no tengo interés',\n value: 'false'\n },\n ];\n\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Sabiendo que sigues buscando un vehículo que se ajuste a tus necesidades, nos gustaría confirmar contigo algunos datos. ¿Has estado en contacto con el concesionario Volkswagen recientemente?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.ContactoConcesionario,\n name: 'contactoConcesionario',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Nos encantaría saber más.{' '}\n \n ¿Aún te interesa conducir un{' '}\n \n Volkswagen?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.QuieroVolkswagen,\n name: 'QuieroVolkswagen',\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n ¿Quieres que un concesionario contacte contigo para resolver tus{' '}\n \n dudas?\n *\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.QuieroContacto,\n name: 'QuieroContacto',\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿Qué modelo en{' '}\n \n concreto?\n *\n \n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoTengoSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n\t\t{\n title: (\n <>\n Nos hubiera encantado que fuera un Volkswagen. ¿Nos ayudas a mejorar?\n \n ),\n fields: ,\n screenIndex: NoCompraNoTengoSteps.Valoracion,\n name: 'Valoracion',\n },\n\n ...RatingSteps('no_tengo', NoCompraNoTengoSteps.Valoracion),\n\n {\n screenIndex: NoCompraNoTengoSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n fields: ,\n screenIndex: NoCompraNoTengoSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n\t\n\tuseEffect(() => {\n\t\tif (contactoConcesionario) {\n\t\t\tupdateSteps('QuieroVolkswagen', contactoConcesionario == 'true');\n\t\t\tupdateSteps('QuieroContacto', contactoConcesionario == 'false');\n\t\t}\n\t}, [contactoConcesionario]);\n\n\tuseEffect(() => {\n\t\tif (quieroVolkswagen) {\n\t\t\tupdateSteps('Modelo', quieroVolkswagen == 'true');\n\t\t}\n\t}, [quieroVolkswagen]);\n\n\tuseEffect(() => {\n\t\tif (quieroContacto) {\n\t\t\tconst steps = ['Modelo', 'Valoracion', 'Gestion', 'Precio', 'Equipamiento', 'Consumo', 'Garantia', 'Financiacion', 'Mapa'];\n\n\t\t\tsteps.reverse().forEach(function(step) {\n\t\t\t\tupdateSteps(step, quieroContacto == 'true');\n\t\t\t});\n\t\t}\n\t}, [quieroContacto]);\n\n\n\tconst updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const NuevoFormData: Partial = {\n headers: {},\n fields: {\n formName: 'no_compra-no_tengo',\n formType: 'otherform',\n pageCategory: 'Encuesta'\n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n const personData = fields.quieroContacto == 'true' ? {\n 'fields[PERSON_NAME]': idLead.FirstName,\n 'fields[PERSON_SURNAME_1]': idLead.LastName,\n 'fields[PERSON_SURNAME_2]': idLead.MiddleName,\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n } : null;\n\n const installationData = selectedInstallation && fields.quieroContacto == 'true' ? {\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.ShippingStateCode.toString().padStart(2, '0'),\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n //'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...personData,\n ...installationData,\n 'fields[SURVEY_ANSWER_13]': fields.contactoConcesionario,\n 'fields[SURVEY_ANSWER_15]': fields.quieroVolkswagen == 'true' ? getDescInterestCarline(dealersInfo, fields.modelo) : null,\n 'fields[SURVEY_ANSWER_28]': fields.gestion,\n 'fields[SURVEY_ANSWER_30]': fields.precio,\n 'fields[SURVEY_ANSWER_31]': fields.equipamiento,\n 'fields[SURVEY_ANSWER_32]': fields.consumo,\n 'fields[SURVEY_ANSWER_33]': fields.garantia,\n 'fields[SURVEY_ANSWER_34]': fields.financiacion,\n 'fields[SURVEY_ANSWER_35]': fields.quieroContacto,\n\t\t\t'flags[FLAG_SF_INTEGRATION]' : fields.quieroContacto == 'true',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n ...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import React from 'react';\nimport { \n Text, \n styled, \n Container, \n ContainerGutter,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { SuggestModelo } from 'src/components';\n\n\nconst Wrapper = styled.div`\n margin-top: 44px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n }\n`;\nconst MarginTop = styled.div`\n margin-top: 44px;\n @media all and (min-width: 960px) {\n margin-top: 0;\n }\n`;\n\nexport const PantallaOtrosModelos = () => {\n\n return (\n \n \n
\n Dudo entre este modelo*:\n
\n \n
\n \n \n Y este otro:\n \n \n \n
\n );\n};\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { CarlineSelect, PantallaNombreApellido, DetalleMotivo, MultipleCTASelection, MultipleOptionCTAs } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { useInitializeNoCompraForm, NoCompraFormProps, ConfirmacionNoCompra, ThankYouNoCompra, getCommonFormData, MapaNoCompra } from '.';\nimport { getDescInterestCarline } from '../Leads/helpers';\n\nexport enum NoCompraNoQuieroSteps {\n Decision,\n Motivo,\n MotivoDetalle,\n Modelo,\n Mapa,\n DatosPersonales,\n Confirmacion,\n}\n\nexport function NoCompraNoQuiero({ dpsData, idLead, idPerson, handleError, trackFormLoad, estado }: NoCompraFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n\n const { decision, motivo } = formData.fields;\n\n const CTAsDecision = [\n {\n label: 'He decidido aplazar la compra',\n value: 'true',\n },\n {\n label: 'Finalmente he decidido no comprar ningún coche',\n value: 'false',\n },\n ];\n\n const CTAsMotivoNoQuiero = [\n {\n label: 'Coche compartido (car sharing o moto sharing)',\n value: '1',\n },\n {\n label: 'Transporte público',\n value: '2',\n },\n {\n label: 'Patinete - Moto - Bicicleta',\n value: '3',\n },\n {\n label: 'Más adelante, en coche',\n value: '4',\n },\n {\n label: 'Otros',\n value: '6',\n },\n ];\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Entendemos que ya no estás interesado en la compra de un Volkswagen.{' '}\n \n ¿Podríamos conocer más detalles respecto a tu{' '}\n \n decisión?\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Decision,\n name: 'Decision',\n },\n {\n title: (\n <>\n Nos encantaría saber más.{' '}\n \n ¿Cómo vas a moverte de ahora en{' '}\n \n adelante?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Motivo,\n name: 'Motivo',\n },\n {\n title: (\n <>\n ¿Nos lo podrías concretar un poco más?\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.MotivoDetalle,\n name: 'MotivoDetalle',\n },\n {\n title: (\n <>\n ¿Qué modelo en{' '}\n \n concreto?\n *\n \n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n screenIndex: NoCompraNoQuieroSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n title: (\n <>\n Por favor, introduce o comprueba tus datos:\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NoCompraNoQuieroSteps.DatosPersonales,\n name: 'DatosPersonales',\n },\n {\n fields: ,\n screenIndex: NoCompraNoQuieroSteps.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n useEffect(() => {\n if (decision) {\n // Si en la updateSteps realiza la accion de añadir step, es necesario añadirlos por el orden inverso de aparición\n updateSteps('DatosPersonales', decision == 'true' );\n updateSteps('Mapa', decision == 'true' );\n updateSteps('Modelo', decision == 'true' );\n updateSteps('MotivoDetalle', decision == 'false' );\n updateSteps('Motivo', decision == 'false' );\n };\n }, [decision]);\n\n useEffect(() => {\n if (motivo) {\n updateSteps('MotivoDetalle', motivo == '6' );\n };\n }, [motivo]);\n\n\n const updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const NuevoFormData: Partial = {\n headers: {},\n fields: { \n name: idLead?.FirstName ? idLead.FirstName : (idPerson?.FirstName ? idPerson.FirstName : ''),\n surname: idLead?.LastName ? idLead.LastName : (idPerson?.LastName ? idPerson.LastName : ''),\n secondSurname: idLead?.MiddleName ? idLead.MiddleName : (idPerson?.TXT_2_Surname__c ? idPerson.TXT_2_Surname__c : ''),\n formName: 'no_compra-no_quiero', \n formType: 'otherform', \n pageCategory: 'Encuesta' \n }\n };\n\n const generateData = (isPresubmit: boolean, data: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n const personData = fields.decision == 'true' ? {\n 'fields[PERSON_NAME]': idLead.FirstName,\n 'fields[PERSON_SURNAME_1]': idLead.LastName,\n 'fields[PERSON_SURNAME_2]': idLead.MiddleName,\n 'fields[PERSON_EMAIL]': idLead.Email,\n 'fields[PERSON_PHONE_MOBILE]': idLead.MobilePhone,\n } : null;\n\n const installationData = selectedInstallation && fields.decision == 'true' ? {\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.ShippingStateCode.toString().padStart(2, '0'),\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n //'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...personData,\n ...installationData,\n 'fields[SURVEY_ANSWER_47]': fields.motivo,\n 'fields[SURVEY_ANSWER_49]': fields.motivoDetalle,\n 'flags[FLAG_SF_INTEGRATION]' : fields.decision == 'true',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idLead, dpsData, fields, data),\n ...submitData,\n };\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response?.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoCompraForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { getParamsForm } from 'src/feature-app/get-params-form';\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (isPresubmit, idLead, dpsData, fields, data) => {\n\n\tconst formName = fields.formName ? fields.formName : data.fields.formName;\n\n\treturn {\n 'headers[DPS_TOKEN]': isPresubmit ? 'VW_DDB_FRM_ENCUESTA_NO_COMPRA_PREGRABACION' : 'VW_DDB_FRM_ENCUESTA_NO_COMPRA',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_URL]': url,\n 'headers[FORM_NAME]': `vw-oneform-${formName}`,\n 'headers[FORM_DETAILS]': isPresubmit ? 'NoCompra Pregrabación' : 'NoCompra Grabación',\n 'headers[FORM_OBJECTIVE]': fields.quieroContacto == 'true' ? 'Más Información' : 'Encuesta',\n 'headers[FORM_VERSION]': `vw-oneform-${formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[FK_SYSTEM]': idLead.Id,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\n //'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\n\t\t'fields[SURVEY_ANSWER_01]': formName == 'no_compra-no_quiero' ? '3' : formName == 'no_compra-no_tengo' ? '2' : '1',\n\n\t\t//'fields[DESC_LOPD]': isPresubmit ? '' : 'PERMITE',\n\t\t//'fields[DESC_TRANF_DATA_THIRD]': isPresubmit ? '' : 'NO INFORMADO',\n\n\t\t// Para no_tengo y ya_tengo: todo false\n\t\t//'flags[FLAG_ISLEAD]': fields.quieroVolkswagen == 'false' ? 'false' : fields.quieroContacto,\n\t\t//'flags[FLAG_ISPROSPECT]': fields.quieroVolkswagen == 'true' && fields.quieroContacto == 'false' ? 'true' : 'false',\n\t\t//'flags[FLAG_GENERATELEM]': fields.quieroVolkswagen == 'false' ? 'false' : fields.quieroContacto,\n\t}\n};\n","import React from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { Steps } from 'src/types';\nimport { RatingStars } from 'src/components';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\n\nconst resetStepsScreenIndex = (steps: Steps[], offset: number) => {\n return steps.map((step, index) => {\n step.screenIndex = index + offset;\n return step;\n });\n};\n\nexport function RatingSteps(formName: string, startIndex: number) {\n\t\n\tconst steps: Steps[] = [\n\n\t\t{\n\t\t\ttitle: El precio del modelo,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Precio',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: Características del vehículo, equipamiento y asistentes adicionales,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Equipamiento',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: El consumo del modelo,\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Consumo',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: La garantía del modelo,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Garantia',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t\t{\n\t\t\ttitle: Las condiciones de financiación,\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: 0,\n\t\t\tname: 'Financiacion',\n\t\t\toutputsIsStars: true,\n\t\t},\n\t];\n\n\tif (formName == 'ya_tengo') {\n\t\tconst prevSteps: Steps[] = [\n\t\t\t{\n\t\t\t\ttitle: Los plazos de entrega,\n\t\t\t\talternateTitle: Los plazos de entrega,\n\t\t\t\tfields: (\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Plazos',\n\t\t\t\toutputsIsStars: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttitle: Tu visita al punto de venta,\n\t\t\t\tfields: (\n\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Visita',\n\t\t\t\toutputsIsStars: true,\n\t\t\t}\n\t\t];\n\n\t\treturn resetStepsScreenIndex(prevSteps.concat(steps), startIndex + 1);\n\t}\n\telse if(formName == 'no_tengo') {\n\t\tconst prevSteps: Steps[] = [\n\t\t\t{\n\t\t\t\ttitle: Gestión del punto de venta,\n\t\t\t\talternateTitle: Gestión del punto de venta,\n\t\t\t\tfields: (\n\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tscreenIndex: 0,\n\t\t\t\tname: 'Gestion',\n\t\t\t\toutputsIsStars: true,\n\t\t\t}\n\t\t];\n\n\t\treturn resetStepsScreenIndex(prevSteps.concat(steps), startIndex + 1);\n\t}\n\telse {\n\t\treturn resetStepsScreenIndex(steps, startIndex + 1);\n\t}\n}","import { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useGetInstalaciones } from 'src/feature-app';\nimport { IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkHasCarlineNoRenovacion = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeNoRenovacionForm(steps: Steps[]) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const installations = useGetInstalaciones('VW_DDB_FORM_NORENUEVA', 'VOLKSWAGEN_SF_INSTALLATION_ALL'); // llama al metodo getInstallations()\n\n useEffect(() => {\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setLoading(false);\n };\n\n requestCarlines();\n }, []);\n\n return { firstStep: steps[0], lastStep: getLastItemOfSteps(steps), loading };\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdPerson, IdVehicle } from 'src/types';\nimport { NoRenovacionYaTengo, NoRenovacionNoTengo, NoRenovacionNoQuiero } from '.';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkHasCarlineNoRenovacion } from './use-initialize-no-renovacion-form';\nimport { createPincodeEntity } from '../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface NoRenovacionFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n idVehicle: IdVehicle;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n estado: string;\n}\n\nexport function NoRenovacionController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [estado, setEstado] = useState(null);\n const [yaTengo, setYaTengo] = useState(false);\n const [noTengo, setNoTengo] = useState(false);\n const [noQuiero, setNoQuiero] = useState(false);\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const idVehicleRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n const dispatch = useDispatch();\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n const { estado } = dpsData;\n setEstado(estado);\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n const idVehicle = createPincodeEntity(dpsData, 'VEHICLE');\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n idVehicleRef.current = idVehicle;\n\n if (estado === 'ya_tengo') {\n setYaTengo(true);\n } else if (estado === 'no_quiero') {\n setNoQuiero(true);\n } else if (estado === 'no_tengo') {\n setNoTengo(true);\n } else {\n handleError();\n }\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n {/* useEffect(() => {\n console.log(error, 'error');\n }, [error]);*/}\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n if (checkHasCarlineNoRenovacion(idLeadRef.current)) {\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else {\n return (\n <>\n {yaTengo ? (\n \n ) : noTengo ? (\n \n ) : noQuiero ? (\n \n ) : null}\n \n );\n }\n}\n","\n\nimport { getParamsForm } from 'src/feature-app/get-params-form';\n\nconst { tc, today, url, device } = getParamsForm();\nconst urlParams = new URLSearchParams(window.location.search);\n\nexport const getCommonFormData = (isPresubmit, idPerson, idVehicle, dpsData, fields, data, surveyAnswer01) =>{\n\n const submitData = !isPresubmit ? {\n 'headers[FORM_SOURCE_INFO]': 'Encuesta Renovación',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n } : null;\n\n return {\n ...submitData,\n\n 'headers[DPS_TOKEN]': isPresubmit ? 'VW_DDB_FORM_NORENUEVA_PREGRABACION': 'VW_DDB_FORM_NORENUEVA',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_DETAILS]': isPresubmit ? 'NoRenovación Pregrabación' : 'NoRenovación Grabación',\n 'headers[FORM_MKT_CHANNEL]': 'CRM',\n 'headers[FORM_NAME]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n 'headers[FORM_OBJECTIVE]': fields.formName ==='no_renovacion-no_tengo' && fields.quieroContacto === 'true' ? 'Más Información' : 'Encuesta',\n 'headers[FORM_URL]': url,\n 'headers[FORM_WEB_SECTION]': 'Genérica',\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n 'headers[FK_SYSTEM]': urlParams.get('assetid'),\n 'headers[FORM_VERSION]': fields.formName ? `vw-oneform-${fields.formName}-${process.env.VERSION}` : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[VEH_ACTUAL_FRAME]': idVehicle.Name,\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_NAME]': idPerson.FirstName,\n 'fields[PERSON_SURNAME_1]': idPerson.LastName,\n 'fields[PERSON_EMAIL]': idPerson.PersonEmail,\n 'fields[PERSON_PHONE_MOBILE]': idPerson.MobilePhone,\n 'fields[SURVEY_ANSWER_01]': surveyAnswer01,\n\n 'flags[PERSON_RGPD_ADAPTED]': true,\n 'flags[FLAG_ALLOWS_DATA_ENRICHMENT]': false,\n 'flags[FLAG_IS_MYSTERY_LEAD]': false,\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[FLAG_SF_INTEGRATION]': fields.quieroVolkswagen === 'true' && fields.quieroContacto === 'true' ? 'true' : 'false',\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, } from 'src/types';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Container, ContainerPadding, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { MultipleCTASelection, MultipleOptionCTAs, DetalleMotivo, SelectMarcaModelo } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { CTAsMotivoRenovador, CTAsMotivoRenovadorProblemas, CTAsUsadoNuevo, CTAsLugarCompra } from 'src/feature-app/InputsValues';\n\nexport enum NoRenovacionNewCar {\n Introduccion,\n Modelo,\n UsadoNuevo,\n LugarCompra,\n Motivo,\n MasInformacion,\n ProblemasVehiculo,\n Confirmacion,\n}\n\nexport function NoRenovacionYaTengo({\n dpsData,\n idVehicle,\n idPerson,\n handleError,\n trackFormLoad,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm } = useOneFormContext();\n const trackingManager = useTrackingManager();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const { selectMotivos, brand } = formData.fields;\n\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos encanta viajar contigo, pero sabemos que la vida da muchas vueltas y tenemos curiosidad…{' '}\n ¿Qué modelo te ha conquistado?\n \n ),\n fields: } />,\n screenIndex: NoRenovacionNewCar.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Qué modelo{' '}\n \n elegiste?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n \n ¿Qué tipo de vehículo has{' '}\n \n escogido?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionNewCar.UsadoNuevo,\n name: 'usadoNuevo',\n },\n {\n title: (\n \n ¿Dónde has adquirido tu nuevo{' '}\n \n vehículo?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionNewCar.LugarCompra,\n name: 'lugarCompra',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n no has elegido un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Por qué motivos \n no has elegido un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.Motivo,\n name: 'selectMotivos',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n tuviste problemas con {' '}\n \n tu vehículo anterior?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNewCar.ProblemasVehiculo,\n name: 'selectMotivosProblems',\n },\n {\n title: (\n <>\n \n ¿Nos puedes decir cuáles{' '}\n \n son?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNewCar.MasInformacion,\n name: 'masInformacion',\n },\n {\n fields: ,\n screenIndex: NoRenovacionNewCar.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: { formName: 'no_renovacion-ya_tengo', formType: 'otherform', pageCategory: 'Encuesta' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n }; \n\n useEffect(() => {\n if (brand) {\n updateSteps('lugarCompra', brand == '36', 'usadoNuevo');\n updateSteps('selectMotivos', brand != '36', 'usadoNuevo');\n updateSteps('selectMotivosProblems', brand != '36', 'selectMotivos');\n updateSteps('masInformacion', brand != '36', 'selectMotivosProblems');\n };\n }, [brand]);\n\n useEffect(() => {\n if (selectMotivos){\n if (!(selectMotivos.includes('14') && selectMotivos.includes('13'))) {\n if (selectMotivos.includes('14')) {\n updateSteps('masInformacion', false);\n }else if (selectMotivos.includes('13')) {\n updateSteps('selectMotivosProblems', false);\n }else{\n updateSteps('masInformacion', false);\n updateSteps('selectMotivosProblems', false);\n }\n }\n }\n }, [selectMotivos]);\n\n const updateSteps = (stepName: string, conditional: boolean, addOnNextStepName?: string ) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n let newScreenIndex = screenIndex;\n\n if (conditional) {\n\n const stepIndex = getIndexInSteps(newSteps, stepName);\n\n if (stepIndex === -1) {\n if (addOnNextStepName) {\n newScreenIndex = getIndexInSteps(newSteps, addOnNextStepName);\n }\n newSteps = addRemovedStep(steps, actualSteps, stepName, newScreenIndex);\n }\n } else {\n newSteps = removeStep(newSteps, stepName);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n let motivos = fields.selectMotivos;\n\n if(fields.selectMotivosProblems){\n motivos = motivos.replace(\"14\", fields.selectMotivosProblems);\n }else{\n motivos = deleteProblema(motivos);\n }\n\n motivos = orderString(motivos);\n\n const submitData = !isPresubmit ? {\n 'fields[SURVEY_ANSWER_02]': fields.brand,\n 'fields[SURVEY_ANSWER_03]': fields.modelo,\n 'fields[SURVEY_ANSWER_04]': fields.usadoNuevo,\n 'fields[SURVEY_ANSWER_05]': motivos,\n 'fields[SURVEY_ANSWER_06]': fields.lugarCompra,\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, idVehicle, dpsData, fields, data, '1'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const deleteProblema = (motivosProblema) => {\n\n if (motivosProblema != null) {\n const array = motivosProblema.split(\",\");\n \n if (array.length == 1 && (array[0] == \"14\" || array[0] == \"nada\")) {\n return null;\n }\n\n const motivos = array.filter(numero => numero != \"14\");\n \n return motivos.join(\",\");\n }\n }\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n styled,\n Text,\n Layout,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport {\n LssiTkmQuestions,\n PoliticaPrivacidad,\n LastNavigation,\n MultipleCTASelection\n} from 'src/components';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { CTAsSiNo } from 'src/feature-app';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 10px;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n max-width: 280px;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n `;\ninterface ConfirmacionNoRenovacionProps {\n idPerson: IdPerson;\n}\n\nexport const ConfirmacionNoRenovacion = (props: ConfirmacionNoRenovacionProps) => {\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [compartir, setCompartir] = useState(null);\n const [compartirError, setCompartirError] = useState(false);\n const store = useStore();\n const isLead: boolean = store.getState().formData.fields.quieroContacto === 'true';\n const lssiPermited: boolean = props.idPerson?.LSSI__c === 'PERMITE';\n\n useEffect(() => {\n if (compartir) {\n const values = { compartir: compartir };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setCompartirError(false);\n }\n }, [compartir]);\n\n useEffect(() => {\n if (lssiPermited) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idPerson]);\n\n const generateLastQuestionTitle = () => {\n return lssiPermited ?\n (\n < Text bold >Mantente al día\n\n ) : (\n < Text bold >Mantente al día\n );\n };\n\n return (\n \n \n {lssiPermited && !isLead ||\n formData.fields.formName !== 'no_renovacion-no_tengo' && lssiPermited ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n < Text appearance={TokenTextAppearance.headline300}>\n {generateLastQuestionTitle()}\n \n )}\n\n {formData.fields.formName === 'no_renovacion-no_tengo' && isLead && (\n \n
\n \n ¿Podemos compartir tu respuesta con el{' '}\n \n punto de venta?*\n \n \n
\n \n {compartirError ? Este campo es oblligatorio : null}\n
\n )}\n\n \n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouNoRenovacion = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper } from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { AvailabilityErrorLayer } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useMapGeneralController,\n sortPoints,\n useOneFormContext,\n useFeatureServices,\n NewDealerCard,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms/CitaPosventa/NuevaCitaPosventa';\nimport { Horario, OneFormState, Points } from 'src/types';\nimport { fetchProvince, fetchProvinceLegacy } from 'src/bff';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport {\n getDistanceFromLatLngCenter,\n LayerDesktopView,\n LayerMobileView\n} from 'src/feature-app/NewMap';\n\nexport const JourneyNoRenovacionController = () => {\n const { formData } = useSelector((state: OneFormState) => state);\n const { horario }: { horario?: Horario } = formData.fields;\n const { handleNextStep } = useOneFormContext();\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const [loading, setLoading] = useState(false);\n const pointsByDistanceRef = useRef(null);\n const isComerciales = useIsComerciales();\n\n const loadingLayer = useRef(null);\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n } = useMapGeneralController();\n\n const [pointsToList, setPointsToList] = useState(null);\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const { pointsByDistance } = sortPoints(\n clusters,\n horario,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n pointsByDistanceRef.current = pointsByDistance;\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const renderPoints = (points: Points[], isTime?: boolean, isCarouselCard?: boolean): JSX.Element[] => {\n // const pointsToRender = isTime ? pointsByTime : pointsByDistance;\n\n return points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n \n );\n }\n return null;\n });\n };\n\n // Gestión del point seleccionado y del boton de seleccionar (dms)\n const handleSeleccionarOnClick = useCallback((point: Points) => {\n // Añadir lógica para guardar el dealer seleccionado\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: point.properties.installation });\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n // Necesitamos el nombre de la provincia, y éste no está disponible en la request de instalaciones.\n if(isComerciales) {\n fetchProvince('LCV_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n else {\n fetchProvince('VW_DDB_FRM_LEM_REC_LEM').then((response) => {\n const province = response.content.find((att) =>\n att.attributes.find((prov) => prov.value === point.properties.installation.FRML_TXT_codVentaProvincia__c)\n );\n const provinceName = province.attributes[1].value;\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { provinceName } });\n });\n }\n\n handleNextStep();\n }, []);\n\n const renderAvailabilityErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const handleLoadingLayer = () => {\n if (loading) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n } else {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n }\n };\n\n useEffect(() => {\n handleLoadingLayer();\n }, [loading]);\n\n // availability functions\n\n return (\n
\n \n \n \n\n \n \n \n
\n );\n};\n","import React from 'react';\nimport { JourneyNoRenovacionController } from '.';\nimport { MapGeneralController } from 'src/feature-app';\n\n/**\n * Este componente está creado únicamente para que JourneyNoRenovacionController tenga acceso a las variables de MapGeneralController.\n */\nexport const JourneyNoRenovacionWrapper = () => {\n \n return (\n \n \n \n );\n};\n","import { Text, styled, CTA } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { LocateUserFullScreen } from 'src/components';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { RenderController, OneElementTemplateFullScreen, TwoElementsTemplateFullScreen } from 'src/feature-app/Screen';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\nimport { TIME_FOR_TRANSFORM } from 'src/globals';\nimport { OneFormState, Steps } from 'src/types';\nimport { JourneyNoRenovacionWrapper } from './JourneyNoRenovacionWrapper';\nimport { InteractionLayerSizeV2, ShimBackgroundTypeV2 } from '@volkswagen-onehub/layer-manager';\n\nenum MapaNoRenovacionSteps {\n Dealer,\n Horario,\n SeleccionCita,\n SeleccionFecha,\n}\nconst isLastScreen = (steps: Steps[], multiStepScreenIndex: number) => steps.length - 1 === multiStepScreenIndex;\nconst isFirstScreen = (multiStepScreenIndex: number) => multiStepScreenIndex === 0;\n\nexport const MapaNoRenovacion = () => {\n\n const dispatch = useDispatch();\n const store = useStore();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { firstMapLoad, multiStepScreenIndex, navigationMovingForward } = formInfo;\n const layerManager = useFeatureServices()['layer-manager'];\n const env = useFeatureAppEnvironment();\n const { nextStep } = useOneFormContext();\n\n const {\n handleScreenChange,\n // setWaitForNextStep,\n setNextMultiStep,\n setNextMultiStepScreenIndex,\n setPreviousMultiStep,\n setWaitForPreviousStep,\n waitForPreviousStep,\n // waitForNextStep,\n setIsFullScreen,\n setShowPreviousStep,\n nextStepEventEmitter,\n } = useOneFormContext();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Si tienes dudas, puedes pedir a un punto de venta que te contacte.\n \n ),\n fields: (\n }\n />\n ),\n screenIndex: MapaNoRenovacionSteps.Dealer,\n name: 'MapSearch',\n outputs: ['location'],\n outputsText: ['location'],\n showOverflow: true,\n },\n {\n screenIndex: 1,\n name: 'MapSelect',\n alternateTitle: (\n \n Elige{' '}\n el concesionario que{' '}\n \n prefieras*\n \n \n \n ),\n title: <>,\n fields: ,\n outputs: ['installation'],\n outputsText: ['installation'],\n fullScreen: true,\n multiStepLastScreen: true,\n hidePreviousStep: true,\n },\n ];\n\n const [selectedStep, setSelectedStep] = useState(null);\n const layerRef = useRef(null);\n /**\n * Hay que esperar a que se cree el mapa de google para tener acceso a window.google\n */\n const onMapLoad = () => {\n if (multiStepScreenIndex === 0) {\n handleFirstLoad();\n }\n };\n\n const handleFirstLoad = async () => {\n if (firstMapLoad) {\n // Inicialización\n initializeMultiStep();\n } else {\n if (navigationMovingForward || navigationMovingForward === null || navigationMovingForward === undefined) {\n // Inicialización cuando se va hacia adelante una vez inicializado el mapa o después de cerrar el layer y abrir en el mapa.\n initializeMultiStep();\n } else {\n // En caso de que estemos en la última pantalla, desactivamos el wait for next step.\n const newWaitForNextStep = !isLastScreen(steps, multiStepScreenIndex);\n // Lo mismo para previous, solo le desactivamos si estamos en la primera.\n const newWaitForPreviousStep = !isFirstScreen(multiStepScreenIndex);\n\n updateWaitForNextAndPreviousStep(newWaitForNextStep, newWaitForPreviousStep);\n updateScreenChangeVariables(multiStepScreenIndex);\n\n\n }\n }\n setNextMultiStep(() => nextMapaNoRenovacion);\n setPreviousMultiStep(() => previousMapaNoRenovacion);\n };\n\n const initializeMultiStep = () => {\n updateWaitForNextAndPreviousStep(true, false);\n updateScreenChangeVariables(0);\n };\n\n const updateWaitForNextAndPreviousStep = (waitForNextStep: boolean, waitForPreviousStep: boolean) => {\n if (waitForNextStep !== null) {\n dispatch({ type: 'UPDATE_WAIT_FOR_NEXT_STEP', payload: waitForNextStep });\n }\n if (waitForPreviousStep !== null) {\n setWaitForPreviousStep(waitForPreviousStep);\n }\n };\n\n const nextMapaNoRenovacion = () => {\n // const { multiStepScreenIndex } = store.getState().formInfo;\n\n // handleScreenChange();\n\n // // Una vez avanzamos dentro de los multisteps se activa el wait\n // // previous step para volver hacia atrás dentro del propio multistep.\n // if (!waitForPreviousStep || multiStepScreenIndex === 0) {\n // updateWaitForNextAndPreviousStep(null, true);\n // }\n\n // setTimeout(() => {\n // updateScreenChangeVariables(multiStepScreenIndex + 1);\n // // Si estamos en el último paso del multistep se desactiva el\n // // wait next step para poder salir del multistep y avanzar hacia la siguiente pantalla.\n // if (steps[multiStepScreenIndex + 1].multiStepLastScreen) {\n // updateWaitForNextAndPreviousStep(false, null);\n // setShowPreviousStep(true);\n // }\n // }, TIME_FOR_TRANSFORM);\n renderLayer();\n };\n\n const previousMapaNoRenovacion = () => {\n const { multiStepScreenIndex, waitForNextStep } = store.getState().formInfo;\n\n handleScreenChange();\n\n // Se desactiva el wait previous step en la segunda pantalla para que\n // en el caso de volver hacia atrás en la primera salte de step y no busque dentro de los multisteps.\n if (multiStepScreenIndex === 1) {\n updateWaitForNextAndPreviousStep(null, false);\n }\n\n if (!waitForNextStep) {\n updateWaitForNextAndPreviousStep(true, null);\n }\n\n // Se fija en la pantalla previa a la primera para que cuando se cambie\n // a la primera pantalla el CTA de anterior pase del multistep al step anterior.\n setTimeout(() => {\n updateScreenChangeVariables(multiStepScreenIndex - 1);\n }, TIME_FOR_TRANSFORM);\n };\n\n const updateScreenChangeVariables = (newMultiStepScreenIndex: number) => {\n setNextMultiStepScreenIndex(newMultiStepScreenIndex);\n dispatch({ type: 'UPDATE_MULTISTEP_SCREENINDEX', payload: newMultiStepScreenIndex });\n setSelectedStep(steps[newMultiStepScreenIndex]);\n setIsFullScreen(steps[newMultiStepScreenIndex].fullScreen);\n setShowPreviousStep(!steps[newMultiStepScreenIndex].hidePreviousStep);\n };\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_MULTISTEPS', payload: steps });\n\n handleFirstLoad();\n\n return () => {\n dispatch({ type: 'UPDATE_FIRST_MAP_LOAD', payload: false });\n setShowPreviousStep(true);\n updateWaitForNextAndPreviousStep(false, false);\n };\n }, []);\n\n const renderElement = (state?: any) => {\n if (state) {\n updateWaitForNextAndPreviousStep(false, null);\n }\n\n return (\n \n \n \n \n \n );\n };\n\n const renderLayer = () => {\n const layer = layerManager.openInteractionLayer(\n renderElement,\n { step: steps[1], nextStepEventEmitter },\n { size: InteractionLayerSizeV2.D, id: 'mapaNoRenovacion', shimBackgroundType: ShimBackgroundTypeV2.OPAQUE }\n );\n layerRef.current = layer;\n return null;\n };\n\n return selectedStep ? (\n selectedStep.screenIndex === 1 ? null : (\n \n \n \n )\n ) : null;\n};\n","import React, { useEffect, useState } from 'react';\nimport { FormController, getParamsForm, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { Text, Container, ContainerPadding, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { CarlineSelect, MultipleCTASelection, DetalleMotivo, MultipleOptionCTAs, SelectMarcaModelo } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, MapaNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { getDescInterestCarline } from '../Leads/helpers';\nimport {\n CTAsSiNo,\n CTAsNuevoOcasión,\n CTAsMotivoRenovador,\n CTAsMotivoRenovadorNoTengoExclusivo,\n CTAsMotivoRenovadorProblemas\n} from 'src/feature-app/InputsValues/CTAsObjects';\n\nconst getModeloInteresTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Qué modelo te llama más la{' '}\n \n atención?\n *\n \n \n );\n } else {\n return (\n <>\n ¿Qué otra marca y modelo estás valorando principalmente?\n \n );\n }\n};\n\nconst getModeloInteresFields = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n \n \n \n }\n />\n );\n } else {\n return (\n \n }\n />\n );\n }\n};\n\nconst getModeloInteresOutputs = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['brand', 'model'];\n }\n};\nconst getModeloInteresOutputsText = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return ['modelo'];\n } else {\n return ['brand', 'model'];\n }\n};\n\nconst getDudasTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Hay algo que te esté{' '}\n \n haciendo dudar en la compra del{' '}\n \n Volkswagen?*\n \n \n \n \n Elige un máximo de 3 opciones\n \n \n\n \n );\n } else {\n return (\n <>\n ¿Por qué motivos \n no estás valorando un{' '}\n \n Volkswagen?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n \n );\n }\n};\nconst getDudasAlternatTitle = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n <>\n ¿Hay algo que te esté{' '}\n \n haciendo dudar en la compra del{' '}\n \n Volkswagen?*\n \n \n \n );\n } else {\n return (\n <>\n ¿Por qué motivo \n no estás valorando un{' '}\n \n Volkswagen?*\n \n \n );\n }\n};\n\nconst getDudasFields = (quieroVolkswagen: string) => {\n if (quieroVolkswagen === 'true') {\n return (\n \n }\n />\n );\n } else {\n return (\n \n }\n />\n );\n }\n};\n\nexport enum NoRenovacionSigueBuscando {\n Introduccion,\n QuieroVolkswagen,\n Modelo,\n TipoCoche,\n OtraMarca,\n Motivo,\n MasInformacion,\n ProblemasVehiculo,\n // QuieroContacto,\n Mapa,\n Confirmacion,\n}\n\nexport function NoRenovacionNoTengo({\n dpsData,\n idVehicle,\n idPerson,\n handleError,\n trackFormLoad,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { quieroVolkswagen, selectMotivos } = formData.fields;\n const { screenIndex } = formInfo;\n const dispatch = useDispatch();\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const store = useStore();\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const updateModeloInteresStep = (quieroVolkswagen: string) => {\n const { steps: actualSteps } = store.getState().formInfo;\n const title = getModeloInteresTitle(quieroVolkswagen);\n const fields = getModeloInteresFields(quieroVolkswagen);\n const outputs = getModeloInteresOutputs(quieroVolkswagen);\n const outputsText = getModeloInteresOutputsText(quieroVolkswagen);\n\n let newSteps = [...steps];\n\n const modeloIndex = newSteps.findIndex((step: Steps) => step.name === 'Modelo');\n\n newSteps[modeloIndex].title = title;\n newSteps[modeloIndex].fields = fields;\n newSteps[modeloIndex].outputs = outputs;\n newSteps[modeloIndex].outputsText = outputsText;\n\n if (quieroVolkswagen === 'false') {\n newSteps = removeStep(newSteps, 'Mapa');\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'false' } });\n } else {\n const mapaIndex = getIndexInSteps(newSteps, 'Mapa');\n dispatch({ type: 'UPDATE_FIELDS', payload: { quieroContacto: 'true' } });\n\n if (mapaIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'Mapa', screenIndex);\n }\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const handleStepsNoVolkswagen = (quieroVolkswagen: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n\n if (quieroVolkswagen === 'true') {\n newSteps = [...steps];\n } else {\n newSteps = removeStep(newSteps, 'tipoCoche');\n newSteps = removeStep(newSteps, 'otraMarca');\n newSteps = removeStep(newSteps, 'Mapa');\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos encantaría seguir siendo tu compañero de viaje. \n Cuéntanos qué te hace dudar para poder ayudarte.\n \n ),\n fields: } />,\n screenIndex: NoRenovacionSigueBuscando.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Estás valorando un{' '}\n \n Volkswagen?*\n \n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.QuieroVolkswagen,\n name: 'quieroVolkswagen',\n trueOrFalseQuestion: true,\n },\n {\n title: <>, // Se actualiza en updateModeloInteresStep\n fields: <>, // Se actualiza en updateModeloInteresStep\n screenIndex: NoRenovacionSigueBuscando.Modelo,\n name: 'Modelo',\n showOverflow: true,\n },\n {\n title: (\n <>\n ¿Qué tipo de coche \n te{' '}\n \n interesa?*\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.TipoCoche,\n name: 'tipoCoche',\n },\n {\n title: (\n <>\n ¿Estás valorando algún{' '}\n \n modelo de otra{' '}\n \n marca?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.OtraMarca,\n name: 'otraMarca',\n showOverflow: true,\n },\n {\n title: getDudasTitle(quieroVolkswagen),\n alternateTitle: getDudasAlternatTitle(quieroVolkswagen),\n fields: getDudasFields(quieroVolkswagen),\n screenIndex: NoRenovacionSigueBuscando.Motivo,\n name: 'selectMotivos',\n },\n {\n title: (\n <>\n ¿Por qué motivos \n tuviste problemas con tu {' '}\n \n vehículo anterior?*\n \n \n \n Elige un máximo de 3 opciones\n \n \n\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionSigueBuscando.ProblemasVehiculo,\n name: 'selectMotivosProblems',\n },\n {\n title: (\n <>\n ¿Qué otros motivos te hacen dudar?\n \n ),\n fields: (\n } />\n ),\n screenIndex: NoRenovacionSigueBuscando.MasInformacion,\n name: 'masInformacion',\n },\n {\n screenIndex: NoRenovacionSigueBuscando.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: ,\n },\n {\n fields: ,\n screenIndex: NoRenovacionSigueBuscando.Confirmacion,\n name: 'Confirmacion',\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'no_renovacion-no_tengo',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n //mostrar u ocultar pantalla mas información según los ctas de dudas seleccionados\n\n const updateSteps = (stepName: string, conditional: boolean, addOnNextStepName?: string ) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n let newScreenIndex = screenIndex;\n\n if (conditional) {\n\n const stepIndex = getIndexInSteps(newSteps, stepName);\n\n if (stepIndex === -1) {\n if (addOnNextStepName) {\n newScreenIndex = getIndexInSteps(newSteps, addOnNextStepName);\n }\n newSteps = addRemovedStep(steps, actualSteps, stepName, newScreenIndex);\n }\n } else {\n newSteps = removeStep(newSteps, stepName);\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields } = formData;\n const { selectedInstallation } = dealersInfo;\n\n let motivos = fields.selectMotivos;\n\n if(fields.selectMotivosProblems){\n motivos = motivos.replace(\"14\", fields.selectMotivosProblems);\n }else{\n motivos = deleteProblema(motivos);\n }\n\n motivos = orderString(motivos);\n\n const installationData = selectedInstallation && fields.quieroContacto === 'true' ? {\n 'fields[SF_LEAD_RECORDTYPE_ID]': '0121i000000D7NyAAK',\n 'fields[SF_LEAD_RECORDTYPE_NAME]': 'Sales Assistant',\n 'fields[SF_LEAD_SALES_INITIAL_ACTION]': 'Direct to Sales Assistant',\n 'fields[SF_LEAD_INSTALLATION_ID]': selectedInstallation.Id,\n 'fields[SF_LEAD_INSTALLATION_CODE]': selectedInstallation.VGED_DealerCode__c,\n 'fields[SF_LEAD_INSTALLATION_NAME]': selectedInstallation.VGED_CommercialName__c,\n 'fields[SF_LEAD_INSTALLATION_ADDRESS]': selectedInstallation.ShippingStreet,\n 'fields[SF_LEAD_INSTALLATION_PROVINCE_CODE]': selectedInstallation.ShippingStateCode.toString().padStart(2, '0'),\n } : null;\n\n const submitData = !isPresubmit ? {\n ...installationData,\n 'fields[COMMENTS_BRAND]': fields.masInformacion\n ? 'Motivos de duda indicados por el cliente en la encuesta: ' + fields.masInformacion\n : motivos,\n 'fields[SURVEY_ANSWER_11]': fields.quieroVolkswagen,\n 'fields[SURVEY_ANSWER_13]': fields.tipoCoche == 'nuevo' ? '1' : '2',\n 'fields[SURVEY_ANSWER_14]': fields.otraMarca == 'false' ? null : fields.otraMarca,\n 'fields[SURVEY_ANSWER_16]': fields.quieroVolkswagen == 'true' ? motivos : null,\n 'fields[SURVEY_ANSWER_19]': fields.brand,\n 'fields[SURVEY_ANSWER_20]': fields.model,\n 'fields[SURVEY_ANSWER_21]': fields.quieroVolkswagen == \"true\" ? null : motivos, \n 'fields[VEH_INTEREST_ID]': fields.carlineCode,\n 'fields[VEH_INTEREST_MODEL]': getDescInterestCarline(dealersInfo, fields.modelo), \n 'fields[VEH_INTEREST_NEW_OR_USED]': fields.tipoCoche === 'nuevo' ? 'New Car' : 'Used Car',\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, idVehicle, dpsData, fields, data, '3'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const deleteProblema = (motivosProblema) => {\n \n if (motivosProblema != null) {\n const array = motivosProblema.split(\",\");\n \n if (array.length == 1 && (array[0] == \"14\" || array[0] == \"nada\")) {\n return null;\n }\n\n const motivos = array.filter(numero => numero != \"14\");\n \n return motivos.join(\",\");\n }\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n //activación de lógica para la gestion de steps\n\n useEffect(() => {\n if (quieroVolkswagen) {\n updateModeloInteresStep(quieroVolkswagen);\n handleStepsNoVolkswagen(quieroVolkswagen);\n }\n }, [quieroVolkswagen]);\n\n useEffect(() => {\n if (selectMotivos){\n if (!(selectMotivos.includes('14') && selectMotivos.includes('13'))) {\n if (selectMotivos.includes('14')) {\n updateSteps('masInformacion', false);\n }else if (selectMotivos.includes('13')) {\n updateSteps('selectMotivosProblems', false);\n }else{\n updateSteps('masInformacion', false);\n updateSteps('selectMotivosProblems', false);\n }\n }\n }\n }, [selectMotivos]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import React, { useEffect, useState } from 'react';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Container, ContainerPadding, Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { DetalleMotivo, MultipleOptionCTAs, LegalFullScreenSinConsentmientos } from 'src/components';\nimport { ConfirmacionNoRenovacion, ThankYouNoRenovacion, FakeTriggerCTA } from '.';\nimport { getCommonFormData } from './FormData';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { NoRenovacionFormProps } from './NoRenovacionController';\nimport { useInitializeNoRenovacionForm } from './use-initialize-no-renovacion-form';\nimport {\n addRemovedStep,\n getIndexInSteps,\n removeStep,\n resetStepsScreenIndex,\n removeMultipleSteps,\n} from '../helpers/add-remove-steps';\nimport { CTAsFormasMovilidad, CTAsRazones, CTAsFormasMovilidadExclusive } from 'src/feature-app/InputsValues';\n\nexport enum NoRenovacionNoBuscaSteps {\n Introduccion,\n FormasMovilidad,\n MasInformacion,\n Razones,\n MasInformacionRazones,\n Confirmacion,\n}\n\nexport function NoRenovacionNoQuiero({\n dpsData,\n idLead,\n idVehicle,\n idPerson,\n trackFormLoad,\n handleError,\n estado,\n}: NoRenovacionFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const { formData } = useSelector((state: OneFormState) => state);\n const [loadingPresubmit, setLoadingPresubmit] = useState(false);\n const [loadingForm, setLoadingForm] = useState(false);\n\n const { motivo, razones, formasMovilidad } = formData.fields;\n\n const handleSteps = (formasMovilidad: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n setLoadingForm(true);\n if (formasMovilidad.includes('7')) {\n const aux = formasMovilidad.split(',');\n if (aux.length <= 1) {\n newSteps = removeMultipleSteps(newSteps, ['razones', 'masInformacionRazones']);\n // newSteps = removeStep(newSteps, 'razones');\n // newSteps = removeStep(newSteps, 'masInformacionRazones');\n }\n } else {\n const razones = getIndexInSteps(newSteps, 'razones');\n const masInformacionRazones = getIndexInSteps(newSteps, 'masInformacionRazones');\n\n if (razones === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'razones', screenIndex);\n }\n if (masInformacionRazones === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacionRazones', screenIndex);\n }\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n\n setTimeout(() => {\n handleNextStep();\n setLoadingForm(false);\n }, 0);\n };\n\n const handleDetalleFormasMovilidad = (motivo: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (formasMovilidad.includes('8')) {\n const stepIndex = getIndexInSteps(newSteps, 'masInformacion');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'masInformacion');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const handleDetalleRazones = (razones: Array) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...actualSteps];\n\n if (razones.includes('8')) {\n const stepIndex = getIndexInSteps(newSteps, 'masInformacionRazones');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'masInformacionRazones', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'masInformacionRazones');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n }, []);\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Nos hubiese encantado seguir siendo tu compañero de viaje. \n ¿Nos cuentas el porqué de este cambio por si te podemos ayudar en un futuro?\n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.Introduccion,\n name: 'introduccion',\n },\n {\n title: (\n <>\n \n ¿Cómo vas a realizar tus desplazamientos de ahora en{' '}\n \n adelante?*\n \n \n \n \n Puedes elegir más de una opción\n \n \n \n ),\n alternateTitle: (\n <>\n \n ¿Cómo vas a realizar tus desplazamientos de ahora en{' '}\n \n adelante?*\n \n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNoBuscaSteps.FormasMovilidad,\n name: 'formasMovilidad',\n outputs: ['formasMovilidad'],\n outputsText: ['formasMovilidad'],\n },\n {\n title: (\n <>\n ¿Nos explicas en{' '}\n \n qué medio te vas a{' '}\n \n desplazar?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.MasInformacion,\n name: 'masInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Cuáles han sido las razones \n para hacer este{' '}\n \n cambio?*\n \n \n \n Puedes elegir más de una opción\n \n \n \n ),\n alternateTitle: (\n <>\n ¿Cuáles han sido las razones \n para hacer este{' '}\n \n cambio?*\n \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NoRenovacionNoBuscaSteps.Razones,\n name: 'razones',\n outputs: ['razones'],\n outputsText: ['razones'],\n },\n {\n title: (\n <>\n \n ¿Puedes{' '}\n \n compartirlas?*\n \n \n \n ),\n fields: } />,\n screenIndex: NoRenovacionNoBuscaSteps.MasInformacionRazones,\n name: 'masInformacionRazones',\n outputs: ['masInformacionRazones'],\n outputsText: ['masInformacionRazones'],\n },\n {\n fields: ,\n screenIndex: NoRenovacionNoBuscaSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const NuevoFormData: Partial = {\n fields: {\n formName: 'no_renovacion-no_quiero',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const generateData = (isPresubmit: boolean, data?: Partial) => {\n const { formData }: OneFormState = store.getState();\n const { fields } = formData;\n\n let formasMovilidad = orderString(fields.formasMovilidad);\n let razones = orderString(fields.razones);\n\n const submitData = !isPresubmit ? {\n 'fields[SURVEY_ANSWER_07]': formasMovilidad,\n 'fields[SURVEY_ANSWER_08]': fields.masInformacion,\n 'fields[SURVEY_ANSWER_09]': razones,\n 'fields[SURVEY_ANSWER_10]': fields.masInformacionRazones,\n } : null;\n\n return {\n ...getCommonFormData(isPresubmit, idPerson, idVehicle, dpsData, fields, data, '2'),\n ...submitData,\n };\n };\n\n const orderString = (orderMotivos) => {\n\n if (orderMotivos == null) {\n return null;\n }\n\n const array = orderMotivos.split(\",\");\n \n const sortedArray = array.sort((a, b) => {\n return parseInt(a) - parseInt(b);\n });\n \n const orderString = sortedArray.join(\",\");\n \n return orderString;\n };\n\n const sendForm = async (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = generateData(isPresubmit, NuevoFormData);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData, isPresubmit);\n\n if (response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { firstStep, lastStep, loading } = useInitializeNoRenovacionForm(steps);\n\n useEffect(() => {\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n formType: 'inPage',\n step: firstStep,\n steps,\n stepsHistory: [0],\n customLegal: idPerson.LSSI__c === 'PERMITE' ? : null,\n hideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n thankYouComponent: ,\n };\n\n if (!loading) {\n initializeForm(NuevoFormInfo, NuevoFormData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n useEffect(() => {\n if (formasMovilidad) {\n handleSteps(formasMovilidad);\n handleDetalleFormasMovilidad(formasMovilidad);\n }\n }, [formasMovilidad]);\n\n useEffect(() => {\n if (razones) handleDetalleRazones(razones);\n }, [razones]);\n\n return loadingForm || loading || loadingPresubmit || !steps ? null : (\n \n );\n}\n","import React from 'react';\nimport {\n styled\n} from '@volkswagen-onehub/components-core';\nimport { SuggestModelo, SuggestMarca } from 'src/components';\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: var(--size-grid013);\n }\n @media all and (min-width: 960px) {\n width: var(--size-grid008);\n }\n @media all and (min-width: 1280px) {\n width: var(--size-grid006);\n }\n @media all and (min-width: 1920px) {\n width: var(--size-grid005);\n }\n @media all and (min-width: 2560px) {\n width: var(--size-grid004);\n }\n }\n`;\n\nexport const PantallaMarcaModelo = () => {\n return (\n \n
\n
\n
\n );\n};\n","import React from 'react';\nimport {\n CTA,\n} from '@volkswagen-onehub/components-core';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\nimport { useOneFormContext } from 'src/feature-app';\n\nexport const FakeTriggerCTA = () => {\n const { nextStep } = useOneFormContext();\n const trackingManager = useTrackingManager();\n\n return (\n
\n {\n trackingManager.trackFormStepButtonClick({\n contentId: 'Siguiente',\n });\n e.preventDefault();\n nextStep();\n }}\n ariaLabel=\"aria label\"\n >\n Empezar\n \n
\n );\n};\n","import { Breakpoints, styled, Layout } from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, PoliticaPrivacidad, LastNavigation, GeneralConfirmacionLayerWrapper } from 'src/components';\nimport React from 'react';\n\nexport const ConfirmacionProspects = () => {\n\n return (\n \n \n \n \n\n \n \n \n \n );\n};\n","import Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\nimport { Email, PantallaNombreApellido, CarlineSelect, findCarline } from 'src/components';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines, getMolecularUrl } from 'src/bff';\nimport { isCalculadoraForm } from 'src/forms';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFaContent,\n useFeatureAppConfig,\n useFeatureServices,\n useOneFormContext,\n} from 'src/feature-app';\nimport { ThankYouProspects } from '.';\nimport { formatFields, formatHeaders, formDataBuilder } from '../format-fields';\nimport { removeStep, resetStepsScreenIndex } from '../helpers/add-remove-steps';\nimport { getCodInterestCarline, getDescInterestCarline, getMatchData, getCalculadoraData } from '../Leads';\n\nexport enum ProspectsSteps {\n Modelo,\n NombreApellido,\n Email,\n Confirmacion,\n}\n\ninterface ProspectsFormProps {\n customSteps?: Steps[];\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport function ProspectsVentaForm({ customSteps, updatedFormData }: ProspectsFormProps) {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n\n const steps: Steps[] = customSteps\n ? customSteps\n : [\n {\n title: (\n <>\n ¿Qué modelo te apetece conducir?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n {\n title: (\n <>\n Queremos contártelo todo sobre nuestro próximo modelo, el Nuevo Taigo. Pero antes, nos gustaría saber{' '}\n quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿A qué email te enviamos las novedades sobre el Nuevo Taigo?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n fields: ,\n screenIndex: ProspectsSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_CAMPAIGNBLOCK: 'B5. VW Launch Prospects',\n DESC_FORMOBJECTIVE: 'Prospect',\n DESC_ID_CAMPAIGN: '7011n000000JrSNAA0',\n DESC_TOKEN: 'VW_DDB_FRM_PROSPECT_LAUNCH',\n ...updatedFormData?.headers,\n },\n fields: {\n formName: 'prospect',\n formType: 'otherform',\n pageCategory: 'Prospect',\n formFields: {\n DESC_LOPD: 'PERMITE',\n DESC_TRANF_DATA_THIRD: 'NO INFORMADO',\n },\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (steps: Steps[]): Partial => {\n const firstStep = steps[0];\n const lastStep = steps[steps.length - 1];\n const stepsHistory = [0];\n const numberOfScreens = steps.length;\n\n return {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n formType: 'layer',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory,\n thankYouComponent: ,\n };\n };\n\n const getFormDataWithCarline = async () => {\n const carlineCode = faContent?.carlines[0];\n const carlines = await getCarlines();\n const carlineFromFaContent = carlines.find((carline) => carline.code === Number(carlineCode));\n\n return {\n ...NuevoFormData,\n fields: {\n ...NuevoFormData.fields,\n formFields: {\n ...NuevoFormData.fields.formFields,\n COD_INTEREST_CARLINE: carlineFromFaContent?.code,\n DESC_INTEREST_CARLINE: carlineFromFaContent?.title,\n },\n },\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[COD_INTEREST_CARLINE]': getCodInterestCarline(dealersInfo, fields.carlineCode),\n 'fields[DESC_INTEREST_CARLINE]': getDescInterestCarline(dealersInfo, fields.modelo),\n ...formatFields(fields.formFields),\n\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...(await getMatchData(formData, dealersInfo, faContent)),\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n const response: AxiosResponse = await Axios.post(\n `${MOLECULAR_URL}/request-dps-send.php`,\n formDataInfo\n );\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const getFormDataAndInfo = async () => {\n let formData = { ...NuevoFormData };\n let formInfo = getFormInfo(steps);\n\n if (faContent?.match) {\n let match = faContent.match;\n const carlines = await getCarlines();\n const carline = findCarline(carlines, match.carline.code);\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n dispatch({ type: 'SET_OFERTA', payload: match });\n\n return { formData, formInfo };\n } else if (faContent?.carlines && faContent?.carlines?.length > 0) {\n formData = await getFormDataWithCarline();\n const newSteps = removeStep(steps, 'Modelo');\n const finalSteps = resetStepsScreenIndex(newSteps);\n formInfo = getFormInfo(finalSteps);\n } else {\n const carlines = await getCarlines();\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n }\n\n return { formData, formInfo };\n };\n\n useEffect(() => {\n getFormDataAndInfo().then((response) => {\n const { formData, formInfo } = response;\n initializeForm(formInfo, formData);\n });\n }, []);\n\n return ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { CarlineSelect, Email, findCarline, PantallaNombreApellido } from 'src/components';\nimport { useFaContent } from 'src/feature-app';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { createSalesgroup } from '../Leads';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\nimport { ProspectsVentaForm } from './ProspectsVentaForm';\n\nenum ProspectsSteps {\n Email,\n NombreApellido,\n Confirmacion,\n}\n\nexport function MatchProspectForm() {\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n const steps = [\n {\n title: (\n <>\n ¿A qué email{' '}quieres que te enviemos esta configuración?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n title: (\n <>\n Para hacerlo, nos gustaría saber{' '}quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n \n {\n fields: ,\n screenIndex: ProspectsSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n return (\n \n );\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport Axios, { AxiosResponse } from 'axios';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getMolecularUrl } from 'src/bff';\nimport { Email, PantallaNombreApellido } from 'src/components';\nimport { FormController, removeWhiteSpace, useFaContent, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { isCalculadoraForm } from 'src/forms';\nimport { FormDataGroup, FormInfo, MolecularResponse, OneFormState, Steps } from 'src/types';\nimport { formatFields, formatHeaders, formDataBuilder } from '../format-fields';\nimport { getCalculadoraData, getCodInterestCarline, getDescInterestCarline, getMatchData } from '../Leads';\nimport { ThankYouProspects } from './';\nimport { ConfirmacionProspects } from './ConfirmacionProspects';\n\nexport enum ProspectsPosventaSteps {\n Email,\n NombreApellido,\n Confirmacion,\n}\n\ninterface ProspectsFormProps {\n customSteps?: Steps[];\n updatedFormData?: Partial;\n updatedFormInfo?: Partial;\n}\n\nexport function ProspectsPosventaForm({ updatedFormData }: ProspectsFormProps) {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const faContent = useFaContent();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n ¿A qué email te enviamos este presupuesto de mantenimiento?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsPosventaSteps.Email,\n name: 'Email',\n outputs: ['email'],\n outputsText: ['email'],\n },\n {\n title: (\n <>\n Genial. Aunque antes de mandártelo, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: ProspectsPosventaSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n fields: ,\n screenIndex: ProspectsPosventaSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_PROSPECT_POSVENTA',\n DESC_CAMPAIGNBLOCK: '13. VW Posventa Inbound',\n DESC_FORMOBJECTIVE: 'Presupuesto Posventa',\n DESC_ID_CAMPAIGN: '7011n000000JwcWAAS',\n ...updatedFormData.headers,\n },\n fields: {\n formName: 'prospect-posventa',\n formType: 'otherform',\n pageCategory: 'Prospect',\n formFields: {\n DESC_LOPD: 'PERMITE',\n DESC_TRANF_DATA_THIRD: 'NO INFORMADO',\n },\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (steps: Steps[]): Partial => {\n const firstStep = steps[0];\n const lastStep = steps[steps.length - 1];\n const stepsHistory = [0];\n const numberOfScreens = steps.length;\n\n return {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps,\n stepsHistory,\n thankYouComponent: ,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, url, device } = getParamsForm();\n\n const data = {\n ...formatHeaders(headers),\n 'headers[DESC_VN_VO]': 'VN',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n\n 'fields[DESC_NAME]': fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[DESC_FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'fields[COD_INTEREST_CARLINE]': getCodInterestCarline(dealersInfo, fields.carlineCode),\n 'fields[DESC_INTEREST_CARLINE]': getDescInterestCarline(dealersInfo, fields.modelo),\n ...formatFields(fields.formFields),\n\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n ...getCalculadoraData(formData),\n };\n\n if (isCalculadoraForm(fields.formName)) {\n delete data['fields[COD_INTEREST_CARLINE]'];\n delete data['fields[DESC_INTEREST_CARLINE]'];\n delete data['headers[DESC_VN_VO]'];\n }\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n\n const MOLECULAR_URL = getMolecularUrl(); // Legacy\n\n const response: AxiosResponse = await Axios.post(\n `${MOLECULAR_URL}/request-dps-send.php`,\n formDataInfo\n );\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const formInfo = getFormInfo(steps);\n\n initializeForm(formInfo, NuevoFormData);\n }, []);\n\n return ;\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useFeatureAppConfig, useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\nconst copiesThankYou = [\n {\n name: 'prospect',\n titleCopyRegular: '',\n titleCopyBold: '¡Listo!',\n bodyCopy: [\n 'Muy pronto, recibirás toda la información sobre el Nuevo Taigo.',\n ],\n },\n {\n name: 'prospect-match',\n titleCopyRegular: 'Ya te hemos enviado ',\n titleCopyBold: 'los detalles de tu configuración',\n bodyCopy: [\n 'Muy pronto recibirás un email con las características del Volkswagen que más encaja contigo. ',\n ],\n },\n {\n name: 'prospect-posventa-calculadora',\n titleCopyRegular: 'Ya tienes ',\n titleCopyBold: 'tu presupuesto de mantenimiento',\n bodyCopy: [\n 'Te hemos enviado un email con todos los detalles sobre tu mantenimiento para que puedas consultarlo cuando quieras.',\n ],\n }\n];\ninterface FieldProps {\n copyBook?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const config = useFeatureAppConfig();\n\n return (\n \n
\n \n \n {props.copyBook}\n \n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouProspects(props: ThankYouProps) {\n const { formData, formInfo } = props;\n const { formResponse } = formInfo;\n const { formName } = formData;\n\n\n const [completeInfo, setCompletInfo] = useState(null);\n const [titleBold, setTitleBold] = useState('');\n const [titleRegular, setTitleRegular] = useState('');\n const [copybook, setCoopybook] = useState('');\n\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n const aux = copiesThankYou.filter((a: any) => {\n return a.name === formName;\n });\n setCompletInfo(aux);\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n {completeInfo ? completeInfo[0].titleCopyRegular : null}\n {completeInfo ? completeInfo[0].titleCopyBold : null}\n \n \n \n \n {completeInfo ? completeInfo[0].titleCopyRegular : null}\n {completeInfo ? completeInfo[0].titleCopyBold : null}\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouProspects);\n\nexport { ConnectedComponent as ThankYouProspects };\n","import { CTA, styled, ThemeProvider, Spinner } from '@volkswagen-onehub/components-core';\nimport { ArrowRight } from '@volkswagen-onehub/icons-core/dist/ArrowRight';\nimport { Checkmark } from '@volkswagen-onehub/icons-core/dist/Checkmark';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { TelefonoInput, PrefijoInput } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { useWindowWidth } from '@react-hook/window-size';\nimport { Phone } from '@volkswagen-onehub/icons-core/dist/Phone';\nimport { keyframes, css } from 'styled-components';\nimport { useTrackingManager, getTrackingForm, useOneFormContext } from 'src/feature-app';\n\nconst moveLeft = keyframes`\n from {\n /* left: 70%; */\n left: 75%;\n }\n to {\n left: 0;\n /* right: auto; */\n }\n`;\n\nconst RaceFormWrapper = styled.div<{ width: number; isSending: boolean; isSent: boolean; showFullWidth: boolean }>`\n display: flex;\n margin-bottom: 24px;\n margin-top: 24px;\n width: ${(props) => {\n if (props.showFullWidth) {\n return '605px';\n }\n if (window.innerWidth < 418) {\n if (props.isSending || props.isSent) {\n return '100%';\n return `${props.width}px`;\n }\n return '75%';\n } else {\n if (props.isSending || props.isSent) {\n return '100%';\n }\n return 'fit-content';\n }\n }};\n\n min-height: 44px;\n position: relative;\n`;\n\nconst PrefijoWrapper = styled.div`\n width: 78px;\n padding-top: 3px;\n margin-right: 24px;\n\n & label {\n color: #001e50 !important;\n }\n`;\n\ninterface CTAWrapperProps{\n width: number;\n isSending: boolean;\n isSent: boolean;\n isPristine: boolean;\n showFullWidth: boolean;\n successful: boolean;\n}\nconst CTAWrapper = styled.div`\n position: absolute;\n left: ${(props) => (props.isSent || props.isSending ? '0' : '100%')};\n width: auto;\n animation: ${(props) => {\n if (props.isSending) {\n return css`\n ${moveLeft} 1s ease\n `;\n } else {\n return 'none';\n }\n }};\n\n & button {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '15px')};\n margin-top: 5px;\n width: ${(props) => {\n if (props.isSending || props.isSent) {\n if (props.showFullWidth) {\n return '250px';\n } else {\n if (props.isSending) {\n return '250px';\n }\n return '100%';\n }\n }\n return '44px';\n }};\n height: 44px;\n background-color: ${(props) => (props.isSent ? '#029640' : '#ffaa27')};\n border: ${(props) => (props.isSent ? '2px solid #029640' : '2px solid #ffaa27')};\n /* transition: all 1s ease; */\n cursor: ${(props) => (props.isSent ? 'auto' : 'pointer')};\n\n @media all and (min-width: 375px) {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '25px')};\n }\n @media all and (min-width: 560px) {\n margin-left: ${(props) => (props.isSending || props.isSent ? '0px' : '32px')};\n }\n\n & > span {\n height: 24px;\n }\n\n &:focus,\n &:hover::before,\n &:active::before {\n background-color: ${(props) => (props.isSent && !props.isPristine ? '#029640' : '#ffaa27')};\n position: relative;\n /* margin: 0px; */\n box-shadow: none;\n }\n &:hover::before {\n margin: 0px;\n }\n }\n & button[disabled] {\n cursor: not-allowed;\n background-color: ${(props) => (props.successful ? '#029640' : '#DFE4E8')};\n color: ${(props) => (props.successful ? '#ffffff' : 'inherit')};\n border: 2px ${(props) => (props.successful ? '#029640' : '#DFE4E8')};\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' : '#DFE4E8')};\n color: ${(props) => (props.successful ? '#ffffff' : 'inherit')};\n border: ${(props) => (props.successful ? '2px solid #029640' : '2px solid #DFE4E8')};\n }\n`;\n\ninterface RaceFormProps {\n isSent: boolean;\n isSending: boolean;\n disabledButton: boolean;\n sendForm: () => Promise;\n isPristine: boolean;\n isFullScreen: boolean;\n copyWidth?: number; // Con el resize en algunos dispositivos móviles se pierde el tamaño necesario del cta y se descuadra.\n setIsPristine: React.Dispatch>;\n successful?: boolean;\n error?: boolean;\n}\n\nconst showFullCta = (isFullScreen: boolean) => isFullScreen && window.innerWidth > 1279;\n\nexport const RaceForm = ({\n isSent,\n isSending,\n isPristine,\n disabledButton,\n sendForm,\n copyWidth,\n isFullScreen,\n setIsPristine,\n successful,\n}: RaceFormProps) => {\n const initialSizeRef = useRef(null); // Hay que determinar el width del contenedor al principio para que cuando desaparezcan los campos de telf y prefijo no cambie el ancho y la animación del cta empiece desde otro sitio.\n const [containerWidth, setContainerWidth] = useState(0);\n const windowWidth = useWindowWidth();\n const { initializeForm } = useOneFormContext();\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n initializeForm(\n {},\n {\n headers: {},\n fields: {\n formName: 'race',\n formType: 'otherform',\n pageCategory: 'other',\n },\n },\n isFullScreen\n );\n }, []);\n\n useEffect(() => {\n if (initialSizeRef) {\n if (copyWidth && copyWidth <= 346) {\n // El contenedor crece hasta 346px\n setContainerWidth(copyWidth);\n } else {\n setContainerWidth(initialSizeRef.current.offsetWidth);\n }\n }\n }, [windowWidth, copyWidth]);\n\n useEffect(() => {\n if (successful){\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }\n }, [successful]);\n\n return (\n \n <>\n {isSending || isSent ? null : (\n <>\n \n \n \n \n \n
\n {\n setIsPristine(false);\n }}\n onFocusHandler={() => {\n setIsPristine(false);\n }}\n name='raceCellphone'\n />\n
\n \n )}\n\n {showFullCta(isFullScreen) ? (\n \n : isSent ? : }\n onClick={async () => {\n if (!isSending && !isSent) {\n await sendForm();\n }\n }}\n stretchContent\n >\n {isSending ? 'Enviando' : isSent && successful ? 'Te llamaremos pronto' : 'Te llamamos'}\n \n \n ) : (\n \n : isSent ? : }\n onClick={async () => {\n if (!isSending && !isSent) {\n await sendForm();\n }\n }}\n >\n {isSending ? 'Enviando' : isSent ? 'Te llamaremos pronto' : null}\n \n
\n )}\n \n \n );\n};\n","import { OneFormState } from 'src';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { raceSend } from 'src/bff';\nimport { useEffect, useState } from 'react';\nimport { cellphoneIsInvalid } from 'src/components';\nimport { useSelector } from 'react-redux';\n\nexport const useRaceFormController = (raceCellphone: string) => {\n const [isPristine, setIsPristine] = useState(true);\n const [isSent, setIsSent] = useState(false);\n const [isSending, setIsSending] = useState(false);\n const [error, setError] = useState(false);\n const [successful, setSuccessful] = useState(false);\n const [disabledButton, setDisabledButton] = useState(true);\n const {racePrefix }= useSelector((state: OneFormState) => state.formData.fields);\n\n useEffect(() => {\n if (\n raceCellphone &&\n !cellphoneIsInvalid(raceCellphone) &&\n /[6|7|8|9][0-9]{8}/gi.test(raceCellphone) &&\n raceCellphone.length === 9\n ) {\n setDisabledButton(false);\n } else {\n setDisabledButton(true);\n }\n }, [raceCellphone]);\n\n const retry = () => {\n reset();\n sendForm();\n };\n\n const reset = () => {\n setError(false);\n setIsSent(false);\n setIsSending(false);\n setIsPristine(true);\n setSuccessful(false);\n setDisabledButton(true);\n };\n\n const sendForm = async (): Promise => {\n setIsSending(true);\n setDisabledButton(true);\n setIsPristine(false);\n\n const data = {\n id: 'CTC VOLKSWAGEN',\n canal: 'FORM',\n telefono: `${racePrefix}${raceCellphone}`,\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formDataInfo = formDataBuilder(dataParsed);\n const response = await raceSend(formDataInfo);\n\n setIsSending(false);\n setDisabledButton(false);\n\n if (response?.data?.status?.result === 'success' && response?.data?.status?.code === 1) {\n setSuccessful(true);\n } else {\n setError(true);\n }\n setIsSent(true);\n };\n\n return { isSent, isSending, isPristine, disabledButton, error, sendForm, retry, setIsPristine, successful, reset };\n};\n","import { getParamsForm } from 'src/feature-app/get-params-form';\nimport { removeWhiteSpace, formatPrefix } from 'src/feature-app';\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (fields) =>{\n return {\n\n 'headers[DPS_TOKEN]': 'VW_DDB_FRM_SAC',\n 'headers[FORM_DATE_INSERTION]': today,\n 'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n 'headers[FORM_OBJECTIVE]': 'Atención al cliente',\n 'headers[FORM_URL]': url,\n 'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n 'headers[ORIGIN_DEVICE_TYPE]': device,\n 'headers[ORIGIN_TRACKING_CODE]': tc,\n 'headers[SF_CAMPAIGN_ORIGIN_ID]': 'PENDIENTE',\n\n 'flags[FLAG_RELACION_MARCA_SIN_IC]': false,\n 'flags[PERSON_RGPD_ADAPTED]': true,\n\n 'fields[DPS_BRAND]': 'Volkswagen',\n 'fields[SURVEY_ANSWER_01]': fields.motivoSac ? fields.motivoSac : 'ONESHOP',\n 'fields[PERSON_PREFERRED_CHANNEL]': fields.contactoSAC ? fields.contactoSAC : 'TELEFONO',\n 'fields[PERSON_NAME]': fields.name,\n 'fields[PERSON_SURNAME_1]': fields.surname,\n 'fields[PERSON_SURNAME_2]': fields.secondSurname,\n 'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n 'fields[PERSON_PHONE_PREFIX]': fields.prefix,\n 'fields[PERSON_PHONE_MOBILE]': fields.cellphone,\n 'fields[PERSON_PHONE_MOBILE_FULL]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n }\n};\n","import React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport {\n FormController,\n useOneFormContext,\n formatPrefix,\n removeWhiteSpace\n} from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { getCommonFormData } from '../FormData';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { ThankYouOneShop, SACOneShopFields } from '.';\nimport { formDataBuilder, formatHeaders } from '../../format-fields';\nimport { IdPerson } from 'src/types';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\n\n\n\nlet NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_SAC',\n DESC_FORMOBJECTIVE: 'Atención al cliente',\n DESC_ID_CAMPAIGN: '7011n000000AglrAAC',\n COD_FORM_ID: 'vw-oneform-sac-oneshop',\n DESC_FORM_DETAIL: 'SAC OneShop',\n DESC_CAMPAIGNBLOCK: '18 - VW Customer Care',\n },\n fields: {\n formName: 'sac-oneshop',\n formType: 'otherform',\n pageCategory: 'SAC OneShop',\n }, // Analítica\n};\n\ninterface SACOneShopProps {\n idPerson?: IdPerson;\n dpsData?: DpsData;\n}\n\nexport const SACOneShopForm = (props: SACOneShopProps) => {\n const { initializeForm } = useOneFormContext();\n const { idPerson } = props;\n const store = useStore();\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n\n const steps: Steps[] = [\n {\n title: <>, // El title se renderiza en los fields al ser un form de un solo step con un diseño que incluye un stage.\n fields: } />,\n screenIndex: 0,\n name: 'Form',\n },\n ];\n\n useEffect(() => {\n if (idPerson) {\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'cellphone': idPerson.NUM_Phone_mobile__c } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'name': idPerson.FirstName } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'surname': idPerson.LastName } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'email': idPerson.TXT_Email__c } });\n }\n }, [idPerson]);\n\n useEffect(() => {\n const urlParams = new URLSearchParams(window.location.search);\n const info = urlParams.get('q');\n if (info) {\n const decodedParms = atob(info);\n const splittedParams = decodedParms.split(';');\n const [DESC_ID_CLIMAPRO] = splittedParams;\n\n NuevoFormData = {\n headers: { ...NuevoFormData.headers, DESC_ID_CLIMAPRO },\n fields: { ...NuevoFormData.fields },\n };\n }\n setLoading(false);\n }, []);\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n\n const data = {\n 'headers[FORM_DETAILS]': 'SAC OneShop',\n ...getCommonFormData(fields),\n };\n\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n if (loading) {\n return;\n }\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'main',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n notALayer: true,\n formType: 'inPage',\n alingItemsCenter: true,\n thankYouComponent: ,\n };\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, [loading]);\n\n return !steps ? null : ;\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouOneShop = () => {\n const {formResponse} = useSelector((state: OneFormState) => state.formInfo);\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formResponse.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: (\n \n ),\n };\n return (\n \n );\n};\n","import {\n styled,\n Container,\n ContainerPadding,\n CTA,\n Text,\n ContainerGutter,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nimport {\n InputError,\n PoliticaPrivacidad,\n Telefono,\n MultipleCTASelection,\n KoScreen,\n LoadingScreen,\n GeneralInputWidthWrapper,\n Nombre,\n Apellido,\n Email,\n} from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { useFormContext } from 'react-hook-form';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n formatPrefix,\n} from 'src/feature-app';\nimport { OneFormState, IdPerson } from 'src/types';\n\nconst TextAreaWrapper = styled.div`\n label {\n width: 100%;\n }\n`;\n\nconst PaddingWrapper = styled.div`\n`;\n\nconst NameLastNameWrapper = styled.div`\n padding-bottom: 2px;\n gap: 20px;\n display: flex;\n flex-direction: column;\n @media all and (min-width: 960px) {\n flex-direction: row;\n gap: 32px;\n }\n`;\n\ninterface OneShopProps {\n idPerson?: IdPerson;\n}\n\nexport const SACOneShopFields = (props: OneShopProps) => {\n const { idPerson } = props;\n const [motivoError, setMotivoError] = useState(false);\n const [masInfoValue, setMasInfoValue] = useState(null);\n const [nameError, setNameError] = useState(false);\n\n return (\n
\n \n <>\n \n \n Confirma tus datos y te llamaremos lo antes posible\n \n \n \n Sea cual sea tu duda, estamos aquí para ayudarte. Solo necesitamos que completes la siguiente\n información y nos pondremos en contacto contigo.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n />\n \n \n \n \n
\n );\n};\n\ninterface FieldProps {\n question?: string;\n input: JSX.Element;\n isRequired?: boolean;\n emailError?: boolean;\n motivoError?: boolean;\n}\nconst Field = (props: FieldProps) => {\n const { question, input, isRequired, emailError, motivoError } = props;\n\n return (\n \n {\n question ? (\n \n {question} {isRequired ? * : null}\n \n ) : null\n }\n\n {input}\n {emailError || motivoError ? Necesitamos esta información para seguir : null}\n \n );\n};\n\ninterface lastNavigationsProps {\n setMotivoError: (value: boolean) => void;\n setNameError: (value: boolean) => void;\n masInfoValue?: null | string;\n idPerson?: IdPerson;\n}\n\nfunction LastNavigation(props: lastNavigationsProps) {\n const { setMotivoError, masInfoValue, idPerson, setNameError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { getValues, triggerValidation } = useFormContext();\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const { formData } = useSelector((state: OneFormState) => state);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n const NoCompraTitle = 'Uy, algo ha pasado';\n const NoCompraBody = 'Por alguna razón no hemos podido enviar tu petición. ¿Lo intentamos de nuevo?';\n\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n\n\n async function handleConfirmarCita(e: any) {\n\n //activar o desactivar mensajes de error\n const values = await getValues();\n\n trackingManager.trackFormCTAClick({\n contentId: 'Confirmar',\n });\n\n const isValid = await triggerValidation();\n\n if (isValid) {\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'name': values.name } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'surname': values.surname } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'email': values.email } });\n dispatch({ type: 'UPDATE_FIELDS', payload: { 'cellphone': `${formatPrefix(values.prefix)}${values.cellphone}` } });\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\n const value = await handleSubmit(e);\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n }\n }\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n <>\n {\n e.preventDefault();\n handleConfirmarCita(e);\n }}\n stretchContent={window.innerWidth <= 560}\n >\n Confirmar\n \n \n );\n}\n","import React, { useState, useEffect } from 'react';\nimport { BreakpointWrapper, Breakpoints } from '@volkswagen-onehub/components-core';\nimport { SelectExtended } from '.';\nimport { getActualYearNumber } from 'src/feature-app';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { meses } from 'src/feature-app/InputsValues/OtherInputTypesObjects';\n\ninterface HeaderImageProps {\n imageSmall?: string;\n imageBig?: string;\n imageLogo?: string;\n}\nconst ImageWrapper = styled.div<{ background: string }>`\n div{\n display: flex;\n justify-content: center;\n background-image: ${(props) => `url(${props.background})`};\n background-position: center;\n background-repeat: no-repeat;\n background-size: cover;\n height: 30vh;\n }\n @media screen and (max-width: 700px) {\n div{\n height: 40vh;\n }\n } \n`;\nconst LogoCenter = styled.div`\n .image-front{\n position: relative;\n width: 50vw;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n display: block;\n margin: auto; \n }\n @media screen and (min-width: 500px) {\n .image-front{\n width: 40vw;\n }\n }\n @media screen and (min-width: 700px) {\n .image-front{\n width: 30vw;\n }\n }\n`;\n\n\nexport const HeaderImage = (props: HeaderImageProps) => {\n return (\n <>\n \n \n \n \"logo\"\n \n \n \n \n \n \n \"logo\"\n \n \n \n \n );\n}","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { useFeatureServices } from 'src/feature-app';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdPerson } from 'src/types';\nimport { SACOneShopForm } from '.';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\nimport { HeaderImage } from \"../../../components/HeaderImage\";\n\nexport interface SACOneShopProps {\n idPerson: IdPerson;\n handleError: () => void;\n\n}\n\nexport function SACOneShopController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n\n const dpsDataRef = useRef(null);\n const idPersonRef = useRef(null);\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const imagesUrl = {\n imageBigUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-2560x760?Zml0PWNyb3AlMkMxJndpZD0yNTYwJmhlaT03NjAmZm10PXdlYnAtYWxwaGEmcWx0PTc5JmJmYz1vZmYmYTYzZA==',\n imageSmallUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-1080x520?Zml0PWNyb3AlMkMxJndpZD0xMDgwJmhlaT01MjAmZm10PXdlYnAtYWxwaGEmcWx0PTc5JmJmYz1vZmYmMjAxZA==',\n imageLogoUrl: 'https://assets.volkswagen.com/is/image/volkswagenag/es-oneform-sac-oneshop-logo-v2?Zml0PWNyb3AlMkMxJndpZD0zNjImaGVpPTc0JmZtdD1wbmctYWxwaGEmYmZjPW9mZiZjZmYy'\n }\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setLoading(false);\n } else {\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n\n dpsDataRef.current = dpsData;\n idPersonRef.current = idPerson;\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n \n );\n } else {\n return (\n <>\n \n \n \n );\n }\n}\n","import React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { Email, PantallaNombreApellido, DetalleMotivo, Telefono, MultipleCTASelection, ContactInfoWrapper } from 'src/components';\nimport { PantallaMotivoSAC, ConfirmacionSAC, ThankYouSAC } from '.';\nimport { getCommonFormData } from './FormData';\nimport { useStore, useDispatch } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { formDataBuilder } from '../format-fields';\nimport { contactoOptionsSAC } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum SACFormSteps {\n Motivo,\n MasInformacion,\n NombreApellido,\n EmailTelefono,\n Contacto,\n Confirmacion,\n}\n\nexport const SACForm = () => {\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n\n const steps: Steps[] = [\n {\n title: (\n <>\n ¿Cómo podemos ayudarte?\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.Motivo,\n name: 'motivoSac',\n outputs: ['motivoSac'],\n outputsText: ['motivoSac'],\n },\n {\n title: (\n <>\n ¿Podrías darnos más detalles sobre tu{' '}\n \n petición?*\n \n \n ),\n fields: } />,\n screenIndex: SACFormSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n Para responderte, nos gustaría saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n ¿En qué teléfono e email podemos localizarte?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: SACFormSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿Cómo prefieres que te{' '}\n \n respondamos?\n *\n \n \n ),\n fields: (\n }\n />\n ),\n screenIndex: SACFormSteps.Contacto,\n name: 'contactoSAC',\n outputs: ['contactoSAC'],\n outputsText: ['contactoSAC'],\n },\n {\n fields: ,\n screenIndex: SACFormSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const SACFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n },\n fields: { formName: 'sac', formType: 'otherform', pageCategory: 'Atención al cliente' }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData }: OneFormState = store.getState();\n\n const { fields } = formData;\n\n return new Promise(async (resolve, reject) => {\n\n const data = {\n ...getCommonFormData(fields),\n 'fields[COMMENTS_PERSON]': fields.masInformacion,\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await oneformBFFNdpsSend(formData);\n\n if (response && response.data && response.data.content && response.data?.status?.code == '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const SACFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n formType: 'layer',\n formTheme: 'inverted',\n notALayer: false,\n thankYouComponent: ,\n };\n\n initializeForm(SACFormInfo, SACFormData);\n }, []);\n\n return ;\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { SelectExtended } from 'src/components';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { OneFormState } from 'src/types';\nimport { styled } from '@volkswagen-onehub/components-core';\n\nconst InputsWrapper = styled.div`\n padding-top: 44px;\n width: 100%;\n @media all and (min-width: 560px) {\n width: 303px;\n }\n @media all and (min-width: 960px) {\n width: 320px;\n }\n`;\n\nconst motivoOptions = [\n { code: null, name: null },\n {\n code: 'VE',\n name: 'Venta',\n },\n {\n code: 'PV',\n name: 'Posventa',\n },\n {\n code: 'GDP',\n name: 'Gestión de datos personales y privacidad',\n },\n {\n code: 'OT',\n name: 'Otras consultas',\n },\n];\n\nexport const PantallaMotivoSAC = () => {\n const [motivo, setMotivo] = useState(null);\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const dispatch = useDispatch();\n const { handleNextStep } = useOneFormContext();\n\n useEffect(() => {\n if (fields.motivoSac) {\n const motivo = getMotivoByCode(fields.motivoSac);\n setMotivo(motivo);\n }\n }, []);\n\n const getMotivoByName = (name) => {\n\t\treturn motivoOptions ? motivoOptions.find(obj => obj.name == name) : null;\n\t}\n\n const getMotivoByCode = (code) => {\n return motivoOptions ? motivoOptions.find(obj => obj.code == code) : null;\n\t}\n\n function handleChangeMotivo(e: any) {\n e.preventDefault();\n if (e.target.value) {\n\t\t\tconst motivo = getMotivoByName(e.target.value);\n setMotivo(motivo);\n dispatch({ type: 'UPDATE_FIELDS', payload: { ['motivoSac']: motivo.code } });\n dispatch({ type: 'UPDATE_LITERAL_FIELDS_STEPS', payload: { ['motivoSac']: motivo.name } });\n handleNextStep();\n\t\t}\n }\n\n return (\n <>\n \n null}\n setOption={setMotivo}\n handleChange={handleChangeMotivo}\n />\n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended, SelectExtended } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components/inputs/use-only-letters-control';\nimport {\n styled,\n} from '@volkswagen-onehub/components-core';\nimport { OneFormState } from 'src/types';\nimport { useSelector } from 'react-redux';\ninterface ContentProps {\n notALayer?: boolean;\n}\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n }\n`;\n\nconst roadOptions = [\n {\n code: 'AUTOP',\n name: 'Autopista',\n },\n {\n code: 'AUTOV',\n name: 'Autovía',\n },\n {\n code: 'AVENI',\n name: 'Avenida',\n },\n {\n code: 'BARIO',\n name: 'Barrio',\n },\n {\n code: 'CALLE',\n name: 'Calle',\n },\n {\n code: 'CAMIN',\n name: 'Camino',\n },\n {\n code: 'CARRT',\n name: 'Carretera',\n },\n {\n code: 'GRANV',\n name: 'Gran vía',\n },\n {\n code: 'PASAJ',\n name: 'Pasaje',\n },\n {\n code: 'PASEO',\n name: 'Paseo',\n },\n {\n code: 'PLAYA',\n name: 'Playa',\n },\n {\n code: 'RAMBL',\n name: 'Rambla',\n },\n {\n code: 'RONDA',\n name: 'Ronda',\n },\n {\n code: 'TRAVE',\n name: 'Travesía',\n },\n {\n code: 'URBAN',\n name: 'Urbanización',\n },\n {\n code: 'VIA',\n name: 'Vía',\n },\n];\n\nexport const PantallaDireccionPostal = () => {\n const { register } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n\n //tipo de vía\n\n const [tipoVia, setTipoVia] = useState('Autopista');\n\n useEffect(() => {\n if (fields.tipoVia) {\n setTipoVia(fields.tipoVia);\n }\n }, []);\n\n function handleChangeTipoVia(event: any) {\n const newTipoVia = event.currentTarget.value;\n setTipoVia(newTipoVia);\n }\n\n //Nombre de la vía\n const [viaValue, setViaValue] = useState('');\n const [pristineVia, setPristineVia] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristineVia, viaValue);\n const numberRegExp = /\\d|[sS]\\/[nN]/gi;\n const handleChangeVia = (e: any) => {\n setViaValue(e.target.value);\n setPristineVia(false);\n };\n\n //Número\n\n const [numberValue, setNumberValue] = useState('');\n const [pristineNumber, setPristineNumber] = useState(true);\n const [numberError, setNumberError] = useState(false);\n const regExpNonDigit = /\\D/;\n\n const handleChangeNumber = (e: any) => {\n setNumberValue(e.target.value);\n if (regExpNonDigit.test(e.target.value) || (numberValue.length > 1 && numberValue.length < 8)) {\n setNumberError(true);\n } else if (numberValue === 's/n') {\n setNumberError(true);\n }\n\n setNumberError(false);\n\n setPristineNumber(false);\n };\n\n //Piso y puerta\n const [pisoPuertaValue, setPisoPuertaValue] = useState('');\n\n const handleChangePisoPuerta = (e: any) => {\n setPisoPuertaValue(e.target.value);\n };\n\n return (\n \n {}}\n setOption={setTipoVia}\n handleChange={handleChangeTipoVia}\n updateFields\n />\n handleChangeVia(e)}\n required\n />\n {error && Solo se aceptan letras}\n handleChangeNumber(e)}\n required\n />\n {numberError && Se aceptan números o la expresión s/n}\n handleChangePisoPuerta(e)}\n />\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, Provincia, TextInputExtended } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components/inputs/use-only-letters-control';\nimport {\n styled,\n} from '@volkswagen-onehub/components-core';\n\ninterface ContentProps {\n notALayer?: boolean;\n}\n\nconst ContentWrapper = styled.div`\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n label {\n margin-top: 40px;\n @media all and (min-width: 560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid013)' : '303px')};\n }\n @media all and (min-width: 960px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid008)' : '320px')};\n }\n @media all and (min-width: 1280px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid006)' : '320px')};\n }\n @media all and (min-width: 1920px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid005)' : '320px')};\n }\n @media all and (min-width: 2560px) {\n width: ${(props) => (props.notALayer ? 'var(--size-grid004)' : '320px')};\n }\n }\n`;\n\nexport const PantallaMunicipio = () => {\n const { register } = useFormContext();\n\n //Localidad\n const [localidadValue, setLocalidadValue] = useState('');\n const [pristineLocalidad, setPristineLocalidad] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristineLocalidad, localidadValue);\n\n const handleChangeLocalidad = (e: any) => {\n setLocalidadValue(e.target.value);\n setPristineLocalidad(false);\n };\n\n // PostalCode\n const [inputValuePostalCode, setInputValuePostalCode] = useState('');\n const [pristinePostalCode, setPristinePostalCode] = useState(true);\n const [errorPostalCode, setErrorPostalCode] = useState(false);\n const regExpPostalCode = /\\d{5}/gi;\n\n const handleChangePostalCode = (e: any) => {\n setInputValuePostalCode(e.target.value);\n setPristinePostalCode(false);\n };\n\n useEffect(() => {\n if (!pristinePostalCode && inputValuePostalCode.match(regExpPostalCode) === null) {\n setErrorPostalCode(true);\n } else {\n setErrorPostalCode(false);\n }\n }, [inputValuePostalCode, pristinePostalCode]);\n\n //Provincia\n\n const [provinceValue, setProvinceValue] = useState('');\n const [pristineProvince, setPristineProvince] = useState(true);\n const { error: errorProvincia, regExp: regExpProvincia } = useOnlyLettersControl(pristineProvince, provinceValue);\n\n const handleChangeProvince = (e: any) => {\n setProvinceValue(e.target.value);\n setPristineProvince(false);\n };\n\n return (\n \n handleChangeLocalidad(e)}\n required\n />\n {error && Solo se aceptan letras}\n\n handleChangePostalCode(e)}\n required\n />\n {errorPostalCode && Solo se aceptan números}\n\n \n\n \n );\n};\n","import { Breakpoints, Layout } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { \n LegalesFormatoLayer, \n LssiTkmQuestions, \n PoliticaPrivacidad, \n LastNavigation, \n GeneralConfirmacionLayerWrapper \n} from 'src/components';\n\nexport const ConfirmacionSAC = () => {\n\n return (\n \n \n \n \n\n \n\n \n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouSAC = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo?.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { PincodeResponseOk } from 'src/bff';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdLead, IdPerson, IdOrder, IdVehicle, IdDealer } 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 | IdDealer = atts.attributes.reduce((obj: any, att: any) => {\n const key = Object.values(att)[0] as any;\n const value = Object.values(att)[1] as any;\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","import dayjs from 'dayjs';\nimport { DomainAttributesValues } from 'src';\n\nexport const formatToTwoChars = (str: string) => {\n\tif (str === null || str === undefined || str === '') {\n\t\treturn '';\n\t}\n\n\tstr = String(str);\n\n\treturn str.length === 1 ? '0' + str : str;\n};\n\nexport const arrayToObject = (arr: DomainAttributesValues[]) => {\n\tif (!arr) return null;\n\tconst obj = {};\n\tfor (const i in arr) {\n\t\tobj[arr[i].name] = arr[i].value;\n\t}\n\treturn obj;\n};\n\nexport const strTitlelize = (str: string) => {\n\tif (!str) return '';\n\treturn str\n\t\t.toLowerCase()\n\t\t.split(' ') // separar palabras para capitalizar\n\t\t.map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n\t\t.join(' ')\n\t\t.split('.') // separar sociedades para capitalizar (S.A., S.L.U.)\n\t\t.map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n\t\t.join('.');\n};\n\nexport const transformDate = (date: string, outputFormat: string, inputFormat?: string) => {\n\tif (inputFormat) {\n\t\tif (dayjs(date, inputFormat, true).isValid()) {\n\t\t\treturn dayjs(date, inputFormat).format(outputFormat);\n\t\t}\n\t} else if (dayjs(date, 'YYYY-MM-DD', true).isValid()) {\n\t\treturn dayjs(date, 'YYYY-MM-DD').format(outputFormat);\n\t}\n\treturn null;\n};\n\nexport const getFirstAndLastDayOfMonth = (\n\tmonthNumber?: string,\n\tyearNumber?: string,\n): { firstDayOfMonth: number; lastDayOfMonth: number } => {\n\tlet firstDayOfMonth;\n\tlet lastDayOfMonth;\n\n\tif (yearNumber && monthNumber) {\n\t\tfirstDayOfMonth = Number(\n\t\t\tdayjs()\n\t\t\t\t.locale('es')\n\t\t\t\t.utc()\n\t\t\t\t.month(Number(monthNumber) - 1) // Months are zero indexed, so January is month 0.\n\t\t\t\t.year(Number(yearNumber))\n\t\t\t\t.startOf('month')\n\t\t\t\t.format('x'),\n\t\t);\n\t\tlastDayOfMonth = Number(\n\t\t\tdayjs()\n\t\t\t\t.locale('es')\n\t\t\t\t.utc()\n\t\t\t\t// .add(1, 'month')\n\t\t\t\t.month(Number(monthNumber) - 1)\n\t\t\t\t.year(Number(yearNumber))\n\t\t\t\t.endOf('month')\n\t\t\t\t.format('x'),\n\t\t);\n\t} else {\n\t\tfirstDayOfMonth = Number(dayjs().add(1, 'day').locale('es').utc().format('x'));\n\t\tlastDayOfMonth = Number(\n\t\t\tdayjs()\n\t\t\t\t.locale('es')\n\t\t\t\t.utc()\n\t\t\t\t// .add(1, 'month')\n\t\t\t\t.endOf('month')\n\t\t\t\t.format('x'),\n\t\t);\n\t}\n\n\treturn { firstDayOfMonth, lastDayOfMonth };\n};\n","import {\n Container, ContainerPadding\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { DisplayImagenesYCTATrigger, SectionMensajes } from 'src/forms/FormsAdhoc/DiaDeLaMadre/componentsAndViews';\n\nexport function DiaDeLaMadreTrigger(props: TriggerProps) {\n\n const { setSelectedJourney, setCTALabel } = props;\n\n return (\n <>\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { EurocopaForm } from 'src/forms/FormsAdhoc/Eurocopa';\nimport { ScreenController } from 'src/feature-app/Screen';\n\nexport function EurocopaTrigger(props: TriggerProps) {\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n />\n
\n );\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { FidelizacionController } from 'src/forms/FormsAdhoc/Fidelizacion';\n\nexport function FidelizacionTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide esta oferta');\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n />\n
\n );\n}\n","import {\n Breakpoints,\n styled,\n Layout,\n Container,\n ContainerPadding,\n CTA,\n TextAlignment,\n Text,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { LegalesFormatoLayer, LssiTkmQuestions, LastNavigation, PoliticaPrivacidad } from 'src/components';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\n\n\nconst GeneralconfirmacionWrapper = styled.div`\n padding: 72px 0 44px;\n @media all and (min-width: 960px) {\n padding: 86px 0 0;\n }\n`;\n\nconst WhiteLinkWrapper = styled.span`\n a {\n color: #ffffff;\n font-weight: bold;\n }\n`;\n\nconst InputErrorLegales = styled.p`\n position: relative;\n margin-top: 8px;\n margin-bottom: 0;\n background-color: #e4002c;\n color: #ffffff;\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 14px;\n`;\n\nexport const ConfirmacionNavidad = () => {\n const dispatch = useDispatch();\n\n const [lssi, setLssi] = useState(null);\n const [tmk, setTmk] = useState(null);\n const [lssiError, setLssiError] = useState(false);\n const [tmkError, setTmkError] = useState(false);\n\n useEffect(() => {\n if (lssi) {\n const values = { lssi: lssi };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setLssiError(false);\n }\n if (tmk) {\n const values = { tmk: tmk };\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n setTmkError(false);\n }\n }, [lssi, tmk]);\n\n return (\n \n \n \n \n \n Enviando este formulario, aceptas las{' '}\n \n \n Bases Legales\n \n {' '}\n de la promoción y declaras haber leído y comprendido la información sobre el{' '}\n \n \n tratamiento de tus datos personales.\n \n \n \n \n \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { InputError, TextInputExtended, Email, GeneralInputWidthWrapper } from 'src/components';\nimport { useOnlyLettersControl } from 'src/components';\nimport { styled } from '@volkswagen-onehub/components-core';\n\nconst ContentWrapper = styled.div`\n padding-bottom: 2px;\n margin-top: 4px;\n @media screen and (min-width: 960px) {\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n margin-top: 0;\n }\n`;\n\ninterface FriendsInfoProps {\n nameNombre: string;\n labelNombre: string;\n nameMail: string;\n labelMail: string;\n}\n\nexport const FriendsInfo = (props: FriendsInfoProps) => {\n const { nameNombre, labelMail, labelNombre, nameMail } = props;\n const { register } = useFormContext();\n const [inputValue, setInputValue] = useState('');\n const [pristine, setPristine] = useState(true);\n const { error, regExp } = useOnlyLettersControl(pristine, inputValue);\n\n const handleChange = (e: any) => {\n setInputValue(e.target.value);\n setPristine(false);\n };\n\n return (\n \n \n handleChange(e)}\n required\n />\n {error && Solo se aceptan letras} \n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerPadding,\n Layout,\n Text,\n TextAlignment,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, TrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { FormDataFields, FormInfo, OneFormState, Steps } from 'src/types';\n\ninterface FieldProps {\n copyBook?: string;\n cliente?: string;\n}\n\ninterface NDPSField {\n name: string;\n value: string;\n}\n\nfunction Fields(props: FieldProps) {\n\n return (\n \n
\n \n \n {props.copyBook}\n \n {props.cliente === 'true' ? (\n \n ¡Mucha suerte!\n \n ) : null}\n \n
\n \n );\n}\n\ninterface ThankYouProps {\n formData: FormDataFields;\n formInfo: FormInfo;\n}\n\nfunction ThankYouNavidad(props: ThankYouProps) {\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n const { cliente } = formData.fields;\n\n const clienteTitle = '¡Bien hecho! Este año los Reyes tienen muchas pistas';\n const clienteBody = 'La carta ya se ha enviado con tus deseos de Navidad. Muy pronto sabrás si el deseo de conducir un ID.4 durante un fin de semana se hace realidad...';\n const NoClienteTitle = '¡Qué ilusión! Seguro que los Reyes aciertan con tu regalo';\n const NoClienteBody = 'La carta ya se ha enviado con tus deseos de Navidad. Muchas gracias por crear tu lista de deseos en Volkswagen.';\n\n const [title, setTitle] = useState('');\n const [bodyCopy, setBodyCopy] = useState('');\n\n useEffect(() => {\n if (cliente === 'true') {\n setTitle(clienteTitle);\n setBodyCopy(clienteBody);\n } else {\n setTitle(NoClienteTitle);\n setBodyCopy(NoClienteBody);\n }\n }, [cliente]);\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const getTrackingForm = (): TrackingForm => {\n let LeadID;\n if (formResponse && formResponse.content && formResponse.content.data && formResponse.content.data.fields) {\n const leadField: NDPSField = formResponse.content.data.fields.find(\n (field: NDPSField) => field.name === 'COD_LEAD_ID'\n );\n LeadID = leadField ? leadField.value : undefined;\n }\n return {\n LeadID,\n FormFields: undefined,\n };\n };\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm()\n );\n }, []);\n\n const renderTitle = () => {\n return (\n <>\n \n \n {title}\n \n \n \n \n {title}\n \n \n \n );\n };\n\n const screen: Steps = {\n title: <>{renderTitle()},\n fields: ,\n };\n return (\n \n );\n}\n\nconst mapStateToProps = (state: OneFormState) => {\n return {\n formData: state.formData.fields,\n formInfo: state.formInfo,\n };\n};\n\nconst ConnectedComponent = connect(mapStateToProps)(ThankYouNavidad);\n\nexport { ConnectedComponent as ThankYouNavidad };\n","import React, { useEffect } from 'react';\nimport { Text, Container, ContainerPadding, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { ConfirmacionNavidad } from './ConfirmacionNavidad';\nimport {\n Email,\n PantallaNombreApellido,\n Telefono,\n YaTienesVolkswagen,\n NoCliente,\n MultipleOptionCTAs,\n DetalleMotivo,\n ContactInfoWrapper\n} from 'src/components';\nimport { FriendsInfo } from './ComponentsAndViews';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps, MolecularResponse } from 'src/types';\nimport {\n FormController,\n removeWhiteSpace,\n useFeatureAppConfig,\n useOneFormContext,\n formatPrefix,\n} from 'src/feature-app';\nimport { ThankYouNavidad } from './ThankYouNavidad';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { CTAsDisfrutarID4 } from 'src/feature-app/InputsValues';\n\nexport enum NavidadSteps {\n Cliente,\n NoCliente,\n NombreApellido,\n EnviarA,\n NoClienteContacto,\n EmailTelefono,\n MultipleChoice,\n MasInformacion,\n ImaginarExperiencia,\n Confirmacion,\n}\n\ninterface NavidadFormProps {\n updatedFormData?: Partial;\n}\n\nexport function NavidadForm({ updatedFormData }: NavidadFormProps) {\n const { initializeForm, handleNextStep } = useOneFormContext();\n const { formData, formInfo } = useSelector((state: OneFormState) => state);\n const { screenIndex } = formInfo;\n const { cliente, multipleChoice } = formData.fields;\n const store = useStore();\n const config = useFeatureAppConfig();\n const dispatch = useDispatch();\n\n const handleStepsCliente = (cliente: string) => {\n const { steps: actualSteps, screenIndex } = store.getState().formInfo;\n let newSteps = [...steps];\n\n if (cliente === 'true') {\n newSteps = removeStep(newSteps, 'NoCliente');\n newSteps = removeStep(newSteps, 'NoClienteContacto');\n } else {\n newSteps = removeStep(newSteps, 'NombreApellido');\n newSteps = removeStep(newSteps, 'EmailTelefono');\n newSteps = removeStep(newSteps, 'MultipleChoice');\n newSteps = removeStep(newSteps, 'MasInformacion');\n newSteps = removeStep(newSteps, 'ImaginarExperiencia');\n }\n\n newSteps = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newSteps });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newSteps[newSteps.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newSteps.length });\n };\n\n const handleMasInformacion = (multipleChoice: string[]) => {\n const { steps: actualSteps } = store.getState().formInfo;\n\n let newSteps = [...actualSteps];\n\n if (multipleChoice.includes('Otros')) {\n const stepIndex = getIndexInSteps(newSteps, 'MasInformacion');\n\n if (stepIndex === -1) {\n newSteps = addRemovedStep(steps, actualSteps, 'MasInformacion', screenIndex);\n setTimeout(() => {\n handleNextStep();\n }, 0);\n }\n } else {\n newSteps = removeStep(newSteps, 'MasInformacion');\n }\n\n const newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n dispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n dispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n dispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n };\n\n const steps: Steps[] = [\n {\n title: (\n <>\n Ya tienes un Volkswagen, \n \n ¿verdad? \n 1\n \n \n ),\n fields: } />,\n screenIndex: NavidadSteps.Cliente,\n name: 'Cliente',\n outputs: ['cliente'],\n outputsText: ['cliente'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Este sorteo es solo para clientes Volkswagen \n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.NoCliente,\n name: 'NoCliente',\n outputs: ['noCliente'],\n outputsText: ['noCliente'],\n trueOrFalseQuestion: true,\n },\n {\n title: (\n <>\n Para que los Reyes sepan lo que deseas, necesitamos saber quién eres\n \n ),\n fields: (\n \n \n \n }\n />\n ),\n screenIndex: NavidadSteps.NombreApellido,\n name: 'NombreApellido',\n outputs: ['name', 'surname', 'secondSurname'],\n outputsText: ['name', 'surname', 'secondSurname'],\n },\n {\n title: (\n <>\n Y, ¿a qué Reyes quieres que le enviemos tu lista de los deseos?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.EnviarA,\n name: 'EnviarA',\n outputs: ['friendName', 'friendMail'],\n outputsText: ['friendName','/', 'friendMail'],\n },\n {\n title: (\n <>\n ¿De parte de quién se lo hacemos llegar?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.NoClienteContacto,\n name: 'NoClienteContacto',\n outputs: ['noClienteName', 'noClienteMail'],\n outputsText: ['noClienteName','/', 'noClienteMail'],\n },\n {\n title: (\n <>\n ¡Listo! ¿Cómo podemos contactar contigo en caso de ganar el sorteo?\n \n ),\n fields: (\n \n \n \n \n }\n />\n ),\n screenIndex: NavidadSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n Tenemos curiosidad, ¿qué te atrae de disfrutar un ID.4?\n \n \n Puedes elegir dos opciones\n \n \n \n ),\n alternateTitle: (\n <>\n Tenemos curiosidad, ¿qué te atrae de disfrutar un ID.4?\n \n ),\n fields: (\n \n }\n />\n ),\n screenIndex: NavidadSteps.MultipleChoice,\n name: 'MultipleChoice',\n outputs: ['multipleChoice'],\n outputsText: ['multipleChoice'],\n },\n {\n title: (\n <>\n ¿Nos puedes detallar cuáles?\n \n ),\n fields: } />,\n screenIndex: NavidadSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n title: (\n <>\n ¿Cómo te imaginas la experiencia de conducir un ID.4?\n \n \n Estoy impaciente por ver cómo es la conducción1 del nuevo ID.4, además de ....\n \n \n \n ),\n fields: (\n \n 1 Tus inquietudes son muy interesantes para personalizar tu experiencia, además de\n compartirlas en nuestra web para ayudar a otros usuarios.\n \n }\n />\n }\n />\n ),\n screenIndex: NavidadSteps.ImaginarExperiencia,\n name: 'ImaginarExperiencia',\n outputs: ['imaginarExperiencia'],\n outputsText: ['imaginarExperiencia'],\n },\n {\n fields: ,\n screenIndex: NavidadSteps.Confirmacion,\n name: 'Confirmacion',\n isLastStep: true,\n hidePreviousStep: true,\n },\n ];\n\n const NuevoFormData: Partial = {\n headers: {\n DESC_BRAND: 'VW',\n DESC_VN_VO: 'VN',\n DESC_GDPR_ADAPTED: 'true',\n DESC_TOKEN: 'VW_DDB_FRM_NAVIDAD',\n DESC_ID_CAMPAIGN: '7011n000000JvfaAAC',\n DESC_FORM_DETAIL: 'Navidad 2021',\n DESC_CAMPAIGNBLOCK: 'B3 VW Emotional CRM',\n DESC_FORMOBJECTIVE: 'Concurso',\n },\n fields: {\n formName: 'adhoc-2021-navidad',\n formType: 'otherform',\n pageCategory: 'Concurso',\n ...updatedFormData?.fields,\n }, // Analítica\n };\n\n const getFormInfo = (): {\n firstStep: Steps;\n lastStep: Steps;\n stepsHistory: number[];\n numberOfScreens: number;\n newSteps?: Steps[];\n } => {\n return {\n firstStep: steps[0],\n lastStep: steps[steps.length - 1],\n stepsHistory: [0],\n numberOfScreens: steps.length,\n newSteps: null,\n };\n };\n\n const sendForm = (): Promise => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n\n const { fields, headers } = formData;\n\n return new Promise(async (resolve, reject) => {\n const { tc, today, referalUrl, url, device } = getParamsForm();\n\n const data = {\n 'headers[COD_FORM_ID]': `vw-oneform-${fields.formName}`,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_DEVICETYPE]': device,\n ...formatHeaders(headers),\n\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[TC]': tc,\n\n 'fields[DESC_NAME]': fields.noClienteName ? fields.noClienteName : fields.name,\n 'fields[DESC_SURNAME_1]': fields.surname,\n 'fields[DESC_SURNAME_2]': fields.secondSurname,\n 'fields[DESC_EMAIL_ADDRESS]': removeWhiteSpace(fields.email),\n 'fields[NUM_CELLPHONE]': `${formatPrefix(fields.prefix)}${fields.cellphone}`,\n 'fields[DESC_AUXFIELD1]': fields.wishlist,\n 'fields[DESC_AUXFIELD2]': fields.cliente,\n 'fields[DESC_AUXFIELD3]': fields.friendName,\n 'fields[DESC_AUXFIELD4]': fields.friendMail,\n 'fields[DESC_AUXFIELD5]': fields.multipleChoice,\n 'fields[DESC_AUXFIELD6]': fields.masInformacion,\n 'fields[DESC_AUXFIELD7]': fields.imaginarExperiencia,\n 'fields[DESC_FORM_VERSION]': `vw-oneform-adhoc_2021_navidad-${process.env.VERSION}`,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n };\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n useEffect(() => {\n const { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n const NuevoFormInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens,\n formTheme: 'inverted',\n screenIndex: firstStep.screenIndex,\n step: firstStep,\n steps: newSteps ? newSteps : steps,\n stepsHistory,\n thankYouComponent: ,\n };\n\n initializeForm(NuevoFormInfo, NuevoFormData);\n }, []);\n\n //activacion logica steps\n\n useEffect(() => {\n if (cliente) handleStepsCliente(cliente);\n }, [cliente]);\n\n useEffect(() => {\n if (multipleChoice) {\n handleMasInformacion(multipleChoice);\n }\n }, [multipleChoice]);\n\n return ;\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React from 'react';\n\nconst Svg = styled.svg`\n width: 100vw;\n height: auto;\n svg{\n width: 100vw;\n }\n`;\nconst SvgWrapper = styled.div`\n`;\n\nexport const SobreMobile = () => {\n return (\n \n \n Custom Preset 2\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const SobreDesktop = () => {\n return (\n \n \n Group 2\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const Sobre2560Desktop = () => {\n return (\n \n \n WEb DDB\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const CircleCheck = () => {\n return (\n \n \n icon check\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n CTA,\n Layout,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { InputError } from 'src/components';\nimport React, { useState } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { NavidadForm } from 'src/forms/FormsAdhoc/NavidadForm/NavidadForm';\nimport { SobreDesktop, SobreMobile, CircleCheck, Sobre2560Desktop } from 'src/forms/FormsAdhoc/NavidadForm/assets';\nimport { Edit } from 'src/icons-core-imports';\n\nconst Content = styled.div`\n overflow: hidden;\n background-color: #001e50;\n position: relative;\n padding-top: 66px;\n\n @media all and (min-width: 960px) {\n padding-top: 114px;\n padding-bottom: 108px;\n }\n\n & > div {\n width: 100%;\n }\n`;\n\nconst BorderSection = styled.div<{ backColor: string }>`\n clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);\n background-color: ${(props) => (props.backColor ? props.backColor : '#FFFFFF')};\n min-height: 30px;\n min-width: 44px;\n`;\n\nconst DisplayBorder = styled.div`\n display: flex;\n flex-wrap: no-wrap;\n width: fit-content;\n gap: 22px;\n transform: translateX(-33px);\n`;\nconst CenterCTA = styled.div`\n text-align: center;\n padding-bottom: 26px;\n @media all and (min-width: 960px) {\n text-align: left;\n padding-top: 32px;\n padding-bottom: 0;\n }\n @media all and (min-width: 1600px) {\n text-align: left;\n padding-top: 54px;\n }\n button {\n background-color: #00deff;\n border: none;\n font-weight: 700;\n }\n`;\n\nconst SobrePosition = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n`;\n\nconst FakeInputWrapper = styled.div`\n border: 2px solid #00deff;\n padding: 8px;\n padding-right: 12px;\n color: #ffffff;\n width: 100%;\n display: flex;\n align-items: center;\n p {\n font-size: 18px;\n line-height: 32px;\n font-weight: 700;\n margin: 0;\n }\n svg {\n height: 22px;\n width: 22px;\n }\n`;\n\nconst CheckWrapper = styled.div`\n padding-right: 14px;\n margin-right: 8px;\n height: 28px;\n svg {\n color: #00deff;\n }\n`;\n\n//Tamaños tipo y containers\n\nconst TipoDos = styled.span`\n font-size: 38px;\n line-height: 42px;\n width: 100%;\n\n @media all and (min-width: 960px) {\n font-size: 44px;\n line-height: 56px;\n }\n`;\n\nconst ContainerTitle = styled.div`\n padding-top: 54px;\n padding-bottom: 64px;\n\n @media all and (min-width: 960px) {\n padding-top: 0;\n padding-bottom: 0;\n }\n`;\n\nconst InputTitleWrapper = styled.div`\n padding-bottom: 44px;\n @media all and (min-width: 1600px) {\n padding-bottom: 56px;\n }\n @media all and (min-width: 1600px) {\n padding-bottom: 36px;\n }\n @media all and (min-width: 1920px) {\n padding-bottom: 56px;\n }\n`;\nconst BulletLine = styled.div`\n width: 20px;\n min-width: 20px;\n height: 2px;\n background-color: #ffffff;\n margin: 15px 0;\n`;\nconst ListItemWrapper = styled.div`\n display: flex;\n gap: 8px;\n padding-left: 20px;\n`;\n\nconst formatListElement = (value: string) => {\n if (!value || value === '') {\n return null;\n }\n return value;\n};\n\nexport const NavidadTrigger = (props: TriggerProps) => {\n const { setSelectedJourney, setCTALabel } = props;\n\n const [listUno, setListUno] = useState(null);\n const [listDos, setListDos] = useState(null);\n const [listTres, setListTres] = useState(null);\n const [error, setError] = useState(false);\n\n const navidadImgSrc = useFaContent()?.navidadImgSrc;\n\n const renderForm = () => {\n const wishlist = `Un fin de semana con un ID.4, ${formatListElement(listUno)}, ${formatListElement(\n listDos\n )}, ${formatListElement(listTres)}`;\n setCTALabel('Enviar la carta');\n setSelectedJourney();\n };\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n Escribe tu carta y pide lo que más ilusión te haga. ¡El ID.4 lo ponemos nosotros! \n Escribe tu lista de deseos…\n \n \n
\n \n \n \n \n

Un fin de semana con un ID.4

\n
\n \n {\n error ? Falta añadir tus deseos, ¿vas a dejarlos? : null\n }\n \n \n
\n
\n\n \n
\n
\n \n Y ahora envíasela \n \n a los tuyos\n \n \n
\n\n \n \n {\n if(listUno === null || listUno ==='') {\n setError(true);\n } else {\n setError(false);\n renderForm();\n } \n }}\n stretchContent\n >\n Quiero participar\n \n \n \n\n \n ¡Nosotros ya sabemos lo que quieres! Ahora díselo a tus seres queridos y participa en un sorteo\n 1 y gana:\n \n
\n \n \n \n Una experiencia de fin de semana con un ID.4\n \n \n \n \n \n Una escapada de hotel con esa persona especial\n \n \n \n \n \n Un bono de 100€ de carga para que la energía no pare\n \n \n \n \n \n Y hacer realidad tus deseos con una tarjeta regalo de 300€ en Volkswagen Store\n \n \n
\n
\n\n \n \n {\n if(listUno === null || listUno ==='') {\n setError(true);\n } else {\n setError(false);\n renderForm();\n } \n }}\n >\n Quiero participar\n \n \n \n
\n \n
\n
\n
\n
\n );\n};\n\nconst InputTextWrapper = styled.div<{error: boolean}>`\n border: ${(props)=> props.error ? '2px solid #e4002c' : '2px solid #ffffff'};\n padding: 8px;\n display: flex;\n width: 100%;\n margin-top: 30px;\n align-items: center;\n`;\n\nconst InputText = styled.input`\n border: none;\n background-color: transparent;\n all: unset;\n width: 100%;\n font-size: 18px;\n line-height: 32px;\n color: #ffffff;\n\n #placeholder {\n color: rgba(255, 255, 255, 0.46);\n }\n`;\nconst IconWrapper = styled.div`\n padding-right: 14px;\n margin-right: 8px;\n border-right: 1px solid #ffffff;\n height: 28px;\n svg {\n color: #ffffff;\n }\n`;\ninterface InputsProps {\n placeholder: string;\n setList: any;\n error?: boolean;\n}\n\nconst Inputs = (props: InputsProps) => {\n\n return (\n \n \n \n \n props.setList(e.target.value)} \n />\n \n );\n};\nconst Border = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { styled, ThemeProvider } from '@volkswagen-onehub/components-core';\nimport { LiSection } from '.';\nimport { CarlineWithOffers } from 'src/types';\nimport { TriggerProps } from 'src/feature-app';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\n\nconst Wrapper = styled.div`\n position: relative;\n overflow: hidden;\n`;\n\ninterface WrapperProps {\n isVertical: boolean;\n}\n\nconst UlWrapper = styled.ul`\n display: flex;\n min-height: ${(props)=> props.isVertical ? '50vh':'670px'};\n height: ${(props)=> props.isVertical ? '50vh':'100vh'};\n margin: 0;\n padding: 0;\n overflow: hidden;\n list-style-type: none;\n @media all and (min-width: 1280px){\n min-height: ${(props)=> props.isVertical ? '50vh':'720px'};\n }\n @media all and (min-width: 1600px){\n min-height: ${(props)=> props.isVertical ? '50vh':'1000px'};\n }\n\n`;\n\ninterface BackgroundImagProps {\n liSection?: boolean;\n idLi?: number;\n isVertical: boolean;\n}\nexport const BackgroundImage = styled.img`\n position: absolute;\n top: ${(props) => props.liSection ? null : '0'};\n bottom: ${(props) => props.liSection ? '0' : null};\n left: ${(props) => props.idLi === 2 ? null : '0'};\n right:${(props) => props.idLi === 2 ? '0' : null};\n width: auto;\n height: ${(props)=> props.isVertical ? '50vh':'100vh'};\n transform-origin: ${(props) => props.liSection && props.idLi === 2 ? 'right bottom' : props.liSection ? 'left bottom' : null};\n transform: ${(props) => props.idLi === 0 ? 'scale(1.2) translateX(-20%)' : props.idLi === 1 ? 'scale(1.2) translateX(-35%)' : props.idLi === 2 ? 'scale(1.2)' : null};\n\n min-width: 100vw;\n min-height: ${(props)=> props.isVertical ? '50vh':'670px'};\n @media all and (min-width: 1280px){\n min-height: ${(props)=> props.isVertical ? '50vh':'720px'};\n }\n @media all and (min-width: 1600px){\n min-height: ${(props)=> props.isVertical ? '50vh':'1000px'};\n }\n`;\n\nexport const backgroundUrl = 'https://assets.volkswagen.com/is/image/volkswagenag/background-gradient-v2?Zml0PWNyb3AlMkMxJndpZD0xMjgwJmhlaT03MjAmZm10PWpwZWcmcWx0PTc5JmJmYz1vZmYmMmI5ZQ==';\n\nexport const AcordionHorizontal = (props: TriggerProps & { carlinesWithOffers: CarlineWithOffers[] }) => {\n const { carlinesWithOffers, setSelectedJourney } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n const [active, setActive] = useState(0);\n const [isVertical, setVertical] = useState(false);\n\n useEffect(()=>{\n if(width - height <= 100 || height > width) {\n setVertical(true);\n } else {\n setVertical(false);\n }\n },[width]);\n\n const handleClick = (e, index) => {\n e.preventDefault();\n if (active === index) {\n return;\n } else {\n setActive(index);\n }\n };\n\n return (\n \n \n \n \n {\n carlinesWithOffers.map((carlineWithOffers, i) => {\n return ;\n })\n }\n \n \n \n );\n};\n","import { CTA } from '@volkswagen-onehub/components-core';\nimport { OfertaForm } from 'src/forms';\nimport { useDispatch } from 'react-redux';\nimport { TriggerProps } from 'src/feature-app';\nimport React from 'react';\nimport { CarlineWithOffers } from 'src/types';\n\nexport const CTAOfertaSuv = (props: TriggerProps & { carlineWithOffers: CarlineWithOffers; }) => {\n const dispatch = useDispatch();\n const { setSelectedJourney, carlineWithOffers } = props;\n return (\n {\n dispatch({ type: 'SET_OFERTA', payload: carlineWithOffers.ofertas[0] });\n setSelectedJourney();\n }}\n emphasis='primary'\n >Pide esta oferta\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n styled,\n Text,\n ThemeProvider,\n Container,\n ContainerPadding,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { CTAOfertaSuv } from './CTAOfertaSuv';\nimport { TriggerProps } from 'src/feature-app';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { CarlineWithOffers } from 'src/types';\n\n\nconst Wrapper = styled.div`\n position: relative;\n width: 100vw;\n height: 100vh;\n min-height: 400px;\n padding: 94px var(--size-grid001) 32px;\n text-align: center;\n`;\n\ninterface CarImageProps {\n name: string;\n height: number;\n width: number;\n}\n\nconst CarImage = styled.img`\n width: ${(props) => props.height < 600 ? '90%' : '100%'};\n height: auto;\n position: ${(props) => props.height < 500 ? 'relative' : 'absolute'};\n margin: 0 auto;\n left: ${(props) => props.height < 500 ? null : props.name === 'Taigo' ? null : 'var(--size-grid005)'};\n right: ${(props) => props.height < 500 ? null : props.name === 'Taigo' ? '0' : null};\n bottom: ${(props) => props.height < 500 ? null : '20%'};\n margin-top: ${(props) => props.height < 500 ? '24px' : null};\n transform: ${(props) => props.height < 600 ? null : 'scale(1.1)'};\n transform-origin: ${(props) => props.name === 'Taigo' ? 'right bottom' : 'left bottom'};\n`;\n\nconst TextWrapper = styled.div`\n display: flex;\n flex-direction: column ;\n justify-content: flex-start;\n align-items: flex-start;\n`;\n\ninterface MobileCardProps {\n content: any;\n carlineWithOffers: CarlineWithOffers;\n}\n\nexport const formatNumber = (num: any) => {\n\n let transformedNumber = '';\n\n let decimals = num.toString().split('.');\n let numerals = decimals.shift().split('');\n let aux = [];\n\n while (numerals.length > 0) {\n aux.unshift(numerals.splice(-3, 3).join(''));\n }\n if (decimals.length <= 0) {\n transformedNumber = aux.join('.') + ',00';\n } else if (decimals[0].length === 1) {\n transformedNumber = aux.join('.') + ',' + decimals.toString() + '0';\n } else {\n transformedNumber = aux.join('.') + ',' + decimals.toString();\n }\n\n return transformedNumber;\n};\n\nexport const MobileCard = (props: TriggerProps & MobileCardProps) => {\n const { content, setSelectedJourney, carlineWithOffers } = props;\n const [imageUrl, setImageUrl] = useState(null);\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n useEffect(() => {\n if (content.carline.title === 'Taigo') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/taigo_suvperheroes_v2?Zml0PWNyb3AlMkMxJndpZD0xMDM5JmhlaT01MjAmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIzZmE=');\n } else if (content.carline.title === 'T-Cross') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-cross_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDQyJmhlaT01ODYmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJjVlZWU=');\n } else {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-roc_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDI4JmhlaT01NzgmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIwNTU=');\n }\n }, [content]);\n\n return (\n \n \n \n {content.carline.title}{' '}\n por\n \n \n {' '}{content.cuota}€\n /mes*\n \n \n \n con{' '}\n {content.financiacionText.replace('con', '')}\n \n \n {content.myWay.activo === 1 ?\n \n Cuota final: {formatNumber(content.cuotaFinal)}€\n \n : null\n }\n \n \n \n \n\n {\n imageUrl && \n }\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport {\n Text,\n styled,\n Container,\n ContainerPadding,\n TextAlignment,\n ThemeProvider,\n Breakpoints,\n BreakpointWrapper,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport { BackgroundImage, backgroundUrl } from './AcordionHorizontal';\nimport { keyframes, css } from 'styled-components';\nimport { useWindowHeight, useWindowWidth } from '@react-hook/window-size';\nimport { CTAOfertaSuv } from './CTAOfertaSuv';\nimport { TriggerProps } from 'src/feature-app';\nimport { CarlineWithOffers } from 'src/types';\nimport { formatNumber } from './MobileCard';\n\ninterface LiProps {\n idLi: number;\n shadowSide?: string;\n isVertical?: boolean;\n}\nconst LiWrapper = styled.li`\n flex: 1;\n display: flex;\n position: relative;\n align-items: stretch;\n box-shadow: ${(props) => props.shadowSide === 'interior' ? 'inset -10px 0px 9px -5px rgba(0,0,0,0.1)' : '10px 0px 20px 0px rgba(0, 0, 0, 0.4)'};\n padding: 0 5px;\n overflow: hidden;\n flex-direction: column;\n @media all and (min-width: 1600px){\n padding: 0 20px;\n }\n cursor: pointer;\n overflow: hidden;\n transition: all 0.3s ease-in;\n &.active {\n flex: 4;\n cursor: default;\n overflow: hidden;\n padding: 0;\n .section-content {\n opacity: 1;\n min-width: var(--size-grid012);\n }\n }\n .section-title {\n height: fit-content;\n position:absolute;\n margin-top: 130px;\n margin-left: 24px;\n transform: rotate(-90deg) translateX(-100%);\n transform-origin: top left;\n white-space: nowrap;\n }\n .section-content {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-direction: column;\n opacity: 0;\n position: absolute;\n padding-top: 100px;\n width: 100%;\n height: ${(props) => props.isVertical ? '50vh' : '100vh'};\n min-height: ${(props) => props.isVertical ? '50vh' : '670px'};\n @media all and (min-width: 1280px){\n padding-top: 140px;\n min-height: ${(props) => props.isVertical ? '50vh' : '720px'};\n }\n @media all and (min-width: 1600px){\n padding-top: 186px;\n min-height: ${(props) => props.isVertical ? '50vh' : '1000px'};;\n }\n @media all and (min-width: 1920px){\n padding-top: 260px;\n }\n @media all and (min-width: 2560px){\n padding-top: 340px;\n }\n }\n`;\n\nconst Divider = styled.div`\n background-color: #FFFFFF;\n width: 3px;\n height: 84px;\n margin: 0 24px;\n @media all and (min-width: 1600px){\n width: 5px;\n height: 116px;\n margin: 0 32px;\n }\n`;\n\nconst fadeInImage = keyframes`\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n`;\n\ninterface CarImageProps {\n small?: boolean;\n taigo?: boolean;\n height?: number;\n isVertical: boolean;\n}\n\nconst ImageWrapper = styled.div`\n align-self: flex-start;\n position: relative;\n width: 100%;\n height: ${(props) => props.isVertical ? '50vh' : '100vh'};\n min-height:${(props) => props.isVertical ? '50vh' : '670px'};\n display: ${(props) => props.height < 560 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 560 && props.small ? 'flex-end' : null};\n @media all and (min-width: 1280px) {\n display: ${(props) => props.height < 720 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 720 && props.small ? 'flex-end' : null};\n min-height: ${(props) => props.isVertical ? '50vh' : '720px'};\n }\n @media all and (min-width: 1600px) {\n display: ${(props) => props.height < 1000 && props.small ? 'flex' : null};\n align-items: ${(props) => props.height < 1000 && props.small ? 'flex-end' : null};\n min-height: ${(props) => props.isVertical ? '50vh' : '1000px'};\n }\n`;\n\nconst CarImage = styled.img`\n position: ${(props) => props.small ? 'absolute' : null};\n animation: ${(props) => props.small ? null : css`${fadeInImage} 0.2s ease-in`};\n width: ${(props) => props.small ? 'var(--size-grid006)' : 'var(--size-grid009)'};\n height: auto;\n transform:${(props) => props.taigo && props.small ? 'translateX(-20%) scale(1.2)' : props.taigo ? 'scale(1.2)' : 'translateX(5%)'};\n bottom: ${(props) => props.isVertical && props.small ? '25%' : props.small ? '18%' : null};\n right: ${(props) => props.small ? null : props.taigo ? '-64px' : '-126px'};\n margin-bottom: ${(props) => props.small ? null : '32px'};\n transform-origin: center bottom;\n @media all and (min-width: 1600px) {\n width: ${(props) => props.small ? 'var(--size-grid006)' : 'var(--size-grid009)'};\n }\n @media all and (min-width: 1920px) {\n margin-bottom: ${(props) => props.small ? null : '64px'};\n width: ${(props) => props.small ? '480px' : '720px'};\n transform:${(props) => props.taigo && props.small ? 'translateX(-20%) ' : 'translateX(5%)'};\n }\n`;\n\nconst CTAanimation = keyframes`\n 0% { transform: translateY(0); }\n 50% { transform: translateY(-20px); }\n 100% { transform: translateY(0); }\n`;\n\nconst CTAPostion = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-bottom: calc( var(--size-grid001) / 2);\n @media all and (min-width: 1600px){\n padding-bottom: 64px;\n }\n`;\n\nconst CTAWrapper = styled.div`\n animation: ${CTAanimation} 4s ease infinite;\n`;\n\nconst shadowAnimation = keyframes`\n 0% { opacity: 1; }\n 50% { opacity: 0.5 ; }\n 100% { opacity: 1 ; }\n`;\nconst Shadow = styled.div`\n animation: ${shadowAnimation} 4s ease infinite;\n margin: 15px 0 30px;\n height: 6px;\n width: 176px;\n border-radius: 50%;\n filter: blur(8px);\n background-color: #000000;\n @media all and (min-width: 1600px) {\n margin: 15px 0;\n }\n`;\n\nconst NoMarginWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n div {\n margin-bottom: 0;\n }\n`;\n\nconst BottomContentWrapper = styled.div`\n position: ${(props) => props.height < 560 ? 'relative' : 'absolute'};\n left: 0;\n bottom: 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n @media all and (min-width: 1280px) {\n position: ${(props) => props.height < 720 ? 'relative' : 'absolute'};\n }\n @media all and (min-width: 1600px) {\n position: ${(props) => props.height < 1000 ? 'relative' : 'absolute'};\n }\n`;\n\ninterface LiSectionProps {\n active: number;\n handleClick: (e: React.MouseEvent, i: number) => void;\n id: number;\n content: any;\n carlineWithOffers: CarlineWithOffers;\n}\n\nexport const LiSection = (props: TriggerProps & LiSectionProps) => {\n const { handleClick, active, id, content, carlineWithOffers, setSelectedJourney } = props;\n const height = useWindowHeight();\n const width = useWindowWidth();\n\n const [imageUrl, setImageUrl] = useState(null);\n const [isVertical, setVertical] = useState(false);\n\n useEffect(() => {\n if (width - height <= 100 || height > width) {\n setVertical(true);\n } else {\n setVertical(false);\n }\n }, [width]);\n\n useEffect(() => {\n console.log(isVertical);\n }, [isVertical]);\n\n useEffect(() => {\n if (content.carline.title === 'Taigo') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/taigo_suvperheroes_v2?Zml0PWNyb3AlMkMxJndpZD0xMDM5JmhlaT01MjAmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIzZmE=');\n } else if (content.carline.title === 'T-Cross') {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-cross_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDQyJmhlaT01ODYmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJjVlZWU=');\n } else {\n setImageUrl('https://assets.volkswagen.com/is/image/volkswagenag/t-roc_suvperheroes_v3?Zml0PWNyb3AlMkMxJndpZD0xMDI4JmhlaT01NzgmZm10PXBuZy1hbHBoYSZiZmM9b2ZmJmIwNTU=');\n }\n }, [content]);\n\n return (\n handleClick(e, id)} className={id === active ? 'active' : 'inactive'} idLi={id} shadowSide={id < active ? 'interior' : 'exterior'} isVertical={isVertical}>\n {\n id !== active ? (\n <>\n
\n {content.carline.title}\n
\n \n \n \n \n\n ) : (\n <>\n \n
\n\n \n \n \n {content.carline.title}\n con ACC, Front Assist y\n detector de peatones\n \n \n \n\n \n {content.cuota}€\n /mes*\n \n {content.financiacionText}\n {content.myWay.activo === 1 ?\n Cuota final: {formatNumber(content.cuotaFinal)}€\n : null\n }\n \n \n \n\n \n \n \n {content.carline.title}\n con ACC, Front Assist y\n detector de peatones\n \n \n \n\n \n {content.cuota}€\n /mes*\n \n {content.financiacionText}\n {content.myWay.activo === 1 ?\n Cuota final: {formatNumber(content.cuotaFinal)}€\n : null\n }\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n
\n \n )\n }\n
\n );\n};\n","import React, { useState } from 'react';\nimport { MobileCard } from '.';\nimport {\n styled,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport { TabsNavigation } from '.';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { TriggerProps } from 'src/feature-app';\nimport { CarlineWithOffers } from 'src/types';\n\ninterface styleProps {\n height?: number;\n}\n\nconst TabsWrapper = styled.div`\n min-height: 100vh;\n overflow: hidden;\n position: relative;\n`;\nconst BackgroundImage = styled.img`\n height: auto;\n min-height: 100vh;\n min-width: 100vw;\n width: auto;\n overflow: hidden;\n position: absolute;\n bottom: 0;\n left: 0;\n`;\n\nconst ContentWrapper = styled.div`\n position: ${(props)=> props.height < 500 ? 'relative' : 'absolute'};\n top: 0;\n left: 0;\n min-height: 400px;\n`;\n\nconst mobileBackgroundUrl = 'https://assets.volkswagen.com/is/image/volkswagenag/background-gradient_mobile-v2?Zml0PWNyb3AlMkMxJndpZD0zOTAmaGVpPTY5MyZmbXQ9anBlZyZxbHQ9NzkmYmZjPW9mZiZjYmIy';\ninterface TabsProps {\n carlinesWithOffers: CarlineWithOffers[];\n}\n\nexport const Tabs = (props: TabsProps & TriggerProps) => {\n const { carlinesWithOffers, setSelectedJourney } = props;\n\n const [ activeTab, setActiveTab ] = useState(0);\n const height= useWindowHeight();\n\n\n return (\n \n \n \n \n { \n activeTab === 0 ? (\n \n ) : activeTab === 1 ? (\n \n ) : (\n \n ) \n }\n \n \n \n \n );\n};\n","import React from 'react';\nimport { styled } from '@volkswagen-onehub/components-core';\nimport { keyframes } from 'styled-components';\n\nconst ColorBarWrapper = styled.div`\n position: relative;\n margin-top: 16px;\n height: 5px;\n width: 100%;\n overflow: hidden;\n`;\n\nconst greyAnimate = keyframes`\n 0% { transform: translateX(0) }\n 100% { transform: translateX(100%) }\n`;\n\nconst GreyBar = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n border-radius: 0 100px 100px 0;\n background-color: #DFE4E8;\n &.start {\n animation: ${greyAnimate} 5s linear infinite normal;\n }\n`;\nconst ColorBar = styled.div`\n position: absolute;\n top: 0;\n bottom: 0;\n width: 100%;\n border-radius: 100px;\n background: #00B0F0;\n`;\n\nexport const ProgressBar = () => {\n return (\n \n \n \n \n\n );\n};\n","import React, { useEffect } from 'react';\nimport {\n styled,\n Text,\n} from '@volkswagen-onehub/components-core';\nimport { ProgressBar } from './ProgressBar';\nimport { CarlineWithOffers } from 'src/types';\n\ninterface styleProps {\n height?: number;\n}\nconst Nav = styled.div`\n padding:16px;\n margin: 0 var(--size-grid001);\n position: ${(props) => props.height <500 ? 'relative' : 'absolute'};\n margin-top: ${(props) => props.height < 500 ? '20px' : null};\n bottom: 24px;\n height: 85px;\n border-radius: 8px;\n background-color: #FFFFFF;\n width: var(--size-grid022);\n box-shadow: 0px 8px 8px rgba(0, 0, 0, 0.5);\n`;\n\nconst UlWrapper = styled.ul`\n display: flex;\n justify-content: space-between;\n padding: 0;\n margin: 0;\n`;\ninterface LiButtonProps {\n activeTab: boolean;\n}\nconst LiButton = styled.li`\n z-index: 1;\n width: 72px;\n height: 32px;\n border: 1px solid #00B0F0;\n border-radius: 16px;\n list-style: none;\n cursor: pointer;\n transition: all 0.1s;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${(props) => props.activeTab ? ' #00B0F0' : '#FFFFFF'};\n`;\n\nconst TextStyles = styled.span`\n color: ${(props) => !props.activeTab ? ' #00B0F0' : '#FFFFFF'}\n`;\ninterface TabsNavigationProps {\n setActiveTab: React.Dispatch>;\n offers: CarlineWithOffers[];\n activeTab: number;\n height: number;\n}\n\nexport const TabsNavigation = (props: TabsNavigationProps) => {\n const { setActiveTab, offers, activeTab, height } = props;\n\n\n const resetProgressBar = (select: number) => {\n setActiveTab(select);\n const aux = document.getElementById('animated-bar');\n if (aux) {\n aux.classList.remove('start');\n aux.offsetWidth;\n aux.classList.add('start');\n }\n };\n\n useEffect(() => {\n const aux = activeTab === 2 ? 0 : activeTab + 1;\n\n const timer = setTimeout(() => {\n setActiveTab(aux);\n resetProgressBar(aux);\n }, 5000);\n\n return () => clearTimeout(timer);\n\n }, [activeTab]);\n\n return (\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { AcordionHorizontal, Tabs } from './Suvperheroes';\nimport { getOfertasSUV } from 'src/bff';\nimport { CarlineWithOffers } from 'src/types';\nimport { useWindowWidth } from '@react-hook/window-size';\nimport { TriggerProps } from 'src/feature-app';\n\n\nexport function SuvperheroesTrigger({ setSelectedJourney }: TriggerProps) {\n const [carlinesWithOffers, setCarlinesWithOffers] = useState(null);\n const width = useWindowWidth();\n\n useEffect(() => {\n getOfertasSUV()\n .then((data) => {\n setCarlinesWithOffers(data);\n });\n }, []);\n\n return (\n <>\n {\n carlinesWithOffers ? (\n
\n {\n width < 560 ?\n :\n \n }\n
\n ) : null\n }\n \n );\n}\n","import React from 'react';\nimport { ScreenController } from 'src/feature-app';\nimport { ConcursoRodajeController } from 'src/forms';\n\nexport function ConcursoRodajeTrigger() {\n return }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType='inPage'\n />;\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { PlanIdealController } from 'src/forms/FormsAdhoc/2023PlanIdeal/PlanIdealController';\n\nexport function PlanIdealTrigger(props: TriggerProps) {\n\n\n return (\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { useFaContent } from 'src/feature-app';\nimport { AutosubmitController } from 'src/forms/Autosubmit/AutosubmitController';\n\nexport function AutosubmitTrigger() {\n const faContent = useFaContent();\n const [action, setAction] = useState(null);\n\n useEffect(() => {\n setAction(faContent.action);\n }, [faContent]);\n\n const renderForm = () => {\n switch (action) {\n case 'newsletter-electricos':\n return \n default:\n return null;\n }\n };\n\n return renderForm();\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent, ScreenController } from 'src/feature-app';\nimport { BajaComunicacionesController } from 'src/forms/BajaComunicaciones';\n\nexport function BajaComunicacionesTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n\n return (\n <>\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n \n );\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { CallMeOfertaForm } from 'src/forms';\n\nexport function CallMeOfertasTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Llámame');\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n\n}\n","import React from 'react';\nimport { EmbeddedFeatureApp, TriggerProps, useFaContent } from 'src/feature-app';\nimport { CallMeOfertasTrigger } from './CallMeOfertasTrigger';\n\nconst renderTrigger = (featureApp: EmbeddedFeatureApp, props: TriggerProps) => {\n if (featureApp === 'es-ofertas') {\n return ;\n }\n\n return null;\n};\n\nexport function CallMeEmbeddedTrigger(props: TriggerProps) {\n const faContent = useFaContent();\n\n return renderTrigger(faContent.featureApp, props);\n}\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledDivider = styled.hr.withConfig({ displayName: \"StyledDivider\", componentId: \"sc-1g6khxq\" }) `border:none;width:${(props) => props.isVertical ? props.theme.size.line.default : 'initial'};height:${(props) => props.isVertical ? '100%' : props.theme.size.line.default};margin:0;background-color:${(props) => props.theme.colors.border.divider};`;\nexport const Divider = (props) => {\n const { isVertical } = props;\n const commonProps = getCommonProps(props);\n return React.createElement(StyledDivider, Object.assign({ isVertical: isVertical }, commonProps));\n};\nDivider.displayName = 'Divider';\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n Text,\n TextAlignment,\n ThemeProvider,\n Spinner,\n Divider,\n LayoutRowGap,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Mail, Phone, CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\nimport { useGetDealer, useFeatureServices, LayerManagerWrapper, useFeatureAppEnvironment, useNavigate } from 'src/feature-app';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { MapGeneralController, NewMap } from 'src/feature-app/NewMap';\nimport { useSelector, useStore, useDispatch } from 'react-redux';\nimport { DealersData, OneFormState } from 'src/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\n\ninterface CitaPosventaDEalerTriggerProps {\n setSelectedJourney: any;\n setCTALabel?: any;\n}\n\nexport const CitaPosventaDealerTrigger = (props: CitaPosventaDEalerTriggerProps) => {\n const { dealerName, selectedDealer, loading } = useGetDealer();\n const { setSelectedJourney } = props;\n const { points } = useSelector((state: OneFormState) => state.dealersInfo);\n const [error, setError] = useState(false);\n const [dealerInfo, setDealerInfo] = useState(null);\n const [dealerDmsInfo, setDealerDmsInfo] = useState(null);\n const [pointsLodaded, setPointsLoaded] = useState(false);\n const layerManager = useFeatureServices()['layer-manager'];\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const {navigateToCita} = useNavigate();\n const dispatch = useDispatch();\n\n const renderErrorScreen = () => {\n return (\n \n {\n navigateToCita();\n }}\n />\n \n );\n };\n\n const handleErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderErrorScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n // la altura del mapa en 375 debe ser = al width, mientras que en 560 tiene que ser 50% del width\n\n const initializeState = (selectedDealer: DealersData) => {\n if (selectedDealer) {\n if (selectedDealer.dmsInfo.dmsAvailable === true) {\n setDealerDmsInfo(selectedDealer.dmsInfo);\n }\n setDealerInfo(selectedDealer.markerInfo.dealerInfo);\n } else {\n setError(true);\n handleErrorLayer();\n }\n };\n\n useEffect(() => {\n if (points) {\n setPointsLoaded(true);\n }\n }, [points]);\n\n useEffect(() => {\n if (!loading) {\n initializeState(selectedDealer);\n }\n }, [selectedDealer, loading]);\n\n return error ? null : (\n \n \n \n \n ¿Quieres visitar nuestro Servicio Oficial?\n \n \n \n {dealerInfo && pointsLodaded ? (\n \n
\n \n \n \n {dealerDmsInfo ? dealerDmsInfo.name : dealerInfo.name}\n \n \n \n {\n e.preventDefault();\n initializeState(selectedDealer);\n setSelectedJourney();\n }}\n ariaLabel=\"aria label\"\n >\n Pide tu cita\n \n \n \n Dirección\n \n \n {dealerInfo.address}, {dealerInfo.zipCode} {dealerInfo.city}\n \n \n \n \n \n Datos de contacto\n \n
\n
\n \n
\n \n {dealerDmsInfo ? dealerDmsInfo.phone : dealerInfo.phone} \n \n
\n
\n
\n \n
\n \n {dealerDmsInfo ? dealerDmsInfo.email : dealerInfo.mail}\n \n
\n
\n {!dealerDmsInfo ? null : (\n <>\n {dealerDmsInfo.pickupCarServiceAvailabe || dealerDmsInfo.replacementCarServiceAvailable ? (\n \n \n \n \n {' '}\n Servicios adicionales{' '}\n \n {dealerDmsInfo.pickupCarServiceAvailabe ? (\n
\n
\n \n
\n Servicio de recogida y entrega \n
\n ) : null}\n {dealerDmsInfo.replacementCarServiceAvailable ? (\n
\n
\n \n
\n Coche de sustitución \n
\n ) : null}\n
\n
\n ) : null}\n \n )}\n
\n
\n
\n \n \n \n \n ) : (\n \n
\n \n Cargando los datos de la instalación\n
\n \n )}\n
\n );\n};\n","import { useWindowWidth } from '@react-hook/window-size';\nimport {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { Close } from '@volkswagen-onehub/icons-core/dist/Close';\nimport { Phone } from '@volkswagen-onehub/icons-core/dist/Phone';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport {\n ScreenController,\n TriggerProps,\n useFeatureAppConfig,\n useOneFormContext,\n useFeatureServices,\n LayerManagerWrapper,\n useTrackingManager,\n useFeatureAppEnvironment,\n useOnScreen,\n} from 'src/feature-app';\nimport { RaceForm, useRaceFormController } from 'src/forms';\nimport { GenericErrorLayer } from 'src/components';\nimport { OneFormState } from 'src/types';\nimport { CloseHandleV2, FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\n\nconst RaceDiv = styled.div`\n position: fixed;\n right: 10px;\n bottom: 5%;\n z-index: 2;\n\n & button {\n background-color: #ffaa27;\n border: 2px solid #ffaa27;\n color: #001e50;\n }\n\n & button[disabled] {\n background-color: #DFE4E8;\n border: 2px solid #DFE4E8;\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 Legal = () => {\n return (\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\nconst ErrorPage = ({ retry, close, setCtaDisabled }: ErrorPageProps) => {\n return (\n <>\n \n \n Uy, algo ha pasado\n \n \n Por alguna razón no hemos podido guardar tu petición. ¿Lo intentamos de nuevo?\n \n \n \n {\n retry();\n }}\n >\n Reintentar\n \n {\n close();\n setCtaDisabled(false);\n }}\n >\n Volver a probar más tarde\n \n \n \n );\n};\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n ThemeReference,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n useFaContent,\n} from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport { TriggerCitaProps } from 'src/triggers';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { RaceTrigger } from './RaceTrigger';\n\ninterface contentProps {\n themeColor: ThemeReference;\n}\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: ${(props) => props.themeColor === 'inverted' ? props.theme.colors.gradient.radial : '#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.colors.background.primary};\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 {getDealers} from 'src/bff';\nimport {TriggerProps, useFaContent, useGetDealers, VehiclePortal} from 'src/feature-app';\nimport {FormDataFields} from 'src/types';\nimport {AppointmentVehicle} from 'src/forms';\nimport {NuevaCitaPosventaFormController} from 'src/forms/CitaPosventa/NuevaCitaPosventa';\n\nconst getAppointmentVehicle = (vehicle: VehiclePortal): AppointmentVehicle => {\n\treturn {\n\t\tbrand: 'V',\n\t\tframe: vehicle.frame,\n\t\tmodelVersion: vehicle.commercialDenominationSli,\n\t\tmodelYear: 0,\n\t\tplate: vehicle.license.toUpperCase(),\n\t\tplateDate: transformTimestampToDate(vehicle.licenseDate, false),\n\t\ttmaimg: vehicle.tmaimg,\n\t\tmodel: {\n\t\t\tcode: vehicle.familyModelCode,\n\t\t\tkey: vehicle.familyModelCode,\n\t\t\tname: vehicle.familyModelDesc,\n\t\t},\n\t};\n};\n\nconst transformTimestampToDate = (date: number, isOnlyYear: boolean) => {\n\tconst timestamp = date;\n\tlet formattedDate: string;\n\tif (isOnlyYear) {\n\t\tformattedDate = new Date(timestamp).toLocaleDateString('es-ES', {\n\t\t\tyear: 'numeric',\n\t\t});\n\t} else {\n\t\tformattedDate = new Date(timestamp).toISOString().replace(/T/, ' ').replace(/\\..+/, '');\n\t}\n\treturn formattedDate;\n};\n\nexport function CitaPosventaBenfitsForms({setSelectedJourney}: TriggerProps) {\n\tconst faContent = useFaContent();\n\tconst {loading} = useGetDealers(faContent?.dealer);\n\tconst vehicle = faContent.vehicle[0];\n\n\tconst renderForm = (fields: FormDataFields) => {\n\t\tsetSelectedJourney(\n\t\t\t,\n\t\t\ttrue,\n\t\t);\n\t};\n\tuseEffect(() => {\n\t\tif (loading) return;\n\n\t\tconst fields = {\n\t\t\tmotivo: 'MANTENIMIENTO',\n\t\t\tformName: 'cita-posventa-my-benefits',\n\t\t\tmatricula: vehicle.license,\n\t\t\tvehicleForMaintenance: getAppointmentVehicle(vehicle),\n\t\t\tanoMatriculacion: transformTimestampToDate(vehicle.licenseDate, true),\n\t\t\tmodelo: vehicle.commercialDenominationSli,\n\t\t\t//budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n\t\t};\n\n\t\tgetDealers()\n\t\t\t.then(() => {\n\t\t\t\trenderForm({...fields});\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\trenderForm({...fields}); // Hay que ver que hacer en estos casos.\n\t\t\t});\n\t}, [loading]);\n\n\treturn <>;\n}\n","import React, { useEffect } from 'react';\nimport { NuevaCitaPosventaFormController } from 'src/forms';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { CitaPosventaCalculadoraForm, CitaPosventaBonosForm, CitaPosventaMaintenanceForm, CitaPosventaPortalForm } from '../forms/CitaPosventa/CitaPosventaEmbedded';\nimport { CitaPosventaBenfitsForms } from 'src/forms/CitaPosventa/CitaPosventaEmbedded/CitaPosventaBenefitsForm';\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-plan':\n return ;\n\tcase 'es-portal':\n return ;\n case 'es-bono':\n return ;\n case 'es-my-benefits':\n return ;\n }\n return null;\n}\n","import { useScrollPosition } from '@n8tb1t/use-scroll-position';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Image,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { useFaContent } from 'src/feature-app';\nimport { TriggerCitaProps } from 'src/triggers';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { useDispatch } from 'react-redux';\n\n\nconst MediaWrapper = styled.div<{ scrollY: number }>`\n transform: ${(props) => `translateY(${props.scrollY / 2}px)`};\n grid-area: 1 / 1 / 2 / 25;\n overflow: hidden;\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100vw;\n height: 70vh;\n\n & img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: 66% 50%;\n }\n`;\n\nconst CTAWrapper = styled.div`\n display: inline-block;\n\n & a {\n color: #ffffff;\n font-weight: bold;\n }\n & svg {\n fill: #ffffff;\n width: 17px;\n height: 14px;\n }\n`;\n\nconst ContentStage = styled.div<{ themeColor: string }>`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n background: ${(props) => props.themeColor === 'inverted' ? props.theme.colors.gradient.radial : '#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, ThemeReference, TokenTextAppearance, WhiteSpace } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport {\n CitaPreviaTile,\n CitaPreviaTileGrid,\n TriggerProps,\n useFaContent,\n useFeatureAppConfig,\n useFeatureServices,\n useGetDealers,\n useTransformToHtml,\n} from 'src/feature-app';\nimport { useGetAuthService } from 'src/feature-app/hooks/use-get-auth-service';\nimport { OneFormState } from 'src/types';\nimport { NuevaCitaPosventaFormController } from '../forms/CitaPosventa/NuevaCitaPosventa';\nimport { CitaPosventaDefaultTrigger, CitaPosventaStageTrigger } from './';\nexport interface TriggerCitaProps extends TriggerProps {\n theme?: ThemeReference;\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('inverted');\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide cita en tu taller');\n\n const getIntro = () => (faContent?.intro ? faContent.intro : '');\n\n const alternativeHeadline = '¿Necesitas pasar por el taller?';\n const getTitle = () => {\n if (userIsAuthenticated && useLoggedJourney) {\n return faContent?.['headline-logged']\n ? useTransformToHtml(faContent?.['headline-logged'])\n : useTransformToHtml('Usuario Logueado');\n }\n return faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n };\n\n const getBodyCopy = (textAlignment?: TextAlignment) => {\n if (userIsAuthenticated && useLoggedJourney) {\n return faContent?.['bodycopy-logged'] ? (\n \n
\n \n ) : (\n \n
hola')} />\n \n );\n }\n return faContent?.bodycopy ? (\n \n
\n \n ) : dealerName ? (\n \n Elige el día y la hora que prefieras para que cuiden de tu Volkswagen en\n {dealerName}.\n \n ) : (\n \n Elige el día, la hora y el Servicio Oficial que prefieras para que cuiden de tu Volkswagen.\n \n );\n };\n\n const getCtaRegister = (copy: string) => {\n return (\n {\n e.preventDefault();\n authService.login();\n }}\n >\n {copy}\n \n );\n };\n\n useEffect(() => {\n if (faContent?.modo === 'Light') {\n setTheme('main');\n }\n if (faContent?.userInteraction === 'true') {\n userInteractionService.register('es-oneform::cita-posventa', {\n action: () => {\n // setCTALabel(getCtaLabel());\n setSelectedJourney();\n },\n });\n }\n }, []);\n\n return config.trigger === 'cita-posventa-tile-grid' ? (\n \n ) : config.trigger === 'cita-posventa-tile' ? (\n \n ) : faContent.isCitaPosventaStageOrDefault === 'Stage' ? (\n \n ) : (\n \n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml } from 'src/feature-app';\nimport { EmpresasForm } from 'src/forms';\nimport { useDispatch } from 'react-redux';\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function EmpresasTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const dispatch = useDispatch();\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Pide presupuesto para tu proyecto');\n\n const alternativeHeadline = '¿Necesitas una flota de hasta 50 coches?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy = 'Solo cuéntanos qué estás buscando y te haremos una propuesta a medida.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n );\n}\n","import {\n BreakpointWrapper,\n Breakpoints,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n Container,\n ContainerPadding,\n CTA,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { CloseHandleV2, FocusLayerSizeV2, LayerHandleV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport {\n LayerManagerWrapper,\n useFeatureAppEnvironment,\n useFeatureServices,\n useOneFormContext,\n useTrackingManager,\n} from 'src/feature-app';\nimport { KoScreen, LoadingScreen } from '../../CitaPosventa/NuevaCitaPosventa/ConfirmarCitaLayer';\nimport { OneFormState } from 'src/types';\n\ninterface lastNavigationProps {\n refProps?: any;\n formMin?: any;\n setShowError?: any;\n}\n\nconst NavigationWrapper = styled.div`\n display: block;\n padding-top: 44px;\n`;\n\nexport const LastNavigationCEMOneShop = (props: lastNavigationProps) => {\n const { setShowError } = props;\n // const dispatch = useDispatch();\n const { handleShowFinalScreen, handleSubmit } = useOneFormContext();\n const { reset, getValues, triggerValidation } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [layerVisible, setLayerVisible] = useState(false);\n const [koLayer, setKoLayer] = useState>(null);\n const [koScreen, setKoScreen] = useState(false);\n\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n const trackingManager = useTrackingManager();\n const [isValid, setIsValid] = useState(false);\n\n //Loading and Ko layers\n\n const handleKoLayer = () => {\n const layer = layerManager.openFocusLayer(renderKoLayer, {}, { size: FocusLayerSizeV2.A });\n setKoLayer(layer);\n };\n\n const renderKoLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleLoadingScreenLayer = () => {\n const layer = layerManager.openFocusLayer(renderLoadingScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const renderLoadingScreen = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const handleConfirmarEnvio = async (e: any) => {\n const values = getValues();\n const isValid = await triggerValidation();\n setShowError(false);\n\n if (isValid) {\n setShowError(false);\n\n dispatch({ type: 'UPDATE_FIELDS', payload: values });\n\n trackingManager.trackFormCTAClick({\n contentId: 'Enviar',\n });\n\n const loadingLayer = handleLoadingScreenLayer();\n setLayerVisible(true);\n\n const value = await handleSubmit(e);\n\n loadingLayer.close();\n\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n }\n } else {\n setShowError(true);\n }\n };\n\n async function retrySubmit(e: any) {\n if (koLayer) {\n koLayer.close();\n }\n setKoScreen(false);\n const loadingLayer = handleLoadingScreenLayer();\n const value = await handleSubmit(e);\n loadingLayer.close();\n if (value) {\n handleShowFinalScreen();\n } else {\n handleKoLayer();\n setKoScreen(true);\n }\n }\n\n useEffect(() => {\n if (!layerVisible && koScreen) setKoScreen(false);\n }, [layerVisible]);\n\n useEffect(() => {\n if (fields.enviarInformacion) setIsValid(true);\n }, [fields]);\n\n useEffect(() => {\n dispatch({ type: 'UPDATE_FORM_ENDED', payload: true });\n }, []);\n\n return (\n \n \n \n Enviando este formulario declaras estar informado de la{' '}\n \n política de privacidad.\n \n \n \n\n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n stretchContent\n >\n Enviar\n \n \n \n \n \n {\n e.preventDefault();\n handleConfirmarEnvio(e);\n }}\n >\n Enviar\n \n \n \n \n \n );\n};\n","import { Text, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { dpsSend } from 'src/bff';\nimport { RatingStars, DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from '../../format-fields';\nimport { useInitializeLEMForm } from '.';\nimport { ThankYouCEMOneShop, ConfirmacionCEMOneShop } from 'src/forms/Cem/CEM OneShop';\nimport { CEMOneShopFormProps } from './CEMOneShopController';\nimport { CTAsSiNo, ctaPruebaTCross } from 'src/feature-app/InputsValues/CTAsObjects';\n\nexport enum CEMOneShopSteps {\n Atencion,\n Planificacion,\n Organizacion,\n ExplicacionConfiguracion,\n ExplicacionPersonalizacion,\n VehiculoProbado,\n MasInformacion,\n Confirmacion,\n}\n\nexport function CEMOneShopForm(props: CEMOneShopFormProps) {\n const { dpsData, idLead, idPerson, idOrder, handleError, trackFormLoad } = props;\n const [loadingPresubmit, setLoadingPresubmit] = useState(true);\n const { initializeForm } = useOneFormContext();\n const store = useStore();\n const dispatch = useDispatch();\n const stepsWithModel: Steps[] = [\n {\n title: (\n <>\n Tenemos curiosidad, \n ¿cómo fue la atención recibida en la entrega?\n \n ),\n fields: (\n \n \n Nos gustaría saber si desde la Concesión te ayudaron en todo lo que necesitabas.\n \n \n \n }\n />\n ),\n screenIndex: CEMOneShopSteps.Atencion,\n name: 'Atencion',\n outputs: ['atencion'],\n outputsText: ['atencion'],\n outputsIsStars: true,\n },\n {\n title: (\n <>\n ¿Fue fácil planificar la entrega?\n \n ),\n fields: (\n \n \n Nos preguntamos si te ofrecieron opciones que se adaptaban a tus horarios.\n \n \n \n }\n />\n ),\n screenIndex: CEMOneShopSteps.Planificacion,\n name: 'Planificacion',\n outputs: ['planificacion'],\n outputsText: ['planificacion'],\n outputsIsStars: true,\n },\n {\n title: (\n <>\n ¿Estaba todo organizado el día de la entrega?\n \n ),\n fields: (\n \n \n Nos gustaría saber si te recibieron con puntualidad y estaba todo listo para llevarte tu T-Cross Clic2Go.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.Organizacion,\n name: 'Organizacion',\n trueOrFalseQuestion: true,\n outputs: ['organizacion'],\n outputsText: ['organizacion'],\n },\n {\n title: (\n <>\n Una duda, \n ¿te explicaron cómo funcionaban y cómo se configuraban los asistentes de tu coche?\n \n ),\n fields: (\n \n \n Nos preguntamos si saliste del punto de venta sabiendo sacar el máximo partido a tu Volkswagen.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.ExplicacionConfiguracion,\n name: 'ExplicacionConfiguracion',\n trueOrFalseQuestion: true,\n outputs: ['explicacionConfiguracion'],\n outputsText: ['explicacionConfiguracion'],\n },\n {\n title: (\n <>\n ¿Probaste tu T-Cross Clic2Go antes de salir del punto de venta?\n \n ),\n fields: (\n \n \n Nos preguntamos si te ayudaron a poner en práctica todo lo explicado durante la entrega.\n \n \n
\n }\n />\n ),\n screenIndex: CEMOneShopSteps.VehiculoProbado,\n name: 'VehiculoProbado',\n trueOrFalseQuestion: true,\n outputs: ['vehiculoProbado'],\n outputsText: ['vehiculoProbado'],\n },\n {\n title: (\n <>\n Antes de terminar, \n ¿hay algo más que nos quieras contar?\n \n *\n \n \n ),\n fields: } />,\n screenIndex: CEMOneShopSteps.MasInformacion,\n name: 'MasInformacion',\n outputs: ['masInformacion'],\n outputsText: ['masInformacion'],\n },\n {\n fields: ,\n screenIndex: CEMOneShopSteps.Confirmacion,\n name: 'Confirmacion',\n outputs: ['confirmacion'],\n outputsText: ['confirmacion'],\n },\n ];\n\n const CEMOneShopData: Partial = {\n headers: {},\n fields: {\n formName: 'cem-oneshop',\n formType: 'otherform',\n pageCategory: 'Encuesta',\n }, // Analítica\n };\n\n useEffect(() => {\n const sendPresubmit = async () => {\n const result = await sendForm(true);\n\n if (!result) {\n handleError();\n }\n setLoadingPresubmit(false);\n };\n\n sendPresubmit();\n\n }, []);\n\n const generateData = (data?: Partial) => {\n const { formData, dealersInfo }: OneFormState = store.getState();\n const { fields, headers } = formData;\n const { tc, today, url, device } = getParamsForm();\n\n return {\n\n 'headers[DESC_ID_CAMPAIGN]': '7011n000001FXvCAAW',\n 'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n 'headers[DESC_TOKEN]': 'VW_DDB_FRM_CEM_ONESHOP_CONTESTADO',\n 'headers[TC]': tc,\n 'headers[FECHA_INSERTION_DATE]': today,\n 'headers[DESC_URLORIGIN]': url,\n 'headers[DESC_ID_CLIMAPRO]': idPerson.ID_Person_DIM_IMP__c,\n 'headers[DESC_FORM_DETAIL]': 'CEM OneShop Grabación',\n 'headers[DESC_FORMOBJECTIVE]': 'Encuesta',\n 'headers[DESC_DEVICETYPE]': device,\n 'headers[DESC_CAMPAIGNBLOCK]': '21. VW OneShop',\n 'headers[DESC_GDPR_ADAPTED]': true,\n 'headers[DESC_BRAND]': 'VW',\n 'headers[COD_FORM_ID]': fields.formName ? `vw-oneform-${fields.formName}` : `vw-oneform-${data.fields.formName}`,\n\n 'fields[DESC_NUMBER_ORDER]': idOrder ? idOrder.IDClimapro__c : \"\",\n 'fields[DESC_FORM_VERSION]': fields.formName\n ? `vw-oneform-${fields.formName}-${process.env.VERSION}`\n : `vw-oneform-${data.fields.formName}-${process.env.VERSION}`,\n 'fields[DESC_NAME]': idPerson.FirstName,\n 'fields[DESC_SURNAME_1]': idPerson.LastName,\n 'fields[DESC_SURNAME_2]': idPerson.TXT_2_Surname__c,\n 'fields[DESC_EMAIL_ADDRESS]': idPerson.TXT_Email__c,\n 'fields[NUM_CELLPHONE]': idPerson.NUM_Phone_mobile__c,\n 'fields[DESC_LOPD]': 'PERMITE',\n 'fields[DESC_TRANF_DATA_THIRD]': 'NO INFORMADO',\n 'fields[DESC_LSSI]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n 'fields[DESC_LOPD_GDPR_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n 'fields[DESC_AUXFIELD1]': dpsData.rating,\n 'fields[DESC_AUXFIELD2]': fields.atencion,\n 'fields[DESC_AUXFIELD3]': fields.planificacion,\n 'fields[DESC_AUXFIELD4]': fields.organizacion,\n 'fields[DESC_AUXFIELD5]': fields.explicacionConfiguracion,\n 'fields[DESC_AUXFIELD7]': fields.vehiculoProbado,\n 'fields[DESC_AUXFIELD8]': fields.masInformacion,\n\n };\n };\n\n /**\n * Generamos la misma data que para el submit y eliminamos todos los campos que no son necesarios para el presubmit.\n */\n const generatePresubmitData = () => {\n const data = generateData(CEMOneShopData);\n\n delete data['headers[PINCODE]'];\n delete data['fields[DESC_AUXFIELD2]'];\n delete data['fields[DESC_AUXFIELD3]'];\n delete data['fields[DESC_AUXFIELD4]'];\n delete data['fields[DESC_AUXFIELD5]'];\n delete data['fields[DESC_AUXFIELD7]'];\n delete data['fields[DESC_AUXFIELD8]'];\n\n data['headers[DESC_FORM_DETAIL]'] = 'CEM OneShop Pregrabación';\n data['headers[DESC_TOKEN]'] = 'VW_DDB_FRM_CEM_ONESHOP_ENCUESTA';\n\n return data;\n };\n const generateSubmitData = () => generateData();\n\n const sendForm = (isPresubmit?: boolean): Promise => {\n return new Promise(async (resolve, reject) => {\n const data = isPresubmit ? generatePresubmitData() : generateSubmitData();\n //resolve(true);\n const dataStringified = JSON.stringify(data);\n const dataParsed = JSON.parse(dataStringified);\n const formData = formDataBuilder(dataParsed);\n\n const response = await dpsSend(formData, isPresubmit);\n\n if (response && response.data && response.data.content && response.data.content.code === '200') {\n dispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\n resolve(true);\n } else {\n resolve(false);\n }\n });\n };\n\n const { loading, steps, firstStep, lastStep } = useInitializeLEMForm(stepsWithModel, idLead);\n\n useEffect(() => {\n const CEMOneShopInfo: Partial = {\n formStarted: true,\n sendFormCallback: sendForm,\n fullScreen: firstStep.fullScreen ? true : false,\n lastStep,\n numberOfScreens: steps.length,\n screenIndex: firstStep.screenIndex,\n formTheme: 'main',\n notALayer: true,\n step: firstStep,\n steps,\n stepsHistory: [0],\n thankYouComponent: ,\n };\n if (!loading) {\n initializeForm(CEMOneShopInfo, CEMOneShopData, true);\n trackFormLoad();\n }\n }, [loading]);\n\n return loading || loadingPresubmit || !steps ? null : ;\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { getCarlines } from 'src/bff';\nimport { useFaContent, useFeatureServices } from 'src/feature-app';\nimport { CarlineBase, IdLead, Steps } from 'src/types';\n\nconst getLastItemOfSteps = (steps: Steps[]) => steps[steps.length - 1];\n\nconst propertyHasValue = (property: string) => property !== 'null';\n\nexport const checkIdLeadHasCarline = (idLead: IdLead) =>\n idLead &&\n idLead.NUM_COD_INTEREST_CARLINE__c &&\n idLead.DESC_Model__c &&\n propertyHasValue(idLead.NUM_COD_INTEREST_CARLINE__c) &&\n propertyHasValue(idLead.DESC_Model__c);\n\nexport function useInitializeLEMForm(defaultSteps: Steps[], idLead: IdLead) {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n\n const [steps, setSteps] = useState(defaultSteps);\n const [firstStep, setFirstStep] = useState(defaultSteps[0]);\n const [lastStep, setLastStep] = useState(getLastItemOfSteps(defaultSteps));\n\n const removeModelFromSteps = async () => {\n return new Promise((resolve) => {\n let updatedSteps = [...steps];\n const indexOfModelo = updatedSteps.findIndex((step) => step.name === 'Modelo');\n updatedSteps.splice(indexOfModelo, 1); // Eliminado el step de Modelo.\n updatedSteps[0].hidePreviousStep = true;\n const updatedStepsWithIndex = updatedSteps.map((step, index) => {\n step.screenIndex = index;\n return step;\n });\n\n setSteps(updatedStepsWithIndex);\n setFirstStep(updatedStepsWithIndex[0]);\n setLastStep(getLastItemOfSteps(updatedStepsWithIndex));\n\n resolve(true);\n });\n };\n\n useEffect(() => {\n const remove = async () => {\n await removeModelFromSteps();\n setLoading(false);\n };\n\n const requestCarlines = async () => {\n const carlines = await getCarlines();\n\n dispatch({ type: 'SET_CARLINES', payload: carlines });\n setSteps(defaultSteps);\n setLoading(false);\n };\n\n if (checkIdLeadHasCarline(idLead)) {\n remove();\n } else {\n requestCarlines();\n }\n }, []);\n\n return { loading, steps, firstStep, lastStep };\n}\n","import { Spinner, Text, styled } from '@volkswagen-onehub/components-core';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useFeatureServices, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CarlineBase, DealersData, IdLead, IdOrder, IdPerson } from 'src/types';\nimport { CEMOneShopForm } from './CEMOneShopForm';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { checkIdLeadHasCarline } from './use-initialize-lem-form';\nimport { createPincodeEntity } from '../../dps-utils';\nimport { LoadingEncuestas } from 'src/components';\n\nexport interface CEMOneShopFormProps {\n idLead: IdLead;\n idPerson: IdPerson;\n idOrder?: IdOrder;\n dpsData: DpsData;\n handleError: () => void;\n trackFormLoad: () => void;\n showPantallaModelo: boolean;\n}\n\nexport function CEMOneShopController() {\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(false);\n const [usado, setUsado] = useState(false);\n const [showPantallaModelo, setShowPantallaModelo] = useState(false);\n const [caducado, setCaducado] = useState(false);\n const today = dayjs(new Date());\n const trackingManager = useTrackingManager();\n const dpsDataRef = useRef(null);\n const idLeadRef = useRef(null);\n const idPersonRef = useRef(null);\n const idOrderRef = useRef(null);\n const dispatch = useDispatch();\n const oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n const handleNext = (value: any) => { };\n const handleComplete = () => {\n const dpsData = oneFormService.getDpsData();\n\n if (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n handleError();\n } else if (dpsData.pincode.pincodeUsed) {\n setUsado(true);\n setLoading(false);\n } else {\n const idLead = createPincodeEntity(dpsData, 'LEAD');\n const idPerson = createPincodeEntity(dpsData, 'PERSON');\n const idOrder = createPincodeEntity(dpsData, 'ORDER');\n const formDate = dayjs(dpsData.env);\n\n dpsDataRef.current = dpsData;\n idLeadRef.current = idLead;\n idPersonRef.current = idPerson;\n idOrderRef.current = idOrder;\n\n if (!dpsData.env || today.diff(formDate, 'day') > 5) {\n setCaducado(true);\n }\n\n setLoading(false);\n }\n };\n\n const handleError = () => {\n setError(true);\n setLoading(false);\n };\n\n const trackFormLoad = () => {\n if (idLeadRef.current) {\n const customDealer: DealersData = {\n kvps: idLeadRef.current.TXT_DESC_DEALER_CODE__c,\n name: idLeadRef.current.DESC_Dealer_Code__c,\n markerInfo: { dealerInfo: { zipCode: idLeadRef.current.TXT_Postal_Code__c } },\n };\n dispatch({ type: 'SET_SELECTED_DEALER', payload: customDealer });\n\n if (checkIdLeadHasCarline(idLeadRef.current)) {\n setShowPantallaModelo(true);\n\n const carline: Partial = {\n title: idLeadRef.current.DESC_Model__c,\n code: Number(idLeadRef.current.NUM_COD_INTEREST_CARLINE__c),\n };\n\n dispatch({ type: 'SET_SELECTED_CARLINE', payload: carline });\n }\n }\n\n trackingManager.trackFormLoad();\n };\n\n useEffect(() => {\n const oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n oneFormCoreDpsIsLoaded.subscribe({\n next(value) {\n handleNext(value);\n },\n error(err) {\n console.error(err);\n handleError();\n },\n complete() {\n handleComplete();\n },\n });\n }, []);\n\n // función para layer de error\n const handleTryAgain = async () => {\n // oneFormService.\n setError(false);\n setLoading(true);\n await oneFormService.retryPincodeLoad();\n handleComplete();\n };\n\n if (loading) {\n return ;\n } else if (error) {\n return (\n <>\n \n \n );\n } else if (usado) {\n return (\n <>\n \n \n );\n } else if (caducado) {\n return (\n <>\n \n \n )\n }\n else {\n return (\n <>\n\n \n\n \n );\n }\n}\n","import React, { useState, useEffect} from 'react';\nimport { CTA, Text, TextAlignment, TokenTextAppearance, TokenTextColor } from '@volkswagen-onehub/components-core';\nimport styled from 'styled-components';\nimport { Controller, useFormContext } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager } from 'src/feature-app/hooks';\nimport { OneElementTemplateFullScreen } from 'src/feature-app';\nimport { OneFormState } from 'src/types';\nimport {LastNavigationCEMOneShop} from '.';\n\nconst CTAWrapper = styled.div`\n text-align: left;\n margin: -10px;\n margin-top: 32px;\n & > button {\n margin: 12px;\n width: 81px;\n }\n`;\n\nconst ErrorMessage = styled.div`\n width: max-content;\n padding: 4px 8px;\n border-radius: 4px;\n background-color: #e4002c;\n color: #ffffff;\n`;\n\nfunction Fields() {\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n const [ selectedValue, setSelectedValue] = useState('');\n const { control, register, setValue } = useFormContext();\n const { fields } = useSelector((state: OneFormState) => state.formData);\n const [showError, setShowError] = useState(false);\n\n const CTAValues = ['Sí', 'No'];\n\n useEffect(() => {\n if (fields.enviarInformacion) setSelectedValue(fields.enviarInformacion);\n }, []);\n\n return (\n <>\n \n {CTAValues.map((el, i) => {\n return (\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick({\n contentId: el,\n });\n dispatch({ type: 'UPDATE_FIELDS', payload: { enviarInformacion: el } });\n setValue('enviarInformacion', el);\n setSelectedValue(el);\n }}\n >\n {el}\n \n }\n key={i}\n name='enviarInformacion'\n control={control}\n />\n );\n })}\n \n {\n showError ? (\n \n \n Necesitamos esta información para seguir\n \n \n ) : null\n }\n \n \n );\n}\n\nexport function CEMOneShopLastScreenFields() {\n return (\n } />\n );\n}\n","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\ninterface ConfirmacionCEMOneShopProps {\n idPerson: IdPerson;\n}\nexport const ConfirmacionCEMOneShop = (props: ConfirmacionCEMOneShopProps) => {\n const dispatch = useDispatch();\n\n useEffect(() => {\n if (props.idPerson.LSSI__c === 'PERMITE') {\n dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n }\n }, [props.idPerson]);\n\n return (\n \n \n {props.idPerson.LSSI__c === 'PERMITE' ? (\n
\n \n ¿Listo para enviar?\n \n
\n ) : (\n <>\n \n ¡Gracias! Unas últimas preguntas para tenerlo todo claro\n \n \n \n )}\n\n \n\n \n \n
\n );\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\nexport const ThankYouCEMOneShop = () => {\n const { formInfo } = useSelector((state: OneFormState) => state);\n const { formResponse } = formInfo;\n\n const trackingManager = useTrackingManager();\n const dispatch = useDispatch();\n\n useEffect(() => {\n // Thank you page no es gestionado como un step pero sí lo haremos en la analítica. Por eso Modificamos formInfo después del submit y antes del RESET\n const screenIndexThankyou = formInfo.numberOfScreens;\n\n dispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n dispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n trackingManager.trackFormSubmissionSuccessMessageLoad(\n {\n contentId: undefined,\n },\n getTrackingForm(formResponse)\n );\n }, []);\n\n const screen: Steps = {\n title: ,\n fields: ,\n };\n return (\n \n );\n};\n","import { Breakpoints, BreakpointWrapper, Container, ContainerPadding, styled, Text, TokenTextAppearance, } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useWindowHeight } from '@react-hook/window-size';\nimport { OneFormState } from 'src/types';\nimport { getVilmaAssets } from 'src/bff';\nimport { MultipleCTASelection, ImageCarNoColorBG } from 'src/components';\nimport { OneElementTemplateFullScreen, useFaContent, useGetIdVehicle } from 'src/feature-app';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { strTitlelize } from 'src/helpers';\n\nconst LayoutWrapper = styled.div`\n @media all and (min-width: 960px) {\n display: flex;\n }\n`;\n\nconst InfoWrapper = styled.div`\n width: 100%;\n padding-left: var(--size-grid002);\n padding-right: var(--size-grid002);\n @media all and (min-width: 960px) {\n display: flex;\n justify-content: center;\n flex-direction: column;\n width: var(--size-grid012);\n padding-left: var(--size-grid002);\n padding-right: 0;\n padding-top: 0;\n }\n @media all and (min-width: 1280px) {\n padding-left: var(--size-grid003);\n }\n @media all and (min-width: 1600px) {\n padding-left: var(--size-grid002);\n }\n`;\n\nexport const FirstStepCEMVentaProducto = () => {\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst dispatch = useDispatch();\n\tconst [model, setModel] = useState(null);\n\tconst { installation } = formData.fields;\n\tconst [imageSrc, setImageSrc] = useState(null);\n\tconst [dataVilma, setDataVilma] = useState(null);\n\tconst idVehicle = useGetIdVehicle();\n\tconst idVehicleModel = idVehicle.VGED_ModelGroup__c;\n\t//const isElectrico = idVehicle.VGED_ModelGroup__c.substring(0, 2) == 'ID';\n\tconst frame = idVehicle.Name;\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst modelUrl = urlParams.get('model');\n\tconst faContent = useFaContent();\n\tconst height = useWindowHeight();\n\n\tconst dataVilmaRequest = async () => {\n\t\tif(frame) {\n\t\t\tconst data = await getVilmaAssets(frame.trim());\n\t\t\t//Respuesta cuando el bastidor no es correcto {message: 'No image found for VIN [WVWZZZAUZLW025556]', context: 'the requested image is not available'}\n\t\t\tif (data && data.status?.code == 200) {\n\t\t\t\tsetDataVilma(data.content);\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!dataVilma || dataVilma.message == 'SERVICE UNAVAILABLE') {\n\t\t\tsetImageSrc(null);\n\t\t} else if (dataVilma) {\n\t\t\tconst Front_Left = dataVilma.find((e: any) => e.view === 'Front_Left');\n\t\t\tFront_Left === undefined ? setImageSrc(null) : setImageSrc(Front_Left.url);\n\t\t}\n\t}, [dataVilma]);\n\n\tuseEffect(() => {\n\t\tif (idVehicleModel !== 'null') {\n\t\t\tsetModel(idVehicleModel);\n\t\t\tdataVilmaRequest();\n\t\t} else if (modelUrl) {\n\t\t\tsetModel(modelUrl);\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { modelo: modelUrl } });\n\t\t} else {\n\t\t\tsetModel(null);\n\t\t}\n\t}, []);\n\n\tconst BodyCopy = () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\t\t<>\n\t\t\t\t\t\tSegún nuestros registros compraste un nuevo {model} en nuestro punto de venta {strTitlelize(installation)} hace 3 meses.\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t<>\n\t\t\t\t\t\t¿Puedes confirmar que estos datos son correctos?\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\treturn (\n\t\tdataVilma && imageSrc ? (\n\t\t\t\n\t\t\t\t{\n\t\t\t\t\theight <= 600 ? null : (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t/>\n\t\t)\n\t);\n};\n","import { Breakpoints, Layout, LayoutRowGap, Text } from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { CarlineSelect, PantallaNombreApellido, MultipleCTASelection, RatingStars, PantallaIntroduccionStars, DetalleMotivo, } from 'src/components';\nimport { Steps } from 'src/types';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ChecksEnvio, ctasCheckEnvio } from 'src/forms/Cem/ChecksEnvio';\nimport { ConfirmacionCem } from 'src/forms/Cem/ConfirmacionCem';\nimport { FirstStepCEMVentaProducto } from './FirstStepCEMVentaProducto';\nimport { valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from '../helpers';\n\nfunction OneElementTemplateFullScreen(props: any) {\n\tconst { element, allowOverflowingContent } = props;\n\n\treturn (\n\t\t\n\t\t\t{element}\n\t\t\n\t);\n}\n\nenum CemSteps {\n\tDatosCorrectos,\n\tDatosIncorrectos,\n\tModelo,\n\tConfirmacionConcesion,\n\tExplicacion,\n\n\t// begin random\n\tSatisfaccionDiseno,\n\tSatisfaccionDisenoMotivo,\n\tSatisfaccionUso,\n\tSatisfaccionUsoMotivo,\n\tSatisfaccionTecnologia,\n\tSatisfaccionTecnologiaMotivo,\n\tSatisfaccionCalidad,\n\tSatisfaccionCalidadMotivo,\n\tSatisfaccionConduccion,\n\tSatisfaccionConduccionMotivo,\n\t// end random\n\tSatisfaccionElectrico,\n\tSatisfaccionElectricoMotivo,\n\tSatisfaccionGeneral,\n\tSatisfaccionGeneralMotivo,\n\tSatisfaccionExperiencia,\n\tSatisfaccionEntrega,\n\n\tEnviarConcesion,\n\tDatosPersonales,\n\tConfirmacion,\n}\n\nexport const getStepsVentaProducto = (isElectrico?: boolean) => {\n\n\tconst ctaDatosIncorrectos = [\n\t\t{ label: 'Marca incorrecta', value: valueWrongMarca.toString() },\n\t\t{ label: 'Modelo incorrecto', value: valueWrongModelo.toString() },\n\t\t{ label: 'Punto de venta incorrecto', value: valueWrongConcesion.toString() },\n\t\t{ label: 'Persona de contacto incorrecta', value: valueWrongPersona.toString() },\n\t];\n\n\tconst firstStep = {\n\t\tfields: ,\n\t\tscreenIndex: CemSteps.DatosCorrectos,\n\t\tname: 'DatosCorrectos',\n\t\talternateTitle: ¿Puedes confirmar que estos datos son correctos?,\n\t\toutputs: ['datosCorrectos'],\n\t\toutputsText: ['datosCorrectos'],\n\t\ttrueOrFalseQuestion: true,\n\t};\n\n\tconst confirmacionDatos = {\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPor favor, ¿puedes confirmarnos qué dato no es correcto?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.DatosIncorrectos,\n\t\tname: 'DatosIncorrectos',\n\t\toutputs: ['datosIncorrectos'],\n\t\toutputsText: ['datosIncorrectos'],\n\t\tctas: ctaDatosIncorrectos,\n\t};\n\n\tconst compraVehiculo = {\n\t\ttitle: ¿Has comprado tu nuevo coche en [Concesionario]?,\n\t\tfields: (\n\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.ConfirmacionConcesion,\n\t\tname: 'ConfirmacionConcesion',\n\t\toutputs: ['confirmacionConcesion'],\n\t\toutputsText: ['confirmacionConcesion'],\n\t};\n\n\tconst modeloCorrecto = {\n\t\ttitle: ¿Cuál es el modelo correcto?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.Modelo,\n\t\tname: 'Modelo',\n\t\toutputs: ['modelo'],\n\t\toutputsText: ['modelo'],\n\t};\n\n\tconst inicio = {\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tA continuación, por favor,{' '}\n\t\t\t\t\n\t\t\t\t\tindica tu nivel de satisfacción con aspectos de tu nuevo coche.\n\t\t\t\t\n\t\t\t\n\t\t),\n\t\tfields: ,\n\t\tscreenIndex: CemSteps.Explicacion,\n\t\tname: 'Explicacion',\n\t};\n\n\tconst preguntaMotivo = ¿Cuál es la razón por la que has dado esta puntuación?;\n\tconst recomendacionMotivo = 'Por favor, no menciones nombres propios, direcciones, números de teléfono o descripciones que permitan identificarte a ti o a nuestros empleados.';\n\n\tconst Q1 = {\n\t\ttitle: ¿Qué puntuación le das al diseño, tanto interior como exterior?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionDiseno,\n\t\tname: 'SatisfaccionDiseno',\n\t\toutputs: ['satisfaccionDiseno'],\n\t\toutputsText: ['satisfaccionDiseno'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C1 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionDisenoMotivo,\n\t\tname: 'SatisfaccionDisenoMotivo',\n\t\toutputs: ['satisfaccionDisenoMotivo'],\n\t\toutputsText: ['satisfaccionDisenoMotivo'],\n\t};\n\n\tconst Q2 = {\n\t\ttitle: ¿Te parece cómodo y fácil de conducir?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionUso,\n\t\tname: 'SatisfaccionUso',\n\t\toutputs: ['satisfaccionUso'],\n\t\toutputsText: ['satisfaccionUso'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C2 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionUsoMotivo,\n\t\tname: 'SatisfaccionUsoMotivo',\n\t\toutputs: ['satisfaccionUsoMotivo'],\n\t\toutputsText: ['satisfaccionUsoMotivo'],\n\t};\n\n\tconst Q3 = {\n\t\ttitle: ¿Cómo valoras el software y funciones de conectividad de tu vehículo?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTecnologia,\n\t\tname: 'SatisfaccionTecnologia',\n\t\toutputs: ['satisfaccionTecnologia'],\n\t\toutputsText: ['satisfaccionTecnologia'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C3 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionTecnologiaMotivo,\n\t\tname: 'SatisfaccionTecnologiaMotivo',\n\t\toutputs: ['satisfaccionTecnologiaMotivo'],\n\t\toutputsText: ['satisfaccionTecnologiaMotivo'],\n\t};\n\n\tconst Q4 = {\n\t\ttitle: ¿Cómo de satisfecho estás con la calidad de tu Volkswagen?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionCalidad,\n\t\tname: 'SatisfaccionCalidad',\n\t\toutputs: ['satisfaccionCalidad'],\n\t\toutputsText: ['satisfaccionCalidad'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C4 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionCalidadMotivo,\n\t\tname: 'SatisfaccionCalidadMotivo',\n\t\toutputs: ['satisfaccionCalidadMotivo'],\n\t\toutputsText: ['satisfaccionCalidadMotivo'],\n\t};\n\n\tconst Q5 = {\n\t\ttitle: ¿Qué puntuación le darías a la experiencia de conducción con tu nuevo coche?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionConduccion,\n\t\tname: 'SatisfaccionConduccion',\n\t\toutputs: ['satisfaccionConduccion'],\n\t\toutputsText: ['satisfaccionConduccion'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C5 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionConduccionMotivo,\n\t\tname: 'SatisfaccionConduccionMotivo',\n\t\toutputs: ['satisfaccionConduccionMotivo'],\n\t\toutputsText: ['satisfaccionConduccionMotivo'],\n\t};\n\n\tconst Q6 = {\n\t\ttitle: ¿Cómo de satisfecho estás con el proceso de carga en casa y en lugares públicos?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionElectrico,\n\t\tname: 'SatisfaccionElectrico',\n\t\toutputs: ['satisfaccionElectrico'],\n\t\toutputsText: ['satisfaccionElectrico'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C6 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionElectricoMotivo,\n\t\tname: 'SatisfaccionElectricoMotivo',\n\t\toutputs: ['satisfaccionElectricoMotivo'],\n\t\toutputsText: ['satisfaccionElectricoMotivo'],\n\t};\n\n\tconst Q7 = {\n\t\ttitle: ¿Y cómo de satisfecho estás con tu nuevo Volkswagen en general?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionGeneral,\n\t\tname: 'SatisfaccionGeneral',\n\t\toutputs: ['satisfaccionGeneral'],\n\t\toutputsText: ['satisfaccionGeneral'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst C7 = {\n\t\ttitle: preguntaMotivo,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionGeneralMotivo,\n\t\tname: 'SatisfaccionGeneralMotivo',\n\t\toutputs: ['satisfaccionGeneralMotivo'],\n\t\toutputsText: ['satisfaccionGeneralMotivo'],\n\t};\n\n\tconst C7Experiencia = {\n\t\ttitle: ¿Hay algo más que te gustaría comentarnos sobre tu experiencia con tu Volkswagen?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionExperiencia,\n\t\tname: 'SatisfaccionExperiencia',\n\t\toutputs: ['satisfaccionExperiencia'],\n\t\toutputsText: ['satisfaccionExperiencia'],\n\t};\n\n\tconst Q8 = {\n\t\ttitle: ¿Cuál es tu nivel de satisfacción con la ayuda que te hemos dado desde la entrega de tu vehículo?,\n\t\tfields: (\n\t\t\t\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.SatisfaccionEntrega,\n\t\tname: 'SatisfaccionEntrega',\n\t\toutputs: ['satisfaccionEntrega'],\n\t\toutputsText: ['satisfaccionEntrega'],\n\t\toutputsIsStars: true,\n\t};\n\n\tconst enviarConcesion = {\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tFinalmente nos gustaría saber si{' '}\n\t\t\t\t\n\t\t\t\t\tpodemos enviar tus respuestas junto con tu nombre\n\t\t\t\t\n\t\t\t\t{' '}al punto de venta [Concesionario] y el bastidor del vehículo, y puedan usarlos para análisis adicionales.\n\t\t\t\n\t\t),\n\t\tfields: } />,\n\t\tscreenIndex: CemSteps.EnviarConcesion,\n\t\tname: 'EnviarConcesion',\n\t\toutputs: ['enviarConcesion'],\n\t\toutputsText: ['enviarConcesion'],\n\t\tctas: ctasCheckEnvio(false, true)\n\t};\n\n\tconst datosPersonales = {\n\t\ttitle: (\n\t\t\t<>\n\t\t\t\tPor favor, introduce o comprueba tus datos:\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t/>\n\t\t),\n\t\tscreenIndex: CemSteps.DatosPersonales,\n\t\tname: 'DatosPersonales',\n\t\toutputs: ['name', 'surname', 'secondSurname'],\n\t\toutputsText: ['name', 'surname', 'secondSurname'],\n\t};\n\n\tconst confirmacion = {\n\t\tfields: ,\n\t\tscreenIndex: CemSteps.Confirmacion,\n\t\tname: 'Confirmacion',\n\t\toutputs: ['confirmacion'],\n\t\toutputsText: ['confirmacion'],\n\t};\n\n\tconst steps: Steps[] = [\n\t\tfirstStep,\n\t\tconfirmacionDatos,\n\t\tcompraVehiculo,\n\t\tmodeloCorrecto,\n\t\tinicio,\n\t\tQ1,\n\t\tC1,\n\t\tQ2,\n\t\tC2,\n\t\tQ3,\n\t\tC3,\n\t\tQ4,\n\t\tC4,\n\t\tQ5,\n\t\tC5,\n\t\t// position #15\n\t\tQ7,\n\t\tC7,\n\t\tC7Experiencia,\n\t\tQ8,\n\t\tenviarConcesion,\n\t\tdatosPersonales,\n\t\tconfirmacion,\n\t];\n\n\tif (isElectrico) {\n\t\tsteps.splice(15, 0, Q6, C6); // add electric question and comment\n\t}\n\n\treturn steps;\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, IdPerson } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\n\ninterface ThankYouCemVentaProductoProps {\n\tidPerson: IdPerson;\n}\n\nexport function ThankYouCEMVentaProducto(props: ThankYouCemVentaProductoProps) {\n\tconst { idPerson } = props;\n\tconst { formResponse } = useSelector((state: OneFormState) => state.formInfo);\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formResponse.numberOfScreens;\n\n\t\tdispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\t\tdispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: \"ThankYou\" } } });\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(formResponse)\n\t\t);\n\t}, []);\n\n\tconst title = '¡Muchas gracias por compartir tu experiencia' + (idPerson.FirstName ? ', ' + idPerson.FirstName : '') + '!';\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { FormController, useOneFormContext, isHighRating, isLowRating, isNoRating } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getArrayOfStepsNames, getIndexInSteps, removeMultipleStepsAndResetScreenIndex, resetStepsScreenIndex, } from 'src/forms/helpers/add-remove-steps';\nimport { DpsData } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdOrder, IdPerson, IdVehicle, IdDealer } from 'src/types';\nimport { sanitizeKvps, checkUndefinedsInData, formatSinRespuestaValue, getCemDate, getSfAddressRest, stepNameToFieldName, valueWrongConcesion, valueWrongMarca, valueWrongModelo, valueWrongPersona } from 'src/forms/Cem/helpers';\nimport { formatToTwoChars, strTitlelize } from 'src/helpers';\nimport { LastQuestionFlow } from 'src/forms/Cem';\nimport { getStepsVentaProducto, ThankYouCEMVentaProducto } from 'src/forms/Cem/CEMVentaProducto/';\n\n\nexport interface CEMVentaProductoFormProps {\n\tidOrder?: IdOrder;\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer?: IdDealer;\n\tdpsData: DpsData;\n\tinstallation?: IdDealer;\n}\n\nexport function CEMVentaProductoForm(props: CEMVentaProductoFormProps) {\n\tconst { idOrder, idPerson, idVehicle, idDealer, dpsData, installation } = props;\n\tconst { initializeForm, handleNextStep, handleShowFinalScreen, setShowPreviousStep, handleScreenChange } =\n\t\tuseOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst dispatch = useDispatch();\n\tconst [loading, setLoading] = useState(false);\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst adviser = urlParams.get('adviser');\n\tconst agency = urlParams.get('agency');\n\tconst dev = urlParams.get('dev') !== null;\n\n\tconst {\n\t\tdatosCorrectos,\n\t\tdatosIncorrectos,\n\t\tconfirmacionConcesion,\n\t\tsatisfaccionDiseno,\n\t\tsatisfaccionUso,\n\t\tsatisfaccionTecnologia,\n\t\tsatisfaccionCalidad,\n\t\tsatisfaccionConduccion,\n\t\tsatisfaccionGeneral,\n\t\tsatisfaccionElectrico,\n\t\tmodelo,\n\t\tenviarConcesion,\n\t\tmasPreguntas,\n\t} = formData.fields;\n\n\tconst isElectrico = idVehicle.VGED_ModelGroup__c.substring(0, 2) == 'ID';\n\n\tconst 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\tconst NuevoFormData: Partial = {\n\t\theaders: {\n\t\t\tFORM_DETAILS: 'CEM Venta Producto',\n\t\t\tFORM_OBJECTIVE: 'Encuesta',\n\t\t\tDPS_TOKEN: 'VW_DDB_FRM_CEM_PRODUCTO_2024',\n\t\t\tFORM_ID: 'Email_B04_C01_CEM_Product',\n\t\t},\n\t\tfields: {\n\t\t\tformName: 'cem-venta-producto',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t\tname: idPerson.FirstName,\n\t\t\tsurname: idPerson.LastName,\n\t\t\tsecondSurname: idPerson.MiddleName,\n\t\t\tinstallation: installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : '',\n\t\t}, // Analítica\n\t};\n\n\tconst sendSurvey = () => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn !( // negation\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongMarca) ||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongPersona) ||\n\t\t\t(fields.datosCorrectos == 'false' && fields.datosIncorrectos == valueWrongConcesion && fields.confirmacionConcesion == 'false')\n\t\t);\n\t};\n\n\tconst getData = () => {\n\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields, headers } = formData;\n\t\tconst { tc, today, url, device } = getParamsForm();\n\n\t\tconst data = {\n\t\t\t...formatHeaders(headers),\n\t\t\t'headers[FORM_NAME]': `vw-oneform-${fields.formName}`,\n\t\t\t'headers[FORM_VERSION]': `vw-oneform-${fields.formName}-${process.env.VERSION}`,\n\t\t\t'headers[FORM_URL]': url,\n\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t\t'headers[PINCODE]': dpsData.pincode.pincodeResponse.params.pincode,\n\t\t\t'headers[FK_SYSTEM]': idOrder.VGED_ClimaproOrderID__c,\n\n\t\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t\t'fields[SF_LEAD_INSTALLATION_ID]': installation.Id,\n\t\t\t'fields[SF_LEAD_INSTALLATION_NAME]': installation.VGED_CommercialName__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE]': installation.VGED_DealerCode__c,\n\t\t\t'fields[SF_LEAD_INSTALLATION_CODE_KVPS]': sanitizeKvps(installation.KVPSCode__c),\n\t\t\t'fields[VEH_ACTUAL_FRAME]': idVehicle.Name,\n\t\t\t'fields[VEH_ACTUAL_PLATE]': idVehicle.VGED_RegistrationPlate__c,\n\t\t\t'fields[VEH_ACTUAL_MODEL]': idVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : null,\n\t\t\t'fields[PERSON_NAME]': fields.name,\n\t\t\t'fields[PERSON_SURNAME_1]': fields.surname,\n\t\t\t'fields[PERSON_SURNAME_2]': fields.secondSurname,\n\t\t\t'fields[PERSON_PHONE_MOBILE]': idPerson.PersonMobilePhone,\n\t\t\t'fields[PERSON_EMAIL]': idPerson.PersonEmail,\n\t\t\t'fields[PERSON_POSTAL_ROAD_NAME]': getSfAddressRest(idPerson?.PersonMailingAddress, 'street'),\n\t\t\t'fields[PERSON_POSTAL_CP]': getSfAddressRest(idPerson.PersonMailingAddress, 'postalCode'),\n\t\t\t'fields[PERSON_POSTAL_PROVINCE_CODE]': formatToTwoChars(getSfAddressRest(idPerson.PersonMailingAddress, 'stateCode')),\n\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t\n\t\t\t'fields[SURVEY_ANSWER_01]': fields.datosCorrectos == 'true' ? '1' : '2',\n\t\t\t'fields[SURVEY_ANSWER_02]': fields.datosCorrectos == 'false' ? fields.datosIncorrectos : null,\n\t\t\t'fields[SURVEY_ANSWER_03]': fields.datosCorrectos == 'false' && fields.datosIncorrectos == 2 ? fields.modelo : null,\n\t\t\t'fields[SURVEY_ANSWER_04]': fields.datosCorrectos == 'false' && fields.datosIncorrectos == 3 ? fields.confirmacionConcesion == 'true' ? '1' : '2' : null,\n\t\t\t//conditional send\n\t\t\t'fields[SURVEY_ANSWER_32]': adviser,\n\t\t\t'fields[SURVEY_ANSWER_34]': fields.enviarConcesion,\n\n\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t\t'flags[FLAG_RELACION_MARCA_SIN_IC]': 'false',\n\t\t};\n\n\t\tif(sendSurvey()) {\n\t\t\tdata['fields[SURVEY_ANSWER_05]'] = formatSinRespuestaValue(fields.satisfaccionDiseno);\n\t\t\tdata['fields[SURVEY_ANSWER_06]'] = formatSinRespuestaValue(fields.satisfaccionDisenoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_07]'] = formatSinRespuestaValue(fields.satisfaccionUso);\n\t\t\tdata['fields[SURVEY_ANSWER_08]'] = formatSinRespuestaValue(fields.satisfaccionUsoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_09]'] = formatSinRespuestaValue(fields.satisfaccionTecnologia);\n\t\t\tdata['fields[SURVEY_ANSWER_10]'] = formatSinRespuestaValue(fields.satisfaccionTecnologiaMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_11]'] = formatSinRespuestaValue(fields.satisfaccionCalidad);\n\t\t\tdata['fields[SURVEY_ANSWER_12]'] = formatSinRespuestaValue(fields.satisfaccionCalidadMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_13]'] = formatSinRespuestaValue(fields.satisfaccionConduccion);\n\t\t\tdata['fields[SURVEY_ANSWER_14]'] = formatSinRespuestaValue(fields.satisfaccionConduccionMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_15]'] = formatSinRespuestaValue(fields.satisfaccionElectrico);\n\t\t\tdata['fields[SURVEY_ANSWER_16]'] = formatSinRespuestaValue(fields.satisfaccionElectricoMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_17]'] = formatSinRespuestaValue(fields.satisfaccionGeneral);\n\t\t\tdata['fields[SURVEY_ANSWER_18]'] = formatSinRespuestaValue(fields.satisfaccionGeneralMotivo);\n\t\t\tdata['fields[SURVEY_ANSWER_19]'] = formatSinRespuestaValue(fields.satisfaccionExperiencia);\n\t\t\tdata['fields[SURVEY_ANSWER_20]'] = formatSinRespuestaValue(fields.satisfaccionEntrega);\n\t\t}\n\n\t\tif (agency) {\n\t\t\tdata['flags[FLAG_AGENCY]'] = agency == 'AGENCIA' ? 'true' : 'false';\n\t\t}\n\n\t\tif (idOrder.VGED_CEMDeliveryDate__c && idOrder.VGED_CEMDeliveryDate__c != 'null') {\n\t\t\tdata['fields[CEM_DATE]'] = getCemDate(idOrder.VGED_CEMDeliveryDate__c);\n\t\t}\n\n\t\treturn data;\n\t};\n\n\tuseEffect(() => {\n\t\tif(dev) {\n\t\t\tconsole.log(getData());\n\t\t}\n\t}, [formData]);\n\n\tconst sendForm = (): Promise => {\n\t\t\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst dataStringified = JSON.stringify(getData());\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tcheckUndefinedsInData(getData(), 'Venta Producto');\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response && response.data?.status?.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\t/**\n\t * Se extrae la lógica para poder utilizarla por separado sin tener que usar las funciones de loading o updateSteps\n\t * ya que hay una pregunta en la que podemos eliminar y añadir un step en el mismo paso.\n\t * @param stepsToAdd\n\t * @param alternativeSteps\n\t * @returns\n\t */\n\tconst addingStepsLogic = (stepsToAdd: string[], alternativeSteps?: Steps[]) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tconst stepsToUse = alternativeSteps ? alternativeSteps : actualSteps;\n\t\t// Hay que revertir los steps para que se añadan en el orden correcto\n\t\tconst indexesInSteps = stepsToAdd.reverse().map((step) => getIndexInSteps(stepsToUse, step));\n\t\tlet newSteps = [...stepsToUse];\n\n\t\tindexesInSteps.forEach((index, i) => {\n\t\t\tif (index === -1) {\n\t\t\t\tnewSteps = addRemovedStep(getStepsVentaProducto(isElectrico), stepsToUse, stepsToAdd[i], screenIndex);\n\t\t\t}\n\t\t});\n\t\tconst finalSteps = resetStepsScreenIndex(newSteps);\n\t\treturn finalSteps;\n\t};\n\n\tconst addSteps = (stepsToAdd: string[]) => {\n\t\tsetLoading(true);\n\n\t\tconst finalSteps = addingStepsLogic(stepsToAdd);\n\t\tupdateSteps(finalSteps);\n\t\thandleNextStep();\n\n\t\tsetLoading(false);\n\t};\n\n\tconst removeSteps = (stepsToDelete: string[]) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(steps, stepsToDelete);\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst updateSteps = (steps: Steps[]) => {\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: steps });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: steps[steps.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: steps.length });\n\t};\n\n\tconst replaceWithLeadInfo = (string: string) => {\n\t\treturn string\n\t\t\t.replace('[Modelo]', idVehicle.VGED_ModelGroup__c ? idVehicle.VGED_ModelGroup__c : dpsData.model ? dpsData.model : 'Volkswagen')\n\t\t\t.replace('[Marca]', idVehicle.RCY_BrandList__c)\n\t\t\t.replace('[Concesionario]', strTitlelize(installation ? installation.VGED_CommercialName__c : idDealer?.VGED_CommercialName__c ? idDealer.VGED_CommercialName__c : ''));\n\t};\n\n\tconst replaceModelo = (string: string) => {\n\t\tif (modeloRef.current) {\n\t\t\treturn string.replace(modeloRef.current, modelo);\n\t\t} else {\n\t\t\treturn string.replace(idVehicle.VGED_ModelGroup__c, modelo);\n\t\t}\n\t};\n\n\tconst modifyTitleSteps = (steps: Steps[], replaceCallback: (s: string) => string) => {\n\t\treturn steps.map((step) => {\n\t\t\tif (!step.title) return step;\n\t\t\tif (Array.isArray(step.title.props.children)) {\n\t\t\t\tstep.title.props.children = step.title.props.children.map((child: any) => {\n\t\t\t\t\tif (typeof child === 'object') {\n\t\t\t\t\t\tif (typeof child.props.children === 'object') {\n\t\t\t\t\t\t\tchild.props.children.props.children = replaceCallback(child.props.children.props.children);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tchild.props.children = replaceCallback(child.props.children);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tchild = replaceCallback(child);\n\t\t\t\t\t}\n\t\t\t\t\treturn child;\n\t\t\t\t});\n\t\t\t} else if (typeof step.title.props.children === 'object') {\n\t\t\t\tstep.title.props.children.props.children = replaceCallback(step.title.props.children.props.children);\n\t\t\t} else {\n\t\t\t\tstep.title.props.children = replaceCallback(step.title.props.children);\n\t\t\t}\n\t\t\treturn step;\n\t\t});\n\t};\n\n\tconst getOrderStep = (order: number, Q1: number, Q2: number, Q3: number, Q4: number, Q5: number) => {\n\t\tif (order === 1) {\n\t\t\treturn Q1;\n\t\t}\n\t\tif (order === 2) {\n\t\t\treturn Q2;\n\t\t}\n\t\tif (order === 3) {\n\t\t\treturn Q3;\n\t\t}\n\t\tif (order === 4) {\n\t\t\treturn Q4;\n\t\t}\n\t\tif (order === 5) {\n\t\t\treturn Q5;\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst shuffle = (array: number[]): number[] => array.sort(() => Math.random() - 0.5);\n\n\t/**\n\t * El orden de los primeros rating tiene que ser aleatorio.\n\t * @param steps\n\t */\n\tconst randomizeSteps = (steps: Steps[]): Steps[] => {\n\t\tconst Q1 = getIndexInSteps(steps, 'SatisfaccionDiseno');\n\t\tconst C1 = getIndexInSteps(steps, 'SatisfaccionDisenoMotivo');\n\n\t\tconst Q2 = getIndexInSteps(steps, 'SatisfaccionUso');\n\t\tconst C2 = getIndexInSteps(steps, 'SatisfaccionUsoMotivo');\n\n\t\tconst Q3 = getIndexInSteps(steps, 'SatisfaccionTecnologia');\n\t\tconst C3 = getIndexInSteps(steps, 'SatisfaccionTecnologiaMotivo');\n\n\t\tconst Q4 = getIndexInSteps(steps, 'SatisfaccionCalidad');\n\t\tconst C4 = getIndexInSteps(steps, 'SatisfaccionCalidadMotivo');\n\n\t\tconst Q5 = getIndexInSteps(steps, 'SatisfaccionConduccion');\n\t\tconst C5 = getIndexInSteps(steps, 'SatisfaccionConduccionMotivo');\n\n\t\tlet newSteps = [...steps];\n\t\tconst [random1, random2, random3, random4, random5] = shuffle([1, 2, 3, 4, 5]);\n\t\tconst randomStep1 = getOrderStep(random1, Q1, Q2, Q3, Q4, Q5);\n\t\tconst randomStep2 = getOrderStep(random2, Q1, Q2, Q3, Q4, Q5);\n\t\tconst randomStep3 = getOrderStep(random3, Q1, Q2, Q3, Q4, Q5);\n\t\tconst randomStep4 = getOrderStep(random4, Q1, Q2, Q3, Q4, Q5);\n\t\tconst randomStep5 = getOrderStep(random5, Q1, Q2, Q3, Q4, Q5);\n\t\tnewSteps[Q1] = steps[randomStep1];\n\t\tnewSteps[C1] = steps[randomStep1 + 1];\n\t\tnewSteps[Q2] = steps[randomStep2];\n\t\tnewSteps[C2] = steps[randomStep2 + 1];\n\t\tnewSteps[Q3] = steps[randomStep3];\n\t\tnewSteps[C3] = steps[randomStep3 + 1];\n\t\tnewSteps[Q4] = steps[randomStep4];\n\t\tnewSteps[C4] = steps[randomStep4 + 1];\n\t\tnewSteps[Q5] = steps[randomStep5];\n\t\tnewSteps[C5] = steps[randomStep5 + 1];\n\n\t\treturn newSteps;\n\t};\n\n\tconst getFormInfo = (steps: Steps[]) => {\n\t\tconst newSteps = modifyTitleSteps(steps, replaceWithLeadInfo);\n\t\tconst randomizedSteps = randomizeSteps(newSteps);\n\n\t\treturn {\n\t\t\tfirstStep: randomizedSteps[0],\n\t\t\tlastStep: randomizedSteps[randomizedSteps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: randomizedSteps.length,\n\t\t\tnewSteps: randomizedSteps,\n\t\t};\n\t};\n\n\t// Lógica para modificar el flujo del formulario\n\tuseEffect(() => {\n\t\tif (modelo) {\n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newSteps = modifyTitleSteps(pastSteps, replaceModelo);\n\t\t\tmodeloRef.current = modelo;\n\t\t\tupdateSteps(newSteps);\n\t\t}\n\t}, [modelo]);\n\n\tuseEffect(() => {\n\t\tif (datosCorrectos === 'true') {\n\t\t\tconst steps = store.getState().formInfo.steps;\n\t\t\tconst modelo = getIndexInSteps(steps, 'Modelo');\n\t\t\t// 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\t\t\tif (modelo === -1) {\n\t\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n\t\t\t\tupdateSteps(finalSteps);\n\t\t\t} else {\n\t\t\t\tremoveSteps(['DatosIncorrectos', 'Modelo', 'ConfirmacionConcesion']);\n\t\t\t}\n\t\t} else if (datosCorrectos === 'false') {\n\t\t\taddSteps(['DatosIncorrectos', 'Modelo']);\n\t\t}\n\t}, [datosCorrectos]);\n\n\tuseEffect(() => {\n\t\tif (datosIncorrectos == valueWrongMarca || datosIncorrectos == valueWrongPersona) { \n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newsteps = [pastSteps[0], pastSteps[1], pastSteps[pastSteps.length - 1]];\n\t\t\tconst finalSteps = resetStepsScreenIndex(newsteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t\tif (datosIncorrectos == valueWrongConcesion) { \n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t\tif (datosIncorrectos === valueWrongModelo) { \n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['ConfirmacionConcesion']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t}, [datosIncorrectos]);\n\n\tuseEffect(() => {\n\t\tif (confirmacionConcesion === 'false') {\n\t\t\tconst pastSteps = store.getState().formInfo.steps;\n\t\t\tconst newsteps = [pastSteps[0], pastSteps[1], pastSteps[2], pastSteps[pastSteps.length - 1]];\n\t\t\tconst finalSteps = resetStepsScreenIndex(newsteps);\n\t\t\tupdateSteps(finalSteps);\n\t\t} else if (confirmacionConcesion === 'true') {\n\t\t\tconst initialSteps = store.getState().formInfo.initialSteps;\n\t\t\tconst finalSteps = removeMultipleStepsAndResetScreenIndex(initialSteps, ['Modelo']);\n\t\t\tupdateSteps(finalSteps);\n\t\t}\n\t}, [confirmacionConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!enviarConcesion) {\n\t\t\treturn;\n\t\t}\n\t\tif (enviarConcesion === '1') {\n\t\t\taddSteps(['DatosPersonales']);\n\t\t} else {\n\t\t\tremoveSteps(['DatosPersonales']);\n\t\t}\n\t}, [enviarConcesion]);\n\n\tuseEffect(() => {\n\t\tif (!masPreguntas) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (masPreguntas === 'true') {\n\t\t\tconst stepNames = getArrayOfStepsNames(getStepsVentaProducto(isElectrico), 'MasPreguntas', 'EnviarConcesion');\n\t\t\taddSteps(stepNames);\n\t\t} else if (masPreguntas === 'false') {\n\t\t\tconst { steps } = store.getState().formInfo;\n\t\t\tconst stepNames = getArrayOfStepsNames(steps, 'MasPreguntas', 'EnviarConcesion');\n\t\t\tremoveSteps(stepNames);\n\t\t}\n\t}, [masPreguntas]);\n\n\t/**\n\t * Se tiene que de manera consecutiva y no mediante las otras funciones porque si no, se actualizan los steps\n\t * dos veces y en el segundo paso (añadir o eliminar el otro step) se hace siempre sobre los steps antiguos y\n\t * no funciona de la manera esperada.\n\t *\n\t * @param stepToRemove\n\t * @param stepToAdd\n\t */\n\tconst removeAndAddStepAtTheSameTime = (stepToRemove: string, stepToAdd: string) => {\n\t\tconst { steps } = store.getState().formInfo;\n\t\tsetLoading(true);\n\t\tconst removedSteps = removeMultipleStepsAndResetScreenIndex(steps, [stepToRemove]);\n\t\tconst addedSteps = addingStepsLogic([stepToAdd], removedSteps);\n\t\tconst finalSteps = resetStepsScreenIndex(addedSteps);\n\t\thandleNextStep();\n\t\tupdateSteps(finalSteps);\n\t\tsetLoading(false);\n\t};\n\n\tconst handleShowMotivo = (nameOfMotivoStep: string, value?: string,) => {\n\t\tif (value) {\n\t\t\tif (Number(value) == -1) value = 'Sin respuesta';\n\t\t\tif (isLowRating(value)) {\n\t\t\t\taddSteps([nameOfMotivoStep]);\n\t\t\t} else if (isHighRating(value) || isNoRating(value)) {\n\t\t\t\tremoveSteps([nameOfMotivoStep]);\n\t\t\t\tdelete formData.fields[stepNameToFieldName(nameOfMotivoStep)];\n\t\t\t}\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionDisenoMotivo', satisfaccionDiseno);\n\t}, [satisfaccionDiseno]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionUsoMotivo', satisfaccionUso);\n\t}, [satisfaccionUso]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionTecnologiaMotivo', satisfaccionTecnologia);\n\t}, [satisfaccionTecnologia]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionCalidadMotivo', satisfaccionCalidad);\n\t}, [satisfaccionCalidad]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionConduccionMotivo', satisfaccionConduccion);\n\t}, [satisfaccionConduccion]);\n\n\tuseEffect(() => {\n\t\thandleShowMotivo('SatisfaccionElectricoMotivo', satisfaccionElectrico);\n\t}, [satisfaccionElectrico]);\n\n\tuseEffect(() => {\n\t\tconst stepName = store.getState().formInfo?.step?.name;\n\n\t\t// Verificamos que se ha contestado SatisfaccionGeneral\n\t\tif(stepName == 'SatisfaccionGeneral') {\n\n\t\t\tconst ratings = [satisfaccionDiseno, satisfaccionUso, satisfaccionTecnologia, satisfaccionCalidad, satisfaccionConduccion];\n\t\t\tif (isElectrico) ratings.push(satisfaccionElectrico);\n\n\t\t\tconst { mostrarQlast1, mostrarQlast2 } = LastQuestionFlow(ratings, satisfaccionGeneral);\n\n\t\t\tif (mostrarQlast1 && mostrarQlast2) {\n\t\t\t\taddSteps(['SatisfaccionGeneralMotivo', 'SatisfaccionExperiencia']);\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveSteps(['SatisfaccionGeneralMotivo', 'SatisfaccionExperiencia']);\n\t\t\t\tdelete formData.fields.satisfaccionGeneralMotivo;\n\t\t\t\tdelete formData.fields.satisfaccionExperiencia;\n\t\t\t}\n\t\t\tif (!mostrarQlast1 && mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('SatisfaccionGeneralMotivo', 'SatisfaccionExperiencia');\n\t\t\t\tdelete formData.fields.satisfaccionGeneralMotivo;\n\t\t\t}\n\t\t\tif (mostrarQlast1 && !mostrarQlast2) {\n\t\t\t\tremoveAndAddStepAtTheSameTime('SatisfaccionExperiencia', 'SatisfaccionGeneralMotivo');\n\t\t\t\tdelete formData.fields.SatisfaccionExperiencia;\n\t\t\t}\n\t\t}\n\n\t}, [satisfaccionDiseno, satisfaccionUso, satisfaccionTecnologia, satisfaccionCalidad, satisfaccionConduccion, satisfaccionElectrico, satisfaccionGeneral]);\n\n\n\tuseEffect(() => {\n\t\tif (!installation) return null;\n\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo(getStepsVentaProducto(isElectrico));\n\n\t\tconst NuevoFormInfo: 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\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : getStepsVentaProducto(isElectrico),\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t\thideLegal: idPerson.LSSI__c === 'PERMITE' ? true : false,\n\t\t};\n\n\t\tinitializeForm(NuevoFormInfo, NuevoFormData);\n\n\t}, [installation]);\n\n\treturn !loading ? : null;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport dayjs from 'dayjs';\nimport { LoadingEncuestas } from 'src/components';\nimport { useFeatureServices, useFaContent } from 'src/feature-app';\nimport { EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { IdDealer, IdOrder, IdPerson, IdVehicle } from 'src/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { getInstallation } from 'src/forms/Cem/helpers';\nimport { CEMVentaProductoForm } from 'src/forms/Cem/CEMVentaProducto/CEMVentaProductoForm';\n\nexport function CEMVentaProductoController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\tconst [caducado, setCaducado] = useState(false);\n\tconst today = dayjs(new Date());\n\n\tconst dpsDataRef = useRef(null);\n\tconst idPersonRef = useRef(null);\n\tconst idVehicleRef = useRef(null);\n\tconst idDealerRef = useRef(null);\n\tconst idOrderRef = useRef(null);\n\n\tconst [installation, setInstallation] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\tconst dispatch = useDispatch();\n\tconst faContent = useFaContent();\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = async () => {\n\t\tconst dpsData = oneFormService.getDpsData();\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError('Pincode not found');\n\t\t} else if (dpsData.pincode.pincodeUsed) {\n\t\t\tsetUsado(true);\n\t\t\tsetLoading(false);\n\t\t} else {\n\t\t\tconst idPerson = createPincodeEntity(dpsData, 'PERSON') as IdPerson;\n\t\t\tconst idVehicle = createPincodeEntity(dpsData, 'VEHICLE') as IdVehicle;\n\t\t\tconst idDealer = createPincodeEntity(dpsData, 'DEALER') as IdDealer;\n\t\t\tconst idOrder = createPincodeEntity(dpsData, 'ORDER') as IdOrder;\n\n\t\t\tdpsDataRef.current = dpsData;\n\t\t\tidPersonRef.current = idPerson;\n\t\t\tidVehicleRef.current = idVehicle;\n\t\t\tidDealerRef.current = idDealer;\n\t\t\tidOrderRef.current = idOrder;\n\n\t\t\tconst fechaEnvio = dpsData.fe ? dayjs(atob(dpsData.fe), 'DD/MM/YYYY') : null;\n\t\t\tif (!fechaEnvio || today.diff(dayjs(fechaEnvio), 'day') > 8) {\n\t\t\t\tsetCaducado(true);\n\t\t\t} else {\n\t\t\t\tconst installation = await getInstallation(dpsData, idDealer);\n\t\t\t\tif (installation) {\n\t\t\t\t\tsetInstallation(installation);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thandleError();\n\t\t\t\t}\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst handleError = (message?: string) => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t\tif (message) {\n\t\t\tconsole.error(message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (caducado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useFeatureServices, useFaContent, useTrackingManager } from 'src/feature-app';\nimport { DpsData, EsOneformCoreServiceV1 } from 'src/feature-service/es-oneform-core-feature-service/types';\nimport { CEMSegundaEntregaForm, CEMSegundaEntregaNoInteres } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { createPincodeEntity } from 'src/forms/dps-utils';\nimport { getInstallations, getInstallationsEntregaIdeal } from 'src/bff';\nimport { IdDealer, IdOrder, IdPerson, IdVehicle } from 'src';\nimport { LoadingEncuestas } from 'src/components';\nimport { arrayToObject } from 'src/helpers';\n\n\nexport function CEMSegundaEntregaController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\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 [interes, setInteres] = useState(false);\n\tconst [dealers, setDealers] = useState(null);\n\n\tconst oneFormService = useFeatureServices()['es:oneform-core'] as EsOneformCoreServiceV1;\n\n\tconst handleNext = (value: any) => { };\n\tconst handleComplete = async () => {\n\t\tconst dpsData = oneFormService.getDpsData();\n\n\t\tif (dpsData.pincode === null || dpsData.pincode.noPincodeFound || dpsData.pincode.pincodeError) {\n\t\t\thandleError('Pincode not found');\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') as IdPerson);\n\t\t\tsetIdVehicle(createPincodeEntity(dpsData, 'VEHICLE') as IdVehicle);\n\t\t\tsetIdOrder(createPincodeEntity(dpsData, 'ORDER') as IdOrder);\n\t\t\tconst idDealer = createPincodeEntity(dpsData, 'DEALER') as IdDealer;\n\t\t\tsetIdDealer(idDealer);\n\n\t\t\tsetInteres(dpsData.interes == 'true');\n\n\t\t\tconst installationsRaw = await getInstallations('VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_INVITACION', 'VOLKSWAGEN_SF_LEAD_INSTALLATION'); // Installations\n\t\t\tif (installationsRaw.length > 0) {\n\t\t\t\t// Todas las instalaciones formato object\n\t\t\t\tlet installations = installationsRaw.map((instal) => arrayToObject(instal.attributes)) as IdDealer[];\n\t\t\t\t// Filtramos por entrega ideal\n\t\t\t\tconst whiteList = await getInstallationsEntregaIdeal() as any[];\n\t\t\t\tif (whiteList.length > 0) {\n\t\t\t\t\tinstallations = installations.filter((instal) => whiteList.includes(instal.VGED_DealerCode__c));\n\t\t\t\t}\n\t\t\t\t// Obtenemos dealer por parametro\n\t\t\t\tif (dpsData.dealer) {\n\t\t\t\t\tconst myInstallations = installations.filter((instal) => instal.VGED_DealerCode__c == dpsData.dealer);\n\t\t\t\t\tif (myInstallations.length > 0) {\n\t\t\t\t\t\tconst dealer = (myInstallations[0]);\n\t\t\t\t\t\tsetIdDealer(dealer);\n\t\t\t\t\t\t// Agrupamos con mismo código de concesión\n\t\t\t\t\t\tinstallations = installations.filter((instal) => instal.VGED_ConcessionDealerCode__c == dealer.VGED_ConcessionDealerCode__c);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Agrupamos con mismo código de concesión\n\t\t\t\t\tinstallations = installations.filter((instal) => instal.VGED_ConcessionDealerCode__c == idDealer.VGED_ConcessionDealerCode__c);\n\t\t\t\t}\n\t\t\t\tsetDealers(installations);\n\t\t\t}\n\t\t\telse {\n\t\t\t\thandleError('Installations not found');\n\t\t\t}\n\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst handleError = (message?: string) => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t\tif (message) {\n\t\t\tconsole.error(message);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tconst oneFormCoreDpsIsLoaded = oneFormService.getLoadedState();\n\n\t\toneFormCoreDpsIsLoaded.subscribe({\n\t\t\tnext(value) {\n\t\t\t\thandleNext(value);\n\t\t\t},\n\t\t\terror(err) {\n\t\t\t\tconsole.error(err);\n\t\t\t\thandleError();\n\t\t\t},\n\t\t\tcomplete() {\n\t\t\t\thandleComplete();\n\t\t\t},\n\t\t});\n\t}, []);\n\n\tif (loading) {\n\t\treturn ;\n\t} else if (error) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if (usado) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\telse {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{interes ? (\n\t\t\t\t\t\n\t\t\t\t) : (\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t);\n\t}\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFYumiwiSend } from 'src/bff';\nimport { IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { DetalleMotivo, MultipleOptionCTAs, MultipleCTASelection, ContactInfoWrapper, Telefono } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { DealerCEMSegundaEntrega, CitaCEMSegundaEntrega, ThankYouCEMSegundaEntrega, ConfirmacionCEMSegundaEntrega, getCommonFormData } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { transformDate } from 'src/helpers';\n\nexport interface CEMSegundaEntregaFormProps {\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\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\tconst isElectrico = idVehicle.VGED_ModelGroup__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 defaultSteps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Sobre qué \n\t\t\t\t\tquieres hablar con tu experto?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.TipoConsulta,\n\t\t\tname: 'TipoConsulta',\n\t\t\toutputs: ['tipoConsulta'],\n\t\t\toutputsText: ['tipoConsulta'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Nos das \n\t\t\t\t\tmás detalles?\n\t\t\t\t\t\n\t\t\t\t\t\t*\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.DetalleConsulta,\n\t\t\tname: 'DetalleConsulta',\n\t\t\toutputs: ['detalleConsulta'],\n\t\t\toutputsText: ['detalleConsulta'],\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Cómo \n\t\t\t\t\tprefieres que sea la cita?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.TipoContacto,\n\t\t\tname: 'TipoContacto',\n\t\t\toutputs: ['tipoContacto'],\n\t\t\toutputsText: ['tipoContacto'],\n\t\t\tctas: CTAsTipoContacto,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t{idPerson.FirstName}, ¿nos podrías confirmar tus datos de contacto?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.ConfirmacionTelefono,\n\t\t\tname: 'ConfirmacionTelefono',\n\t\t\toutputs: ['cellphone'],\n\t\t\toutputsText: ['cellphone'],\n\t\t},\n\t\t(dealers ? {\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿A qué punto de venta quieres ir?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.SeleccionDealer,\n\t\t\tname: 'SeleccionDealer',\n\t\t\toutputs: ['installation-complete'],\n\t\t\toutputsText: ['installation-complete'],\n\t\t} : null),\n\t\t(dealers ? {\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Y cuándo \n\t\t\t\t\tte va mejor?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: (\n\t\t\t\t\n\t\t\t),\n\t\t\tscreenIndex: CEMSegundaEntregaSteps.Calendario,\n\t\t\tname: 'Calendario',\n\t\t\toutputs: ['fechaCita', 'horaCita'],\n\t\t\toutputsText: ['fechaCita', 'horaCita'],\n\t\t} : null),\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\tconst filteredSteps = defaultSteps.filter((step) => step !== null);\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\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}\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(filteredSteps, 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\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.MiddleName,\n\t\t\temail: idPerson.PersonEmail,\n\t\t\tcellphone: idPerson.PersonMobilePhone,\n\t\t\tformName: 'cem-segunda_entrega-invitacion',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t}, // Analítica\n\t};\n\n\tconst sendForm = (): Promise => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields } = formData;\n\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst data = getCommonFormData(idPerson, idVehicle, idDealer, idOrder);\n\n\t\t\tdata['fields[SURVEY_ANSWER_01]'] = 'true';\n\t\t\tdata['fields[SURVEY_ANSWER_02]'] = fields.tipoConsulta;\n\t\t\tdata['fields[SURVEY_ANSWER_03]'] = fields.detalleConsulta ? fields.detalleConsulta : '';\n\t\t\tdata['fields[SURVEY_ANSWER_04]'] = fields.tipoContacto;\n\t\t\tdata['fields[APPOINTMENT_DATE]'] = transformDate(fields.fechaCita, 'DD/MM/YYYY') + ' ' + fields.horaCita + ':00';\n\t\t\tdata['fields[PERSON_RGPD_PERFILADO]'] = fields.tmk ? fields.tmk : 'NO INFORMADO';\n\t\t\tdata['fields[PERSON_RGPD_COM_COMERCIALES]'] = fields.lssi ? fields.lssi : 'NO INFORMADO';\n\n\t\t\tif (fields.cellphone) {\n\t\t\t\tdata['fields[PERSON_PHONE_MOBILE]'] = fields.cellphone;\n\t\t\t}\n\n\t\t\tif (fields.seleccionDealer) {\n\t\t\t\tfor (const dealer of dealers) {\n\t\t\t\t\tif (dealer.KVPSCode__c == fields.seleccionDealer) {\n\t\t\t\t\t\tdata['fields[SF_LEAD_INSTALLATION_ID]'] = dealer.Id;\n\t\t\t\t\t\tdata['fields[SF_LEAD_INSTALLATION_NAME]'] = dealer.VGED_CommercialName__c;\n\t\t\t\t\t\tdata['fields[SF_LEAD_INSTALLATION_CODE]'] = dealer.VGED_CommercialName__c;\n\t\t\t\t\t\tdata['fields[SF_LEAD_INSTALLATION_CODE_KVPS]'] = sanitizeKvps(dealer.KVPSCode__c);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdata['PERSON_ID'] = idPerson.Id;\n\n\t\t\tconst dataStringified = JSON.stringify(data);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tconst response = await oneformBFFYumiwiSend(formData);\n\n\t\t\tif (response && response.data?.status?.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: filteredSteps[0],\n\t\t\tlastStep: filteredSteps[filteredSteps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: filteredSteps.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 : filteredSteps,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t};\n\t\tinitializeForm(CEMSegundaEntregaInfo, CEMSegundaEntregaData);\n\t}, [dealers]);\n\n\treturn filteredSteps ? : null;\n}\n","import React, { useEffect, useState } from 'react';\nimport { useStore, useSelector, useDispatch } from 'react-redux';\nimport { OneFormState, IdDealer } from 'src/types';\nimport { Breakpoints, Text, Layout, Fieldset, RadioButton, Container, ContainerPadding } from '@volkswagen-onehub/components-core';\nimport { useOneFormContext } from 'src/feature-app/OneForm';\nimport { strTitlelize } from 'src/helpers';\n\ninterface DealerCEMSegundaEntregaProps {\n\tname: string;\n\tdealers?: IdDealer[];\n}\n\nexport const DealerCEMSegundaEntrega = (props: DealerCEMSegundaEntregaProps) => {\n\tconst {\n\t\tname,\n\t\tdealers\n\t} = props;\n\tconst dispatch = useDispatch();\n\tconst { handleNextStep } = useOneFormContext();\n\tconst { formData } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst [dealer, setDealer] = useState(dealers ? dealers[0] : null);\n\n\tconst handleSelectDealer = (e: any, dealer: IdDealer) => {\n\t\tsetDealer(dealer);\n\t\thandleNextStep(e);\n\t};\n\n\tuseEffect(() => {\n\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [name]: strTitlelize(dealer.TXT_V_KVPS_code__c) } });\n\t\tdispatch({ type: 'SET_SELECTED_INSTALLATION', payload: dealer });\n\t}, [dealer]);\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, index) => {\n\t\t\t\t\t\tconst value = strTitlelize(dealer.VGED_DealerCode__c);\n\t\t\t\t\t\tconst label = <>\n\t\t\t\t\t\t\t{strTitlelize(dealer.VGED_CommercialName__c)}{' '}\n\t\t\t\t\t\t\t{strTitlelize(dealer.ShippingStreet)}\n\t\t\t\t\t\t\t{dealer.ShippingPostalCode} {strTitlelize(dealer.ShippingCity)}\n\t\t\t\t\t\t;\n\t\t\t\t\t\treturn ( {\n\t\t\t\t\t\t\t\thandleSelectDealer(e, dealer);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tdefaultChecked={fields[name] ? fields[name] == value : index == 0}\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};\n","import { styled } from '@volkswagen-onehub/components-core';\n\nexport const CalendarioContainer = styled.div`\n\tmargin-top: 50px;\n`;\nexport const FranjaContainer = styled.div`\n\tmargin-top: 100px;\n`;\nexport const HorasContainer = styled.div`\n\tmargin: 30px 0;\n`;\nexport const GoBackWrapper = styled.div`\n\tpadding-left: 20px;\n\tpadding-top: 24px;\n\tpadding-bottom: 3px;\n\tbackground-color: #ffffff;\n`;\nexport const GreyText = styled.span`\n\tcolor: '#6A767D';\n`;\nexport const CalendarHandlerWrapper = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tpadding: 0 44px 5% 32px;\n\tjustify-content: space-between;\n\talign-items: center;\n\t@media screen and (min-width: 560px) {\n\t\tpadding: 44px 11% 32px;\n\t}\n\t@media screen and (min-width: 960px) {\n\t\tpadding: 44px 11% 32px;\n\t}\n`;\nexport const AllDaysWrapper = styled.div`\n\twidth: 100%;\n\tmargin: auto;\n\talign-self: center;\n\tjustify-self: center;\n\tmargin-bottom: 44px;\n\t@media screen and (min-width: 560px) {\n\t\twidth: 89%;\n\t}\n\t@media screen and (min-width: 960px) {\n\t\twidth: 96%;\n\t\tmargin-left: 32px;\n\t\tmargin-rigth: 0;\n\t}\n`;\nexport const TabsWitdh = styled.div`\n\twidth: 83vw;\n\t@media all and (min-width: 960px) {\n\t\twidth: 660px;\n\t}\n`;\nexport const DividerC = styled.div`\n\theight: 1px;\n\twidth: 100%;\n\tbackground-color: #dfe4e8;\n`;\nexport const DayPositionWrapper = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\twidth: 100%;\n`;\ninterface DayWrapperProps {\n\tactive?: any;\n\tpresentDay?: any;\n\tdisabled?: boolean;\n}\nexport const DayWrapper = styled.div`\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tcolor: ${(props) => (props.active ? '#FFFFFF' : props.disabled ? '#dfe4e8' : '#001E50')};\n\tfont-size: ${(props) => (props.presentDay ? '700' : null)};\n\tbackground-color: ${(props) => (props.active ? '#001E50' : null)};\n\twidth: 40px;\n\theight: 40px;\n\tborder-radius: 50%;\n\tcursor: ${(props) => (props.disabled ? 'default' : 'pointer')};\n\n\t@media screen and (min-width: 960px) {\n\t\twidth: 44px;\n\t\theight: 44px;\n\t}\n`;\n\ninterface CapitalizeWrapperProps {\n\thasTitle?: boolean;\n\tisDisabled: boolean;\n}\nexport const Capitalize = styled.span`\n\ttext-transform: capitalize;\n\tcolor: ${(props) => (props.isDisabled ? '#E8DFE4' : '#001e50')};\n\tpadding: ${(props) => (props.hasTitle ? null : '0 32px')};\n\tpadding-top: ${(props) => (props.hasTitle ? null : '2px')};\n\tcursor: ${(props) => (props.isDisabled ? 'default' : 'pointer')};\n`;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { OneFormState, Day, EntregaIdealHorarioResponse, IdDealer } from 'src/types';\nimport dayjs, { Dayjs } from 'dayjs';\nimport { MultipleCTASelection } from 'src/components';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { Info, ChevronLeft, ChevronRight } from 'src/icons-core-imports';\nimport {\n\tBreakpoints,\n\tText,\n\tTextAlignment,\n\tLayout,\n\tTabs,\n\tTokenTextAppearance,\n\tBreakpointWrapper,\n\tCTA,\n\tLayoutRowGap,\n\tTokenTextColor,\n\tContainer,\n\tContainerPadding\n} from '@volkswagen-onehub/components-core';\nimport {\n\tCalendarioContainer,\n\tFranjaContainer,\n\tHorasContainer,\n\tAllDaysWrapper,\n\tCalendarHandlerWrapper,\n\tCapitalize,\n\tDayPositionWrapper,\n\tDayWrapper,\n\tGreyText\n} from 'src/forms/Cem/CEMSegundaEntrega/CitaCEMSegundaEntregaStyles';\nimport { getHorariosInstallation } from 'src/bff/api/get-installations';\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 dispatch = useDispatch();\n\tconst tabsRef = useRef(null);\n\n\tconst { formData, dealersInfo } = useSelector((state: OneFormState) => state);\n\tconst { fields } = formData;\n\tconst { selectedInstallation } = dealersInfo;\n\n\tconst weekDays = ['Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb', 'Dom'];\n\tconst [monthObjDays, setMonthObjDays] = useState(null);\n\tconst [previousMonthBtn, setPreviousMonthBtn] = useState(false);\n\tconst [nextMonthBtn, setNextMonthBtn] = useState(true);\n\n\tconst today = dayjs(new Date());\n\tconst [startDay, setStartDay] = useState(today);\n\tconst [endDay, setEndDay] = useState(today);\n\tconst [selectedDay, setSelectedDay] = useState(fields[fechaName] ? dayjs(fields[fechaName], 'YYYY-MM-DD') : null);\n\tconst [availableDays, setAvailableDays] = useState([]);\n\tconst [showMonth, setShowMonth] = useState(selectedDay);\n\n\tconst [franjasManana, setFranjasManana] = useState([]);\n\tconst [franjasTarde, setFranjasTarde] = useState([]);\n\tconst [infoFranjasManana, setInfoFranjasManana] = useState('');\n\tconst [infoFranjasTarde, setInfoFranjasTarde] = useState('');\n\tconst [showFranja, setShowFranja] = useState(0);\n\tconst [resetFranjas, setResetFranjas] = useState(false);\n\n\n\tuseEffect(() => {\n\t\tgetHorarios(today);\n\t}, []);\n\n\n\t// CALENDARIO\n\n\tuseEffect(() => {\n\t\tif (startDay && endDay && selectedDay && showMonth) {\n\t\t\thandleBuildCalendar();\n\t\t}\n\t}, [startDay, endDay, selectedDay, showMonth]);\n\n\tconst getHorarios = async (dayJs: Dayjs) => {\n\t\tconst thisMonth = await getHorariosInstallation(selectedInstallation.VGED_DealerCode__c, dayJs.format('YYYY'), dayJs.format('MM'));\n\t\tconst nextMonth = await getHorariosInstallation(selectedInstallation.VGED_DealerCode__c, dayJs.add(1, 'month').format('YYYY'), dayJs.add(1, 'month').format('MM'));\n\n\t\tlet day = null;\n\t\tlet availableDays = [];\n\t\tif (thisMonth && thisMonth.length > 0) {\n\t\t\tday = createDay(thisMonth[0].date);\n\t\t\tavailableDays = thisMonth.concat(nextMonth);\n\t\t}\n\t\telse if (nextMonth && nextMonth.length > 0) {\n\t\t\tday = createDay(nextMonth[0].date);\n\t\t\tconst anotherMonth = await getHorariosInstallation(selectedInstallation.VGED_DealerCode__c, dayJs.add(2, 'month').format('YYYY'), dayJs.add(2, 'month').format('MM'));\n\t\t\tavailableDays = nextMonth.concat(anotherMonth);\n\t\t}\n\n\t\tsetAvailableDays(availableDays);\n\t\tsetStartDay(day);\n\t\tsetEndDay(createDay(availableDays[availableDays.length - 1].date));\n\t\tsetSelectedDay(fields[fechaName] ? createDay(fields[fechaName]) : day);\n\t\tsetShowMonth(fields[fechaName] ? createDay(fields[fechaName]) : day);\n\t};\n\n\tconst handleBuildCalendar = () => {\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 objDays: 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\tobjDays = new Array(6).fill('');\n\t\t} else {\n\t\t\tobjDays = new Array(parseInt(firstDayInweek) - 1).fill('');\n\t\t}\n\n\t\tlet day = firstDayOfMonth;\n\n\t\tfor (let i = 1; i <= daysInMonth; i++) {\n\t\t\tconst isActive = selectedDay ? selectedDay.isSame(day, 'day') : false;\n\t\t\tobjDays.push(createObjDay(day, isActive));\n\t\t\t// Increment 1 day\n\t\t\tday = day.add(1, 'day');\n\t\t}\n\n\t\tsetMonthObjDays(objDays);\n\n\t};\n\n\tconst createObjDay = (dayJs: Dayjs, active = false) => {\n\t\tconst objDay: Day = {\n\t\t\tdayNumber: dayJs.format('D'), // 1 - 31\n\t\t\tdayOfTheWeek: dayJs.format('d'), // 0 - 6\n\t\t\tdate: dayJs.format('YYYY-MM-DD'),\n\t\t\tdisabled: isDayDisabled(dayJs),\n\t\t\tactive: active,\n\t\t};\n\t\treturn objDay;\n\t};\n\n\tconst createDay = (str: string) => {\n\t\treturn dayjs(str, 'YYYY-MM-DD');\n\t};\n\n\tconst isDayDisabled = (dayJs: Dayjs) => {\n\t\tif (endDay && dayJs.isAfter(endDay, 'day')) {\n\t\t\treturn true;\n\t\t}\n\t\telse if (dayJs.isBefore(startDay, 'day')) {\n\t\t\treturn true;\n\t\t}\n\t\treturn !availableDays.some(item => item.date === dayJs.format('YYYY-MM-DD'));\n\t};\n\n\tconst getOffsetMonth = (n: number) => {\n\t\tif (!showMonth) {\n\t\t\treturn today;\n\t\t}\n\t\telse if (n > 0) {\n\t\t\treturn showMonth.add(n, 'month');\n\t\t}\n\t\telse if (n < 0) {\n\t\t\treturn showMonth.subtract(n * (-1), 'month');\n\t\t}\n\t\telse {\n\t\t\treturn showMonth;\n\t\t}\n\t};\n\n\tconst handleNextMonth = (e: any) => { // Carga del siguiente mes\n\t\te.preventDefault();\n\t\tif (nextMonthBtn) setShowMonth(getOffsetMonth(1));\n\t};\n\n\tconst handlePreviousMonth = (e: any) => { // Carga del anterior mes\n\t\te.preventDefault();\n\t\tif (previousMonthBtn) setShowMonth(getOffsetMonth(-1));\n\t};\n\n\tconst handleSelectDay = (day: Day) => {\n\t\tsetSelectedDay(createDay(day.date)); // Seleccion del dia\n\t\thandleResetFranjas();\n\t\thandleBuildFranjas(createDay(day.date));\n\t};\n\n\tuseEffect(() => {\n\t\tif (selectedDay) {\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { [fechaName]: selectedDay.format('YYYY-MM-DD') } });\n\t\t}\n\t}, [selectedDay]);\n\n\tuseEffect(() => {\n\t\tif (showMonth && startDay && endDay) {\n\t\t\tsetPreviousMonthBtn(startDay.isBefore(showMonth, 'month'));\n\t\t\tsetNextMonthBtn(endDay.isAfter(showMonth, 'month'));\n\t\t}\n\t}, [showMonth, startDay, endDay]);\n\n\n\t// FRANJAS HORARIAS\n\n\tuseEffect(() => {\n\t\tif (selectedDay) {\n\t\t\thandleBuildFranjas(selectedDay);\n\t\t}\n\t}, [selectedDay]);\n\n\tconst handleBuildFranjas = (dayJs: Dayjs) => {\n\t\tconst turnos = availableDays.find(item => item.date === dayJs.format('YYYY-MM-DD'))?.turnos;\n\n\t\tif (turnos) {\n\t\t\tcreateFranjas(turnos);\n\t\t}\n\n\t\tif (fields[horaName] && dayjs(fields[horaName], 'HH').isAfter(dayjs('15', 'HH'))) {\n\t\t\tsetShowFranja(1); // Mostrar franja de tarde\n\t\t}\n\t};\n\n\tconst createFranjas = (turnos) => {\n\t\tconst manana = [];\n\t\tconst tarde = [];\n\n\t\tturnos.forEach(turno => {\n\t\t\tconst slots = generateTimeSlots(turno.from, turno.to);\n\t\t\tslots.forEach(slot => {\n\t\t\t\tconst time = dayjs(`1970-01-01T${slot.label}`);\n\t\t\t\tif (time.isBefore(dayjs('1970-01-01T15:00'))) {\n\t\t\t\t\tmanana.push(slot);\n\t\t\t\t} else {\n\t\t\t\t\ttarde.push(slot);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tif (manana.length > 0) {\n\t\t\tsetInfoFranjasManana('La duración de la cita será de una hora aproximadamente.');\n\t\t}\n\t\telse {\n\t\t\tsetInfoFranjasManana('No hay horas disponibles.');\n\t\t}\n\n\t\tif (tarde.length > 0) {\n\t\t\tsetInfoFranjasTarde('La duración de la cita será de una hora aproximadamente.');\n\t\t}\n\t\telse {\n\t\t\tsetInfoFranjasTarde('No hay horas disponibles.');\n\t\t}\n\n\t\tsetFranjasManana(manana);\n\t\tsetFranjasTarde(tarde);\n\t};\n\n\tconst generateTimeSlots = (from, to) => {\n\t\tconst slots = [];\n\t\tlet current = dayjs(`1970-01-01T${from}`);\n\t\tconst end = dayjs(`1970-01-01T${to}`);\n\n\t\twhile (current.isBefore(end)) {\n\t\t\tconst label = current.format('HH:mm');\n\t\t\tslots.push({ label, value: label });\n\t\t\tcurrent = current.add(30, 'minute');\n\t\t}\n\n\t\treturn slots;\n\t};\n\n\tconst handleResetFranjas = () => {\n\t\tsetResetFranjas(true);\n\t\tsetTimeout(() => {\n\t\t\tsetResetFranjas(false);\n\t\t}, 100);\n\t};\n\n\tconst handleChangeFranja = (index: number) => {\n\t\tsetShowFranja(index);\n\t\thandleResetFranjas();\n\t};\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{getOffsetMonth(-1).locale('es').format('MMMM')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{showMonth ? showMonth.locale('es').format('MMMM') : null} {showMonth ? showMonth.format('YYYY') : null}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{getOffsetMonth(1).locale('es').format('MMMM')}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{weekDays.map((day, index) => {\n\t\t\t\t\t\t\tif (index > 4) {\n\t\t\t\t\t\t\t\treturn (\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\n\t\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\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\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn (\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\n\t\t\t\t\t\t\t\t\t\t\t\t{day}\n\t\t\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\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\t{monthObjDays ? (monthObjDays.map((day, index) => {\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\te.preventDefault();\n\n\t\t\t\t\t\t\t\t\t\t\tif (!day.disabled) {\n\t\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\t\ttabsRef.current.scrollIntoView({ behavior: 'smooth' });\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\thandleSelectDay(day);\n\t\t\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\tactive={day.active}\n\t\t\t\t\t\t\t\t\t\tdisabled={day.disabled}\n\t\t\t\t\t\t\t\t\t\tclassName=\"day-wrapper\"\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.dayNumber}\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\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\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\te.preventDefault();\n\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\thandleChangeFranja(index);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\ttitle: Mañana,\n\t\t\t\t\t\t\t\tcontent: {infoFranjasManana}} />,\n\t\t\t\t\t\t\t\tkey: 'MANANA'\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\ttitle: Tarde,\n\t\t\t\t\t\t\t\tcontent: {infoFranjasTarde}} />,\n\t\t\t\t\t\t\t\tkey: 'TARDE'\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\n\t);\n};\n","import { getParamsForm } from 'src/feature-app/get-params-form';\nimport { getSfAddressRest, sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { formatToTwoChars } from 'src/helpers';\nimport { IdDealer, IdOrder, IdPerson, IdVehicle } from 'src/types';\n\nconst urlParams = new URLSearchParams(window.location.search);\nconst pincode = urlParams.get('pincode');\nconst agency = urlParams.get('agency');\nconst adviser = urlParams.get('adviser');\n\nconst { tc, today, url, device } = getParamsForm();\n\nexport const getCommonFormData = (idPerson: IdPerson, idVehicle: IdVehicle, installation: IdDealer, idOrder: IdOrder) => {\n\n\treturn {\n\t\t'headers[FORM_NAME]': 'vw-oneform-cem-segunda_entrega-invitacion',\n\t\t'headers[FORM_VERSION]': 'vw-oneform-cem-segunda_entrega-invitacion-' + process.env.VERSION,\n\t\t'headers[FORM_URL]': url,\n\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t'headers[FORM_DETAILS]': 'CEM Segunda entrega',\n\t\t'headers[FORM_OBJECTIVE]': 'Encuesta',\n\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t'headers[PINCODE]': pincode,\n\t\t'headers[DPS_TOKEN]': 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_INVITACION',\n\t\t'headers[FK_SYSTEM]': idOrder.VGED_ClimaproOrderID__c,\n\n\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t'fields[SF_LEAD_INSTALLATION_ID]': installation?.Id,\n\t\t'fields[SF_LEAD_INSTALLATION_NAME]': installation?.VGED_CommercialName__c,\n\t\t'fields[SF_LEAD_INSTALLATION_CODE]': installation?.VGED_DealerCode__c,\n\t\t'fields[SF_LEAD_INSTALLATION_CODE_KVPS]': installation?.KVPSCode__c ? sanitizeKvps(installation?.KVPSCode__c) : '',\n\t\t'fields[VEH_ACTUAL_FRAME]': idVehicle?.Name,\n\t\t'fields[VEH_ACTUAL_PLATE]': idVehicle?.VGED_RegistrationPlate__c,\n\t\t'fields[VEH_ACTUAL_MODEL]': idVehicle?.VGED_ModelGroup__c,\n\t\t'fields[PERSON_NAME]': idPerson?.FirstName,\n\t\t'fields[PERSON_SURNAME_1]': idPerson?.LastName,\n\t\t'fields[PERSON_SURNAME_2]': idPerson?.MiddleName,\n\t\t'fields[PERSON_PHONE_MOBILE]': idPerson?.PersonMobilePhone,\n\t\t'fields[PERSON_EMAIL]': idPerson?.PersonEmail,\n\t\t'fields[PERSON_POSTAL_ROAD_NAME]': getSfAddressRest(idPerson?.PersonMailingAddress, 'street'),\n\t\t'fields[PERSON_POSTAL_CP]': getSfAddressRest(idPerson?.PersonMailingAddress, 'postalCode'),\n\t\t'fields[PERSON_POSTAL_PROVINCE_CODE]': formatToTwoChars(getSfAddressRest(idPerson?.PersonMailingAddress, 'stateCode')),\n\t\t'fields[SURVEY_ANSWER_05]': adviser,\n\n\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t'flags[FLAG_RELACION_MARCA_SIN_IC]': 'false',\n\t\t'flags[FLAG_AGENCY]': agency == 'AGENCIA' ? 'true' : 'false',\n\t};\n};\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, IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getCommonFormData } from 'src/forms/Cem/CEMSegundaEntrega';\n\nexport interface NoInteresaCEMSegundaEntregaFormProps {\n\thandleError: () => void,\n\tidPerson: IdPerson;\n\tidVehicle: IdVehicle;\n\tidDealer: IdDealer;\n\tidOrder: IdOrder;\n}\n\nexport function CEMSegundaEntregaNoInteres(props: NoInteresaCEMSegundaEntregaFormProps) {\n\tconst {\n\t\thandleError,\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\n\tconst sendForm = (): Promise => {\n\t\tsetSend(true);\n\t\treturn new Promise(async (resolve, reject) => {\n\n\t\t\tconst data = getCommonFormData(idPerson, idVehicle, idDealer, idOrder);\n\n\t\t\tdata['fields[SURVEY_ANSWER_01]'] = 'false';\n\t\t\tdata['fields[PERSON_RGPD_PERFILADO]'] = fields.tmk ? fields.tmk : 'NO INFORMADO';\n\t\t\tdata['fields[PERSON_RGPD_COM_COMERCIALES]'] = fields.lssi ? fields.lssi : 'NO INFORMADO';\n\n\t\t\tconst dataStringified = JSON.stringify(data);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response && response.data?.status?.code == 200) {\n\t\t\t\tdispatch({ type: 'SET_FORM_RESPONSE', payload: response.data });\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 (idDealer && !send) sendForm();\n\t}, [idDealer]);\n\n\tconst copyBook = <>\n\t\tSeguro que terminas conociendo tu Volkswagen como la palma de tu mano. Y siempre puedes contactarnos si tienes alguna duda.\n\t;\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\n\treturn (\n\t\tsent ? : null\n\t);\n}\n","import { Breakpoints, styled, Text, Layout, TokenTextAppearance } from '@volkswagen-onehub/components-core';\nimport React, { useEffect } from 'react';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch } from 'react-redux';\nimport { IdPerson } from 'src/types';\n\nconst GeneralconfirmacionWrapper = styled.div``;\n\ninterface ConfirmacionCEMSegundaEntregaProps {\n\tidPerson: IdPerson;\n}\nexport const ConfirmacionCEMSegundaEntrega = (props: ConfirmacionCEMSegundaEntregaProps) => {\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\tif (props.idPerson.LSSI__c === 'PERMITE') {\n\t\t\tdispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n\t\t}\n\t}, [props.idPerson]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{props.idPerson.LSSI__c === 'PERMITE' ? (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t¿Listo para enviar?\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t¡Gracias! Unas últimas preguntas para tenerlo todo claro\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n","import React, { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport dayjs from 'dayjs';\nimport { useTrackingManager, getTrackingForm } from 'src/feature-app';\nimport { RenderController } from 'src/feature-app/Screen';\nimport { OneFormState, Steps } from 'src/types';\nimport { ThankYouTitle, ThankYouFields } from 'src/components';\nimport { IdVehicle } from 'src/types';\n\ninterface ThankYouCEMSegundaEntregaProps {\n\tidVehicle?: IdVehicle;\n}\n\nexport const ThankYouCEMSegundaEntrega = (props: ThankYouCEMSegundaEntregaProps) => {\n\tconst { idVehicle } = props;\n\tconst { formInfo, formData } = useSelector((state: OneFormState) => state);\n\tconst { formResponse } = formInfo;\n\tconst { fields } = formData;\n\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formInfo.numberOfScreens;\n\n\t\tdispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\t\tdispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(formResponse)\n\t\t);\n\t}, []);\n\n\tconst fechaCita = dayjs(fields.fechaCita, 'YYYY-MM-DD').format('DD/MM/YYYY');\n\tconst copyTitle = '¡Te esperamos el ' + fechaCita + ' a las ' + fields.horaCita + '!';\n\tconst copyBook = <>\n\t\tMuy pronto te contactará tu experto Volkswagen para cerrar vuestra cita{idVehicle ? ' y darte hasta el último detalle sobre tu ' + idVehicle.VGED_ModelGroup__c : ''}.\n\t;\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\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 { 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 { IdDealer, IdOrder, IdPerson, IdVehicle } from 'src';\nimport { LoadingEncuestas } from 'src/components';\nimport { arrayToObject } from 'src/helpers';\n\n\nexport function CEMSegundaEntregaValoracionController() {\n\tconst [loading, setLoading] = useState(true);\n\tconst [error, setError] = useState(false);\n\tconst [usado, setUsado] = useState(false);\n\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 handleNext = (value: any) => { };\n\tconst handleComplete = async () => {\n\t\tconst dpsData = oneFormService.getDpsData() as DpsData;\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') as IdPerson);\n\t\t\tsetIdVehicle(createPincodeEntity(dpsData, 'VEHICLE') as IdVehicle);\n\t\t\tsetIdDealer(createPincodeEntity(dpsData, 'DEALER') as IdDealer);\n\t\t\tsetIdOrder(createPincodeEntity(dpsData, 'ORDER') as IdOrder);\n\n\t\t\tif (dpsData.dealer) {\n\t\t\t\tconst installationsRaw = await getInstallations('VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_VALORACION', 'VOLKSWAGEN_SF_LEAD_INSTALLATION'); // Installations\n\t\t\t\tif (installationsRaw.length > 0) {\n\t\t\t\t\tlet installations = installationsRaw.map((instal) => arrayToObject(instal.attributes)) as IdDealer[];\n\t\t\t\t\tinstallations = installations.filter((instal) => instal.VGED_DealerCode__c == dpsData.dealer);\n\t\t\t\t\tif (installations.length > 0) {\n\t\t\t\t\t\tsetIdDealer(installations[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thandleError('Installations not found');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetLoading(false);\n\t\t};\n\t};\n\n\tconst handleError = (message?: string) => {\n\t\tsetError(true);\n\t\tsetLoading(false);\n\t\tif (message) {\n\t\t\tconsole.error(message);\n\t\t}\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);\n\t}\n}\n","import React, { useEffect, useState } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { useDispatch, useSelector, useStore } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { IdPerson, IdVehicle, IdDealer, IdOrder } from 'src/types';\nimport { DetalleMotivo } from 'src/components';\nimport { FormController, useOneFormContext } from 'src/feature-app';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { formDataBuilder } from 'src/forms/format-fields';\nimport { getSfAddressRest, sanitizeKvps } from 'src/forms/Cem/helpers';\nimport { ThankYouCEMSegundaEntregaValoracion, ConfirmacionCEMSegundaEntrega } from 'src/forms/Cem/CEMSegundaEntrega';\nimport { formatToTwoChars } from 'src/helpers';\n\nexport interface CEMSegundaEntregaValoracionFormProps {\n\thandleError: () => void,\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\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 [loading, setLoading] = useState(true);\n\n\tconst urlParams = new URLSearchParams(window.location.search);\n\tconst agency = urlParams.get('agency');\n\tconst adviser = urlParams.get('adviser');\n\tconst pincode = urlParams.get('pincode');\n\tconst rating = urlParams.get('rating');\n\n\t// Definición de steps\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\tconst CEMSegundaEntregaValoracionData: Partial = {\n\t\theaders: {},\n\t\tfields: {\n\t\t\tformName: 'cem-segunda_entrega-valoracion',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'Encuesta',\n\t\t}, // Analítica\n\t};\n\n\t// Presubmit\n\tuseEffect(() => {\n\t\tif (idDealer) sendPresubmit();\n\t}, [idDealer]);\n\n\tconst sendPresubmit = async () => {\n\t\tconst result = await sendForm(true);\n\n\t\tif (!result) {\n\t\t\thandleError();\n\t\t}\n\t\tsetLoading(false);\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 } = getParamsForm();\n\n\t\t\tconst data = {\n\t\t\t\t'headers[FORM_NAME]': 'vw-oneform-cem-segunda_entrega-valoracion',\n\t\t\t\t'headers[FORM_VERSION]': 'vw-oneform-cem-segunda_entrega-valoracion-' + process.env.VERSION,\n\t\t\t\t'headers[FORM_URL]': url,\n\t\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t\t'headers[FORM_DETAILS]': 'CEM Segunda entrega valoración',\n\t\t\t\t'headers[FORM_OBJECTIVE]': 'Encuesta',\n\t\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t\t\t'headers[DPS_TOKEN]': 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_VALORACION',\n\t\t\t\t'headers[FK_SYSTEM]': idOrder.VGED_ClimaproOrderID__c,\n\n\t\t\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t\t\t'fields[SF_LEAD_INSTALLATION_ID]': idDealer?.Id,\n\t\t\t\t'fields[SF_LEAD_INSTALLATION_NAME]': idDealer?.VGED_CommercialName__c,\n\t\t\t\t'fields[SF_LEAD_INSTALLATION_CODE]': idDealer?.VGED_DealerCode__c,\n\t\t\t\t'fields[SF_LEAD_INSTALLATION_CODE_KVPS]': idDealer?.KVPSCode__c ? sanitizeKvps(idDealer?.KVPSCode__c) : '',\n\t\t\t\t'fields[VEH_ACTUAL_FRAME]': idVehicle?.Name,\n\t\t\t\t'fields[VEH_ACTUAL_PLATE]': idVehicle?.VGED_RegistrationPlate__c,\n\t\t\t\t'fields[VEH_ACTUAL_MODEL]': idVehicle?.VGED_ModelGroup__c,\n\t\t\t\t'fields[PERSON_NAME]': idPerson?.FirstName,\n\t\t\t\t'fields[PERSON_SURNAME_1]': idPerson?.LastName,\n\t\t\t\t'fields[PERSON_SURNAME_2]': idPerson?.MiddleName,\n\t\t\t\t'fields[PERSON_PHONE_MOBILE]': idPerson?.PersonMobilePhone,\n\t\t\t\t'fields[PERSON_EMAIL]': idPerson?.PersonEmail,\n\t\t\t\t'fields[PERSON_POSTAL_ROAD_NAME]': getSfAddressRest(idPerson?.PersonMailingAddress, 'street'),\n\t\t\t\t'fields[PERSON_POSTAL_CP]': getSfAddressRest(idPerson?.PersonMailingAddress, 'postalCode'),\n\t\t\t\t'fields[PERSON_POSTAL_PROVINCE_CODE]': formatToTwoChars(getSfAddressRest(idPerson?.PersonMailingAddress, 'stateCode')),\n\t\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t\t'fields[SURVEY_ANSWER_01]': rating,\n\t\t\t\t'fields[SURVEY_ANSWER_05]': adviser,\n\n\t\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t\t\t'flags[FLAG_RELACION_MARCA_SIN_IC]': 'false',\n\t\t\t\t'flags[FLAG_AGENCY]': agency == 'AGENCIA' ? 'true' : 'false',\n\t\t\t};\n\n\t\t\tif (idOrder.RCY_ActualDeliveryDate__c && idOrder.RCY_ActualDeliveryDate__c != 'null') {\n\t\t\t\tdata['fields[SURVEY_ANSWER_02]'] = idOrder.RCY_ActualDeliveryDate__c;\n\t\t\t}\n\n\t\t\tif (!isPresubmit) {\n\t\t\t\tdata['headers[PINCODE]'] = pincode;\n\t\t\t\tdata['headers[DPS_TOKEN]'] = 'VW_DDB_FRM_CEM_SEGUNDA_ENTREGA_VALORACION_CONTESTADO';\n\t\t\t\tdata['fields[COMMENTS_PERSON]'] = fields.detalles;\n\t\t\t}\n\t\t\tconst dataStringified = JSON.stringify(data);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response && response.data?.status?.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\tconst getFormInfo = (): {\n\t\tfirstStep: Steps;\n\t\tlastStep: Steps;\n\t\tstepsHistory: number[];\n\t\tnumberOfScreens: number;\n\t\tnewSteps?: Steps[];\n\t} => {\n\t\treturn {\n\t\t\tfirstStep: steps[0],\n\t\t\tlastStep: steps[steps.length - 1],\n\t\t\tstepsHistory: [0],\n\t\t\tnumberOfScreens: steps.length,\n\t\t\tnewSteps: null,\n\t\t};\n\t};\n\n\tuseEffect(() => {\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n\t\tconst CEMSegundaEntregaValoracionInfo: Partial = {\n\t\t\tformStarted: true,\n\t\t\tsendFormCallback: sendForm,\n\t\t\tfullScreen: firstStep.fullScreen ? true : false,\n\t\t\tlastStep,\n\t\t\tnumberOfScreens,\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tformTheme: 'main',\n\t\t\tnotALayer: true,\n\t\t\tformType: 'inPage',\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : steps,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t};\n\t\tinitializeForm(CEMSegundaEntregaValoracionInfo, CEMSegundaEntregaValoracionData);\n\t}, [idDealer]);\n\n\treturn steps && !loading ? : null;\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\tconst { formInfo } = useSelector((state: OneFormState) => state);\n\tconst { formResponse } = formInfo;\n\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formInfo.numberOfScreens;\n\n\t\tdispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\t\tdispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(formResponse)\n\t\t);\n\t}, []);\n\n\tconst copyBook = <>\n\t\tNos encantaría devolverte el favor recordándote todas las ventajas de ser de Volkswagen.\n\t;\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\n};\n","import React from 'react';\nimport { ScreenController, useFaContent } from 'src/feature-app';\nimport { CemController, LEMController, NoCompraController, NoRenovacionController } from 'src/forms';\nimport { CEMOneShopController } from \"src/forms/Cem/CEM OneShop\";\nimport { CEMVentaProductoController } from \"src/forms/Cem/CEMVentaProducto/CEMVentaProductoController\";\nimport { CEMSegundaEntregaController, CEMSegundaEntregaValoracionController } from \"src/forms/Cem/CEMSegundaEntrega\";\n\nexport function EncuestasTrigger() {\n const faContent = useFaContent();\n\n const renderTrigger = (Controller: JSX.Element) => {\n return (\n <>\n null}\n formType = 'inPage'\n />\n \n );\n };\n\n switch (faContent?.encuesta) {\n case 'CEM - POSVENTA':\n case 'CEM - VENTA':\n return renderTrigger();\n\tcase 'CEM - VENTA PRODUCTO':\n\t\treturn renderTrigger();\n case 'CEM - ONESHOP':\n return renderTrigger();\n\tcase 'CEM - SEGUNDA ENTREGA - INVITACION':\n\t\treturn renderTrigger();\n\tcase 'CEM - SEGUNDA ENTREGA - VALORACION':\n\t\treturn renderTrigger();\n case 'LEM':\n return renderTrigger();\n case 'NO COMPRA':\n return renderTrigger();\n case 'NO RENOVACIÓN':\n return renderTrigger();\n\n default:\n throw new Error('No property encuesta in FA Content.');\n }\n}\n","import React, { 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 ThankYouFeedback = () => {\n\tconst { formInfo } = useSelector((state: OneFormState) => state);\n\tconst { formResponse } = formInfo;\n\n\tconst trackingManager = useTrackingManager();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\t// 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\t\tconst screenIndexThankyou = formInfo.numberOfScreens;\n\n\t\tdispatch({ type: 'SET_FORM_SUBMITTED', payload: true });\n\t\tdispatch({ type: 'SET_FORM_INFO', payload: { step: { screenIndex: screenIndexThankyou, name: 'ThankYou' } } });\n\n\t\ttrackingManager.trackFormSubmissionSuccessMessageLoad(\n\t\t\t{\n\t\t\t\tcontentId: undefined,\n\t\t\t},\n\t\t\tgetTrackingForm(formResponse)\n\t\t);\n\t}, []);\n\n\tconst screen: Steps = {\n\t\ttitle: ,\n\t\tfields: ,\n\t};\n\treturn (\n\t\t\n\t);\n};\n","import { Breakpoints, styled, Text, TokenTextAppearance, Layout } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { OneFormState } from 'src/types';\nimport { LssiTkmQuestions, PoliticaPrivacidad, LastNavigation } from 'src/components';\nimport { useDispatch, useSelector } from 'react-redux';\n\nconst GeneralconfirmacionWrapper = styled.div`\n\t\n`;\nconst ContentWrapper = styled.div`\n\tmin-height: calc(100vh - 227px);\n\twidth: 100%;\n\tdisplay: flex;\n\talign-items: center;\n\t@media all and (min-width: 960px) {\n\t\tmin-height: calc(100vh - 227px);\n\t}\n\t.content-wrapper {\n\t\twidth: 100%;\n\t}\n`;\n\nexport const ConfirmacionFeedback = () => {\n\tconst dispatch = useDispatch();\n\tconst { fields } = useSelector((state: OneFormState) => state.formData);\n\tconst [lssiPincode, setLssiPincode] = useState('PERMITE');\n\n\t/*useEffect(() => {\n\t\tif (fields) {\n\t\t setLssiPincode(fields.lssiPincode);\n\t\t}\n\t}, [fields]);\n \n\tuseEffect(() => {\n\t\tif (lssiPincode === 'PERMITE') {\n\t\t dispatch({ type: 'UPDATE_FIELDS', payload: { lssi: 'NO INFORMADO', tkm: 'NO INFORMADO' } });\n\t\t} \n\t}, [lssiPincode]);*/\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t{lssiPincode === 'PERMITE' ? (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t¿Listo para enviar?\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\t\t\n\t\t\t\t\t\t\t\tMantente al día\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{lssiPincode === 'PERMITE' ? null : (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\n\t\t\t{lssiPincode === 'PERMITE' ? (null) : (null)}\n\t\t
\n\t);\n};\n","import React, { useEffect } from 'react';\nimport { Text } from '@volkswagen-onehub/components-core';\nimport { OneElementTemplate } from 'src/feature-app/Screen';\nimport { DetalleMotivo, MultipleCTASelection } from 'src/components';\nimport { useDispatch, useStore, useSelector } from 'react-redux';\nimport { oneformBFFNdpsSend } from 'src/bff';\nimport { getParamsForm } from 'src/feature-app/get-params-form';\nimport { FormDataGroup, FormInfo, OneFormState, Steps } from 'src/types';\nimport { FormController, useOneFormContext, removeWhiteSpace, useFaContent, } from 'src/feature-app';\nimport { formatHeaders, formDataBuilder } from 'src/forms/format-fields';\nimport { addRemovedStep, getIndexInSteps, removeStep, resetStepsScreenIndex } from 'src/forms/helpers/add-remove-steps';\nimport { CTAsSiNo } from 'src/feature-app/InputsValues/CTAsObjects';\nimport { ThankYouFeedback, ConfirmacionFeedback } from '.';\n\nexport enum FeedbackSteps {\n\tOpinion,\n\tMejora,\n\tHasError,\n\tError,\n\tConfirmacion,\n}\n\ninterface FeedbackFormProps {\n\trating: number;\n\thideStars?: any;\n}\n\nexport function FeedbackForm({ rating, hideStars }: FeedbackFormProps) {\n\tconst { initializeForm, handleNextStep } = useOneFormContext();\n\tconst { formData, formInfo } = useSelector((state: OneFormState) => state);\n\tconst store = useStore();\n\tconst faContent = useFaContent();\n\tconst dispatch = useDispatch();\n\n\tuseEffect(() => {\n\t\tsendForm(true); // Presubmit\n\t}, []);\n\n\tconst { hasError } = formData.fields;\n\n\tconst steps: Steps[] = [\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Qué te ha parecido?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: FeedbackSteps.Opinion,\n\t\t\tname: 'Opinion',\n\t\t\toutputs: ['opinion'],\n\t\t\toutputsText: ['opinion'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Hay algo que hayas echado de menos?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: FeedbackSteps.Mejora,\n\t\t\tname: 'Mejora',\n\t\t\toutputs: ['mejora'],\n\t\t\toutputsText: ['mejora'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Has detectado algún error?\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: FeedbackSteps.Error,\n\t\t\tname: 'HasError',\n\t\t\toutputs: ['hasError'],\n\t\t\toutputsText: ['hasError'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\ttitle: (\n\t\t\t\t<>\n\t\t\t\t\t¿Puedes decirnos cuál?\n\t\t\t\t\n\t\t\t),\n\t\t\tfields: } />,\n\t\t\tscreenIndex: FeedbackSteps.Error,\n\t\t\tname: 'Error',\n\t\t\toutputs: ['error'],\n\t\t\toutputsText: ['error'],\n\t\t\ttrueOrFalseQuestion: true,\n\t\t},\n\t\t{\n\t\t\tfields: ,\n\t\t\tscreenIndex: FeedbackSteps.Confirmacion,\n\t\t\tname: 'Confirmacion',\n\t\t\toutputs: ['confirmacion'],\n\t\t\toutputsText: ['confirmacion'],\n\t\t},\n\t];\n\n\tuseEffect(() => {\n\t\tif (hasError) {\n\t\t\tupdateSteps('Error', hasError == 'true');\n\t\t}\n\t}, [hasError]);\n\n\tconst updateSteps = (stepName: string, conditional: boolean) => {\n\t\tconst { steps: actualSteps, screenIndex } = store.getState().formInfo;\n\t\tlet newSteps = [...actualSteps];\n\t\tif (conditional) {\n\t\t\tconst stepIndex = getIndexInSteps(newSteps, stepName);\n\n\t\t\tif (stepIndex === -1) {\n\t\t\t\tnewSteps = addRemovedStep(steps, actualSteps, stepName, screenIndex);\n\t\t\t}\n\t\t} else {\n\t\t\tnewSteps = removeStep(newSteps, stepName);\n\t\t}\n\n\t\tconst newStepsWithIndex = resetStepsScreenIndex(newSteps);\n\n\t\tdispatch({ type: 'UPDATE_STEPS', payload: newStepsWithIndex });\n\t\tdispatch({ type: 'UPDATE_LAST_STEP', payload: newStepsWithIndex[newStepsWithIndex.length - 1] });\n\t\tdispatch({ type: 'SET_NUMBER_OF_SCREENS', payload: newStepsWithIndex.length });\n\t};\n\n\tconst NuevoFormData: Partial = {\n\t\theaders: {},\n\t\tfields: {\n\t\t\tformName: 'feedback',\n\t\t\tformType: 'otherform',\n\t\t\tpageCategory: 'inPage',\n\t\t}, // Analítica\n\t};\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\tconst sendForm = (isPresubmit?: boolean): Promise => {\n\t\tconst { formData }: OneFormState = store.getState();\n\t\tconst { fields, headers } = formData;\n\t\tconst formName = fields.formName ? fields.formName : 'feedback';\n\n\t\treturn new Promise(async (resolve, reject) => {\n\t\t\tconst { tc, today, url, device } = getParamsForm();\n\n\t\t\tconst data = {\n\t\t\t\t'headers[DPS_TOKEN]': 'VW_DDB_FRM_FEEDBACK_ONEHUB',\n\t\t\t\t'headers[FORM_OBJECTIVE]': 'Feedback',\n\t\t\t\t'headers[FORM_DETAILS]': faContent.feedback,\n\t\t\t\t'headers[FORM_NAME]': `vw-oneform-${formName}-` + faContent.feedback.toLowerCase(),\n\t\t\t\t'headers[FORM_URL]': url,\n\t\t\t\t'headers[FORM_DATE_INSERTION]': today,\n\t\t\t\t'headers[ORIGIN_DEVICE_TYPE]': device,\n\t\t\t\t'headers[ORIGIN_TRACKING_CODE]': tc,\n\t\t\t\t'headers[FK_SYSTEM]': fields.climaproId ? fields.climaproId : 'PENDIENTE',\n\n\t\t\t\t...formatHeaders(headers),\n\n\t\t\t\t'fields[DPS_BRAND]': 'Volkswagen',\n\t\t\t\t'fields[PERSON_NAME]': fields.name,\n\t\t\t\t'fields[PERSON_SURNAME_1]': fields.surname,\n\t\t\t\t'fields[PERSON_SURNAME_2]': fields.secondSurname,\n\t\t\t\t'fields[PERSON_EMAIL]': removeWhiteSpace(fields.email),\n\t\t\t\t'fields[PERSON_RGPD_COM_COMERCIALES]': fields.lssi ? fields.lssi : 'NO INFORMADO',\n\t\t\t\t'fields[PERSON_RGPD_PERFILADO]': fields.tmk ? fields.tmk : 'NO INFORMADO',\n\t\t\t\t'fields[SURVEY_ANSWER_01]': rating,\n\t\t\t\t'fields[SURVEY_ANSWER_02]': fields.opinion,\n\t\t\t\t'fields[SURVEY_ANSWER_03]': fields.mejora,\n\t\t\t\t'fields[SURVEY_ANSWER_04]': fields.hasError,\n\t\t\t\t'fields[SURVEY_ANSWER_05]': fields.error,\n\t\t\t\t'fields[SURVEY_ANSWER_06]': fields.identitykitId ? fields.identitykitId : 'PENDIENTE',\n\n\t\t\t\t'flags[PERSON_RGPD_ADAPTED]': 'true',\n\t\t\t};\n\n\t\t\tconst dataStringified = JSON.stringify(data);\n\t\t\tconst dataParsed = JSON.parse(dataStringified);\n\t\t\tconst formData = formDataBuilder(dataParsed);\n\n\t\t\tconst response = await oneformBFFNdpsSend(formData);\n\n\t\t\tif (response?.data?.status?.code == 200) {\n\t\t\t\tif (!isPresubmit) {\n\t\t\t\t\thideStars();\n\t\t\t\t}\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\tuseEffect(() => {\n\t\tconst { firstStep, lastStep, stepsHistory, numberOfScreens, newSteps } = getFormInfo();\n\n\t\tconst NuevoFormInfo: 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\tformTheme: 'inverted',\n\t\t\tscreenIndex: firstStep.screenIndex,\n\t\t\tstep: firstStep,\n\t\t\tsteps: newSteps ? newSteps : steps,\n\t\t\tstepsHistory,\n\t\t\tthankYouComponent: ,\n\t\t};\n\n\t\tinitializeForm(NuevoFormInfo, NuevoFormData);\n\t}, []);\n\n\treturn ;\n}\n","import {\n\tText,\n\tContainer,\n\tContainerGutter,\n\tTokenTextAppearance,\n\tTextAlignment,\n\tstyled,\n} from '@volkswagen-onehub/components-core';\nimport { RatingStarWrapper, renderBolds } from 'src/components/styleComponents';\nimport { StarFilled, StarOutline } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { FeedbackForm } from 'src/forms/Feedback/FeedbackForm';\nimport { useDispatch, useStore } from 'react-redux';\nimport { OneFormState } from 'src/types';\n\nconst FeedbackWrapper = styled.div`\n padding-top: 24px;\n`;\nconst RatingStarsWrapper = styled.div`\n padding-top: 24px;\n padding-left: 20px;\n`;\n\nexport const FeedbackTrigger = (props?: TriggerProps) => {\n\tconst { setSelectedJourney } = props;\n\tconst store = useStore();\n\tconst faContent = useFaContent();\n\tconst { formData }: OneFormState = store.getState();\n\tconst { fields } = formData;\n\tconst [formSent, setFormSent] = useState(false);\n\tconst [rateValue, setRateValue] = useState(0);\n\n\tconst showStars = () => {\n\t\tif (faContent.idkit == 'true' && fields.identitykitId?.length > 0) {\n\t\t\treturn true;\n\t\t}\n\t\tif (faContent.climapro == 'true' && fields.climaproUserStatus == 'OK') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst hideStars = () => {\n\t\tsetFormSent(true);\n\t};\n\n\tconst renderForm = (rating: number) => {\n\t\tsetSelectedJourney();\n\t};\n\n\tconst renderStars = () => {\n\t\tconst stars = [];\n\t\tfor (let i = 1; i <= 5; i++) {\n\t\t\tstars.push(\n\t\t\t\t= i ? 'filled' : 'outline'}\n\t\t\t\t\tkey={i}\n\t\t\t\t\tonClick={(e: any) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\trenderForm(i);\n\t\t\t\t\t\tsetRateValue(i);\n\t\t\t\t\t}}\n\t\t\t\t\tisPrevStep={true}\n\t\t\t\t\ttextUnderStars={false}\n\t\t\t\t\tpointer={true}\n\t\t\t\t>\n\t\t\t\t\t{rateValue >= i ? : }\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn stars;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{showStars() && !formSent ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{faContent.headline ? renderBolds(faContent.headline) : '¿Te gusta lo que te has encontrado' + (faContent.feedback ? ' en ' + faContent.feedback.toLowerCase() : '') + '?'}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{renderStars()}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t) : null}\n\t\t\n\t);\n};\n","import React from 'react';\nimport { TriggerProps, useInitiateBonosTriggers } from 'src/feature-app';\nimport { PresupuestoForm } from 'src/forms';\nimport { FormDataGroup } from 'src/types';\n\nconst leadBonoPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-presupuesto-bono',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n\nexport function LeadBonoTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateBonosTriggers(\n setSelectedJourney,\n \n );\n\n return null;\n}\n","import React, { useEffect, useState } from 'react';\nimport {\n Breakpoints,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n LayoutRowGap,\n Spinner,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport { Calc, Calendar, Info, Interior } from 'src/icons-core-imports';\nimport {\n LayerManagerWrapper,\n OneFormContent,\n TriggerProps,\n useFaContent,\n useFeatureAppEnvironment,\n useFeatureServices,\n useGetInstalaciones,\n useNavigate,\n} from 'src/feature-app';\nimport { MapGeneralController, NewMap } from 'src/feature-app/NewMap';\nimport { useSelector, useStore, useDispatch } from 'react-redux';\nimport { Installation, OneFormState } from 'src/types';\nimport { GenericErrorLayer } from 'src/components/layers';\nimport { FocusLayerSizeV2 } from '@volkswagen-onehub/layer-manager';\nimport { useGetInstalacion } from 'src/feature-app/hooks/use-get-instalacion';\nimport { CitaVentaForm, MasInformacionForm, PresupuestoForm, TestDriveForm } from 'src/forms';\n\nexport const LeadDealerTrigger = (props: TriggerProps) => {\n\n const installations = useGetInstalaciones('VW_DDB_FRM_LEM_REC_LEM');\n const { selectedDealer, loading } = useGetInstalacion();\n const { setSelectedJourney, setCTALabel } = props;\n const { points } = useSelector((state: OneFormState) => state.dealersInfo);\n const layerManager = useFeatureServices()['layer-manager'];\n const { navigateToCita } = useNavigate();\n\n const faContent = useFaContent();\n const [error, setError] = useState(false);\n const [dealerInfo, setDealerInfo] = useState(null);\n const [pointsLodaded, setPointsLoaded] = useState(false);\n\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const dispatch = useDispatch();\n\n\n const handleLayerOpen = (journey: JSX.Element, label: string) => {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(label);\n setSelectedJourney(journey);\n };\n\n const openPresupuestoLayer = () => {\n handleLayerOpen(, 'Pide presupuesto');\n };\n const openMasInformacionLayer = () => {\n handleLayerOpen(, 'Pide más información');\n };\n const openTestDriveLayer = () => {\n handleLayerOpen(, 'Pruébalo');\n };\n const openCitaVentaLayer = () => {\n handleLayerOpen(, 'Pide cita');\n };\n\n const renderErrorScreen = () => {\n return (\n \n {\n navigateToCita();\n }}\n />\n \n );\n };\n\n const handleErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderErrorScreen, {}, { size: FocusLayerSizeV2.A });\n\n return layer;\n };\n\n const thereIsOnlyOneForm = (faContent: OneFormContent) => faContent && faContent.forms && faContent.forms.length === 1;\n\n\n // la altura del mapa en 375 debe ser = al width, mientras que en 560 tiene que ser 50% del width\n\n const initializeState = (selectedDealer: Installation) => {\n if (selectedDealer) {\n setDealerInfo(selectedDealer);\n } else {\n setError(true);\n handleErrorLayer();\n }\n };\n\n useEffect(() => {\n if (points) {\n setPointsLoaded(true);\n }\n }, [points]);\n\n useEffect(() => {\n if (!loading) {\n initializeState(selectedDealer);\n }\n }, [loading]);\n\n\n const renderTitle = (mobile: boolean) => {\n return (\n \n ¿Quieres contactar con este punto de venta?\n \n )\n }\n\n const renderTestDriveCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openTestDriveLayer()} stretchContent={strechContent}>\n Pruébalo\n \n );\n };\n\n const renderMasInformacionCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openMasInformacionLayer()} stretchContent={strechContent}>\n Pide más información\n \n );\n };\n\n const renderPidePresupuestoCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n {\n e.preventDefault();\n\n openPresupuestoLayer()\n }\n } stretchContent={strechContent} >\n Pide presupuesto\n \n );\n };\n\n const renderPideCitaCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openCitaVentaLayer()} stretchContent={strechContent}>\n Pide cita en tu punto de venta\n \n );\n };\n\n\n return error ? null : (\n \n \n \n {renderTitle(window.innerWidth < 590)}\n \n \n {dealerInfo && pointsLodaded ? (\n \n
\n \n \n \n {dealerInfo.VGED_CommercialName__c}\n \n \n \n \n {renderPidePresupuestoCta()}\n {renderMasInformacionCta()}\n {renderTestDriveCta()}\n {renderPideCitaCta()}\n \n \n \n Dirección\n \n \n {dealerInfo.ShippingStreet}, {dealerInfo.ShippingPostalCode} {dealerInfo.ShippingCity}\n \n \n \n \n
\n \n \n \n \n ) : (\n \n
\n \n Cargando los datos de la instalación\n
\n \n )}\n
\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { OneFormState } from \"src/types\";\n\n\nexport function useGetInstalacion() {\n const dispatch = useDispatch();\n const [loading, setLoading] = useState(true);\n const [selectedDealer, setSelectedDealer] = useState(null);\n const { installations } = useSelector((state: OneFormState) => state.dealersInfo);\n const urlParams = new URLSearchParams(window.location.search);\n const dealer = urlParams.get('dealer');\n\n useEffect(() => {\n if (!window.location) {\n setLoading(false);\n }\n if (!dealer) {\n setLoading(false);\n return;\n }\n if (installations) {\n let filteredInstallation = installations.find((installation) => {\n return installation.KVPSCode__c == dealer\n });\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.VGED_DealerCode__c == dealer\n });\n }\n if (filteredInstallation === undefined) {\n filteredInstallation = installations.find((installation) => {\n return installation.VGED_CommercialName__c == dealer;\n });\n }\n if (filteredInstallation === undefined) {\n setLoading(false);\n setSelectedDealer(null);\n }\n else {\n setSelectedDealer(filteredInstallation);\n dispatch({ type: 'SET_SELECTED_INSTALLATION', payload: filteredInstallation });\n dispatch({ type: 'SET_SELECTED_DEALER', payload: filteredInstallation });\n dispatch({ type: 'SET_SELECTED_', payload: filteredInstallation });\n dispatch({ type: 'SET_URL_DEALER', payload: filteredInstallation });\n dispatch({ type: 'UPDATE_SUGGESTION', payload: filteredInstallation });\n dispatch({ type: 'DEALERS_OR_INSTALLATIONS_MODE', payload: 'installations' });\n setLoading(false);\n }\n\n }\n\n }, [installations])\n\n return { selectedDealer, loading }\n}\n","import React from 'react';\nimport { TriggerProps, useInitiateMatchTriggers } from 'src/feature-app';\nimport { PresupuestoForm } from 'src/forms';\nimport { FormDataGroup } from 'src/types';\n\nconst leadMatchPartialData: Partial = {\n headers: { FORM_OBJECTIVE: 'Presupuesto' },\n fields: {\n formFields: {},\n formularioFlag: 'presupuesto',\n formName: 'lead-match',\n formType: 'quote',\n pageCategory: 'Presupuesto',\n },\n};\n\nexport function LeadMatchTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateMatchTriggers(\n setSelectedJourney,\n \n );\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { OfertaForm } from 'src/forms';\n\nexport function LeadOfertasTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { StockForm } from 'src/forms/Leads/Stock/StockForm';\n\nexport function LeadStockTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n const faContent = useFaContent();\n\n useEffect(() => {\n setSelectedJourney(, true);\n }, []);\n\n return null;\n}\n","import React from 'react';\nimport { EmbeddedFeatureApp, TriggerProps, useFaContent } from 'src/feature-app';\nimport { LeadBonoTrigger } from './LeadBonoTrigger';\nimport { LeadMatchTrigger } from './LeadMatchTrigger';\nimport { LeadOfertasTrigger } from './LeadOfertasTrigger';\nimport { LeadStockTrigger } from './LeadStockTrigger';\n\nconst renderTrigger = (featureApp: EmbeddedFeatureApp, props: TriggerProps) => {\n if (featureApp === 'es-ofertas') {\n return ;\n } else if (featureApp === 'es-stock-teaser') {\n return ;\n } else if (featureApp === 'es-match') {\n return ;\n }else if (featureApp === 'es-bono') {\n return ;\n }\n\n return null;\n};\n\nexport function LeadEmbededTrigger(props: TriggerProps) {\n const faContent = useFaContent();\n\n return renderTrigger(faContent.featureApp, props);\n}\n","import { Text } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { CanalDeContacto, CarlineSelect, PantallaNombreApellido, Email, Telefono, CodigoPostal, ContactInfoWrapper, MultipleCTASelection } from 'src/components';\nimport { OneElementTemplate, OneElementTemplateFullScreen } from 'src/feature-app/Screen';\nimport { MapaLeads, ConfirmacionLeadsNoQuestions } from 'src/forms';\nimport {\n DetalleMotivo,\n ConsentQuestion\n} from 'src/components';\nimport { FormInfo, Steps } from 'src/types';\nimport { LeadsFormsProps } from '../LeadGenericoForm';\nimport { useInitializeLeadForm } from '../use-initialize-lead-form';\nimport { LeadGenericoController } from '../LeadGenericoController';\nimport { useIsComerciales } from 'src/feature-app/hooks';\nimport { leadsCallCenterPartialData } from '.';\nimport { MapaLeadsInPage, PartialDataMasInformacionConfigurador } from 'src/forms/LeadsInPage';\n\nconst getMapaFields = (inPage: boolean) => {\n if (inPage === true) {\n return ;\n } else {\n return ;\n }\n};\n\nenum CallCenterSteps {\n\tCallCenterCampaign,\n\tFormObjective,\n\tModelo,\n\tMapa,\n\tNombreApellido,\n\tCodigoPostal,\n\tContacto,\n\tEmailTelefono,\n\tComentarios,\n\tConfirmacion,\n}\n\n\nexport function CallCenterForm({ updatedFormData, inPage, isConfigurador, isLeadDealer }: LeadsFormsProps) {\n\tconst isComerciales = useIsComerciales();\n\tconst [partialData, setPartialData] = useState(null);\n\tconst ctaFormObjective = [\n\t\t{\n\t\t\tlabel: 'Test Drive',\n\t\t\tvalue: 'Test Drive'\n\t\t},\n\t\t{\n\t\t\tlabel: 'Más Información',\n\t\t\tvalue: 'Más Información'\n\t\t},\n\t\t{\n\t\t\tlabel: 'Presupuesto',\n\t\t\tvalue: 'Presupuesto'\n\t\t},\n\t\t{\n\t\t\tlabel: 'Cita Previa',\n\t\t\tvalue: 'Cita Previa'\n\t\t}\n\t];\n\tconst ctaCallCenterCampaign = [\n\t\t{\n\t\t\tlabel: 'Servicio habitual',\n\t\t\tvalue: 'Servicio habitual'\n\t\t},\n\t\t{\n\t\t\tlabel: 'ID.4 Renting Online',\n\t\t\tvalue: 'ID.4 Renting Online'\n\t\t},\n\t\t{\n\t\t\tlabel: 'No enviado',\n\t\t\tvalue: 'No enviado'\n\t\t}\n\t];\n\t\n\n useEffect(() => {\n if (updatedFormData) {\n\t\t// console.log('updatedFormData', updatedFormData);\n\t\tsetPartialData(updatedFormData);\n } else {\n\t\t// console.log('leadsCallCenterPartialData', leadsCallCenterPartialData);\n\t\tsetPartialData(leadsCallCenterPartialData);\n }\n }, []);\n\n const defaultSteps: Steps[] = [\n {\n\t\ttitle: (\n\t\t\t<>\n\t\t\tOrigen del lead?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t<>\n\t\t\t{inPage ?\n\t\t\t\t}\n\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),\n\t\tscreenIndex: CallCenterSteps.CallCenterCampaign,\n\t\tname: 'CallCenterCampaign',\n\t\toutputs: ['callCenterCampaign'],\n\t\toutputsText: ['callCenterCampaign'],\n\t\tctas: ctaCallCenterCampaign,\n\t},\n\t{\n\t\ttitle: (\n\t\t\t<>\n\t\t\tQue tipo de leads es?\n\t\t\t\n\t\t),\n\t\tfields: (\n\t\t\t<>\n\t\t\t{inPage ?\n\t\t\t\t}\n\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),\n\t\tscreenIndex: CallCenterSteps.FormObjective,\n\t\tname: 'FormObjective',\n\t\toutputs: ['formObjective'],\n\t\toutputsText: ['formObjective'],\n\t\tctas: ctaFormObjective,\n\t},\n\t{\n title: (\n <>\n ¿Qué modelo interesa al cliente?\n \n ),\n fields: (\n <>\n {inPage ?\n
} />\n :\n } />\n }\n \n ),\n screenIndex: CallCenterSteps.Modelo,\n name: 'Modelo',\n outputs: ['modelo'],\n outputsText: ['modelo'],\n },\n isLeadDealer ? null :\n {\n screenIndex: CallCenterSteps.Mapa,\n name: 'Mapa',\n multiStep: true,\n component: getMapaFields(inPage),\n },\n {\n title: (\n <>\n Para poder preparar su visita, necesitamos saber quién es\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CallCenterSteps.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 su código postal\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CallCenterSteps.CodigoPostal,\n name: 'CodigoPostal',\n outputs: ['codigoPostal'],\n outputsText: ['codigoPostal'],\n },\n {\n title: (\n <>\n ¿Cómo prefiere que contactemos con él?\n *\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CallCenterSteps.Contacto,\n name: 'Contacto',\n outputs: ['contacto'],\n outputsText: ['contacto'],\n },\n {\n title: (\n <>\n Para ello necesitaremos sus 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: CallCenterSteps.EmailTelefono,\n name: 'EmailTelefono',\n outputs: ['cellphone', 'email'],\n outputsText: ['cellphone', '/', 'email'],\n },\n {\n title: (\n <>\n ¿Quiere saber algo en concreto?\n \n ),\n fields: (\n <>\n {inPage ?\n } />\n :\n } />\n }\n \n ),\n screenIndex: CallCenterSteps.Comentarios,\n name: 'Comentarios',\n outputs: ['commentsCC'],\n outputsText: ['commentsCC'],\n },\n {\n fields: ,\n name: 'lssi',\n outputs: ['lssi'],\n },\n {\n fields: ,\n name: 'tmk',\n outputs: ['tmk'],\n },\n {\n fields: ,\n isLastStep: true,\n hidePreviousStep: true,\n name: 'Confirmacion',\n },\n ];\n const filteredSteps = defaultSteps.filter((step) => step !== null);\n\n const { loading, steps, firstStep, lastStep } = useInitializeLeadForm(filteredSteps, false, inPage);\n\n const citaVentaInfo: Partial = {\n numberOfScreens: steps.length,\n };\n\n return loading ? null : (\n \n );\n}\n","import { FormDataGroup } from 'src/types';\n\nexport const leadsCallCenterPartialData: Partial = {\n fields: {\n formFields: {},\n formularioFlag: 'masInformacion',\n formName: 'lead-call_center',\n formType: 'contact',\n pageCategory: 'Más Información',\n },\n};\n","import React from 'react';\nimport { ScreenController, useFaContent } from 'src/feature-app';\nimport { TestDriveForm, CitaVentaForm, MasInformacionForm, PresupuestoForm, leadsStockInPagePartialData } from 'src/forms/Leads';\nimport { CallCenterForm } from 'src/forms/Leads/CallCenter';\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\tcase 'call-center':\n\t\treturn renderTrigger();\n\n default:\n throw new Error('No property lead_type in FA Content.');\n }\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n ThemeReference,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { TriggerProps, useTransformToHtml, useFeatureServices } from 'src/feature-app';\nimport { useFaContent, OneFormContent } from 'src/feature-app/hooks';\nimport { CitaVentaForm, MasInformacionForm, PresupuestoForm, TestDriveForm, StockForm } from 'src/forms';\nimport { Calc, Calendar, Info, Interior } from 'src/icons-core-imports';\ninterface ContentProps {\n centerGradient?: boolean;\n themeColor: ThemeReference;\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) => props.themeColor === 'inverted' ? props.theme.colors.gradient.radial : '#ffffff' };\n\n @media all and (min-width: 960px) {\n background.primary: ${(props) =>\n\t\tprops.themeColor === 'inverted' \n\t\t?\n\t\tprops.centerGradient ? props.theme.colors.gradient.radial : props.theme.colors.gradient.right\n\t\t:\n\t\t'#ffffff'};\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.colors.background.primary === '#ffffff' ? '2px solid #001e50' : '2px solid #ffffff')};\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('inverted');\n\n const openTestDriveLayer = () => {\n handleLayerOpen(, 'Pruébalo');\n };\n const openPresupuestoLayer = () => {\n handleLayerOpen(, 'Pide presupuesto');\n };\n const openMasInformacionLayer = () => {\n handleLayerOpen(, 'Pide más información');\n };\n const openCitaVentaLayer = () => {\n handleLayerOpen(, 'Pide cita');\n };\n const openStockLayer = () => {\n handleLayerOpen(, 'Stock');\n };\n\n useEffect(() => {\n if (faContent?.modo === 'Light') {\n setTheme('main');\n }\n\n if (faContent?.userInteraction === 'true') {\n userInteractionService.register('es-oneform::lead-test_drive', {\n action: () => {\n openTestDriveLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-presupuesto', {\n action: () => {\n openPresupuestoLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-mas_informacion', {\n action: () => {\n openMasInformacionLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-cita', {\n action: () => {\n openCitaVentaLayer();\n },\n });\n userInteractionService.register('es-oneform::lead-stock', {\n action: () => {\n openStockLayer();\n },\n });\n }\n }, []);\n\n const renderTestDriveCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openTestDriveLayer()} stretchContent={strechContent}>\n Pruébalo\n \n );\n };\n\n const renderMasInformacionCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openMasInformacionLayer()} stretchContent={strechContent}>\n Pide más información\n \n );\n };\n\n const renderPidePresupuestoCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openPresupuestoLayer()} stretchContent={strechContent}>\n Pide presupuesto\n \n );\n };\n\n const renderPideCitaCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openCitaVentaLayer()} stretchContent={strechContent}>\n Pide cita con un asesor\n \n );\n };\n\n const renderStockCta = (strechContent?: boolean) => {\n let icon = ;\n\n if (thereIsOnlyOneForm(faContent)) {\n icon = null;\n }\n\n return (\n openStockLayer()} stretchContent={strechContent}>\n Pide información del stock\n \n );\n };\n\n const handleLayerOpen = (journey: JSX.Element, label: string) => {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(label);\n setSelectedJourney(journey);\n };\n\n const handleFaContent = () => {\n const width = window.innerWidth;\n let strechContent = false;\n\n if (width < 560 && thereIsOnlyOneForm(faContent)) {\n strechContent = true;\n }\n\n if (faContent?.forms) {\n const renderOrder = faContent.forms.map((form) => {\n switch (form) {\n case 'lead-cita':\n return renderPideCitaCta(strechContent);\n case 'lead-mas_informacion':\n return renderMasInformacionCta(strechContent);\n case 'lead-test_drive':\n return renderTestDriveCta(strechContent);\n case 'lead-presupuesto':\n return renderPidePresupuestoCta(strechContent);\n case 'lead-stock':\n return renderStockCta(strechContent);\n default:\n return null;\n }\n });\n if (renderOrder.length <= 5) {\n if (renderOrder[0]) {\n setFirstCta(renderOrder[0]);\n }\n if (renderOrder[0]) {\n setSecondCta(renderOrder[1]);\n }\n if (renderOrder[2]) {\n setThirdCta(renderOrder[2]);\n }\n if (renderOrder[3]) {\n setFourthCta(renderOrder[3]);\n }\n if (renderOrder[4]) {\n setFiveCta(renderOrder[4]);\n }\n }\n }\n };\n\n useEffect(() => {\n // getCarlines();\n handleFaContent();\n }, []);\n\n const alternativeHeadline = '¿Qué te gustaría hacer ahora?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy =\n 'Estás un paso más cerca de disfrutar del Volkswagen que te gusta. Solo dinos cómo podemos acompañarte para terminar de resolver tus dudas.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n // Dinamizar el theme a través de la config de la feature-app\n <>\n {thereIsOnlyOneForm(faContent) ? (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n\n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n \n \n \n \n \n \n ) : (\n \n \n \n \n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n {faContent?.headline ? faContent.headline : '¿Qué te gustaría hacer ahora?'}\n \n \n \n \n \n {faContent?.bodycopy\n ? faContent.bodycopy\n : 'Estás un paso más cerca de disfrutar del Volkswagen que te gusta. Solo dinos cómo podemos acompañarte para terminar de resolver tus dudas.'}\n \n \n \n \n \n \n {firstCta ? firstCta : null}\n {secondCta ? secondCta : null}\n {thirdCta ? thirdCta : null}\n {fourthCta ? fourthCta : null}\n {fiveCta ? fiveCta : null}\n \n \n \n \n \n )}\n \n );\n}\n","import React from 'react';\nimport { ScreenController, TriggerProps, useFaContent } from 'src/feature-app';\nimport { MGMController } from 'src/forms/MGM';\n\nexport function MGMTrigger(props: TriggerProps) {\n\n\n return (\n
\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n
\n );\n}\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml } from 'src/feature-app';\nimport { NewsletterForm } from '../forms/Newsletter/NewsletterForm';\nimport { useDispatch } from 'react-redux';\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function NewsletterTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n\n const faContent = useFaContent();\n const dispatch = useDispatch();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Suscríbete');\n\n const alternativeHeadline = '¿Quieres estar al día?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy =\n 'Suscríbete a la newsletter y adelántate a las novedades sobre movilidad eléctrica y la familia ID.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport {\n CloseHandleV2,\n FocusLayerSizeV2,\n InteractionLayerSizeV2,\n LayerHandleV2,\n LayerManagerV2,\n} from '@volkswagen-onehub/layer-manager';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useSelector, useStore } from 'react-redux';\nimport { AreYouSureLayer, GenericErrorLayer } from 'src/components';\nimport {\n getTrigger,\n LayerManagerWrapper,\n useFeatureAppConfig,\n useFeatureAppEnvironment,\n useFeatureServices,\n useTrackingManager,\n useIsDevStage,\n} from 'src/feature-app';\nimport { ScreenController } from 'src/feature-app/Screen';\nimport { getSentryHub, setSentryTag } from 'src/feature-app/sentry';\nimport { OneFormState } from 'src/types';\n\nconst basis = 24;\n\nfunction assertCountGridColumn(count: number): void {\n if (process.env.NODE_ENV !== 'production') {\n if (Math.floor(count) !== count) {\n throw new Error('count has to be an integer.');\n }\n\n if (count < 0 || count > basis) {\n throw new Error(`count has to be between 0 and ${basis}.`);\n }\n }\n}\n\nexport function getGridColumn(count: number): string {\n assertCountGridColumn(count);\n\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((100 / basis) * count * 100) / 100}vw`;\n}\n\nexport function getColumnsWidthForBreakpoint(columns: number, breakpoint: number): string {\n assertCountGridColumn(columns);\n\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((breakpoint / basis) * columns * 100) / 100}px`;\n}\n\n// Background determina el color del background, y la altura mínima que debe ocupar este color.\n// Por los errores del layer también determina el width.\n\nexport const BackgroundOneForm = styled.div`\n background-color: ${(props) => props.theme.colors.background.primary};\n min-height: 100vh;\n width: 100vw;\n @media all and (min-width: 960px) {\n width: 960px;\n }\n`;\n\nconst getConfigFormattedName = (name: string) =>\n name\n .replace('_', '-')\n .split('-')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n\nexport function OneFormTrigger() {\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n const { formTheme, genericError } = useSelector(\n (state: OneFormState) => state.formInfo,\n (prev, next) => prev.formTheme === next.formTheme && prev.genericError === next.genericError\n );\n const formName = useSelector((state: OneFormState) => state.formData.fields.formName);\n const oneFormLayer = useRef>(null);\n const oneFormLayerFocus = useRef>(null);\n const genericErrorLayer = useRef>(null);\n const [selectedJourneyElement, setSelectedJourneyElement] = useState(null);\n const [selectedFocusJourney, setSelectedFocusJourney] = useState(null);\n const [CTALabel, setCTALabel] = useState(null);\n const [skipTrackButtonClick, setSkipTrackButtonClick] = useState(false);\n const trackingManager = useTrackingManager();\n const store = useStore();\n const env = useFeatureAppEnvironment();\n const config = useFeatureAppConfig();\n const triggerLoaded = useRef(null);\n const isDevStage = useIsDevStage();\n const sentryHub = getSentryHub();\n\n useEffect(() => {\n if (selectedJourneyElement) {\n handleOneFormLayer();\n // sentryHub.setTag('Form', 'Test');\n }\n\n if (selectedFocusJourney) {\n handleOneFormFocusLayer();\n }\n }, [selectedJourneyElement, selectedFocusJourney]);\n\n useEffect(() => {\n if (genericError) {\n handleGenericErrorLayer();\n }\n }, [genericError]);\n\n useEffect(() => {\n if (triggerLoaded.current && isDevStage) {\n setSentryTag('oneform.trigger', triggerLoaded.current);\n const name = getConfigFormattedName(triggerLoaded.current);\n console.log('%cOneform Loading Trigger:', 'font-weight: 700', name);\n }\n }, [triggerLoaded]);\n\n useEffect(() => {\n if (formName) {\n setSentryTag('oneform.form', formName);\n }\n }, [formName]);\n\n const setSelectedJourney = (selectedJourney: JSX.Element, skipTrackButtonClick?: boolean) => {\n if (skipTrackButtonClick) {\n setSkipTrackButtonClick(skipTrackButtonClick);\n }\n setSelectedJourneyElement(selectedJourney);\n };\n\n const renderOneForm = (state: any, close: CloseHandleV2): JSX.Element => {\n return (\n \n \n \n \n \n );\n };\n\n const renderOneFormFocus = (state: any, close: CloseHandleV2): JSX.Element => {\n return (\n \n \n \n );\n };\n\n const renderGenericErrorLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n \n \n );\n };\n\n const renderAreYouSureLayer = (state: any, close: CloseHandleV2) => {\n return (\n \n {}}\n />\n \n );\n };\n\n const handleOneFormLayer = () => {\n if (!skipTrackButtonClick) {\n trackingManager.trackButtonClick({ contentId: CTALabel });\n }\n const layer = layerManager.openInteractionLayer(renderOneForm, {}, { size: InteractionLayerSizeV2.D });\n oneFormLayer.current = layer;\n };\n\n const handleOneFormFocusLayer = () => {\n if (!skipTrackButtonClick) {\n trackingManager.trackButtonClick({ contentId: CTALabel });\n }\n\n const layer = layerManager.openFocusLayer(\n renderOneFormFocus,\n {},\n { size: FocusLayerSizeV2.A, onClose: () => setSelectedFocusJourney(null) }\n );\n oneFormLayerFocus.current = layer;\n };\n\n const handleGenericErrorLayer = () => {\n const layer = layerManager.openFocusLayer(renderGenericErrorLayer, {}, { size: FocusLayerSizeV2.A });\n genericErrorLayer.current = layer;\n };\n\n const handleAreYouSureLayer = () => {\n const layer = layerManager.openFocusLayer(renderAreYouSureLayer, {}, { size: FocusLayerSizeV2.A });\n return layer;\n };\n\n return React.useMemo(\n () =>\n getTrigger(\n config,\n setSelectedJourney,\n setCTALabel,\n selectedJourneyElement,\n setSelectedFocusJourney,\n selectedFocusJourney,\n triggerLoaded\n ),\n []\n );\n}\n\n// export const OneFormTrigger = React.memo(OneFormTriggerComp);\n","import React from 'react';\nimport { TriggerProps, useInitiateMatchTriggers } from 'src/feature-app';\nimport { MatchProspectForm } from 'src/forms';\n\nexport function ProspectEmbeddedTrigger({ setSelectedJourney }: TriggerProps): JSX.Element {\n useInitiateMatchTriggers(setSelectedJourney, );\n\n return null;\n}\n","import React, { useEffect } from 'react';\nimport { getDealerKvps } from 'src/bff';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { ProspectsPosventaForm, transformMillage } from 'src/forms';\nimport { FormDataFields } from 'src/types';\n\nexport function ProspectPosventaEmbedded({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n if (faContent.featureApp === 'es-calculadora') {\n return ;\n }\n return null;\n}\n\nexport function ProspectPosventaCalculadora({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n const renderForm = (fields: FormDataFields) => {\n setSelectedJourney(\n ,\n true\n );\n };\n useEffect(() => {\n const fields = {\n motivo: 'MANTENIMIENTO',\n formName: 'prospect-posventa-calculadora',\n matricula: faContent?.vehicle[0]?.license,\n kilometros: transformMillage(faContent?.vehicle[0]?.localKM),\n anoMatriculacion: faContent?.vehicle[0]?.licenseDate,\n modelo: faContent?.vehicle[0]?.familyDesc,\n budget: { pvp: faContent?.quotePvp, operations: [...faContent?.quoteOperations] },\n deepLink: faContent?.deepLink,\n };\n const kvps = faContent?.dealer;\n\n getDealerKvps(kvps)\n .then((dealer) => {\n renderForm({ ...fields, dealer });\n })\n .catch((err) => {\n console.error(err);\n renderForm({ ...fields, dealer: {} }); // Hay que ver que hacer en estos casos.\n });\n }, []);\n\n return <>;\n}\n","import {\n Breakpoints,\n Container,\n ContainerGutter,\n CTA,\n Layout,\n LayoutRowGap,\n styled,\n Text,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps } from 'src/feature-app';\nimport { ProspectsVentaForm } from '../forms/Prospects/ProspectsVentaForm';\nimport { useDispatch } from 'react-redux';\n\nconst taigoImage = 'https://cdn.volkswagen.es/repository/app/vw-oneform/assets/images/taigo.png';\n\nconst ImageWrapper = styled.div`\n img {\n width: 100%;\n }\n`;\n\nexport function ProspectsTrigger(props: TriggerProps) {\n const { setSelectedJourney } = props;\n\n const dispatch = useDispatch();\n\n return (\n \n \n \n Nuevo Taigo\n \n \n \n Nuevo Taigo\n \n \n Carácter{' '}todos los días\n \n \n El Nuevo Taigo es para aquellos que marcan sus propias tendencias. Que no solo tienen estilo, sino también\n carácter. Y que cada día encuentran lo extraordinario en lo cotidiano. ¿Será también para ti?\n \n {\n dispatch({ type: 'RESET_STATE' });\n e.preventDefault();\n setSelectedJourney();\n }}\n emphasis='primary'\n >\n Pide más información\n \n \n \n );\n}\n\n","import {\n Breakpoints,\n BreakpointWrapper,\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n Layout,\n styled,\n Text,\n TextAlignment,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { TriggerProps, useFaContent, useTransformToHtml, ScreenController } from 'src/feature-app';\nimport { SACForm } from '../forms/SAC';\nimport { SACOneShopController } from '../forms/SAC/SACOneShop';\nimport { useDispatch } from 'react-redux';\n\n\nconst Content = styled.div`\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n background: radial-gradient(circle at bottom, #00437a 0%, #001e50 100%);\n\n & > div {\n width: 100%;\n }\n`;\n\nconst CenterCTA = styled.div`\n text-align: center;\n`;\n\nexport function SACTrigger(props: TriggerProps) {\n const { setSelectedJourney, setCTALabel } = props;\n const dispatch = useDispatch();\n\n const faContent = useFaContent();\n\n const getCtaLabel = () => (faContent?.cta ? faContent.cta : 'Contáctanos');\n\n const alternativeHeadline = '¿Quieres hablar con nosotros?';\n const getTriggerHeadline = () =>\n faContent?.headline ? useTransformToHtml(faContent.headline) : useTransformToHtml(alternativeHeadline);\n\n const alternativeBodyCopy = 'Explícanos cómo podemos ayudarte y te responderemos muy pronto.';\n const getTriggerbodycopy = () =>\n faContent?.bodycopy ? useTransformToHtml(faContent.bodycopy) : useTransformToHtml(alternativeBodyCopy);\n\n return (\n \n faContent.triggerCase === 'Generico'?\n \n\n \n \n \n \n \n
\n \n\n \n
\n \n \n \n \n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n stretchContent\n >\n {getCtaLabel()}\n \n \n\n \n {\n dispatch({ type: 'RESET_STATE' });\n setCTALabel(getCtaLabel());\n setSelectedJourney();\n }}\n >\n {getCtaLabel()}\n \n \n \n \n \n \n \n \n :\n <>\n }\n closeLayerCallback={close}\n handleAreYouSureLayer={() => null}\n notALayer={true}\n formType = 'inPage'\n />\n \n \n );\n}\n","import {\n CTA\n} from '@volkswagen-onehub/components-core';\nimport React from 'react';\nimport { Magnifier, Reload } from 'src/icons-core-imports';\n\nexport interface CTAMapaProps {\n mapHasMoved: boolean;\n handleSearchArea: () => void\n handleSearchAgain: () => void \n}\n\nexport function CTAMapa({ mapHasMoved, handleSearchArea, handleSearchAgain }: CTAMapaProps) {\n return (\n
\n {mapHasMoved ? (\n {\n e.preventDefault();\n handleSearchArea();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar en esta zona\n \n ) : null}\n {\n e.preventDefault();\n handleSearchAgain();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Buscar de nuevo\n \n
\n );\n}\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n} from '@volkswagen-onehub/components-core';\nimport React, { useRef } from 'react';\nimport { CarPickupService, FleetServicePrivate } from 'src/icons-core-imports';\n\nconst SmallerSVG = styled.div`\n svg {\n height: 12px;\n width: 12px;\n }\n button {\n height: 24px;\n min-height: 24px;\n }\n div {\n font-size: 12px;\n }\n`;\n\nexport interface CTAServicesProps {\n handleClickCarPickup: () => void;\n handleClickReplacementCar: () => void;\n carPickupSelected: boolean;\n replacementCarSelected: boolean;\n}\n\nexport function CTAServices({\n handleClickCarPickup,\n carPickupSelected,\n replacementCarSelected,\n handleClickReplacementCar,\n}: CTAServicesProps) {\n\n\n const sustitucionRef = useRef(null);\n const recogidaRef = useRef(null);\n\n return (\n \n \n {\n e.preventDefault();\n handleClickReplacementCar();\n sustitucionRef.current.blur();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Coche de sustitución\n \n \n \n {\n e.preventDefault();\n handleClickCarPickup();\n recogidaRef.current.blur();\n }}\n ariaLabel=\"aria label\"\n icon={}\n >\n Servicio de recogida\n \n \n \n );\n}\n","import { styled } from '@volkswagen-onehub/components-core';\nimport React, { ReactElement, useEffect, useRef } from 'react';\nimport Slider from 'react-slick';\nimport { NewDealerCard, getDistanceFromLatLngCenter, useMapGeneralController } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { DealerCardWidget } from 'src/widgets';\n\nconst CSSDiv = styled.div`\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n\n /* Slider */\n .slick-slider {\n position: relative;\n\n display: block;\n box-sizing: border-box;\n\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n -webkit-touch-callout: none;\n -khtml-user-select: none;\n -ms-touch-action: pan-y;\n touch-action: pan-y;\n -webkit-tap-highlight-color: transparent;\n }\n\n .slick-list {\n position: relative;\n\n display: block;\n overflow: hidden;\n\n margin: 0;\n padding: 0;\n }\n .slick-list:focus {\n outline: none;\n }\n .slick-list.dragging {\n cursor: pointer;\n cursor: hand;\n }\n\n .slick-slider .slick-track,\n .slick-slider .slick-list {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n -ms-transform: translate3d(0, 0, 0);\n -o-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n\n .slick-track {\n position: relative;\n top: 0;\n left: 0;\n\n display: block;\n }\n .slick-track:before,\n .slick-track:after {\n display: table;\n\n content: '';\n }\n .slick-track:after {\n clear: both;\n }\n .slick-loading .slick-track {\n visibility: hidden;\n }\n\n .slick-slide {\n display: none;\n float: left;\n\n height: 100%;\n min-height: 1px;\n }\n [dir='rtl'] .slick-slide {\n float: right;\n }\n .slick-slide img {\n display: block;\n }\n .slick-slide.slick-loading img {\n display: none;\n }\n .slick-slide.dragging img {\n pointer-events: none;\n }\n .slick-initialized .slick-slide {\n display: block;\n }\n .slick-loading .slick-slide {\n visibility: hidden;\n }\n .slick-vertical .slick-slide {\n display: block;\n\n height: auto;\n\n border: 1px solid transparent;\n }\n .slick-arrow.slick-hidden {\n display: none;\n }\n`;\n\nconst BackgroundCard = styled.div`\n background-color: #ffffff;\n margin: 0 4px;\n`;\n\ninterface CarouselCardsProps {\n handleShowCalendarOnClick?: any;\n handleSeleccionarOnClick: any;\n handleShowSlots?: (point: Points) => string | null;\n pointsToList: Points[];\n isCitaPosventa?: boolean;\n replacementCarSelected?: boolean;\n carPickupSelected?: boolean;\n}\n\nexport const CarouselWidget = (props: CarouselCardsProps) => {\n const {\n clusters,\n handlePointClickAndCarouselMove,\n centerToCalculateDistance,\n handleSelectedPoint,\n handleClusterClick,\n selectedPoint,\n } = useMapGeneralController();\n const {\n handleSeleccionarOnClick,\n handleShowCalendarOnClick,\n handleShowSlots,\n pointsToList,\n isCitaPosventa,\n carPickupSelected,\n replacementCarSelected,\n } = props;\n const sliderRef = useRef(null);\n const childrenRef = useRef(null);\n\n useEffect(() => {\n if (pointsToList.length) {\n const firstPoint = selectedPoint ? selectedPoint : pointsToList[0];\n // handleCarouselMovement(firstPoint);\n handleSelectedPoint(firstPoint);\n // handleSelectedCard(firstPoint);\n }\n }, [pointsToList]);\n\n useEffect(() => {\n // Movimiento del carousel en caso de que se haga click en un Dealer Marker.\n if (selectedPoint) {\n // handleSelectedCard(selectedPoint);\n handleCarouselMovement(selectedPoint);\n }\n }, [selectedPoint, pointsToList]);\n\n const handleSelectedCard = (point: Points) => {\n if (!point.properties.cluster) {\n const { kvps } = point.properties.dealer;\n\n const index = pointsToList.findIndex((dealer) => {\n if (dealer.properties.dealer.kvps === kvps) {\n return true;\n }\n });\n sliderRef.current.slickGoTo(index);\n }\n };\n\n const handleCarouselMovement = (point: Points) => {\n if (point.properties.parent_cluster_id) {\n const parentCluster = clusters.find(\n (cluster) => cluster.properties.cluster && cluster.id === point.properties.parent_cluster_id\n );\n if (parentCluster) {\n // En caso de que el dealer esté dentro de un cluster dentro de otro fijamos el valor de isCluster como true para que llegue hasta el final\n // y no rompa únicamente el primer cluster.\n // handleClusterClick(point, true);\n handleSelectedPoint(point);\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n } else {\n handlePointClickAndCarouselMove(point, false);\n handleSelectedCard(point);\n }\n };\n\n const settings = {\n className: 'center',\n infinite: false,\n centerMode: true,\n centerPadding: '60px',\n slidesToShow: 1,\n swipe: true,\n speed: 500,\n arrows: false,\n beforeChange: (current: number, next: number) => {\n const point: Points = pointsToList.find((point) => {\n if (!point.properties.cluster) {\n if (point.properties.dealer.kvps === childrenRef.current[next].key) {\n return point;\n }\n }\n });\n\n handleCarouselMovement(point);\n },\n };\n return (\n \n {\n sliderRef.current = el;\n if (el && el.props && el.props.children) {\n childrenRef.current = el.props.children.filter((c: any) => c !== null);\n }\n }}\n >\n {pointsToList\n ? pointsToList.map((point: Points, i) => {\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return !point.properties.cluster ? (\n
\n {/* este div es necesario para el funcionamiento de la libreria */}\n \n \n \n
\n ) : null;\n })\n : null}\n
\n \n );\n};\n","import {\n Breakpoints,\n Container,\n ContainerPadding,\n Layout,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance,\n TokenTextColor,\n} from '@volkswagen-onehub/components-core';\nimport { FleetServicePrivate, CarPickupService } from 'src/icons-core-imports';\nimport React, { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useMapGeneralController, getDistanceFromLatLngCenter, usePinState } from 'src/feature-app';\nimport { Points } from 'src/types';\nimport { OneFormState } from 'src/types';\nimport {} from 'src/feature-app';\nimport { useTrackingManager } from 'src/feature-app/hooks/use-tracking-manager';\n\ninterface BoxCardProps {\n selected?: boolean;\n isCarousel: boolean;\n isHover?: boolean;\n isFirstDesktop?: boolean;\n greyCard?: boolean;\n isInverted?: boolean;\n}\n\nconst BoxCard = styled.div`\n width: 100%;\n margin-bottom: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '20px')};\n padding: ${(props) => (props.isCarousel ? '12px' : '20px')};\n border: ${(props) =>\n props.selected && props.greyCard && !props.isCarousel\n ? '2px solid #6A767D'\n : props.selected && props.isInverted && !props.isCarousel\n ? '2px solid #001E50'\n : props.greyCard && !props.isCarousel\n ? '1px solid #6A767D'\n : props.isInverted\n ? '1px solid #C2CACF'\n : props.selected && !props.isCarousel\n ? '2px solid #FFFFFF'\n : props.isCarousel\n ? 'none'\n : '1px solid rgba(255,255,255,0.44)'};\n :hover {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected && props.greyCard\n ? '2px solid #6A767D'\n : props.selected && props.isInverted\n ? '2px solid #001E50'\n : props.greyCard\n ? '1px solid #6A767D'\n : props.selected\n ? '2px solid #FFFFFF'\n : '1px solid #4cc7f4'};\n }\n\n @media all and (min-width: 560px) {\n margin-bottom: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '24px')};\n padding: 20px;\n }\n @media screen and (min-width: 960px) {\n .main {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #001e50;'\n : props.isHover\n ? '1px solid #0040C5'\n : '1px solid #DFE4E8'};\n }\n .inverted {\n border: ${(props) =>\n props.isCarousel\n ? 'none'\n : props.selected\n ? '2px solid #FFFFFF'\n : props.isHover\n ? '1px solid #4cc7f4'\n : '1px solid rgba(255,255,255,0.44)'};\n }\n }\n @media all and (min-width: 1600px) {\n margin-top: ${(props) => (props.isCarousel || props.isFirstDesktop ? '0' : '28px')};\n }\n`;\n\ninterface isCarouselProps {\n isCarousel: boolean;\n}\n\nconst EllipsisTextWrapper = styled.p<{ greyCard?: boolean }>`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-top: 0px;\n margin-bottom: 0px;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n`;\nconst GreyText = styled.span<{ greyCard?: boolean }>`\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n`;\nconst SVGSize = styled.div<{ greyCard: boolean }>`\n padding-left: 16px;\n svg {\n height: 20px;\n width: auto;\n color: ${(props) => (props.greyCard ? '#6A767D' : '#000000')};\n }\n`;\n\nconst CustomCTA = styled.button<{ greyCard?: boolean }>`\n height: 32px;\n width: max-content;\n padding: 8px 16px;\n border: none;\n cursor: pointer;\n border-radius: 22px;\n display: flex;\n align-items: center;\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#001E50')};\n color: ${(props) => (props.greyCard ? '#DFE4E8' : '#FFFFFF')};\n\n :hover {\n background-color: ${(props) => (props.greyCard ? '#6A767D' : '#001E50')};\n }\n`;\n\ninterface DealerCardProps {\n distanceFromCenter: string;\n handleSeleccionarOnClick?: any;\n handleShowCalendarOnClick?: any;\n // center?: Center,\n isCarousel: boolean;\n dealerInfo: any;\n point: Points;\n slots: any;\n handleShowSlots?: (point: Points) => string | null;\n isCitaPosventa?: boolean;\n isFirstDesktop?: boolean;\n carPickupSelected?: boolean;\n replacementCarSelected?: boolean;\n isInverted?: boolean;\n}\n\nexport const DealerCardWidget = React.memo((props: DealerCardProps) => {\n const {\n distanceFromCenter,\n isCarousel,\n dealerInfo,\n point,\n isFirstDesktop,\n carPickupSelected,\n replacementCarSelected,\n isInverted,\n } = props;\n const { suggestionIsAddress } = useSelector((state: OneFormState) => state.formInfo);\n const dealerCompletAdress = `${dealerInfo.markerInfo.dealerInfo.address}, ${dealerInfo.markerInfo.dealerInfo.zipCode} ${dealerInfo.markerInfo.dealerInfo.city}`;\n const {\n centerToCalculateDistance,\n handlePointClickAndCarouselMove,\n handleHoverPoint,\n hoverPoint,\n selectedPoint,\n userIsGeoLocated,\n handleClusterClick,\n } = useMapGeneralController();\n\n const { isActive, isHover } = usePinState(selectedPoint, hoverPoint, point);\n\n const [greyCard, setGreyCard] = useState(false);\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n {\n e.preventDefault();\n if (point.properties.parent_cluster_id) {\n if (window.innerWidth <= 959) {\n handleClusterClick(point, true, true);\n } else {\n handleClusterClick(point, true);\n }\n } else {\n handlePointClickAndCarouselMove(point);\n }\n }}\n onMouseEnter={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(point);\n }\n }}\n onMouseLeave={(e) => {\n if (!isCarousel) {\n e.preventDefault();\n handleHoverPoint(null);\n }\n }}\n >\n
\n {isCarousel ? (\n <>\n {/*card para el carousel*/}\n \n
\n {userIsGeoLocated || suggestionIsAddress ? (\n \n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n\n \n \n {userIsGeoLocated || suggestionIsAddress\n ? distanceFromCenter\n ? `${distanceFromCenter}km`\n : `${getDistanceFromLatLngCenter(centerToCalculateDistance.current, point)}km`\n : null}\n \n \n \n ) : (\n \n \n {dealerInfo.name ? dealerInfo.name : null}\n \n \n )}\n
\n \n {!point.properties.dealer.dmsInfo || !point.properties.dealer.dmsInfo.dmsAvailable ? (\n

\n {dealerCompletAdress}\n

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

\n {dealerCompletAdress}\n

\n
\n
\n <>\n {(point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.replacementCarServiceAvailable) ||\n (point.properties.dealer.dmsInfo && point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) ? (\n \n
\n \n
\n
\n {point.properties.dealer.dmsInfo.replacementCarServiceAvailable ? (\n \n \n \n ) : null}\n {point.properties.dealer.dmsInfo.pickupCarServiceAvailabe ? (\n \n \n \n ) : null}\n
\n \n ) : (\n \n )}\n \n \n )}\n {/* */}\n
\n \n );\n});\n\nconst LeadsCTAs = (props: DealerCardProps) => {\n const { handleSeleccionarOnClick, dealerInfo, point, carPickupSelected, replacementCarSelected } = props;\n const [greyCard, setGreyCard] = useState(false);\n\n const trackingManager = useTrackingManager();\n\n useEffect(() => {\n if (point) {\n if (carPickupSelected && !point.properties.dealer.dmsInfo.pickupCarServiceAvailabe) {\n setGreyCard(true);\n } else if (replacementCarSelected && !point.properties.dealer.dmsInfo.replacementCarServiceAvailable) {\n setGreyCard(true);\n } else {\n setGreyCard(false);\n }\n }\n }, [carPickupSelected, replacementCarSelected, point]);\n\n return (\n \n {/* {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n Seleccionar\n */}\n {\n e.preventDefault();\n trackingManager.trackFormButtonClick(\n {\n contentId: 'Seleccionar',\n },\n dealerInfo\n );\n\n handleSeleccionarOnClick(point);\n }}\n >\n \n Seleccionar\n \n \n \n );\n};\n","import { Breakpoints, BreakpointWrapper, styled } from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { Points } from 'src';\nimport { sortPointsByDistance, useTrackingManager, useFeatureServices } from 'src/feature-app';\nimport { getDistanceFromLatLngCenter, useMapGeneralController } from 'src/feature-app/NewMap';\nimport { CTAServicesProps, DealerCardWidget, ViewDesktopWidgetMapa, ViewMobileWidgetMapa } from 'src/widgets';\nimport { CTAMapaProps } from './CTAMapa';\n\nconst ContentWrapper = styled.div`\n width: 100%;\n /* height: 100%; */\n overflow: visible;\n height: 85vh;\n\n @media all and (min-width: 560px) {\n height: 82vh;\n }\n\n @media all and (min-width: 560px) {\n height: 85vh;\n }\n @media all and (min-width: 960px) {\n height: 60vh;\n }\n @media all and (min-width: 1600px) {\n height: 70vh;\n }\n`;\n\nexport interface ViewWidgetMapaProps {\n handleSeleccionarOnClick: (point: Points) => void;\n renderPoints(\n points: any,\n carPickupSelected?: boolean,\n replacementCarSelected?: boolean,\n isCarousel?: boolean\n ): JSX.Element[];\n pointsToList: Points[];\n CTAServicesProps: CTAServicesProps;\n CTAMapaProps: CTAMapaProps;\n}\n\ninterface MapaScreenProps {\n setShowMap: React.Dispatch>;\n}\n\nexport const MapaScreen = ({ setShowMap }: MapaScreenProps) => {\n const {\n clusters,\n centerToCalculateDistance,\n superClusterRef,\n cardsDistanceRef,\n getNewClusters,\n mapHasMoved,\n resetMap,\n } = useMapGeneralController();\n const trackingManager = useTrackingManager();\n\n const calculadoraFeatureService = useFeatureServices()['calculator-feature-service'];\n\n const [pointsToList, setPointsToList] = useState(null);\n const [carPickupSelected, setCarPickupSelected] = useState(false);\n const [replacementCarSelected, setReplacementCarSelected] = useState(false);\n\n const handleClickCarPickup = () => {\n if (!carPickupSelected) {\n setCarPickupSelected(true);\n } else {\n setCarPickupSelected(false);\n }\n };\n\n const handleClickReplacementCar = () => {\n if (!replacementCarSelected) {\n setReplacementCarSelected(true);\n } else {\n setReplacementCarSelected(false);\n }\n };\n\n const handleSeleccionarOnClick = (point: Points) => {\n if (calculadoraFeatureService) {\n const dealer = point?.properties?.dealer;\n calculadoraFeatureService.setInstallation({ name: dealer.name, code: dealer.kvps });\n } else {\n console.error('calculator-feature-service is not registered');\n }\n };\n\n useEffect(() => {\n if (clusters && superClusterRef.current) {\n const pointsByDistance = sortPointsByDistance(\n clusters,\n centerToCalculateDistance.current,\n superClusterRef.current\n );\n setPointsToList(pointsByDistance);\n }\n }, [clusters, superClusterRef.current]);\n\n const handleSearchArea = () => {\n trackingManager.trackFormButtonClick({\n contentId: 'Buscar en esta zona',\n });\n getNewClusters();\n {\n /*if (setTranslateCarousel) {\n setTranslateCarousel(false);\n }*/\n }\n };\n\n const handleSearchAgain = () => {\n setShowMap(false);\n resetMap();\n };\n\n const renderPoints = (\n points: Points[],\n carPickupSelected?: boolean,\n replacementCarSelected?: boolean,\n isCarousel?: boolean\n ): JSX.Element[] => {\n return points\n ? points.map((point: Points, index: number) => {\n if (!point.properties.cluster) {\n const { dealer } = point.properties;\n const distanceFromCenter = getDistanceFromLatLngCenter(centerToCalculateDistance.current, point);\n\n return (\n {\n cardsDistanceRef.current[index] = el;\n }}\n >\n \n
\n );\n }\n return null;\n })\n : null;\n };\n // De momento la versión mobile no se ve bien ya que están los paddings de la feature app insertados y descuadra el 100vh del content wrapper.\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import {\n Container,\n ContainerGutter,\n ContainerPadding,\n CTA,\n styled,\n Text,\n TextAlignment,\n TokenTextAppearance\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { Suggestion } from 'src';\nimport { Suggest, updateMapVariables, useLocateUser } from 'src/feature-app';\nimport LoadScriptInstance from 'src/feature-app/NewMap/Loadscript';\n\ninterface SuggestionScreenProps {\n setShowMap: React.Dispatch>;\n}\n\nconst LocateWrapper = styled.div`\n overflow: visible;\n padding-top: 44px;\n padding-bottom: 15vh;\n \n @media all and (min-width: 1600px) {\n padding-bottom: 20vh;\n }\n`;\n\nexport const SuggestionScreen = ({ setShowMap }: SuggestionScreenProps) => {\n const dispatch = useDispatch();\n const {\n value,\n setValue,\n suggestion,\n setSuggestion,\n icon,\n locationSuccess,\n setLocationSuccess,\n handleLocate,\n isLocating,\n loading,\n locationDisabled,\n } = useLocateUser();\n const [searchDisabled, setSearchDisabled] = useState(true);\n\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n updateMapVariables(dispatch, suggestion).then(() => {\n setShowMap(true);\n });\n };\n\n useEffect(() => {\n if (suggestion) {\n updateMapVariables(dispatch, suggestion).then(() => {\n setSearchDisabled(false);\n });\n }\n }, [suggestion]);\n\n return (\n {}}>\n \n \n \n ¿Qué taller quieres que se{' '}\n \n encargue?*\n \n \n \n \n
\n \n
\n \n
\n {\n e.preventDefault();\n if (!locationSuccess) handleLocate();\n }}\n disabled={loading ? true : false}\n size=\"small\"\n >\n Localiza mi posición actual\n \n {locationDisabled ? (\n
\n \n Tu localización está deshabilitada\n \n
\n ) : null}\n
\n {\n setShowMap(true);\n }}\n disabled={loading || searchDisabled ? true : false}\n >\n Buscar\n \n
\n
\n
\n
\n );\n};\n","import {\n Container,\n CTA,\n styled,\n ThemeProvider,\n} from '@volkswagen-onehub/components-core';\nimport React, { useState } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { Filtros, NewMap, useMapGeneralController } from 'src/feature-app';\nimport { ArrowLeft } from 'src/icons-core-imports';\nimport { CTAMapa, CTAServices, ViewWidgetMapaProps } from 'src/widgets';\n\nconst MapAndTabsWrapper = styled.div<{ showFilters: boolean }>`\n display: flex;\n\n .wrapper {\n width: 50%;\n height: 100vh;\n &--tabs {\n max-width: 441px;\n overflow-y: hidden;\n }\n &--map {\n position: relative;\n width: 100%;\n z-index: 4;\n height: 100%;\n background-color: grey;\n }\n }\n .opacity-layer {\n position: absolute;\n width: 50%;\n height: 100%;\n left: 0;\n background: rgba(0, 0, 0, 0.4);\n z-index: ${(props) => (props.showFilters ? 6 : -1)};\n opacity: ${(props) => (props.showFilters ? 1 : 0)};\n transition: opacity 0.4s;\n }\n`;\n\nconst ListWrapper = styled.div`\n overflow-y: auto;\n padding-right: 40px;\n // 36px es la medida de los ctas de coche de sustitución y servicio de recogida\n height: calc(85vh - 36px);\n\n @media all and (min-width: 560px) {\n height: calc(82vh - 36px);\n }\n @media all and (min-width: 768px) {\n height: calc(85vh - 36px);\n }\n @media all and (min-width: 960px) {\n height: calc(60vh - 36px);\n }\n @media all and (min-width: 1600px) {\n height: calc(70vh - 36px);\n}\n`;\n\nconst FilterButton = styled.div`\n position: absolute;\n width: 100%;\n top: 24px;\n /* right: 24px; */\n button {\n background: #ffffff;\n }\n`;\n\nconst FiltrosWrapper = styled.div`\n min-height: 100vh;\n width: 50%;\n background-color: #ffffff;\n position: absolute;\n top: 0;\n right: 0;\n z-index: 5;\n transform: translate3d(100%, 0, 0);\n display: none;\n .back-btn {\n position: absolute;\n z-index: 4;\n top: 20px;\n left: 24px;\n @media screen and (min-width: 1600px) {\n top: 24px;\n }\n /* style={{ paddingTop: '12px', paddingLeft: '24px' }} */\n }\n .filtros-component {\n padding-bottom: 0;\n min-height: calc(100vh - 44px);\n }\n &.filtros-enter {\n display: block;\n transform: translate3d(100%, 0, 0);\n }\n &.filtros-enter-active {\n display: block;\n transform: translate3d(0, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-enter-done {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit {\n display: block;\n transform: translate3d(0, 0, 0);\n }\n &.filtros-exit-active {\n display: block;\n transform: translate3d(100%, 0, 0);\n transition: all 0.4s;\n }\n &.filtros-exit-done {\n display: none;\n transform: translate3d(100%, 0, 0);\n }\n`;\n\nexport const ViewDesktopWidgetMapa = (props: ViewWidgetMapaProps) => {\n const { renderPoints, pointsToList, CTAServicesProps, CTAMapaProps } = props;\n const { carPickupSelected, replacementCarSelected } = CTAServicesProps;\n const [showFiltros, setShowFiltros] = useState(false);\n\n const { searchIsDealer } = useMapGeneralController();\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n };\n\n return (\n <>\n \n
\n {/* */}\n \n \n
\n {pointsToList ? (\n \n
\n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, false)}\n
\n
\n ) : null}\n
\n
\n
\n
\n \n {/* Problemas con el scroll */}\n \n \n \n \n \n
\n
setShowFiltros(false)} />\n \n {/* {showFiltros ? ( */}\n\n \n {/* provar primer així i després amb render condicional .\n si es passa a condicional reisar front, probablement s'hauran de treure les css asignades a la clase\n filtros-component del component filtros-wrapper.\n */}\n \n \n
\n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n
\n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n
\n {/* ) : null}*/}\n \n );\n};\n","import {\n Container,\n ContainerPadding,\n CTA,\n styled,\n Text,\n ThemeProvider,\n TokenTextAppearance,\n} from '@volkswagen-onehub/components-core';\nimport React, { useEffect, useState } from 'react';\nimport { Filtros, NewMap, useMapGeneralController, useOneFormContext } from 'src/feature-app';\nimport { Close, Locate } from 'src/icons-core-imports';\nimport { CarouselWidget, CTAMapa, CTAServices, ViewWidgetMapaProps } from 'src/widgets';\n\n//Mobile styled components\n\nconst Wrapper = styled.div`\n display: flex;\n position: relative;\n`;\n\nconst WrapperCTAMapa = styled.div`\n z-index: 20;\n width: 100%;\n padding-top: 12px;\n position: absolute;\n\n & button {\n background: #ffffff;\n }\n`;\n\nconst FilterMobileNavbar = styled.div`\n position: relative;\n top: 0;\n width: 100vw;\n padding: 0px 20px;\n z-index: 20;\n background-color: #ffffff;\n display: flex;\n justify-content: space-between;\n`;\n\ninterface VerMasYCarouselPositionProps {\n translateCarousel: boolean;\n userIsGeoLocated: boolean;\n}\n\nconst VerMasYCarouselPosition = styled.div`\n position: absolute;\n bottom: 38px;\n height: ${(props) => (props.userIsGeoLocated ? '216px' : '160px')};\n width: 100%;\n transform: ${(props) => (props.translateCarousel ? 'translateY(116px)' : null)};\n @media all and (min-width: 560px) {\n height: ${(props) => (props.userIsGeoLocated ? '244px' : '184px')};\n }\n`;\nconst SoloCardWrapper = styled.div`\n background-color: #ffffff;\n bottom: 8px;\n height: fit-content;\n position: absolute;\n margin: 0 var(--size-grid002);\n width: var(--size-grid020);\n\n .box-card-wrapper {\n border: none;\n margin-top: 0;\n }\n`;\nconst CTASwrapper = styled.div`\n padding-right: 20px;\n padding-bottom: 12px;\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n`;\nconst VerMasTalleresCTA = styled.div`\n height: 32px;\n padding-right: 16px;\n padding-left: 16px;\n background-color: #ffffff;\n border: 1px solid #001e50;\n border-radius: 500px;\n color: #001e50;\n display: flex;\n align-items: center;\n width: 100px;\n`;\nconst ControllerBackground = styled.div`\n border-radius: 100%;\n background-color: #ffffff;\n height: 44px;\n width: 44px;\n margin-bottom: 12px;\n button {\n border: 1px solid #001e50;\n }\n`;\n\ninterface CloseButtonProps {\n isTabsClose?: boolean;\n}\nconst CloseButtonWrapper = styled.div`\n position: absolute;\n padding-bottom: ${(props) => (props.isTabsClose ? '12px' : null)};\n /* background-color: ${(props) => (props.isTabsClose ? '#FFFFFF' : '#FFFFFF')}; */\n background-color: #ffffff;\n width: 100%;\n padding-top: 12px;\n padding-left: 12px;\n z-index: 4;\n @media screen and (min-width: 560px) {\n left: 20px;\n }\n button {\n color: ${(props) => (props.isTabsClose ? '#001E50' : null)};\n }\n`;\nconst listIcon = require('../../feature-app/NewMap/assets/filter-ic_list.svg');\n\nexport const ViewMobileWidgetMapa = (props: ViewWidgetMapaProps) => {\n const { handleSeleccionarOnClick, renderPoints, pointsToList, CTAServicesProps, CTAMapaProps } = props;\n const { carPickupSelected, replacementCarSelected } = CTAServicesProps;\n\n const { handlePreviousStep } = useOneFormContext();\n\n const { centerInGeoLocatedCenter, userIsGeoLocated, searchIsDealer } = useMapGeneralController();\n\n //controladores de vista\n\n const [showFiltros, setShowFiltros] = useState(false);\n const [showTalleres, setShowTalleres] = useState(false);\n const [showMap, setShowMap] = useState(true);\n const [translateCarousel, setTranselateCarousel] = useState(false);\n\n //otros\n const [gelocalizationActive, setGelocalizationActive] = useState(false);\n\n useEffect(() => {\n if (userIsGeoLocated) {\n setGelocalizationActive(true);\n }\n }, [userIsGeoLocated]);\n\n const handleShowFiltros = () => {\n setShowFiltros(!showFiltros);\n setShowTalleres(false);\n };\n const handleShowTalleres = () => {\n setShowTalleres(!showTalleres);\n setShowFiltros(false);\n };\n\n useEffect(() => {\n if (showFiltros === false && showTalleres === false) {\n setShowMap(true);\n } else {\n setShowMap(false);\n }\n }, [showFiltros, showTalleres]);\n\n return (\n
\n {showMap ? (\n <>\n \n {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n onTouchStart={(e) => {\n setTranselateCarousel(false);\n }}\n >\n \n \n \n \n \n \n \n \n \n
\n \n\n {pointsToList ? (\n searchIsDealer ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, true)}\n \n ) : (\n {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n onTouchStart={(e) => {\n e.preventDefault();\n setTranselateCarousel(false);\n }}\n userIsGeoLocated={userIsGeoLocated}\n >\n \n \n {gelocalizationActive ? (\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n >\n {\n e.preventDefault();\n centerInGeoLocatedCenter();\n e.stopPropagation();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n ) : null}\n {\n e.preventDefault();\n e.stopPropagation();\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n handleShowTalleres();\n setTranselateCarousel(false);\n }}\n >\n \n \n Ver lista\n \n \n \n \n\n {/* Aunque en principio no debería devolver nunca sólo un resultado, dejo el siguiente\n render condicional por is acaso */}\n {pointsToList.length === 1 ? (\n \n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, true)}\n \n ) : (\n \n )}\n \n )\n ) : null}\n \n ) : (\n <>\n {showTalleres ? (\n \n \n {\n e.preventDefault();\n handleShowTalleres();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n \n \n\n {renderPoints(pointsToList, carPickupSelected, replacementCarSelected, false)}\n \n
\n ) : showFiltros ? (\n \n \n \n {\n e.preventDefault();\n handleShowFiltros();\n }}\n ariaLabel=\"aria label\"\n icon={}\n />\n \n handleShowFiltros()}\n showFiltros={showFiltros}\n setShowFiltros={setShowFiltros}\n onlySuggest={true}\n concesionario={true}\n />\n
\n
\n ) : null}\n \n )}\n
\n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { useDispatch, useStore } from 'react-redux';\nimport { DealersData, Suggestion } from 'src';\nimport {\n useGetDealers,\n useFeatureAppEnvironment,\n FullScreen,\n ScreenController,\n updateMapVariables,\n LayerManagerWrapper,\n useFeatureServices,\n} from 'src/feature-app';\nimport { LoadingLayer } from 'src/forms';\nimport { MapGeneralController } from 'src/feature-app/NewMap';\nimport { MapaScreen } from './MapaScreen';\nimport { SuggestionScreen } from './SuggestionScreen';\nimport { FocusLayerSizeV2, LayerManagerV2 } from '@volkswagen-onehub/layer-manager';\n\nexport function WidgetMapa() {\n const { selectedDealer, dealers, loading } = useGetDealers();\n const [showMap, setShowMap] = useState(false);\n const store = useStore();\n const dispatch = useDispatch();\n const env = useFeatureAppEnvironment();\n const onSuggestionSelectedFn = (suggestion: Suggestion) => {\n updateMapVariables(dispatch, suggestion).then(() => {\n setShowMap(true);\n closeLoadingLayer();\n });\n };\n const loadingLayer = useRef(null);\n const calculadoraFeatureService = useFeatureServices()['calculator-feature-service'];\n const layerManager = useFeatureServices()['layer-manager'] as LayerManagerV2;\n\n const renderLoadingLayer = () => {\n return (\n \n \n \n );\n };\n\n const openLoadingLayer = () => {\n if (!loadingLayer.current) {\n const layer = layerManager.openFocusLayer(renderLoadingLayer, {}, { size: FocusLayerSizeV2.A });\n loadingLayer.current = layer;\n }\n };\n\n const closeLoadingLayer = () => {\n if (loadingLayer.current) {\n loadingLayer.current.close();\n loadingLayer.current = null;\n }\n };\n\n useEffect(() => {\n const kvps = calculadoraFeatureService?.getCalculatorData()?.installation?.code;\n dispatch({ type: 'DISABLE_TRACKING' });\n if (!kvps) {\n return;\n }\n openLoadingLayer();\n\n if (dealers) {\n const dealer: DealersData = dealers?.find((dealer) => dealer.kvps === kvps);\n if (dealer) {\n onSuggestionSelectedFn(dealer);\n }\n }\n }, [dealers, loading]);\n\n return (\n \n null}\n selectedJourney={\n showMap ? : \n }\n />\n \n );\n}\n","import React from 'react';\nimport { TriggerProps, useFaContent } from 'src/feature-app';\nimport { WidgetMapa } from 'src/widgets';\n\nexport function WidgetTrigger({ setSelectedJourney }: TriggerProps) {\n const faContent = useFaContent();\n\n if (faContent.widget === 'Mapa') {\n return ;\n }\n return null;\n }\n","import {Suggestion} from './feature-app';\n\nexport interface OneFormState {\n\tformData: FormDataGroup;\n\tformInfo: FormInfo;\n\tdealersInfo: DealersInfo;\n\tvehiclesInfo: VehiclesInfo;\n}\n\nexport interface Preconfiguration {\n\tactivo: number;\n\tactivoMatch: number;\n\tactivoOffers: boolean;\n\tcapacidadMaletero: number[];\n\tcarline: {\n\t\tcode: number;\n\t\tname: string;\n\t\ttext: string;\n\t\ttitle: string;\n\t};\n\tcolores: {\n\t\tinterior: string;\n\t\texterior: {\n\t\t\tnombre: string;\n\t\t\tcodigo: string;\n\t\t\thexadecimal: string;\n\t\t\tinvertido: number;\n\t\t\tatrevido: number;\n\t\t\telegante: number;\n\t\t};\n\t};\n\tconfigToken: string;\n\tetiquetaDGT: string;\n\tconduccion: any;\n\tdescripcion: string;\n\tdescuentos: {[index: string]: number};\n\tdestacados: any;\n\tequipamiento: string;\n\tid: number;\n\tmarketingCode: string;\n\tllantas: string;\n\tmarketingLongText: string;\n\tmarketingShortText: string;\n\tespacio: any;\n\tmotorizacion: string;\n\tpasajeros: any;\n\tplazas: number;\n\tprecio: number;\n\tpresupuesto: any;\n\tprioridad: number;\n\ttapiceria: string;\n\ttitular: string;\n\turl: string;\n\tvisible: boolean;\n\ttitle: string;\n}\nexport interface RankedPreconfiguration extends Preconfiguration {\n\toperaciones?: any[];\n\tpuntuacion?: number;\n\tpuntuaciones?: number[];\n\tsumHighlights?: number;\n\ttotalStyle?: number;\n\taffinity?: number;\n\tbudgetOffset?: number;\n}\n\nexport const isDealerData = (suggestion: Suggestion): suggestion is DealersData => {\n\tif (!suggestion) return null;\n\treturn (suggestion as DealersData).dmsInfo !== undefined;\n};\nexport interface DealersInfo {\n\tcarlines: CarlineBase[];\n\t/**\n\t * 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\t */\n\tcitaCarlines: CarlineBase[];\n\tdealers: DealersData[];\n\tselectedCarline: CarlineBase;\n\tinstallations: Installation[];\n\tpoints: Points[];\n\tfavouriteDealer: DealersData;\n\t/**\n\t * 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\t */\n\turlDealer: DealersData;\n\tselectedDealer: DealersData;\n\tselectedInstallation: Installation;\n\tdealersOrInstallationsMode: DealersOrInstallationsMode;\n\toferta: Offer;\n\tsalesGroup: SalesGroupInfo;\n\tmatch: RankedPreconfiguration;\n}\n\nexport type DealersOrInstallationsMode = 'dealers' | 'installations';\nexport interface InstallationResponse {\n\tcontent: {attributes: DomainAttributesValues[]}[];\n}\n\nexport interface InstallationEntregaIdealResponse {\n\tinstalaciones: [];\n}\n\nexport interface VehiclesInfo {\n\tbrands: [];\n\tmodels: [];\n\tbrandSelected: string;\n\tmodelSelected: string;\n}\n\nexport interface FormDataGroup {\n\tfields: FormDataFields;\n\theaders: FormDataHeaders;\n\tflags?: FormDataFlags;\n}\n\nexport type Horario = 'before' | 'morning' | 'evening' | 'afternon';\nexport interface FormDataFields {\n\tname?: string;\n\thorario?: Horario;\n\tslot?: Slot;\n\t[key: string]: any;\n\tdealer?: any;\n}\n\nexport interface FormDataHeaders {\n\t[key: string]: any;\n}\nexport interface FormDataFlags {\n\t[key: string]: string;\n}\n\nexport interface FormInfo {\n\t/**\n\t * 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\t * usuario vuelva hacia atrás el journey debe seguir siendo siempre el mismo.\n\t */\n\tfirstMapLoad?: boolean;\n\t/**\n\t * 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\t */\n\tformStarted: boolean;\n\t/**\n\t * 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\t */\n\tformEnded: boolean;\n\t/**\n\t * Flag en caso de que uno de los steps necesite mostrarse en fullscreen sin los botones de navegación.\n\t */\n\tformResponse?: any;\n\n\t/**\n\t * Flag para determinar el tema de color del form\n\t */\n\tformTheme?: 'main' | 'inverted';\n\t/**\n\t * Flag para determinar si el form se despliega en un layer o no\n\t */\n\tnotALayer?: boolean;\n\t/**\n\t * Flag para determinar el tipo de front de un formulario: layer, encuesta o module\n\t */\n\tformType?: 'layer' | 'inPage' | 'module';\n\n\t/**\n\t * Flag para determinar si hay que alinear al centro, para forms formato full screen cuando solo hay una pantalla\n\t */\n\talingItemsCenter?: boolean;\n\t/**\n\t * Flag que indica que el formulario ya ha terminado y se ha enviado.\n\t */\n\tformSubmitted: boolean;\n\tfullScreen: boolean;\n\t/**\n\t * Objeto con los parámetros necesarios para inicializar el mapa a partir de la búsqueda del suggest\n\t */\n\tgeometry?: Geometry;\n\t/**\n\t * Flag para controlar si hay un error que impide que se pueda seguir avanzando y se tenga que cerrar el layer.\n\t */\n\tgenericError: boolean;\n\t/**\n\t * 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\t */\n\tinitialZoom?: number;\n\tinitialSteps?: Steps[];\n\n\t/**\n\t * Componente que se mostrará después de realizar el envío del formulario.\n\t */\n\tthankYouComponent: JSX.Element;\n\tlastStep?: Steps;\n\tmultiSteps?: Steps[];\n\tmultiStepScreenIndex?: number;\n\t/**\n\t * Flag para detectar si se está avanzando hacia adelante o hacia atrás (principalmente útil en los multisteps).\n\t */\n\tnavigationMovingForward?: boolean;\n\tnextNumber?: number;\n\tnextStepCallback?: () => number;\n\tnumberOfScreens: number;\n\tpreviousStepCallback?: () => void;\n\tscreenIndex: number;\n\t/**\n\t * Flag que se activa en caso de que haya un problema con la DMS a la hora de grabar la cita.\n\t */\n\tsendDmsFailed?: boolean;\n\tsendFormCallback?: () => Promise;\n\tshowFinalScreen: boolean;\n\t/**\n\t * Flag para mostrar el calendario o no al volver hacia atrás en cita posventa.\n\t */\n\tshowCalendarOnLoad?: boolean;\n\tstep: Steps;\n\tsteps: Steps[];\n\tstepsHistory: number[];\n\tstepsLiteralFields: [];\n\t/**\n\t * Flag para controlar en el mapa si el usuario ha seleccionado una concesión, para mostrar directamente el calendario.\n\t */\n\tsuggestionIsDealer?: boolean;\n\t/**\n\t * Flag para impedir avanzar al usuario en caso de que seleccione un resultado en las islas canarias para poder redirigir.\n\t */\n\tsuggestionIsInCanaryIslands?: boolean;\n\t/**\n\t * Flag que indica si la sugerencia seleccionada es una dirección o no, para mostrar el marker de geolocalización.\n\t */\n\tsuggestionIsAddress?: boolean;\n\t/**\n\t * Desactivamos el tracking en algunos journeys\n\t */\n\ttrackingIsDisabled?: boolean;\n\t/**\n\t * Flag para ocultar el legal que se muestra por defecto en la pantalla de confirmación.\n\t */\n\thideLegal?: boolean;\n\t/**\n\t * Elemento para mostrar un legal custom en la pantalla de legales.\n\t */\n\tcustomLegal?: JSX.Element;\n\ttriggerExitAnimation: boolean;\n\tuserCenter?: Center;\n\tuserIsAuthenticated?: boolean;\n\tuserSuggestion?: Suggestion;\n\tuserGeoLocation?: Suggestion;\n\twaitForNextStep: boolean;\n\n\t//ocultar el close component y el previous step en steps configurados especialmente\n\tdeleteCloseAndPrevious?: boolean;\n}\n\nexport interface Points {\n\tid?: number;\n\ttype?: string;\n\tproperties?: {\n\t\tparent_cluster_id?: number;\n\t\tcluster: boolean;\n\t\tconcesionId?: string | number;\n\t\tdealer?: DealersData;\n\t\tinstallation?: Installation;\n\t\tcluster_id?: number;\n\t\tdistanceFromCenter?: string;\n\t\tearliestSlot?: number;\n\t\tpoint_count?: number;\n\t\tselected?: boolean;\n\t};\n\tgeometry?: {\n\t\ttype?: string;\n\t\tcoordinates?: [number, number];\n\t};\n}\n\nexport interface Center {\n\tlat: number;\n\tlng: number;\n}\n\nexport interface Steps {\n\tname?: string;\n\tcomponent?: JSX.Element;\n\tfields?: JSX.Element;\n\tfullScreen?: boolean;\n\tmultiStep?: boolean;\n\tmultiStepLastScreen?: boolean;\n\toutputs?: string[];\n\toutputsText?: string[];\n\tctas?: any[];\n\toutputsIsStars?: boolean;\n\ttrueOrFalseQuestion?: boolean;\n\tscreenIndex?: number;\n\talternateTitle?: JSX.Element;\n\ttitle?: JSX.Element;\n\tisLastStep?: boolean;\n\t/**\n\t * Flag para controlar que se dispare el evento correcto de analítica en la primera carga del layer.\n\t */\n\tisFirstStep?: boolean;\n\t/**\n\t * Flag para ocultar si es necesario que se muestre el componente PreviousStep en el step.\n\t */\n\thidePreviousStep?: boolean;\n\t/**\n\t * Flag para determinar si el step contiene un select con dropdown NO nativo\n\t */\n\tshowOverflow?: boolean;\n}\n\nexport interface MolecularResponse {\n\tcontent: {\n\t\tstatus: string;\n\t\tcode: string;\n\t\tmessage: string;\n\t\tdata: object;\n\t};\n\tparams: {\n\t\tfields: {\n\t\t\tCOD_LEAD_ID: string;\n\t\t};\n\t\theaders: object;\n\t};\n\tstatus: {\n\t\tcode: number;\n\t\tresult: string;\n\t\troute: string;\n\t\ttime: number;\n\t};\n\tsuccess: boolean;\n}\n\nexport interface OneformBFFResponse {\n\tcontent: Availability | any;\n\tparams: any;\n\tstatus: {\n\t\tcode: number;\n\t\tduration: number;\n\t\tmessage: string;\n\t\tresult: string;\n\t\ttimestamp: string;\n\t};\n}\n\nexport interface SalesGroupInfo {\n\tsalesGroupId: string;\n\tsalesGroupName: string;\n}\n\nexport interface AppadapResponse extends MolecularResponse {\n\tcontentNDPS: {status: string; code: string; message: string; data: object};\n}\nexport interface DomainAttributesValues {\n\tname: DomainAttributesName;\n\tvalue?: string;\n}\n\ntype DomainAttributesName =\n\t| 'Id'\n\t| 'VGED_CommercialName__c'\n\t| 'ShippingStreet'\n\t| 'ShippingPostalCode'\n\t| 'ShippingCity'\n\t| 'ShippingLatitude'\n\t| 'ShippingLongitude'\n\t| 'ShippingStateCode'\n\t| 'VGED_DealerCode__c'\n\t| 'KVPSCode__c'\n\t| 'TXT_V_Installation_Data_Name__c'\n\t| 'TXT_V_Installation_Code__c';\n\nexport interface DomainAttributes {\n\tattributes: DomainAttributesValues[];\n}\n\nexport interface DomainResponse {\n\tcontent: DomainAttributes[];\n\tparams: {\n\t\ttoken: string;\n\t\tdomain: string;\n\t};\n\tstatus: {\n\t\tcode: string;\n\t\tresult: string;\n\t\troute: string;\n\t\ttime: number;\n\t};\n}\n\nexport interface VicciResponse {\n\texpandedConfiguration: {\n\t\tsalesgroupKey: string;\n\t};\n}\n\nexport interface DealersData {\n\tid?: number | string;\n\tname?: string;\n\tkvps?: string;\n\tcodInstalacion?: string;\n\tslots?: Slots;\n\tmarkerInfo?: {\n\t\tdealerInfo?: DealerInfo;\n\t\tsvcLocation?: SvcLocation;\n\t\tid?: string;\n\t};\n\tdmsInfo?: DmsInfo;\n\tavailabilityInfo?: null;\n}\n\nexport interface Slots {\n\tmorning: Slot;\n\tafternon: Slot;\n\tevening: Slot;\n}\n\nexport type SlotsTime = 'morning' | 'afternon' | 'evening';\n\nexport interface SvcLocation {\n\tlatitude: number;\n\tlongitude: number;\n}\n\nexport interface Slot {\n\tfrom: number;\n\tto: number;\n\treplacementCarServiceAvailable: boolean;\n\tdayMoment: {code: string; name: string};\n\tassessorCode: string;\n}\n\nexport interface DmsInfo {\n\tname?: string;\n\tphone?: string;\n\temail?: string;\n\tdmsAvailable: boolean;\n\tdealerId: {\n\t\tkvps: string;\n\t\tcodInstalacion: string;\n\t\tbrand: string;\n\t};\n\treplacementCarServiceAvailable: boolean;\n\tpickupCarServiceAvailabe: boolean;\n\toverhaulingServiceAvialable: boolean;\n\tassessors: Assessors[];\n\treference: string;\n}\n\nexport interface Assessors {\n\tcode: string;\n\tname: string;\n}\nexport interface DealerInfo {\n\tdealerId?: {\n\t\tkvps?: string;\n\t\tcodInstalacion?: string;\n\t\tbrand?: string;\n\t};\n\tname?: string;\n\tphone?: string;\n\tdepartmentCode?: string;\n\tcontactName?: string;\n\tmail?: string;\n\tcity?: string;\n\tprovince?: string;\n\tcountry?: string;\n\taddress?: string;\n\tzipCode?: string;\n\turls?: string[];\n}\n\nexport interface Availability {\n\tcontent: {\n\t\tdealer: DmsInfo;\n\t\tcalendar: Calendar[];\n\t};\n}\n\nexport interface Calendar {\n\tdate: string;\n\tslots: CalendarSlot[];\n}\n\nexport interface Day {\n\tdayNumber: string;\n\tdayOfTheWeek: string;\n\tdate: string;\n\tdisabled: boolean;\n\tactive: boolean;\n}\n\nexport interface CalendarSlot {\n\thour: string;\n\tassessor: string;\n\tfrom: number;\n\tto: number;\n\treplacementCarServiceAvailable: boolean;\n\tdayMoment: {code: string; name: string};\n\tassessorCode: string;\n\tGMT: string;\n}\n\nexport interface EntregaIdealHorarioResponse {\n\tdate: string;\n\tturnos: EntrgaIdealTurnos[];\n}\ninterface EntrgaIdealTurnos {\n\tto: string;\n\tfrom: string;\n}\n\nexport interface Survey {\n\tdealer?: {\n\t\tmarkerInfo: {};\n\t\tdmsInfo: {};\n\t};\n\ttc?: string;\n\tdeviceType: string;\n\turlOrigin: string;\n\turl: string;\n\tformId: string;\n\tformVersion: string;\n\tdeepLink?: string;\n\tbudget?: string;\n\twaid?: string;\n}\n\nexport interface Campaign {\n\tactivo: number;\n\tsalesforce: string;\n\tdfo: {\n\t\tofertas: string;\n\t};\n}\n\nexport interface modelCar {\n\tid: number;\n\tname: string;\n\ttitle: string;\n\tbrand: string;\n\tmodel: string;\n}\n\nexport interface CarlineBase {\n\tactivo: boolean;\n\tactivoMatch: boolean;\n\tactivoMeasurements: boolean;\n\tactivoOffers: boolean;\n\tcampaign: Campaign;\n\tcapacidadMaletero: number[];\n\tcategorias: Object;\n\tcode: number;\n\tid: number;\n\tlegalConsumos: string;\n\tmedidas: Object;\n\tname: string;\n\tnuevo: boolean;\n\tprecioMinimo?: number;\n\tprecioMinimoModalidad?: string;\n\tprecioMinimoText?: string;\n\tshowroomURL: string;\n\ttext: string;\n\ttitle: string;\n\tplazas: number;\n\tformularios: {\n\t\ttestDrive: FormulariosFlagValue;\n\t\tpresupuesto: FormulariosFlagValue;\n\t\tmasInformacion: FormulariosFlagValue;\n\t\tprospect: FormulariosFlagValue;\n\t};\n}\n\nexport interface CarlinesWithSalesgroups extends CarlineBase {\n\tsalesGroups?: Salesgroup[];\n}\n\nexport interface Salesgroup {\n\tid: number;\n\tcode: number;\n\tname: string;\n\tyear: number;\n}\n\nexport interface Offer {\n\tanchor: string;\n\tactivo: number;\n\tcarline: {\n\t\tid: number;\n\t\tnuevo: number;\n\t\tcode: number;\n\t\tname: string;\n\t\ttitle: string;\n\t\ttext: string;\n\t\tsalesgroup: {\n\t\t\tid: number;\n\t\t\tcode: number;\n\t\t\tname: string;\n\t\t\tyear: number;\n\t\t\tmodel: {\n\t\t\t\tid: number;\n\t\t\t\tcode: string;\n\t\t\t\tname: string;\n\t\t\t\tdescripcion: string;\n\t\t\t};\n\t\t};\n\t};\n\tcolores: {\n\t\texterior: Color;\n\t\tinterior: Color;\n\t};\n\tcuota: number;\n\tcuotaInfo: string;\n\tcuotaText: string;\n\tcuotaTipo: string;\n\tcuotaFinal: string;\n\tdco: number;\n\tdescripcion: string;\n\tequipamientos?: OfferEquipments;\n\tcuotaEntrada: string;\n\tfinanciacionName: string;\n\tfinanciacionText: string;\n\tid: number;\n\tlegal: string;\n\tmarketingCode: string;\n\tmediaAssets: MediaAsset;\n\tmodalidad: string;\n\tmotorizacion: string;\n\tmotor: {\n\t\tcombustible: string;\n\t\tdsg: number;\n\t\tfourMotion: number;\n\t\ttiptronic: number;\n\t\tcambio: string;\n\t};\n\tmyRenting: boolean;\n\tplazos: number;\n\tnext: boolean;\n\tourRenting: boolean;\n\tprecio: number;\n\tprecioText: string;\n\tprioridad: number;\n\tpromociones: Promociones[];\n\ttin: string;\n\ttae: string;\n}\n\nexport interface Promociones {\n\tname: string;\n\ttext: string;\n\tdescripcion: string;\n}\n\nexport interface Color {\n\tnombre: string;\n\tcodigo: string;\n\thexadecimal: string;\n\tinvertido: boolean;\n\tatrevido: boolean;\n\telegante: boolean;\n}\nexport interface OfferEquipments {\n\tserie: OfferEquipment[];\n\tpromocional: OfferEquipment[];\n\tdestacados: OfferEquipment[];\n}\nexport interface OfferEquipment {\n\tequipamiento: {\n\t\ttitulo: string;\n\t\tdescripcion: string;\n\t\ticono: string;\n\t};\n}\n\nexport interface MediaAsset {\n\t'CarSideview': string;\n\t'CarStage3-4': string;\n}\n\nexport type FormularioFlagType = 'testDrive' | 'presupuesto' | 'masInformacion' | 'prospect';\nexport type FormulariosFlagValue = 0 | 1;\n\nexport interface Geometry {\n\tlat: number;\n\tlng: number;\n\tbounds?: google.maps.LatLngBounds;\n\tviewport?: google.maps.LatLngBounds;\n}\n\nexport type SelectedTab = 'ubicacion' | 'horario';\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\t| 'atrevido'\n\t| 'comodo'\n\t| 'deportivo'\n\t| 'sostenible'\n\t| 'elegante'\n\t| 'seguro'\n\t| 'sonido'\n\t| 'tecnologico';\n\n// Necesario para el envío de los formularios de Match\nexport interface MatchSelectedOptions {\n\tbudget: number;\n\tpassengers: [number, number];\n\tluggage: number[];\n\tusage: number[];\n\thighlights: number[];\n\tfuel: FuelTypes;\n}\n\nexport interface ArgumentativeBlock {\n\tkey: string;\n\ticon?: JSX.Element;\n\ttitle?: string;\n\tboldTitle?: string;\n\tbodycopy?: string;\n\ttitleRevers?: boolean;\n}\n\nexport interface CarlineWithOffers extends Preconfiguration {\n\tofertas: Offer[];\n}\n\nexport interface IdLead {\n\tId?: string;\n\tFirstName?: string;\n\tLastName?: string;\n\tMiddleName?: string;\n\tEmail?: string;\n\tMobilePhone?: string;\n\tVGED_CodeOfInterestCarline__c?: string;\n\tVGED_ModelOfInterest__c?: string;\n\tDealership__c?: string;\n}\n\nexport interface IdPerson {\n\tId?: string;\n\tFirstName?: string;\n\tLastName?: string;\n\tMiddleName?: string;\n\tPersonEmail?: string;\n\tPersonMobilePhone?: string;\n\tPersonMailingAddress?: string; // street, postalCode, stateCode\n}\n\nexport interface IdVehicle {\n\tId?: string;\n\tRCY_BrandList__c?: string; // Marca\n\tVGED_ModelGroup__c?: string; // Modelo\n\tName?: string; // Bastidor (frame)\n\tVGED_RegistrationPlate__c?: string; // Matricula (plate)\n}\n\nexport interface IdOrder {\n\tId?: string; // salesforce ID\n\tVGED_ClimaproOrderID__c?: string; // climapro ID\n\tVGED_CEMDeliveryDate__c?: string;\n\tRCY_ActualDeliveryDate__c?: string;\n}\n\nexport interface IdDealer {\n\tId?: string;\n\tVGED_CommercialName__c?: string;\n\tKVPSCode__c?: string;\n\tVGED_DealerCode__c?: string;\n\tVGED_ConcessionDealerCode__c?: string; // Agrupa dealers\n\tShippingStreet?: string;\n\tShippingPostalCode?: string;\n\tShippingCity?: string;\n\tShippingLatitude?: string;\n\tShippingLongitude?: string;\n\tShippingStateCode?: string;\n}\n\nexport interface IdInstallation extends IdDealer {}\nexport interface IdConcesion extends IdDealer {}\nexport interface Installation extends IdDealer {}\nexport interface Concesion extends IdDealer {}\n","'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';\nexport const SSRContext = React.createContext({});\nexport const SSRConfig = ({ notHydrating, ssrAspectRatio, ssrViewportWidth, children, }) => {\n const outerContextValue = React.useContext(SSRContext);\n const value = React.useMemo(() => ({\n notHydrating: notHydrating !== null && notHydrating !== void 0 ? notHydrating : outerContextValue.notHydrating,\n ssrAspectRatio: ssrAspectRatio !== null && ssrAspectRatio !== void 0 ? ssrAspectRatio : outerContextValue.ssrAspectRatio,\n ssrViewportWidth: ssrViewportWidth !== null && ssrViewportWidth !== void 0 ? ssrViewportWidth : outerContextValue.ssrViewportWidth,\n }), [notHydrating, ssrAspectRatio, ssrViewportWidth, outerContextValue]);\n return React.createElement(SSRContext.Provider, { value: value }, children);\n};\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { getCommonProps } from '../helpers/common-props';\nimport { SSRContext } from '../helpers/ssr';\nconst combinedMediaQuery = (props) => {\n const minQuery = `${Math.max(0, props.minSize)}px`;\n const maxQuery = Number.isFinite(props.maxSize) && `${props.maxSize - 1}px`;\n if (maxQuery) {\n return `(${minQuery} <= width <= ${maxQuery})`;\n }\n else {\n return `(${minQuery} <= width)`;\n }\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(SSRContext);\n const ssrViewportWidth = contextSsrViewportWidth;\n const isRenderedInClient = useIsRenderedInClient();\n const { notHydrating } = React.useContext(SSRContext);\n const breakpointMatches = useBreakpointRangeReachedListener(min, max);\n const breakpointMatchesForSsr = isBreakpointRangeReached(min, max, ssrViewportWidth);\n // SSR\n if (!isRenderedInClient && !breakpointMatchesForSsr) {\n return null;\n }\n // client, but not hydrating, so act as if it was SSR\n if (isRenderedInClient && notHydrating && !breakpointMatchesForSsr) {\n return null;\n }\n // client, but hydrating\n if (isRenderedInClient && !notHydrating && !breakpointMatches) {\n return null;\n }\n return (React.createElement(StyledBreakpointWrapper, Object.assign({ minSize: min, maxSize: max }, commonProps), children));\n}\nfunction useMediaQueryListener(query) {\n const mql = React.useMemo(() => typeof window !== 'undefined' && query && window.matchMedia(query), [query]);\n const [matches, setMatches] = React.useState(mql ? mql.matches : false);\n React.useEffect(() => {\n if (!mql) {\n return;\n }\n setMatches(mql.matches);\n const handleMediaQueryListener = (event) => {\n setMatches(event.matches);\n };\n mql.addEventListener('change', handleMediaQueryListener);\n return () => {\n mql.removeEventListener('change', handleMediaQueryListener);\n };\n }, [mql]);\n return matches;\n}\nfunction isBreakpointRangeReached(minSize, maxSize, viewportWidth) {\n // if there is no given viewportWidth, we should always render the wrapped content\n // (it will be hidden by the css anyway)\n return viewportWidth !== undefined\n ? viewportWidth >= minSize && viewportWidth < maxSize\n : true;\n}\nfunction useBreakpointRangeReachedListener(minSize, maxSize) {\n const query = React.useMemo(() => combinedMediaQuery({ minSize, maxSize }), [minSize, maxSize]);\n return useMediaQueryListener(query);\n}\nfunction useIsRenderedInClient() {\n const [isRenderedInClient, setIsRenderedInClient] = React.useState(false);\n // useEffect only happens when we are in the browser not on the server\n // (except when testing with react-test-renderer)\n React.useEffect(() => {\n if (!isRenderedInClient) {\n // we need to check if we are really in the browser here\n // because of react-test-renderer\n setIsRenderedInClient(typeof window !== 'undefined');\n }\n }, [isRenderedInClient]);\n return isRenderedInClient;\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { Text, TokenTextAppearance, TokenTextColor, TextTag } from '../text';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst isLink = (props) => Boolean(props.tag === 'a');\nconst isAccentButton = (props) => props.emphasis === 'offer' ||\n props.emphasis === 'nbab';\nconst getTokenColors = (theme, disabled, isIconOnly) => {\n return {\n primary: `\n\t\t\tcolor: ${theme.colors.content[disabled ? 'tertiary' : 'inverted']};\n\t\t\tbackground: ${theme.colors.button.primary[disabled ? 'disabled' : 'default']};\n\t\t\tborder:none;\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tbackground: ${theme.colors.button.primary.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t`,\n secondary: `\n\n\t\t\tcolor: ${theme.colors.button.secondary[disabled ? 'disabled' : 'default']};\n\t\t\tbackground: transparent;\n\t\t\tborder: 1px solid ${theme.colors.button.secondary[disabled ? 'disabled' : 'default']};\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.button.secondary.active};\n\t\t\t\tborder: 1px solid ${theme.colors.button.primary.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t\t`,\n tertiary: `\n\t\t\tcolor: ${theme.colors.button.tertiary[disabled ? 'disabled' : 'default']};\n\t\t\tbackground: transparent;\n\t\t\tborder: none;\n\n\t\t\t:hover:not(:disabled), :active:not(:disabled),:focus:not(:disabled):not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.button.tertiary.active};\n\t\t\t\tbackground: transparent;\n\n\t\t\t\tspan {\n\t\t\t\t\ttext-decoration-thickness: ${theme.size.border.heavy};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\toutline-offset: ${isIconOnly ? 'unset' : '1px'};\n\t\t\t}\n\t\t\t`,\n offer: `\n\t\t\tcolor: ${theme.colors.content.invertedOnSurface};\n\t\t\tbackground: ${theme.colors.accent.offer.default};\n\t\t\t`,\n nbab: `\n\t\t\tcolor: ${theme.colors.content.invertedOnSurface};\n\t\t\tbackground: ${theme.colors.accent.nbab.default};\n\t\t\t`,\n };\n};\n// styled component for icons in links\nconst StyledLinkIcon = styled.span.withConfig({ displayName: \"StyledLinkIcon\", componentId: \"sc-wjrax8\" }) `line-height:0;position:relative;order:${(props) => (props.iconPosition === 'end' ? 1 : 'initial')};${({ iconPosition, theme }) => iconPosition === 'top' &&\n css `\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\twidth: 44px;\n\t\t\theight: 44px;\n\t\t\tborder-radius: 50%;\n\t\t\tborder: ${theme.size.border.light} solid currentColor;\n\t\t\tmargin-bottom: ${theme.size.static100};\n\t\t`}`;\n// styled component for icons in buttons\nconst StyledButtonIcon = styled.span.withConfig({ displayName: \"StyledButtonIcon\", componentId: \"sc-bk7es1\" }) `line-height:0;order:${(props) => (props.iconPosition === 'end' ? 1 : 'initial')};`;\n// styled component for (text-) children in links\nconst StyledLinkText = styled.span.withConfig({ displayName: \"StyledLinkText\", componentId: \"sc-12fkfup\" }) `position:relative;text-decoration:underline;text-underline-offset:0.2em;text-decoration-thickness:1px;${(props) => props.emphasis === 'none' && 'text-decoration: none;'} ${(props) => props.disabled\n ? css `\n\t\t\t\t\tpointer-events: none;\n\t\t\t\t\tcursor: not-allowed;\n\t\t\t\t`\n : css `\n\t\t\t\t\tcursor: pointer;\n\t\t\t\t`}`;\n// styled component for arranging icons and children in buttons (emphasis primary and secondary, size small and large)\nconst StyledButtonWrapper = styled.div.withConfig({ displayName: \"StyledButtonWrapper\", componentId: \"sc-grwi6b\" }) `align-items:center;${(props) => {\n if (props.iconPosition === 'top') {\n return css `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n }\n const templateColumns = props.iconPosition === 'end'\n ? `repeat(\n\t\t\t\t\t${React.Children.count(props.children) - 1},\n\t\t\t\t\tauto\n\t\t\t\t) max-content`\n : `max-content repeat(\n\t\t\t\t\t${React.Children.count(props.children) - 1},\n\t\t\t\t\tauto\n\t\t\t\t)`;\n return css `\n\t\t\tdisplay: inline-grid;\n\t\t\tgrid-template-columns: ${templateColumns};\n\t\t\tgrid-column-gap: ${props.theme.size.static100};\n\t\t`;\n}}`;\n// styled component for arranging icons and children in links (emphasis tertiary)\nconst StyledLinkWrapper = styled.div.withConfig({ displayName: \"StyledLinkWrapper\", componentId: \"sc-x60dy3\" }) `align-items:center;${(props) => {\n if (props.iconPosition === 'top') {\n return css `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t`;\n }\n return css `\n\t\t\tdisplay: inline-grid;\n\t\t\tgrid-template-columns: max-content auto;\n\t\t\tgrid-column-gap: ${(props) => props.theme.size.static100};\n\t\t\talign-items: center;\n\t\t`;\n}}`;\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => (stretchContent ? 'width: 100%;' : 'width: initial;'));\n};\n// styled component for large buttons (without icon, emphasis primary and secondary, offer and nbab)\nconst StyledButton = styled.button.withConfig({ displayName: \"StyledButton\", componentId: \"sc-1208ax7\" }) `position:relative;${createStretchContentForBreakpoints} display:inline-flex;text-align:center;justify-content:center;align-items:center;${(props) => {\n const width = props.size === 'small' ? props.theme.size.static400 : '44px';\n const padding = props.size === 'small'\n ? `${props.theme.size.static100} ${props.theme.size.static250}`\n : `0 ${props.theme.size.static400}`;\n return css `\n\t\t\tmin-height: ${width};\n\t\t\tmin-width: ${width};\n\t\t\t${props.circular\n ? css `\n\t\t\t\t\t\twidth: ${width};\n\t\t\t\t\t\tpadding: 0;\n\t\t\t\t\t`\n : css `\n\t\t\t\t\t\tpadding: ${padding};\n\t\t\t\t\t`}\n\t\t\tborder: ${props.theme.size.border.light} solid;\n\t\t`;\n}} margin:0;border-radius:500px;transition:all 0.2s ease-in-out;text-decoration:none;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};-webkit-tap-highlight-color:transparent;${({ theme, disabled, emphasis, isIconOnly }) => emphasis &&\n getTokenColors(theme, disabled, isIconOnly)[emphasis === 'none' ? 'tertiary' : emphasis]} ${({ theme, emphasis }) => (emphasis === 'nbab' || emphasis === 'offer') &&\n css `\n\t\t\tborder: none;\n\n\t\t\t:hover {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.accent.offer.hover};\n\t\t\t}\n\n\t\t\t:active,\n\t\t\t:focus:not(:focus-visible) {\n\t\t\t\tcolor: ${theme.colors.content.inverted};\n\t\t\t\tbackground: ${theme.colors.accent.offer.active};\n\t\t\t}\n\n\t\t\t:focus-visible {\n\t\t\t\toutline: 3px solid ${theme.colors.focus.accent};\n\t\t\t\toutline-offset: unset;\n\t\t\t}\n\t\t`}`;\n// styled component for links (with or without icons, emphasis tertiary)\nconst StyledLink = styled.a.withConfig({ displayName: \"StyledLink\", componentId: \"sc-afbv6g\" }) `font-weight:inherit;display:inline-grid;${createStretchContentForBreakpoints} border:none;position:relative;text-decoration:none;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};padding:0;text-align:inherit;${(props) => props.circular &&\n css `\n\t\t\tdisplay: inline-flex;\n\t\t\talign-items: center;\n\t\t\ttext-align: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: ${props.size === 'small' ? props.theme.size.static400 : '44px'};\n\t\t\theight: ${props.size === 'small' ? props.theme.size.static400 : '44px'};\n\t\t\tborder: ${props.theme.size.border.light} solid transparent;\n\t\t\tborder-radius: 50%;\n\t\t`} ${({ theme, disabled, emphasis, isIconOnly }) => emphasis &&\n getTokenColors(theme, disabled, isIconOnly)[emphasis === 'none' ? 'tertiary' : emphasis]} -webkit-tap-highlight-color:transparent;`;\n// Component for a CTA that looks like a link. Please note that it could either be a 'button' or an anchor link ('a') depending on its props.\nconst CTALink = (props) => {\n const { ariaLabel, children, disabled, emphasis, forwardRef, icon, iconPosition, size, tag, onClick } = props, rest = __rest(props, [\"ariaLabel\", \"children\", \"disabled\", \"emphasis\", \"forwardRef\", \"icon\", \"iconPosition\", \"size\", \"tag\", \"onClick\"]);\n const hasChildren = React.Children.count(children) > 0;\n // depending on the tag we need different props and different types for these props\n const additionalProps = isLink(props) && !disabled ? { href: props.href } : {};\n // biome-ignore lint/suspicious/noExplicitAny: there is no sane type for the ref of both StyledLink and StyledButton using \"as\" that works with both components and both tags, so we have to use \"any\" instead\n const ref = forwardRef;\n return (React.createElement(StyledLink, Object.assign({ as: tag, \"aria-label\": ariaLabel, disabled: disabled }, rest, additionalProps, { ref: ref, emphasis: emphasis, circular: icon && !hasChildren, isIconOnly: icon && !hasChildren, size: size, onClick: onClick, iconPosition: iconPosition }),\n icon && hasChildren && (React.createElement(StyledLinkWrapper, { iconPosition: iconPosition },\n React.createElement(StyledLinkIcon, { iconPosition: iconPosition }, icon),\n React.createElement(\"span\", null,\n React.createElement(StyledLinkText, { emphasis: emphasis, disabled: disabled }, children)))),\n !hasChildren && icon,\n hasChildren && !icon && (React.createElement(StyledLinkText, { emphasis: emphasis, disabled: disabled }, children))));\n};\n// Component for a CTA that looks like a button. Please note that it could either be a 'button' or an anchor link ('a') depending on its props.\nconst CTAButton = (props) => {\n const { ariaLabel, children, forwardRef, icon, iconPosition, size = 'large', tag, onClick } = props, rest = __rest(props, [\"ariaLabel\", \"children\", \"forwardRef\", \"icon\", \"iconPosition\", \"size\", \"tag\", \"onClick\"]);\n const hasChildren = React.Children.count(children) > 0;\n // depending on the tag we need different props and different types for these props\n let additionalProps = {};\n if (isLink(props) && !props.disabled) {\n additionalProps = Object.assign(Object.assign({}, additionalProps), { href: props.href });\n }\n if (!isAccentButton(props)) {\n additionalProps = Object.assign(Object.assign({}, additionalProps), { disabled: props.disabled });\n }\n // biome-ignore lint/suspicious/noExplicitAny: there is no sane type for the ref of both StyledLink and StyledButton using \"as\" that works with both components and both tags, so we have to use \"any\" instead\n const ref = forwardRef;\n return (React.createElement(StyledButton, Object.assign({ as: tag, \"aria-label\": ariaLabel }, rest, additionalProps, { ref: ref, circular: icon && !hasChildren, isIconOnly: icon && !hasChildren, size: size, onClick: onClick }),\n icon && !hasChildren && icon,\n icon && hasChildren && (React.createElement(StyledButtonWrapper, { iconPosition: iconPosition },\n React.createElement(StyledButtonIcon, { iconPosition: iconPosition }, icon),\n React.createElement(Text, { appearance: TokenTextAppearance.label200, color: TokenTextColor.inherit, staticSize: true, tag: TextTag.span }, children))),\n hasChildren && !icon && (React.createElement(Text, { appearance: TokenTextAppearance.label200, color: TokenTextColor.inherit, tag: TextTag.span, staticSize: true }, children))));\n};\nexport const CTA = React.forwardRef((props, forwardRef) => {\n var _a, _b, _c, _d;\n if (isAccentButton(props)) {\n return (React.createElement(CTAButton, Object.assign({}, props, { emphasis: props.emphasis, size: (_a = props.size) !== null && _a !== void 0 ? _a : 'large', forwardRef: forwardRef })));\n }\n if (props.emphasis === 'tertiary' || props.emphasis === 'none') {\n return (React.createElement(CTALink, Object.assign({}, props, { emphasis: props.emphasis, size: (_b = props.size) !== null && _b !== void 0 ? _b : 'large', forwardRef: forwardRef })));\n }\n return (React.createElement(CTAButton, Object.assign({}, props, { emphasis: (_c = props.emphasis) !== null && _c !== void 0 ? _c : 'primary', size: (_d = props.size) !== null && _d !== void 0 ? _d : 'large', forwardRef: forwardRef })));\n});\nCTA.displayName = 'CTA';\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { Text, TokenTextAppearance, TokenTextColor, TextTag, WhiteSpace, } from '../text';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledCharacterCounter = styled.span.withConfig({ displayName: \"StyledCharacterCounter\", componentId: \"sc-omfthb\" }) `margin-inline-start:auto;color:${({ theme }) => theme.colors.content.tertiary};`;\nexport const CharacterCounter = (props) => {\n const { limit, value = 0 } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledCharacterCounter, Object.assign({ \"aria-hidden\": true }, commonProps),\n React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit, appearance: TokenTextAppearance.label100, whiteSpace: WhiteSpace.nowrap },\n value,\n \" / \",\n limit)));\n};\n","import { css } from 'styled-components';\nimport { createStylesForBreakpoints, isBreakpointConfig, } from '../helpers/breakpoint';\nimport { createCSSVarName } from '../theme-provider/create-css-var-name';\nconst directions = [\n 'top',\n 'right',\n 'bottom',\n 'left',\n 'inlineStart',\n 'inlineEnd',\n];\nfunction isDirectionalConfig(prop) {\n return (typeof prop === 'object' &&\n Object.keys(prop).every((key) => directions.includes(key)));\n}\n// create CSS variables for all dynamic sizes for a given configuration (e.g. container gutter or padding)\nexport function createCSSVariablesForSizes(configOrSize, theme) {\n if (!configOrSize) {\n return '';\n }\n if (isDirectionalConfig(configOrSize)) {\n return directions\n .map((key) => {\n const directionalConfigOrSize = configOrSize[key];\n return createCSSVariablesForSizes(directionalConfigOrSize, theme);\n })\n .join('');\n }\n if (isBreakpointConfig(configOrSize)) {\n const cssVar = createCSSVarName(configOrSize, 'container');\n return createStylesForBreakpoints(configOrSize, (size) => {\n const value = theme.size[size];\n return `${cssVar}: ${value};`;\n });\n }\n return '';\n}\nfunction createSpacing(gutter, theme) {\n if (isBreakpointConfig(gutter)) {\n const cssVar = createCSSVarName(gutter, 'container');\n return `var(${cssVar})`;\n }\n return theme.size[gutter];\n}\nexport function createHorizontalAlignmentStyles(horizontalAlign) {\n return createStylesForBreakpoints(horizontalAlign, (horizontalAlign) => `justify-content: ${horizontalAlign};`);\n}\nfunction wrapStyles(wrap, theme, gutter) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case 'never':\n return `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: nowrap;\n\t\t\t\tmargin: 0;\n\t\t\t`;\n case 'always':\n return `\n\t\t\t\tdisplay: block;\n\t\t\t\tflex-wrap: unset;\n\t\t\t\tmargin: 0;\n\t\t\t`;\n default: {\n return `\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-wrap: wrap;\n\t\t\t\tmargin: 0 calc(-0.5 * ${spacing}) calc(-1 * ${spacing});\n\t\t\t`;\n }\n }\n}\nexport function createWrapStyles(theme, gutter, wrap = 'auto') {\n return css `${createStylesForBreakpoints(wrap, (wrap) => wrapStyles(wrap, theme, gutter))}`;\n}\nfunction spacingBetweenElementsStyles(wrap, theme, gutter, direction) {\n const spacing = (gutter && createSpacing(gutter, theme)) || '0px';\n switch (wrap) {\n case 'never':\n return `\n\t\t\t\tmargin: 0 calc(${spacing} / 2);\n\t\t\t\t:first-child {\n\t\t\t\t\t${(theme.direction || direction) === 'rtl'\n ? `margin: 0 0 0 calc(${spacing} / 2);`\n : `margin: 0 calc(${spacing} / 2) 0 0;`}\n\t\t\t\t}\n\t\t\t\t:last-child {\n\t\t\t\t\t${(theme.direction || direction) === 'rtl'\n ? `margin: 0 calc(${spacing} / 2) 0 0;`\n : `margin: 0 0 0 calc(${spacing} / 2);`}\n\t\t\t\t}\n\t\t\t`;\n case 'always':\n return `\n\t\t\t\tmargin: 0 0 ${spacing};\n\t\t\t\t:last-child {\n\t\t\t\t\tmargin: 0;\n\t\t\t\t}\n\t\t\t`;\n default:\n return `\n\t\t\t\tmargin: 0 calc(${spacing} / 2) ${spacing};\n\t\t\t\t:last-child {\n\t\t\t\t\tmargin: 0 calc(${spacing} / 2) ${spacing};\n\t\t\t\t}\n\t\t\t`;\n }\n}\nexport function createSpacingBetweenElementsStyles(props) {\n const { wrapped = 'auto', theme, gutter, direction } = props;\n return css `${createStylesForBreakpoints(wrapped, (wrap) => spacingBetweenElementsStyles(wrap, theme, gutter, direction))}`;\n}\nfunction createPaddings(value, key) {\n switch (key) {\n case 'inlineStart':\n return `\n\t\t\t\tpadding-inline-start: ${value};\n\t\t\t`;\n case 'inlineEnd':\n return `\n\t\t\t\tpadding-inline-end: ${value};\n\t\t\t`;\n default:\n return `padding-${key}: ${value};`;\n }\n}\nfunction createDirectionalSpacings(key, padding, theme) {\n const directionalPadding = padding[key];\n if (isBreakpointConfig(directionalPadding)) {\n const cssVar = createCSSVarName(directionalPadding, 'container');\n return createPaddings(`var(${cssVar})`, key);\n }\n if (typeof directionalPadding === 'string' && theme) {\n return createPaddings(theme.size[directionalPadding], key);\n }\n return '';\n}\nexport function createSpacingAroundElementsStyles(padding, theme) {\n if (typeof padding === 'string' && theme) {\n return css `padding:${theme.size[padding]};`;\n }\n if (isDirectionalConfig(padding)) {\n return css `padding:0;${directions.reduce((acc, key) => {\n return `\n\t\t\t\t\t\t${acc}\n\t\t\t\t\t\t${createDirectionalSpacings(key, padding, theme)}\n\t\t\t\t\t`;\n }, '')};`;\n }\n if (isBreakpointConfig(padding)) {\n const cssVar = createCSSVarName(padding, 'container');\n return css `padding:var(${cssVar});`;\n }\n return css `padding:0;`;\n}\n","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","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { createCSSVariablesForSizes, createHorizontalAlignmentStyles, createSpacingAroundElementsStyles, createSpacingBetweenElementsStyles, createWrapStyles, } from './helpers';\nimport { createElectricTransition } from '../helpers/animation';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { getCommonProps } from '../helpers/common-props';\nconst createStretchContentForBreakpoints = (props) => {\n if (!props.stretchContent) {\n return '';\n }\n return createStylesForBreakpoints(props.stretchContent, (stretchContent) => stretchContent ? 'flex-grow: 1;' : 'flex-grow: initial;');\n};\nconst createShrinkContentForBreakpoints = (props) => {\n if (!props.shrinkContent) {\n return '';\n }\n return createStylesForBreakpoints(props.shrinkContent, (shrinkContent) => shrinkContent ? 'flex-shrink: 1;' : 'flex-shrink: initial;');\n};\nconst StyledChildWrapper = styled.div.withConfig({ displayName: \"StyledChildWrapper\", componentId: \"sc-1d21nde\" }) `flex-shrink:0;max-width:100%;${createStretchContentForBreakpoints};${createShrinkContentForBreakpoints};${createSpacingBetweenElementsStyles};:empty{display:none;}`;\nStyledChildWrapper.displayName = 'StyledChildWrapper';\nconst StyledOverflowWrapper = styled.div.withConfig({ displayName: \"StyledOverflowWrapper\", componentId: \"sc-mfnmbg\" }) `overflow:${(props) => (props.wrapChildren ? '' : 'hidden')};`;\nStyledOverflowWrapper.displayName = 'StyledOverflowWrapper';\n// `flex-grow: 1;` for stretchContent is needed for cases where the content does not bring its own width and instead relies on the width\n// of the container. Combined with the container being inside a different flex element.\n// Example: \n// Also see \"components-cms/mood-gallery\"\n//\n// To use transition for some properties:\n// animateChange={['padding', 'opacity']}\nconst StyledContainer = styled.div.withConfig({ displayName: \"StyledContainer\", componentId: \"sc-18harj2\" }) `${(props) => props.gutter && createCSSVariablesForSizes(props.gutter, props.theme)} ${(props) => props.padding && createCSSVariablesForSizes(props.padding, props.theme)} ${(props) => createWrapStyles(props.theme, props.gutter, props.wrapChildren)} align-items:${(props) => props.verticalAlign};${(props) => props.horizontalAlign &&\n createHorizontalAlignmentStyles(props.horizontalAlign)} ${(props) => props.padding &&\n createSpacingAroundElementsStyles(props.padding, props.theme)};${(props) => props.animateChange && createElectricTransition(...props.animateChange)};`;\nStyledContainer.displayName = 'StyledContainer';\nconst ContainerInner = (props) => {\n const { children, gutter, padding, wrap, stretchContent, shrinkContent, verticalAlign, horizontalAlign, animateChange, innerRef, } = props;\n const commonProps = getCommonProps(props);\n const mappedChildren = React.Children.map(children, (child) => {\n if (typeof child === 'string') {\n return React.createElement(React.Fragment, null, child);\n }\n return child;\n });\n const childElements = React.Children.toArray(mappedChildren).filter(React.isValidElement);\n if (childElements.length === 0) {\n return null;\n }\n return (React.createElement(StyledOverflowWrapper, Object.assign({ ref: innerRef, wrapChildren: wrap }, commonProps),\n React.createElement(StyledContainer, { gutter: gutter, padding: padding, wrapChildren: wrap, verticalAlign: verticalAlign, horizontalAlign: horizontalAlign, animateChange: animateChange }, childElements.map((child) => {\n const key = child.key === null ? undefined : child.key;\n return (React.createElement(StyledChildWrapper, { key: key, gutter: gutter, wrapped: wrap, stretchContent: stretchContent, shrinkContent: shrinkContent }, child));\n }))));\n};\nexport const Container = React.forwardRef((props, ref) => React.createElement(ContainerInner, Object.assign({}, props, { innerRef: ref })));\nContainer.displayName = 'Container';\n","import * as React from 'react';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getNotificationColor } from '../helpers/input';\nimport { getCommonProps } from '../helpers/common-props';\nconst StyledNotificationMessage = styled.div.withConfig({ displayName: \"StyledNotificationMessage\", componentId: \"sc-197whcx\" }) `display:inline-flex;justify-content:center;align-items:center;background-color:${getNotificationColor};color:${({ theme }) => theme.colors.content.inverted};padding:0 ${({ theme }) => theme.size.static100};border-radius:${({ theme }) => theme.size.static100};min-height:${({ theme }) => theme.size.static350};min-width:${({ theme }) => theme.size.static350};`;\nexport const NotificationMessage = (props) => {\n const { appearance = 'default', children } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(\"div\", Object.assign({ \"aria-live\": appearance === 'error' ? 'assertive' : 'polite', \"aria-relevant\": \"additions text\" }, commonProps), React.Children.count(children) ? (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledNotificationMessage, { appearance: appearance },\n React.createElement(Text, { appearance: TokenTextAppearance.label100, tag: TextTag.p, color: TokenTextColor.inherit }, children)))) : undefined));\n};\n","import * as React from 'react';\nimport { Text, TextTag, TokenTextAppearance } from '../text';\nimport { styled } from '../theme-provider';\nimport { Container, ContainerGutter } from '../container';\nimport { NotificationMessage } from '../notification-message';\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 === 'error' && message);\n return (React.createElement(StyledFieldset, Object.assign({}, commonProps),\n legend && (React.createElement(Text, { appearance: TokenTextAppearance.copy200, bold: true, staticSize: true, tag: TextTag.legend },\n legend,\n required && '*')),\n React.createElement(NotificationMessage, { appearance: appearance }, errorShouldBeVisible ? message : undefined),\n React.createElement(Container, { gutter: ContainerGutter.static350, wrap: \"always\" }, children)));\n};\n","export const createA11yOutlineStyles = (theme, style = 'auto') => `outline: ${theme.size.border.heavy} ${style} ${theme.colors.focus.main};`;\n","export var Breakpoints;\n(function (Breakpoints) {\n Breakpoints[Breakpoints[\"default\"] = 0] = \"default\";\n Breakpoints[Breakpoints[\"b560\"] = 560] = \"b560\";\n Breakpoints[Breakpoints[\"b960\"] = 960] = \"b960\";\n Breakpoints[Breakpoints[\"b1280\"] = 1280] = \"b1280\";\n Breakpoints[Breakpoints[\"b1600\"] = 1600] = \"b1600\";\n Breakpoints[Breakpoints[\"b1920\"] = 1920] = \"b1920\";\n Breakpoints[Breakpoints[\"b2560\"] = 2560] = \"b2560\";\n Breakpoints[Breakpoints[\"never\"] = Infinity] = \"never\";\n})(Breakpoints || (Breakpoints = {}));\nconst breakpoints = Object.values(Breakpoints);\nexport function isBreakpointConfig(prop) {\n return (typeof prop === 'object' &&\n Object.keys(prop).every((key) => breakpoints.includes(key) || breakpoints.includes(parseInt(key, 10))));\n}\n/**\n * Compare two breakpoints to each other\n *\n * Pass to sort the breakpoints in ascending order\n *\n * All non-default breakpoints can also be passed as strings to enable mapping over Objects with breakpoints as keys:\n * ```\n * const breakpointConfig = {\n * [Breakpoints.default]: theme.size.static250,\n * [Breakpoints.b560]: theme.size.static350\n * };\n *\n * Object.keys(breakpointConfig).sort(compareBreakpoints).map(breakpoint => `\n * @media (min-with: ${breakpoint}) {\n * padding: ${breakpointConfig[breakpoint]}\n * }\n * `)\n * ```\n */\nexport function compareBreakpoints(a, b) {\n return ((typeof a === 'number' ? a : parseInt(a, 10)) -\n (typeof b === 'number' ? b : parseInt(b, 10)));\n}\nfunction mediaQueryTemplate(breakpoint, styles) {\n if (breakpoint === '0') {\n return styles;\n }\n return `@media (min-width: ${breakpoint}px) {${styles}}`;\n}\nexport function createStylesForBreakpoints(config, fn = (x) => x) {\n if (!isBreakpointConfig(config)) {\n return fn(config);\n }\n return Object.keys(config)\n .sort(compareBreakpoints)\n .map((breakpoint) => mediaQueryTemplate(breakpoint, fn(config[breakpoint])))\n .join('');\n}\nexport function getValueByScreenSize(screenSize, config) {\n if (!isBreakpointConfig(config)) {\n return config;\n }\n const activeBreakpoint = Object.keys(config)\n .sort(compareBreakpoints)\n .reduce((acc, key) => {\n const breakpoint = typeof key === 'number' ? key : parseInt(key, 10);\n return screenSize >= breakpoint ? key : acc;\n }, '');\n return config[activeBreakpoint];\n}\nexport function getValueForCurrentScreenSize(config) {\n const width = typeof window !== 'undefined' ? window.innerWidth || 0 : 0;\n return getValueByScreenSize(width, config);\n}\n","export const getCommonProps = (props) => {\n return { 'data-testid': props['data-testid'] };\n};\nexport const getUncommonProps = (props) => {\n const commonPropKeys = Object.keys(getCommonProps(props));\n return Object.keys(props).filter((propKey) => !commonPropKeys.includes(propKey)).reduce((accumulator, propKey) => (Object.assign(Object.assign({}, accumulator), { [propKey]: props[propKey] })), {});\n};\n","import * as React from 'react';\nexport var StarOutline = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m9 11.51-3-2.1-3 2.1-1-.74 1.05-3.51L.12 5l.39-1.2 3.68-.07L5.4.3h1.25l1.21 3.47 3.68.07.39 1.16L9 7.26l1.06 3.51zM5.64 8.06h.76l1.83 1.27-.64-2.13.23-.72L9.6 5.13H7.37l-.61-.45L6 2.54l-.73 2.1-.61.45H2.43l1.8 1.39.23.72-.64 2.13z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m45.94 19.82-1.1-3.36-13.38-.3a1.4 1.4 0 0 1-1.3-.95L25.67 2h-3.34l-4.5 13.23a1.41 1.41 0 0 1-1.3 1l-13.76.28-1 3.13 11 8.59a1.39 1.39 0 0 1 .48 1.5l-3.82 13 3 2.15 11.21-8a.72.72 0 0 1 .84 0l11.2 8 3-2.15-3.82-13a1.41 1.41 0 0 1 .49-1.51zm-9.82 21.52-.94.68-10-7.14-.4-.28a1.31 1.31 0 0 0-1.53 0l-.39.28L12.84 42l-.94-.68 3.54-12a2 2 0 0 0-.69-2.14l-10.23-8 .25-.78 12.78-.26a2 2 0 0 0 1.85-1.36l4.18-12.25h.84l4.16 12.25a2 2 0 0 0 1.85 1.36l12.44.28.3 1-9.9 7.68a2 2 0 0 0-.69 2.14z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M18.42 23.12 12 18.62l-6.38 4.5-1-.74 2.28-7.53-6.3-4.68L1 9l7.87-.16 2.51-7.39h1.26l2.58 7.43L23 9l.39 1.19-6.27 4.76 2.31 7.45zM2.93 10.27l4.74 3.6a1.25 1.25 0 0 1 .45 1.36l-1.73 5.7 4.89-3.4a1.26 1.26 0 0 1 1.44 0l4.89 3.4-1.73-5.7a1.25 1.25 0 0 1 .45-1.36l4.74-3.6-6-.12A1.26 1.26 0 0 1 14 9.3l-2-5.63-2 5.63a1.26 1.26 0 0 1-1.16.85z\" }));\n }\n return null;\n}, { displayName: 'StarOutline' }));\n","import * as React from 'react';\nexport var Discount = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"m6.75 0 4.984 2.332V10a2 2 0 0 1-2 2H3.766a2 2 0 0 1-2-2V2.332zm3.654 3.178L6.75 1.468l-3.654 1.71V10c0 .37.3.67.67.67h5.968c.37 0 .67-.3.67-.67zM5.17 5.635a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3m3.162 4.002a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3m.892-4.86L5.2 9.094l-.973-.906L8.25 3.87z\", clipRule: \"evenodd\" }));\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\", { fillRule: \"evenodd\", d: \"m24 3 17 9.546V37a8 8 0 0 1-8 8H15a8 8 0 0 1-8-8V12.546zm15 10.716L24 5.294 9 13.716V37a6 6 0 0 0 6 6h18a6 6 0 0 0 6-6zM21 20.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m2 0a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0m9 13a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m2 0a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0m-.979-15.358L16.227 37.347l-1.505-1.317 16.794-19.204z\", clipRule: \"evenodd\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"m12 1 9 5v13a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V6zm7.67 5.783L12 2.52 4.33 6.783V19A2.67 2.67 0 0 0 7 21.67h10A2.67 2.67 0 0 0 19.67 19zm-9.615 4.15a.963.963 0 1 1-1.44-1.28.963.963 0 0 1 1.44 1.28m.994.884A2.293 2.293 0 1 1 7.62 8.77a2.293 2.293 0 0 1 3.428 3.048Zm4.337 5.512a.963.963 0 1 1-1.44-1.28.963.963 0 0 1 1.44 1.28m.994.883a2.293 2.293 0 1 1-3.427-3.047 2.293 2.293 0 0 1 3.427 3.047m.353-9.061-8.397 9.602-1-.876 8.396-9.602z\", clipRule: \"evenodd\" }));\n }\n return null;\n}, { displayName: 'Discount' }));\n","import * as React from 'react';\nexport var Bookmark = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m9.324 11.145-3.32-1.953-3.34 1.95.014-9.224A1.246 1.246 0 0 1 3.922.675h4.185a1.23 1.23 0 0 1 1.231 1.23zm-5.316-9.14-.01 6.819L6.005 7.65l1.993 1.171.01-6.816z\" }));\n }\n if (variant === \"large\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"48\", height: \"48\", viewBox: \"0 0 48 48\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m38 44.666-14-7.457-14 7.457V7.568A3.623 3.623 0 0 1 13.668 4l20.728.004A3.56 3.56 0 0 1 38 7.512zm-14-9.723 12 6.391V7.512a1.56 1.56 0 0 0-1.604-1.508L13.667 6A1.62 1.62 0 0 0 12 7.568v33.766z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m18.996 22.67-6.992-3.867-6.991 3.868V3.974A1.966 1.966 0 0 1 6.976 2.01l10.087.002a1.935 1.935 0 0 1 1.933 1.934zm-6.992-5.387 5.662 3.132V3.945a.604.604 0 0 0-.603-.603L6.976 3.34a.634.634 0 0 0-.633.634v16.441z\" }));\n }\n return null;\n}, { displayName: 'Bookmark' }));\n","import * as React from 'react';\nexport var CheckmarkCircle = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M1.33 6c0-2.751 1.919-4.67 4.67-4.67S10.67 3.249 10.67 6 8.751 10.67 6 10.67 1.33 8.751 1.33 6M6 0C2.514 0 0 2.514 0 6s2.514 6 6 6 6-2.514 6-6-2.514-6-6-6m.203 7.88L9.13 4.83l-.96-.921-2.808 2.926L4.14 5.556l-.962.92L4.52 7.878c.458.479 1.224.48 1.683.001Z\", clipRule: \"evenodd\" }));\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\", { fillRule: \"evenodd\", d: \"M5 24C5 12.903 12.904 5 24 5s19 7.903 19 19c0 11.096-7.904 19-19 19S5 35.096 5 24M24 3C11.799 3 3 11.799 3 24s8.799 21 21 21 21-8.799 21-21S36.201 3 24 3m-.552 27.054 11.903-12.36-1.44-1.388-11.903 12.36a.5.5 0 0 1-.726-.005l-5.92-6.343-1.462 1.364 5.92 6.344a2.5 2.5 0 0 0 3.628.028\", clipRule: \"evenodd\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M3.33 12c0-5.076 3.595-8.67 8.67-8.67 5.076 0 8.67 3.594 8.67 8.67s-3.595 8.67-8.67 8.67S3.33 17.075 3.33 12M12 2C6.19 2 2 6.19 2 12s4.19 10 10 10 10-4.19 10-10S17.81 2 12 2m-.141 13.036 5.45-5.678-.96-.92-5.45 5.677a.035.035 0 0 1-.05 0L8.27 11.419l-.961.919 2.577 2.696a1.365 1.365 0 0 0 1.972.002Z\", clipRule: \"evenodd\" }));\n }\n return null;\n}, { displayName: 'CheckmarkCircle' }));\n","import * as React from 'react';\nexport var Alert = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"m7.6 1.14 4.15 7.471c.678 1.22-.204 2.719-1.6 2.719h-8.3c-1.396 0-2.278-1.499-1.6-2.719l4.15-7.47c.698-1.255 2.502-1.255 3.2 0Zm-1.163.647a.5.5 0 0 0-.874 0l-4.15 7.47A.5.5 0 0 0 1.85 10h8.3a.5.5 0 0 0 .437-.743zm-1.103 5.21V4h1.33v2.996zm.665 2.353a.8.8 0 1 0 0-1.6.8.8 0 0 0 0 1.6\", clipRule: \"evenodd\" }));\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.087 5a4.48 4.48 0 0 0-4.057 2.52L3.47 36.445a4.53 4.53 0 0 0 4.06 6.542h32.985a4.53 4.53 0 0 0 4.066-6.53L28.151 7.531a4.48 4.48 0 0 0-4.065-2.53Zm0 2a2.48 2.48 0 0 1 2.271 1.414l.026.053.03.052 16.395 28.867a2.53 2.53 0 0 1-2.293 3.6H7.53a2.53 2.53 0 0 1-2.29-3.607L21.765 8.512l.03-.052.027-.053A2.48 2.48 0 0 1 24.087 7M23 31.001V16.008h2V31h-2Zm2.434 4.503C25.434 36.33 24.792 37 24 37s-1.434-.67-1.434-1.496.642-1.496 1.434-1.496 1.434.67 1.434 1.496\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"m13.6 2.14 9.15 16.471c.678 1.22-.204 2.719-1.6 2.719H2.85c-1.396 0-2.278-1.499-1.6-2.719l9.15-16.47c.698-1.255 2.502-1.255 3.2 0Zm-1.163.647a.5.5 0 0 0-.874 0l-9.15 16.47A.5.5 0 0 0 2.85 20h18.3a.5.5 0 0 0 .437-.743zM11.336 15V8h1.33v7zM12 18a.8.8 0 1 0 0-1.6.8.8 0 0 0 0 1.6\", clipRule: \"evenodd\" }));\n }\n return null;\n}, { displayName: 'Alert' }));\n","import * as React from 'react';\nexport var Info = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M5.33 6h1.33v3H5.33z\" }),\n React.createElement(\"path\", { d: \"M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6m0 10.65A4.65 4.65 0 1 1 10.65 6 4.66 4.66 0 0 1 6 10.65\" }),\n React.createElement(\"circle\", { cx: \"6\", cy: \"4\", r: \".75\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 6.493c.442 0 .774.295.774.811s-.332.811-.774.811-.774-.295-.774-.811.332-.811.774-.811M12.783 15.656v-5.649H9.414v1.33h2.039v4.319H8.419v1.33l6.967-.001v-1.33z\" }),\n React.createElement(\"path\", { d: \"M12 2.33c5.603 0 9.67 4.067 9.67 9.67s-4.067 9.67-9.67 9.67S2.33 17.603 2.33 12 6.397 2.33 12 2.33M12 1C5.626 1 1 5.626 1 12s4.626 11 11 11 11-4.626 11-11S18.374 1 12 1\" }));\n }\n return null;\n}, { displayName: 'Info' }));\n","import * as React from 'react';\nimport { styled, ThemeProvider } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { StarOutline, Bookmark, Alert, Info, Discount, CheckmarkCircle, } from '@volkswagen-onehub/icons-core';\nexport const getBackgroundColorByAppearance = (props) => {\n const { theme, appearance } = props;\n const tokensColorsObj = Object.assign(Object.assign({}, theme.colors.signal), { new: theme.colors.signal.promo, alert: theme.colors.signal.neutral });\n return tokensColorsObj[appearance];\n};\nconst getColorByAppearance = (props) => {\n const { theme, appearance } = props;\n if (['success', 'alert', 'error', 'bookmark'].includes(appearance)) {\n return theme.colors.content.inverted;\n }\n return theme.colors.content.tertiary;\n};\n/**\n * @remarks This method will be removed and you should be manually setting the @param icon to display the icon you want.\n */\nconst getIconByAppearance = (appearance, iconVariant = 'small') => {\n switch (appearance) {\n case 'new':\n return React.createElement(StarOutline, { variant: iconVariant, ariaHidden: true });\n case 'offer':\n return React.createElement(Discount, { variant: iconVariant, ariaHidden: true });\n case 'bookmark':\n return React.createElement(Bookmark, { variant: iconVariant, ariaHidden: true });\n case 'success':\n return React.createElement(CheckmarkCircle, { variant: iconVariant, ariaHidden: true });\n case 'error':\n return React.createElement(Alert, { variant: iconVariant, ariaHidden: true });\n case 'alert':\n return React.createElement(Info, { variant: iconVariant, ariaHidden: true });\n default:\n return React.createElement(Info, { variant: iconVariant, ariaHidden: true }); //icon for 'info'\n }\n};\nconst StyledDisplayTag = styled.div.withConfig({ displayName: \"StyledDisplayTag\", componentId: \"sc-1xqza3j\" }) `display:flex;gap:${({ theme }) => theme.size.static100};align-items:center;width:fit-content;height:${({ theme }) => theme.size.static350};background-color:${getBackgroundColorByAppearance};color:${getColorByAppearance};padding:${({ theme }) => theme.size.static150};p{margin-top:${({ theme }) => theme.size.static0};::first-letter{text-transform:uppercase;}}`;\nexport const DisplayTag = (props) => {\n //className is added to the props to be able to overwrite the StyledDisplayTag className\n const { appearance, id, text, hideIcon = false, className, icon, iconVariant, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(ThemeProvider, { theme: \"main\" },\n React.createElement(StyledDisplayTag, Object.assign({ appearance: appearance, className: className, id: id }, commonProps),\n !hideIcon &&\n (icon ? icon : getIconByAppearance(appearance, iconVariant)),\n React.createElement(Text, { tag: TextTag.p, appearance: TokenTextAppearance.copy100, color: TokenTextColor.inherit }, text))));\n};\n//this export is needed to expose the getIconByAppearance function for testing\n//for some reason, if the `export` keyword is added before the function declaration instead\n// the table properties will disappear from the storybook page\nexport { getIconByAppearance };\nDisplayTag.displayName = 'DisplayTag';\n","import * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { DisplayTag, getBackgroundColorByAppearance, } from '../display-tag';\nimport { getCommonProps } from './common-props';\nconst StyledInputNotification = styled(DisplayTag).withConfig({ displayName: \"StyledInputNotification\", componentId: \"sc-4kipwd\" }) `display:flex;padding:0;gap:${({ theme }) => theme.size.static100};align-items:center;width:fit-content;height:auto;color:${getBackgroundColorByAppearance};background-color:transparent;p{font-size:${({ theme }) => theme.fonts.label[100].fontSize};margin-top:0;::first-letter{text-transform:uppercase;}display:${({ isFocused, appearance }) => isFocused || appearance === 'alert' ? 'block' : 'none'};}svg{position:absolute;right:${({ theme }) => theme.size.static250};transform:translateY(calc(-23px - 50%));top:0;}`;\n/*\nThis function is used to display the DisplayTag component with a modified layout and designed to use only in a combination with TextInput, TextArea and Select components.\n*/\nexport const InputNotification = (props) => {\n //className is added to the props to be able to overwrite the StyledDisplayTag className\n const { appearance, id, text, hideIcon = false, className, iconVariant, isFocused, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledInputNotification, Object.assign({ appearance: appearance === 'information' ? 'alert' : appearance, className: className, id: id, isFocused: isFocused, text: text, hideIcon: hideIcon, iconVariant: iconVariant }, commonProps)));\n};\n","export const getMainColor = ({ theme, appearance }) => {\n switch (appearance) {\n case 'readonly':\n return theme.colors.content.primary;\n case 'disabled':\n return theme.colors.content.disabled;\n default:\n return 'inherit';\n }\n};\nexport const getLabelColor = ({ theme, appearance }) => {\n switch (appearance) {\n case 'readonly':\n return theme.colors.content.primary;\n case 'disabled':\n return theme.colors.content.secondary;\n default:\n return theme.colors.content.active;\n }\n};\n// color for borders, etc.\nexport const getAuxillaryColor = ({ theme, appearance }) => {\n switch (appearance) {\n case 'error':\n return theme.colors.signal.error;\n case 'success':\n return theme.colors.signal.success;\n case 'information':\n return theme.colors.signal.neutral;\n default:\n return theme.colors.border.default;\n }\n};\n// color for character counter\nexport const getAuxillaryTextColor = ({ theme }) => theme.colors.content.secondary;\n// color for notifications\nexport const getNotificationColor = ({ theme, appearance }) => {\n switch (appearance) {\n case 'error':\n return theme.colors.signal.error;\n case 'success':\n return theme.colors.signal.success;\n default:\n return theme.colors.signal.neutral;\n }\n};\n","/**\n * Logging wrapper to hide warnings on production\n */\nexport function warn(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n messages.forEach((message) => console.warn(`vwa-lsg: ${message}`));\n }\n}\nexport function warnWithTrace(...messages) {\n if (process.env.NODE_ENV !== 'production') {\n // Only log as a group and add a stacktrace if run in the browser\n if (typeof window === 'undefined') {\n messages.forEach((message) => {\n console.warn(`vwa-lsg: ${message}`);\n });\n }\n else {\n const disableComponentsCoreLogging = (window.sessionStorage &&\n window.sessionStorage.getItem('disableComponentsCoreLogging')) ||\n (window.location.search &&\n window.location.search.includes('disableComponentsCoreLogging'));\n if (!disableComponentsCoreLogging) {\n messages.forEach((message) => {\n console.groupCollapsed(`vwa-lsg: ${message}`);\n console.warn(`vwa-lsg: ${message}`);\n console.trace();\n console.groupEnd();\n });\n }\n }\n }\n}\n","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { styled } from '../theme-provider';\nimport { getCommonProps, getUncommonProps, } from '../helpers/common-props';\nexport const Image = styled.img.withConfig({ displayName: \"Image\", componentId: \"sc-3anbxi\" }) `display:block;width:100%;object-fit:${(props) => props.objectFit};${(props) => props.reduceBrightness && 'filter: brightness(80%)'};`;\nImage.displayName = 'Image';\nexport const DecorativeImage = React.forwardRef((props, ref) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- The `alt` should not be included in the props that get spread to the `Image`\n const { alt } = props, others = __rest(props, [\"alt\"]);\n // `aria-hidden`is required to hide it from voiceover\n return React.createElement(Image, Object.assign({ alt: \"\", \"aria-hidden\": true }, others, { ref: ref }));\n});\nDecorativeImage.displayName = 'DecorativeImage';\nconst TRANSPARENT_GIF = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\nexport const LazyImage = React.forwardRef((props, ref) => {\n const _a = getUncommonProps(props), { src, srcPlaceholder, srcSet, sizes, className, alt, reduceBrightness, _disableNoScript } = _a, others = __rest(_a, [\"src\", \"srcPlaceholder\", \"srcSet\", \"sizes\", \"className\", \"alt\", \"reduceBrightness\", \"_disableNoScript\"]);\n const commonProps = getCommonProps(props);\n return (React.createElement(React.Fragment, null,\n _disableNoScript ? undefined : (React.createElement(\"noscript\", null,\n React.createElement(Image, Object.assign({ alt: alt, className: className, sizes: sizes, src: src, srcSet: srcSet, reduceBrightness: reduceBrightness }, others)))),\n React.createElement(Image\n // The class `lazyload` is required for our 3rd party lazyloading lib to work\n , Object.assign({ \n // The class `lazyload` is required for our 3rd party lazyloading lib to work\n className: `lazyload ${className || ''}`, \n // If an alt attribute is used, a broken image symbol would be displayed\n // if src would be left empty. Therefore we render a transparent 1px gif\n // until lazyload has replaced the src/srcSet.\n src: srcPlaceholder || TRANSPARENT_GIF, \"data-src\": src, \"data-srcset\": srcSet, \"data-sizes\": sizes, alt: alt, reduceBrightness: reduceBrightness, ref: ref }, others, commonProps))));\n});\nLazyImage.displayName = 'LazyImage';\nexport const DecorativeLazyImage = React.forwardRef((props, ref) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- The `alt` should not be included in the props that get spread to the `Image`\n const { alt, reduceBrightness } = props, others = __rest(props, [\"alt\", \"reduceBrightness\"]);\n return (React.createElement(LazyImage, Object.assign({ reduceBrightness: reduceBrightness, alt: \"\" }, others, { ref: ref })));\n});\nDecorativeLazyImage.displayName = 'DecorativeLazyImage';\n","import * as React from 'react';\nimport { Breakpoints } from '../helpers/breakpoint';\nimport { DesignTokenSizeEnum, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nexport { DesignTokenSizeEnum as LayoutRowGap };\nexport const LayoutConfigurations = {\n full: {\n [Breakpoints.default]: [{ name: 'a', columns: 24 }],\n },\n half: {\n [Breakpoints.default]: [\n { name: 'a', columns: 24 },\n { name: 'b', columns: 24 },\n ],\n [Breakpoints.b960]: [\n { name: 'a', columns: 12 },\n { name: 'b', columns: 12 },\n ],\n },\n};\nconst areaConfigIsPlaceholder = (areaConfig) => areaConfig.name !== '.';\n// increase the number of areas in a configuration so it has at least [length] areas\nexport const createFullLayoutConfiguration = (config, length) => {\n const configWithoutEmptySpaces = config.filter(areaConfigIsPlaceholder);\n return Array.from({\n length: Math.ceil(length / configWithoutEmptySpaces.length) * config.length,\n }, (_ignore, index) => {\n const name = config[index % config.length].name;\n const columns = config[index % config.length].columns;\n if (name === '.') {\n return {\n name,\n columns,\n };\n }\n return {\n name: `${name}${Math.floor(index / config.length)}`,\n columns,\n };\n });\n};\n// distribute configured areas into lines and resolve column numbers\nexport const createLayoutConfigurationLines = (config) => config.reduce((acc, area) => {\n const newAreas = Array.from({ length: area.columns }).fill(area.name);\n if (acc.length === 0 || acc[acc.length - 1].length + area.columns > 24) {\n acc.push(newAreas);\n }\n else {\n acc[acc.length - 1].push(...newAreas);\n }\n return acc;\n}, []);\nconst StyledLayout = styled.div.withConfig({ displayName: \"StyledLayout\", componentId: \"sc-a5m3el\" }) `display:grid;max-width:${Breakpoints.b2560}px;margin:auto;${(props) => Object.keys(props.appearance).map((breakpoint) => {\n const config = props.appearance[breakpoint];\n const fullConfig = createFullLayoutConfiguration(config, props.length);\n const configLines = createLayoutConfigurationLines(fullConfig);\n const rule = `\n\t\t\t\t\tgrid-template-columns: repeat(24, 1fr);\n\t\t\t\t\tgrid-template-areas: ${configLines\n .map((line) => `\"${line.join(' ')}\"`)\n .join(' ')};\n\t\t\t\t`;\n if (parseInt(breakpoint, 10) === Breakpoints.default) {\n return rule;\n }\n return `\n\t\t\t\t@media (min-width: ${breakpoint}px) {\n\t\t\t\t\t${rule}\n\t\t\t\t}\n\t\t\t`;\n})} row-gap:${(props) => props.rowGap && props.theme.size[props.rowGap]};`;\nStyledLayout.displayName = 'StyledLayout';\nconst getGridAreaForConfigAndChild = (config, index) => Object.keys(config).map((breakpoint) => {\n const configForBreakpoint = config[breakpoint].filter(areaConfigIsPlaceholder);\n const configForDefaultBreakpoint = config[Breakpoints.default].filter(areaConfigIsPlaceholder);\n const rule = `grid-area: ${configForDefaultBreakpoint[index % configForBreakpoint.length].name}${Math.floor(index / configForBreakpoint.length)};`;\n if (parseInt(breakpoint, 10) === Breakpoints.default) {\n return rule;\n }\n return `\n\t\t\t@media (min-width: ${breakpoint}px) {\n\t\t\t\t${rule}\n\t\t\t}\n\t\t`;\n});\nconst StyledChildWrapper = styled.div.withConfig({ displayName: \"StyledChildWrapper\", componentId: \"sc-ybw8a0\" }) `${(props) => {\n const { appearance, index = 0 } = props;\n return getGridAreaForConfigAndChild(appearance, index);\n}};overflow:${(props) => (props.allowOverflowingContent ? 'visible' : 'hidden')};`;\nStyledChildWrapper.displayName = 'StyledChildWrapper';\nexport const Layout = (props) => {\n const { children, rowGap, allowOverflowingContent, appearance = LayoutConfigurations.full, } = props;\n const commonProps = getCommonProps(props);\n const filteredChildren = React.Children.toArray(children).filter(React.isValidElement);\n if (filteredChildren.length === 0) {\n return null;\n }\n const wrappedChildren = filteredChildren.map((child, index) => {\n var _a;\n const key = (_a = child.key) !== null && _a !== void 0 ? _a : undefined;\n return (React.createElement(StyledChildWrapper, { appearance: appearance, key: key, index: index, allowOverflowingContent: allowOverflowingContent }, child));\n });\n return (React.createElement(StyledLayout, Object.assign({ appearance: appearance, rowGap: rowGap, length: filteredChildren.length }, commonProps), wrappedChildren));\n};\nLayout.displayName = 'Layout';\n","import * as React from 'react';\nexport var RadioButton = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M6 10.67a4.67 4.67 0 1 0 0-9.34 4.67 4.67 0 0 0 0 9.34M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12\", clipRule: \"evenodd\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M12 21.17a9.17 9.17 0 1 0 0-18.34 9.17 9.17 0 0 0 0 18.34m0 1.33c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12 6.2 22.5 12 22.5\", clipRule: \"evenodd\" }));\n }\n return null;\n}, { displayName: 'RadioButton' }));\n","import * as React from 'react';\nexport var RadioButtonSelected = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M6 12A6 6 0 1 0 6 0a6 6 0 0 0 0 12m0-3a3 3 0 1 0 0-6 3 3 0 0 0 0 6\", clipRule: \"evenodd\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M12 22.5c5.799 0 10.5-4.701 10.5-10.5S17.799 1.5 12 1.5 1.5 6.201 1.5 12 6.201 22.5 12 22.5m0-5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11\", clipRule: \"evenodd\" }));\n }\n return null;\n}, { displayName: 'RadioButtonSelected' }));\n","import * as React from 'react';\nimport { RadioButton as RadioButtonIcon, RadioButtonSelected as RadioButtonSelectedIcon, } from '@volkswagen-onehub/icons-core';\nimport { Text, TextTag, TokenTextAppearance, TokenTextColor } from '../text';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst noop = () => undefined;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-12cr2ii\" }) `position:relative;color:${({ theme }) => theme.colors.content.primary};cursor:pointer;`;\nconst StyledRadioWrapper = styled.span.withConfig({ displayName: \"StyledRadioWrapper\", componentId: \"sc-1n1yaaw\" }) `display:flex;align-items:center;color:${({ theme }) => theme.colors.content.primary};> svg{overflow:visible;}> svg:last-child{position:absolute;display:block;opacity:0;}`;\nconst transition = css `transition:fill ${({ theme }) => theme.animation.duration.color} ease,color ${({ theme }) => theme.animation.duration.color} ease;`;\nconst StyledFocusWrapper = styled.span.withConfig({ displayName: \"StyledFocusWrapper\", componentId: \"sc-boy2eb\" }) `position:relative;display:grid;grid-column-gap:${({ theme }) => theme.size.static200};grid-template-columns:max-content auto;align-items:flex-start;:hover{${({ theme, disabled }) => !disabled &&\n css `\n\t\t\t\tcolor: ${theme.colors.controllers.off.hover};\n\t\t\t\t${StyledRadioWrapper} {\n\t\t\t\t\tcolor: ${theme.colors.controllers.off.hover};\n\t\t\t\t}\n\t\t\t`}}:not(:hover){${StyledRadioWrapper}{${transition};}}`;\nconst StyledInput = styled.input.withConfig({ displayName: \"StyledInput\", componentId: \"sc-l2strf\" }) `position:absolute;opacity:0;outline:0;user-select:none;pointer-events:none;:focus-visible{+ ${StyledFocusWrapper}{${StyledRadioWrapper}{outline:${({ theme }) => createA11yOutlineStyles(theme)};}}}:disabled{+ ${StyledFocusWrapper}{cursor:not-allowed;color:${({ theme }) => theme.colors.content.disabled};${StyledRadioWrapper}{color:${({ theme }) => theme.colors.controllers.off.disabled};}}}:checked{+ ${StyledFocusWrapper}{${StyledRadioWrapper}{${transition};color:${({ theme, disabled }) => disabled\n ? theme.colors.controllers.on.disabled\n : theme.colors.controllers.on.default};&:hover{${({ theme, disabled }) => !disabled &&\n css `\n\t\t\t\t\t\t\tcolor: ${theme.colors.controllers.on.hover};\n\t\t\t\t\t\t`}}> svg:last-child{opacity:1;}}}}`;\nexport const RadioButton = (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 { defaultChecked, checked, disabled, id, name, textAppearance = TokenTextAppearance.copy200, value, label = '', results, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledLabel, Object.assign({}, commonProps),\n React.createElement(StyledInput, { defaultChecked: defaultChecked, checked: checked, disabled: disabled, id: id, name: name, onBlur: handleBlur, onChange: handleChange, onClick: handleClick, onFocus: handleFocus, type: \"radio\", value: value }),\n React.createElement(StyledFocusWrapper, { disabled: disabled },\n React.createElement(StyledRadioWrapper, null,\n React.createElement(RadioButtonIcon, { variant: \"default\", ariaHidden: true }),\n React.createElement(RadioButtonSelectedIcon, { variant: \"default\", ariaHidden: true })),\n React.createElement(\"span\", null, label &&\n (typeof label === 'string' ? (React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit, appearance: textAppearance },\n label,\n \" \",\n results && `(${results})`)) : (label))))));\n};\n","import * as React from 'react';\nimport { keyframes } from 'styled-components';\nimport { css, styled } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nconst radius = 7; // in a 24x24 svg viewbox\nconst circumference = 2 * Math.PI * radius;\nconst spin = keyframes `0%{transform:rotate(0);}100%{transform:rotate(2turn);}`;\nconst growth = keyframes `0%{stroke-dashoffset:${circumference};}50%{stroke-dashoffset:${circumference / 4};}100%{stroke-dashoffset:${circumference};}`;\nconst StyledSpinner = styled.svg.withConfig({ displayName: \"StyledSpinner\", componentId: \"sc-euie9g\" }) `${(props) => props.variant === 'default' &&\n css `\n\t\t\twidth: ${props.theme.size.static350};\n\t\t\theight: ${props.theme.size.static350};\n\t\t\tstroke-width: ${(100 / parseInt(props.theme.size.static350, 10)) * 2}%;\n\t\t`} ${(props) => props.variant === 'large' &&\n css `\n\t\t\twidth: ${props.theme.size.static510};\n\t\t\theight: ${props.theme.size.static510};\n\t\t\tstroke-width: ${(100 / parseInt(props.theme.size.static510, 10)) * 2}%;\n\t\t`} ${(props) => props.variant === 'x-large' &&\n css `\n\t\t\twidth: ${props.theme.size.static625};\n\t\t\theight: ${props.theme.size.static625};\n\t\t\tstroke-width: ${(100 / parseInt(props.theme.size.static625, 10)) * 2}%;\n\t\t`}`;\nconst BackgroundPath = styled.path.withConfig({ displayName: \"BackgroundPath\", componentId: \"sc-5vs9d8\" }) `stroke:${(props) => props.theme.colors.signal.info};`;\nconst ForegroundPath = styled.path.withConfig({ displayName: \"ForegroundPath\", componentId: \"sc-uacxr\" }) `stroke:${(props) => props.theme.colors.signal.progress};stroke-dasharray:${circumference} ${circumference};transform-origin:center;animation:2s cubic-bezier(0.41, 0.2, 0.16, 0.59)${spin} infinite,2s cubic-bezier(0.63, 0, 0.58, 1)${growth} infinite;`;\nconst circlePathData = 'M12,5a7,7 0 1,0 0,14a7,7 0 1,0 0,-14';\nexport const Spinner = (props) => (React.createElement(StyledSpinner, Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", fill: \"none\", viewBox: \"0 0 24 24\", variant: props.variant || 'default' }, getCommonProps(props)),\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(BackgroundPath, { d: circlePathData }),\n React.createElement(ForegroundPath, { d: circlePathData })));\n","import * as React from 'react';\nimport { styled, css } from '../theme-provider';\nimport { Text, TextTag, TokenTextColor } from '../text';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst StyledDescription = styled.span.withConfig({ displayName: \"StyledDescription\", componentId: \"sc-16m87bh\" }) `color:${({ theme, disabled }) => theme.colors.controllers.off[disabled ? 'disabled' : 'default']};`;\nconst StyledIndicator = styled.span.withConfig({ displayName: \"StyledIndicator\", componentId: \"sc-mr2f0v\" }) `position:relative;display:block;width:${(props) => props.theme.size.static530};height:${(props) => props.theme.size.static350};background-color:${(props) => props.theme.colors.background.primary};transition:${(props) => props.theme.animation.duration.statusIndicator};border-radius:${(props) => props.theme.size.static350};border:${(props) => props.theme.size.border.heavy} solid ${({ theme, disabled }) => theme.colors.controllers.off[disabled ? 'disabled' : 'default']};&::before{content:'';position:absolute;top:50%;left:calc(-1 * ${(props) => props.theme.size.border.heavy});transform:translateY(-50%)translateX(calc(2 * ${(props) => props.theme.size.border.heavy}));height:${(props) => props.theme.size.static200};width:${(props) => props.theme.size.static200};background-color:${({ theme, disabled }) => theme.colors.controllers.off[disabled ? 'disabled' : 'default']};transition:${(props) => props.theme.animation.duration.statusIndicator};border-radius:50%;}`;\nconst StyledInput = styled.input.withConfig({ displayName: \"StyledInput\", componentId: \"sc-d4l317\" }) `position:absolute;opacity:0;outline:0;user-select:none;pointer-events:none;&:focus{~ ${StyledIndicator}{&::before{background-color:${({ theme }) => theme.colors.controllers.off.default};}}}&:checked{~ ${StyledDescription}{color:${({ theme, disabled }) => theme.colors.controllers.on[disabled ? 'disabled' : 'default']};}~ ${StyledIndicator}{background-color:${({ theme, disabled }) => theme.colors.controllers.on[disabled ? 'disabled' : 'default']};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme, disabled }) => theme.colors.controllers.on[disabled ? 'disabled' : 'default']};&::before{background-color:${(props) => props.theme.colors.content.inverted};transform:translateY(-50%)translateX(${(props) => props.theme.size.static530})translateX(-100%)translateX(calc(-2 * ${(props) => props.theme.size.border.heavy}));}}&:focus{~ ${StyledIndicator}{background-color:${({ theme }) => theme.colors.controllers.on.hover};border:${({ theme }) => theme.size.border.heavy} solid ${({ theme }) => theme.colors.controllers.on.hover};&::before{background-color:${(props) => props.theme.colors.content.inverted};}}}}&:focus-visible{~ ${StyledIndicator}{${({ theme }) => createA11yOutlineStyles(theme, 'solid')}}}`;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-ag1uan\" }) `display:inline-grid;grid-column-gap:${(props) => props.theme.size.static200};grid-template-columns:max-content auto;align-items:center;cursor:${(props) => (props.disabled ? 'not-allowed' : 'pointer')};${(props) => !props.disabled &&\n css `\n\t\t\t&:hover {\n\t\t\t\t${StyledInput}:not(:focus) ~ ${StyledDescription} {\n\t\t\t\t\tcolor: ${({ theme }) => theme.colors.controllers.on.default};\n\t\t\t\t}\n\n\t\t\t\t${StyledInput}:not(:focus) ~ ${StyledIndicator} {\n\t\t\t\t\tbackground-color: ${props.theme.colors.background.primary};\n\t\t\t\t\tborder-color: ${({ theme }) => theme.colors.controllers.on.default};\n\t\t\t\t\t&::before {\n\t\t\t\t\t\tbackground-color: ${({ theme }) => theme.colors.controllers.on.default};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t${StyledInput}:checked:not(:focus) {\n\t\t\t\t\t~ ${StyledIndicator} {\n\t\t\t\t\t\tbackground-color: ${({ theme }) => theme.colors.controllers.on.default};\n\t\t\t\t\t\t&::before {\n\t\t\t\t\t\t\tbackground-color: ${props.theme.colors.background.primary};\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`}`;\nexport const Switch = (props) => {\n const { ariaDescribedBy, checked, children, defaultChecked, disabled, onChange, ariaLabel, } = props;\n const commonProps = getCommonProps(props);\n return (React.createElement(StyledLabel, Object.assign({ disabled: disabled }, commonProps),\n React.createElement(StyledInput, { \"aria-label\": ariaLabel, \"aria-labelledby\": ariaDescribedBy, type: 'checkbox', checked: checked, defaultChecked: defaultChecked, onChange: onChange, disabled: disabled }),\n React.createElement(StyledIndicator, { disabled: disabled }),\n children && (React.createElement(StyledDescription, { disabled: disabled }, typeof children === 'string' ? (React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit }, children)) : (children)))));\n};\n","import * as React from 'react';\nexport var ChevronLeft = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M9 .94 4.39 5.76a.37.37 0 0 0 0 .48L9 11.06l-.93.94-4.6-4.82a1.71 1.71 0 0 1 0-2.36L8.07 0z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m15.54 21.56-.93.94-9.1-9.32a1.71 1.71 0 0 1 0-2.36l9.1-9.32.93.94-9.09 9.32a.34.34 0 0 0 0 .48z\" }));\n }\n return null;\n}, { displayName: 'ChevronLeft' }));\n","import * as React from 'react';\nexport var ChevronRight = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M9 6a1.7 1.7 0 0 1-.47 1.18L3.93 12 3 11.06l4.61-4.82a.36.36 0 0 0 0-.48L3 .94 3.93 0l4.6 4.82A1.72 1.72 0 0 1 9 6\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M19 12a1.73 1.73 0 0 1-.47 1.18l-9.1 9.32-.93-.94 9.09-9.32a.34.34 0 0 0 0-.48L8.5 2.44l.93-.94 9.1 9.32A1.7 1.7 0 0 1 19 12\" }));\n }\n return null;\n}, { displayName: 'ChevronRight' }));\n","import * as React from 'react';\nimport { styled, css } from '../theme-provider';\nimport { Text, TextTag, TextContext, TokenTextColor, TokenTextAppearance, } from '../text';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nconst StyledInteractionIndicator = styled.span.withConfig({ displayName: \"StyledInteractionIndicator\", componentId: \"sc-fh8jn1\" }) `color:${({ theme, disabled }) => disabled ? theme.colors.tab.disabled : theme.colors.tab.default};position:relative;top:-${({ theme }) => parseInt(theme.size.border.heavy, 10) / 2}px;${({ theme, isContainer }) => isContainer &&\n css `\n\t\t\tborder-radius: ${theme.size.static200};\n\t\t\tborder: ${theme.size.border.heavy};\n\t\t\tpadding: ${theme.size.static150} ${theme.size.static250};\n\t\t`} ${({ theme, isContainer, disabled, isSelected }) => isContainer &&\n !disabled &&\n css `\n\t\t\t:hover {\n\t\t\t\tbackground-color: ${isSelected ? theme.colors.tab.stepnav.selected : 'none'};\n\t\t\t\tcolor: ${theme.colors.tab.hover};\n\t\t\t}\n\t\t`} ${({ disabled }) => disabled && 'cursor: not-allowed;'} ${({ disabled, isContainer, theme, isSelected }) => {\n if (isContainer && isSelected) {\n return css `\n\t\t\t\tbackground: ${disabled\n ? theme.colors.tab.stepnav.disabled\n : theme.colors.tab.stepnav.selected};\n\t\t\t`;\n }\n return undefined;\n}}:has(svg){svg{${({ theme }) => theme.direction === 'rtl'\n ? css `\n\t\t\t\t\t\t\tmargin-left: ${theme.size.static150};\n\t\t\t\t\t\t`\n : css `\n\t\t\t\t\t\t\tmargin-right: ${theme.size.static150};\n\t\t\t\t\t\t`}}}`;\nconst StyledTab = styled.button.withConfig({ displayName: \"StyledTab\", componentId: \"sc-1knivlq\" }) `position:relative;white-space:nowrap;border:0;box-shadow:none;background:none;${({ tabBarVerticalPosition, isContainer, 'aria-disabled': ariaDisabled, theme, }) => {\n if (ariaDisabled) {\n return;\n }\n if (isContainer) {\n return css `\n\t\t\t\tpadding: ${theme.size.static100} 0;\n\t\t\t`;\n }\n return css `\n\t\t\t// padding added for the outline to not be cut off\n\t\t\tpadding-left: ${parseInt(theme.size.border.heavy, 10) * 1.5}px;\n\t\t\tpadding-right: ${parseInt(theme.size.border.heavy, 10) * 1.5}px;\n\n\t\t\t:hover,\n\t\t\t:focus {\n\t\t\t\t${StyledInteractionIndicator} {\n\t\t\t\t\tcolor: ${theme.colors.tab.hover};\n\t\t\t\t}\n\n\t\t\t\t&::before {\n\t\t\t\t\twidth: calc(\n\t\t\t\t\t\tvar(--tabs-indicator-width) -\n\t\t\t\t\t\t\t${parseInt(theme.size.border.heavy, 10) * 3}px\n\t\t\t\t\t);\n\n\t\t\t\t\tcontent: '';\n\t\t\t\t\tposition: absolute;\n\t\t\t\t\theight: ${theme.size.line.default};\n\t\t\t\t\tbackground: ${theme.colors.tab.hover};\n\n\t\t\t\t\t${tabBarVerticalPosition}: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t`;\n}}:focus-visible{outline:none;${StyledInteractionIndicator}{${({ theme }) => createA11yOutlineStyles(theme, 'solid')};${({ theme, isContainer }) => !isContainer &&\n css `\n\t\t\t\t\tborder-radius: ${theme.size.line.default};\n\t\t\t\t\tcolor: ${theme.colors.tab.hover};\n\t\t\t\t\toutline-offset: ${parseInt(theme.size.border.heavy, 10) / 2}px;\n\t\t\t\t`}}}${({ theme, 'aria-disabled': ariaDisabled, isContainer }) => ariaDisabled &&\n css `\n\t\t\tcursor: not-allowed;\n\n\t\t\t:focus-visible {\n\t\t\t\t${StyledInteractionIndicator} {\n\t\t\t\t\t${createA11yOutlineStyles(theme, 'solid')};\n\t\t\t\t\t${!isContainer &&\n css `\n\t\t\t\t\t\tborder-radius: ${theme.size.line.default};\n\t\t\t\t\t\tcolor: ${theme.colors.tab.disabled};\n\t\t\t\t\t\toutline-offset: ${parseInt(theme.size.border.heavy, 10) / 2}px;\n\t\t\t\t\t`}\n\t\t\t\t}\n\t\t\t}\n\t\t`}`;\nconst StyledTabAnchor = styled.span.withConfig({ displayName: \"StyledTabAnchor\", componentId: \"sc-j9jjx8\" }) `display:inline-block;margin:0;border:none;background:transparent;padding:${({ theme, tabBarVerticalPosition }) => tabBarVerticalPosition === 'bottom' || tabBarVerticalPosition === 'top'\n ? `${theme.size.static150} 0`\n : 'inherit'};color:inherit;text-decoration:none;cursor:pointer;${({ isContainer }) => !isContainer &&\n css `\n\t\t\t:hover:enabled ${StyledInteractionIndicator} {\n\t\t\t\tcolor: ${({ theme }) => theme.colors.tab.hover};\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t`} ${({ disabled }) => disabled &&\n css `\n\t\t\tcursor: not-allowed;\n\t\t`}`;\nexport const Tab = React.forwardRef((props, forwardRef) => {\n const { isContainer, disabled, tabBarVerticalPosition, forwardKey, idPrefix, index, onClick, onMouseEnter, onMouseLeave, isSelected, title, } = props;\n const commonProps = getCommonProps(props);\n const handleClick = React.useCallback(() => {\n if (onClick && !disabled) {\n onClick(index);\n }\n }, [onClick, index, disabled]);\n const handleMouseEnter = React.useCallback((event) => {\n if (onMouseEnter) {\n onMouseEnter(event, isSelected);\n }\n }, [isSelected, onMouseEnter]);\n const handleMouseLeave = React.useCallback((event) => {\n if (onMouseLeave) {\n onMouseLeave(event, isSelected);\n }\n }, [onMouseLeave, isSelected]);\n const textContextValue = React.useMemo(() => ({\n bold: isSelected,\n }), [isSelected]);\n let titleTextElement = null;\n if (title) {\n if (typeof title === 'string') {\n titleTextElement = (React.createElement(Text, { tag: TextTag.span, color: TokenTextColor.inherit, appearance: TokenTextAppearance.label200 }, title));\n }\n else {\n titleTextElement = React.cloneElement(title, {\n color: TokenTextColor.inherit,\n tag: TextTag.span,\n appearance: TokenTextAppearance.label200,\n });\n }\n }\n return (React.createElement(StyledTab, { isContainer: isContainer, tabBarVerticalPosition: tabBarVerticalPosition, role: \"tab\", key: forwardKey, id: `${idPrefix}-tab-${index}`, \"aria-controls\": disabled ? undefined : `${idPrefix}-content-${index}`, \"aria-selected\": isSelected, \"aria-disabled\": disabled, \n // disabled tabs should be programmatically focusabled for a11y standards (hence the -1)\n tabIndex: isSelected ? 0 : -1, index: index, onMouseEnter: disabled ? undefined : handleMouseEnter, onMouseLeave: disabled ? undefined : handleMouseLeave, isSelected: isSelected, onClick: handleClick, ref: forwardRef },\n React.createElement(StyledTabAnchor, Object.assign({ isContainer: isContainer, disabled: disabled, tabBarVerticalPosition: tabBarVerticalPosition }, commonProps),\n React.createElement(StyledInteractionIndicator, { isContainer: isContainer, disabled: disabled, isSelected: isSelected },\n React.createElement(TextContext.Provider, { value: textContextValue }, titleTextElement)))));\n});\nTab.displayName = 'Tab';\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 { styled, useTheme, css } from '../theme-provider';\nimport { getCommonProps } from '../helpers/common-props';\nimport { ChevronLeft, ChevronRight } from '@volkswagen-onehub/icons-core';\nimport { Tab } from './tab';\nimport { usePreviousNextButtonsDisabledState } from './use-previous-next-button-disabled-state';\nimport { useAnimatedIndicator } from './use-animated-indicator';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nimport { useThrottleCallback } from '@react-hook/throttle';\nconst StyledTabsWrapper = styled.div.withConfig({ displayName: \"StyledTabsWrapper\", componentId: \"sc-62va80\" }) `display:flex;position:relative;gap:${({ theme }) => theme.size.static250};min-height:${({ theme }) => theme.size.static535};isolation:isolate;overflow:hidden;`;\nconst StyledChevronLeft = styled(ChevronLeft).withConfig({ displayName: \"StyledChevronLeft\", componentId: \"sc-111j90j\" }) ``;\nconst StyledChevronRight = styled(ChevronRight).withConfig({ displayName: \"StyledChevronRight\", componentId: \"sc-1g6f5ti\" }) ``;\nconst BackgroundGradientLeft = css `inset-inline-end:0;::before{content:\"\";background:${({ theme }) => theme.direction === 'rtl'\n ? theme.colors.scrolling.left\n : theme.colors.scrolling.right};inset-inline-end:100%;}`;\nconst BackgroundGradientRight = css `inset-inline-start:0;::after{content:\"\";background:${({ theme }) => theme.direction === 'rtl'\n ? theme.colors.scrolling.right\n : theme.colors.scrolling.left};inset-inline-start:100%;}`;\nconst StyledScrollButton = styled.button.withConfig({ displayName: \"StyledScrollButton\", componentId: \"sc-1s47bbc\" }) `position:absolute;color:${({ theme }) => theme.colors.button.tertiary.default};width:${({ theme }) => theme.size.static350};padding:0;border:0;box-shadow:none;background-color:${({ theme }) => theme.colors.background.primary};opacity:1;cursor:pointer;inset-block:1em;transition:${({ theme }) => {\n const duration = theme.animation.duration.layer;\n const timingFunction = theme.animation.timingFunction.in;\n return `opacity ${duration} ${timingFunction}`;\n}};${({ scrollDirection }) => scrollDirection === 'forward' && BackgroundGradientLeft} ${({ scrollDirection }) => scrollDirection === 'backward' && BackgroundGradientRight}:hover{color:${({ theme }) => theme.colors.tab.hover};}:focus-visible{${({ theme }) => createA11yOutlineStyles(theme)};}::before,::after{position:absolute;width:${({ theme }) => theme.size.static530};height:100%;top:0;bottom:0;pointer-events:none;cursor:auto;}${StyledChevronLeft},${StyledChevronRight}{opacity:1;transition:${({ theme }) => {\n const duration = theme.animation.duration.layer;\n const timingFunction = theme.animation.timingFunction.in;\n return `opacity ${duration} ${timingFunction}`;\n}};transition-delay:${({ theme }) => theme.animation.duration.layer};}:disabled{transition-delay:${({ theme }) => theme.animation.duration.layer};opacity:0;cursor:auto;pointer-events:none;${StyledChevronLeft},${StyledChevronRight}{opacity:0;transition-delay:0s;}}`;\nconst StyledTabPanel = styled.div.withConfig({ displayName: \"StyledTabPanel\", componentId: \"sc-jle9ug\" }) `color:${({ theme }) => theme.colors.content.primary};margin:${({ theme }) => theme.size.static150} ${({ theme }) => parseInt(theme.size.static100, 10) - 2}px;:focus-visible{border-radius:${({ theme }) => theme.size.line.default};${({ theme }) => createA11yOutlineStyles(theme, 'solid')};}`;\nconst tabsIndicatorBackground = css `${({ theme, isCurrentActiveTabDisabled }) => isCurrentActiveTabDisabled\n ? theme.colors.tab.disabled\n : theme.colors.tab.active}`;\nconst StyledTabBar = styled.div.withConfig({ displayName: \"StyledTabBar\", componentId: \"sc-1qs7pda\" }) `position:initial;display:flex;justify-items:start;column-gap:${({ theme }) => theme.size.static400};width:100%;z-index:-1;margin-block-start:1rem;margin-block-end:1rem;${({ tabBarVerticalPosition, variant, theme }) => variant === 'underlined' &&\n tabBarVerticalPosition === 'top' &&\n css `\n\t\t\t&::after {\n\t\t\t\tcontent: \"\";\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: ${theme.size.line.default};\n\t\t\t\ttop: ${theme.size.static250};\n\t\t\t\tbackground-color: ${theme.colors.border.default};\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t`} ${({ tabBarVerticalPosition, variant, theme }) => variant === 'underlined' &&\n tabBarVerticalPosition === 'bottom' &&\n css `\n\t\t\t&::after {\n\t\t\t\tcontent: \"\";\n\t\t\t\tposition: absolute;\n\t\t\t\tbottom: 0;\n\t\t\t\tleft: 0;\n\t\t\t\twidth: 100%;\n\t\t\t\theight: ${theme.size.line.default};\n\t\t\t\tbottom: ${theme.size.static250};\n\t\t\t\tbackground-color: ${theme.colors.border.default};\n\t\t\t\tz-index: -1;\n\t\t\t}\n\t\t`} overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;overscroll-behavior-x:contain;overscroll-behavior-y:contain;::-webkit-scrollbar{display:none;}scrollbar-width:none;-webkit-overflow-scrolling:touch;${({ variant, tabBarVerticalPosition, theme }) => {\n if (variant === 'step navigation') {\n return `padding: 0 ${theme.size.static100};`;\n }\n return css `\n\t\t\t&::before {\n\t\t\t\ttransition: transform ${theme.animation.timingFunction.cubicOut}\n\t\t\t\t\t${theme.animation.duration.tabIndicator};\n\t\t\t\twidth: var(--tabs-indicator-width);\n\t\t\t\ttransform-origin: ${theme.direction === 'rtl' ? 'right' : 'left'};\n\t\t\t\tcontent: \"\";\n\t\t\t\tposition: absolute;\n\t\t\t\ttransform: var(--tabs-indicator-transform);\n\t\t\t\theight: ${theme.size.line.active};\n\t\t\t\tbackground: var(\n\t\t\t\t\t--tabs-indicator-background,\n\t\t\t\t\t${tabsIndicatorBackground}\n\t\t\t\t);\n\n\t\t\t\t${tabBarVerticalPosition}: ${theme.size.static250};\n\t\t\t}\n\n\t\t\t// changes the color of the indicator line when the currently active tab is focused\n\t\t\t:has(:focus-visible)::before {\n\t\t\t\tbackground: var(\n\t\t\t\t\t--tabs-indicator-background,\n\t\t\t\t\t${tabsIndicatorBackground}\n\t\t\t\t);\n\t\t\t}\n\t\t`;\n}}`;\nexport const Tabs = (props) => {\n const { scrollable = false, variant = 'underlined', tabBarVerticalPosition = 'bottom', defaultIndex, children, idPrefix, onChange = () => undefined, } = props;\n const commonProps = getCommonProps(props);\n const tabsRef = React.useRef([]);\n const tabBarRef = React.useRef(null);\n const [activeIndex, setActiveIndex] = React.useState(defaultIndex !== null && defaultIndex !== void 0 ? defaultIndex : 0);\n const disabledTabIndex = children.findIndex((child, index) => child.disabled === true && index === activeIndex);\n const { direction, size } = useTheme();\n const { updateIndicatorPosition, updateIndicatorColor } = useAnimatedIndicator(tabBarRef, tabsRef, activeIndex);\n const { isPreviousButtonDisabled, isNextButtonDisabled } = usePreviousNextButtonsDisabledState({\n tabBarRef,\n tabsRef,\n });\n const scrollToTab = React.useCallback((index) => {\n if (!tabBarRef.current || !tabsRef.current || !tabsRef.current[index]) {\n return;\n }\n const scrollLeft = tabBarRef.current.scrollLeft;\n const { left: tabBarLeft, right: tabBarRight } = tabBarRef.current.getBoundingClientRect();\n const { left: targetTabLeft, right: targetTabRight } = tabsRef.current[index].getBoundingClientRect();\n const navigationShadowWidth = parseInt(size.static530, 10);\n // divided by 2 because it is enough to have the clearly visible tab\n const arrowButtonWidth = parseInt(size.static350, 10) / 2;\n if (targetTabLeft <\n tabBarLeft + navigationShadowWidth + arrowButtonWidth) {\n const left = scrollLeft +\n targetTabLeft -\n (navigationShadowWidth + arrowButtonWidth) -\n tabBarLeft;\n tabBarRef.current.scrollTo({\n left,\n behavior: 'smooth',\n });\n return;\n }\n if (targetTabRight + navigationShadowWidth + arrowButtonWidth >\n tabBarRight) {\n const left = scrollLeft +\n navigationShadowWidth +\n arrowButtonWidth +\n targetTabRight -\n tabBarRight;\n tabBarRef.current.scrollTo({\n left,\n behavior: 'smooth',\n });\n }\n }, [size]);\n const setFocusToActiveTab = React.useCallback((activeIndex) => {\n const activeTabDOMNode = tabsRef.current[activeIndex];\n if (activeTabDOMNode) {\n activeTabDOMNode.focus();\n }\n }, []);\n const handleScroll = useThrottleCallback(React.useCallback(() => {\n updateIndicatorPosition(activeIndex);\n }, [updateIndicatorPosition, activeIndex]), 60, true);\n const setActiveTab = React.useCallback((index) => {\n setActiveIndex(index);\n requestAnimationFrame(() => scrollToTab(index));\n // if the currently active tab is disabled choose the disabled color, otherwise tab.default\n const isDisabledTab = tabsRef.current[index].getAttribute('aria-disabled') === 'true';\n updateIndicatorColor(isDisabledTab, true);\n setFocusToActiveTab(index);\n onChange(index);\n }, [setFocusToActiveTab, onChange, updateIndicatorColor, scrollToTab]);\n React.useEffect(() => {\n const index = defaultIndex !== null && defaultIndex !== void 0 ? defaultIndex : 0;\n setActiveIndex(index);\n requestAnimationFrame(() => scrollToTab(index));\n }, [defaultIndex, scrollToTab]);\n const handleMouseEnter = React.useCallback((event, isActive) => {\n const currentlyHoveredTab = event.currentTarget;\n const currentlyHoveredTabWidth = currentlyHoveredTab.offsetWidth;\n // sets the indicator width of the currently hovered tab\n currentlyHoveredTab.style.setProperty('--tabs-indicator-width', `${currentlyHoveredTabWidth}px`);\n if (disabledTabIndex !== -1) {\n updateIndicatorColor(true);\n return;\n }\n const currentlySelectedTab = tabsRef.current.find((tab) => tab.getAttribute('aria-selected') === 'true');\n //if the current tab is selected but the hover is on another tab keep the active color on the currently selected tab\n updateIndicatorColor(false, isActive || currentlySelectedTab === document.activeElement);\n }, [updateIndicatorColor, disabledTabIndex]);\n const handleMouseLeave = React.useCallback((event) => {\n updateIndicatorColor(disabledTabIndex !== -1, event.currentTarget === document.activeElement);\n }, [updateIndicatorColor, disabledTabIndex]);\n const handleKeyUp = React.useCallback((event) => {\n // only handle arrow left and right keys\n if (event.key !== 'ArrowRight' && event.key !== 'ArrowLeft') {\n return;\n }\n event.preventDefault();\n const dirPrevKey = direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const change = event.key === dirPrevKey ? -1 : 1;\n const targetIndex = (activeIndex + change + tabsRef.current.length) %\n tabsRef.current.length;\n if (targetIndex !== activeIndex) {\n setActiveTab(targetIndex);\n }\n }, [activeIndex, direction, setActiveTab]);\n const handleTabBarFocus = (e) => {\n const target = e.target;\n const isDisabledTab = target.getAttribute('aria-disabled') === 'true';\n updateIndicatorColor(isDisabledTab, true);\n };\n const handleTabBarBlur = () => updateIndicatorColor(disabledTabIndex !== -1);\n const handleChevronBackwardClick = React.useCallback(() => {\n if (!tabBarRef.current) {\n return;\n }\n const { left: tabBarLeft, right: tabBarRight } = tabBarRef.current.getBoundingClientRect();\n // find first tab (on the previous side) that is not completely visible\n // biome-ignore lint/suspicious/noExplicitAny: findLastIndex is missing in the types, but it exists in all supported browsers\n const previousIndex = tabsRef.current.findLastIndex((tab) => {\n const { left: tabLeft, right: tabRight } = tab.getBoundingClientRect();\n if (direction === 'rtl') {\n return Math.floor(tabRight) > Math.ceil(tabBarRight);\n }\n else {\n return Math.ceil(tabLeft) < Math.floor(tabBarLeft);\n }\n });\n if (previousIndex !== -1) {\n scrollToTab(previousIndex);\n }\n }, [direction, scrollToTab]);\n const handleChevronForwardClick = React.useCallback(() => {\n if (!tabBarRef.current) {\n return;\n }\n const { left: tabBarLeft, right: tabBarRight } = tabBarRef.current.getBoundingClientRect();\n // find first tab (on the next side) that is not completely visible\n const nextTabIndex = tabsRef.current.findIndex((tab) => {\n const { left: tabLeft, right: tabRight } = tab.getBoundingClientRect();\n if (direction === 'rtl') {\n return Math.ceil(tabLeft) < Math.floor(tabBarLeft);\n }\n else {\n return Math.floor(tabRight) > Math.ceil(tabBarRight);\n }\n });\n if (nextTabIndex !== -1) {\n scrollToTab(nextTabIndex);\n }\n }, [direction, scrollToTab]);\n return (React.createElement(React.Fragment, null,\n React.createElement(StyledTabsWrapper, { onKeyUp: handleKeyUp },\n scrollable && (React.createElement(StyledScrollButton, { scrollDirection: \"backward\", disabled: isPreviousButtonDisabled, onClick: handleChevronBackwardClick, \"aria-label\": direction === 'rtl'\n ? 'scroll to next tab'\n : 'scroll to previous tab' }, direction === 'rtl' ? (React.createElement(StyledChevronRight, { variant: \"small\", ariaHidden: true })) : (React.createElement(StyledChevronLeft, { variant: \"small\", ariaHidden: true })))),\n React.createElement(StyledTabBar, Object.assign({ onFocus: handleTabBarFocus, onBlur: handleTabBarBlur, role: \"tablist\", ref: tabBarRef, variant: variant, tabBarVerticalPosition: tabBarVerticalPosition, isCurrentActiveTabDisabled: disabledTabIndex !== -1, scrollable: scrollable, onScroll: handleScroll }, commonProps), children.map(({ title, key, anchorProps = {}, disabled }, index) => (React.createElement(Tab, Object.assign({ isContainer: variant === 'step navigation', key: key, ref: (instance) => {\n if (instance) {\n tabsRef.current[index] = instance;\n }\n }, isSelected: activeIndex === index, idPrefix: idPrefix, index: index, title: title, disabled: disabled, onClick: setActiveTab, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, tabBarVerticalPosition: tabBarVerticalPosition }, getCommonProps(anchorProps)))))),\n scrollable && (React.createElement(StyledScrollButton, { scrollDirection: \"forward\", disabled: isNextButtonDisabled, onClick: handleChevronForwardClick, \"aria-label\": direction === 'rtl'\n ? 'scroll to previous tab'\n : 'scroll to next tab' }, direction === 'rtl' ? (React.createElement(StyledChevronLeft, { variant: \"small\", ariaHidden: true })) : (React.createElement(StyledChevronRight, { variant: \"small\", ariaHidden: true }))))),\n children.map((tab, index) => (React.createElement(StyledTabPanel, { \"aria-hidden\": tab.disabled, tabIndex: tab.disabled ? undefined : 0, role: \"tabpanel\", hidden: tab.disabled || index !== activeIndex, key: tab.key, id: `${idPrefix}-content-${index}`, \"aria-labelledby\": `${idPrefix}-tab-${index}` }, tab.content)))));\n};\n","import * as React from 'react';\nimport { useTheme } from '../theme-provider';\nexport const useAnimatedIndicator = (tabBarRef, tabsRef, activeIndex) => {\n const { colors, direction } = useTheme();\n const updateIndicatorPosition = React.useCallback((activeIndex) => {\n var _a, _b;\n const activeTab = tabsRef.current[activeIndex];\n if (!activeTab || !tabBarRef.current) {\n return;\n }\n // position\n let offset;\n let position;\n if (direction === 'rtl') {\n offset = (_a = tabBarRef.current.getBoundingClientRect().right) !== null && _a !== void 0 ? _a : 0;\n position = activeTab.getBoundingClientRect().right;\n }\n else {\n offset = (_b = tabBarRef.current.getBoundingClientRect().left) !== null && _b !== void 0 ? _b : 0;\n position = activeTab.getBoundingClientRect().left;\n }\n const target = position - offset;\n tabBarRef.current.style.setProperty('--tabs-indicator-transform', `translateX(${target}px)`);\n // width\n const width = activeTab.getBoundingClientRect().width;\n tabBarRef.current.style.setProperty('--tabs-indicator-width', `${width}px`);\n }, [tabsRef, tabBarRef, direction]);\n const updateIndicatorColor = React.useCallback((disabled = false, active = false) => {\n var _a, _b, _c;\n if (disabled) {\n (_a = tabBarRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty('--tabs-indicator-background', colors.tab.disabled || 'initial');\n }\n else if (active) {\n (_b = tabBarRef.current) === null || _b === void 0 ? void 0 : _b.style.setProperty('--tabs-indicator-background', colors.tab.hover || 'initial');\n }\n else {\n (_c = tabBarRef.current) === null || _c === void 0 ? void 0 : _c.style.setProperty('--tabs-indicator-background', colors.tab.default || 'initial');\n }\n }, [colors.tab.default, colors.tab.disabled, colors.tab.hover, tabBarRef]);\n // update indicator width and position when tabs component becomes visible when it is initially hidden\n React.useEffect(() => {\n const wrapper = tabBarRef.current;\n const tabs = tabsRef.current;\n if (!wrapper || !tabs) {\n return;\n }\n const activeTabObserver = new ResizeObserver((entries, _observer) => {\n const activeTab = entries[0];\n if (activeTab.contentRect.width > 0) {\n updateIndicatorPosition(activeIndex);\n }\n });\n activeTabObserver.observe(tabs[activeIndex]);\n return () => {\n if (tabs) {\n activeTabObserver.unobserve(tabs[activeIndex]);\n }\n else {\n activeTabObserver.disconnect();\n }\n };\n }, [tabBarRef, activeIndex, updateIndicatorPosition, tabsRef]);\n // add resize handler\n React.useEffect(() => {\n const handleResize = () => {\n updateIndicatorPosition(activeIndex);\n };\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [activeIndex, updateIndicatorPosition]);\n return {\n updateIndicatorPosition,\n updateIndicatorColor,\n };\n};\n","import * as React from 'react';\nexport const usePreviousNextButtonsDisabledState = ({ tabBarRef, tabsRef, }) => {\n const [isPreviousButtonDisabled, setIsPreviousButtonDisabled] = React.useState(true);\n const [isNextButtonDisabled, setIsNextButtonDisabled] = React.useState(true);\n React.useEffect(() => {\n if (!tabBarRef.current && !tabsRef.current[0]) {\n return;\n }\n const firstTab = tabsRef.current[0];\n const lastTab = tabsRef.current[tabsRef.current.length - 1];\n const options = {\n root: tabBarRef.current,\n threshold: 0.99,\n rootMargin: '100% 0%',\n };\n const firstTabIntersectionObserver = new IntersectionObserver((entries) => {\n entries.forEach(({ target, isIntersecting }) => {\n const isPreviousButton = target === firstTab;\n if (isPreviousButton) {\n setIsPreviousButtonDisabled(isIntersecting);\n }\n else {\n setIsNextButtonDisabled(isIntersecting);\n }\n });\n }, options);\n firstTabIntersectionObserver.observe(firstTab);\n firstTabIntersectionObserver.observe(lastTab);\n return () => {\n firstTabIntersectionObserver.unobserve(firstTab);\n firstTabIntersectionObserver.unobserve(lastTab);\n };\n }, [tabBarRef, tabsRef]);\n return { isPreviousButtonDisabled, isNextButtonDisabled };\n};\n","import * as React from 'react';\nexport var InputShow = 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 9a3 3 0 1 0 3 3 3 3 0 0 0-3-3m0-1.33A4.33 4.33 0 1 1 7.67 12 4.33 4.33 0 0 1 12 7.67m0-.99a12.15 12.15 0 0 0-9.71 4.744l-.254.313L1.83 12l.205.264A12.87 12.87 0 0 0 12 17.319a12.23 12.23 0 0 0 9.71-4.743l.255-.312.204-.264-.204-.263A12.78 12.78 0 0 0 12 6.68m0-1.33c4.654 0 8.517 2.103 11.538 6.26a.665.665 0 0 1 0 .78c-3.02 4.157-6.884 6.26-11.538 6.26S3.483 16.546.462 12.39a.665.665 0 0 1 0-.78C3.482 7.452 7.346 5.35 12 5.35\" }));\n }\n return null;\n}, { displayName: 'InputShow' }));\n","import * as React from 'react';\nexport var InputHide = 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 9.231a3 3 0 0 0-1.095.206l3.889 3.89A3.002 3.002 0 0 0 12 9.23m0-2.319a12.5 12.5 0 0 0-3.216.404L9.906 8.44a4.331 4.331 0 0 1 5.886 5.884l1.864 1.866a13.6 13.6 0 0 0 4.008-3.327l.3-.368.205-.264-.204-.263a12.28 12.28 0 0 0-9.229-5.036l-.366-.015zm-3.912 3.461 1.028 1.03a3.002 3.002 0 0 0 3.714 3.712l1.027 1.029a4.332 4.332 0 0 1-5.77-5.77zM5.14 7.427l.975.972a13.7 13.7 0 0 0-3.783 3.207l-.296.363-.206.263.206.264a12.28 12.28 0 0 0 9.228 5.036l.367.014.369.005a12.6 12.6 0 0 0 2.93-.333l1.085 1.084A13.7 13.7 0 0 1 12 18.88c-4.654 0-8.517-2.102-11.538-6.258a.665.665 0 0 1 0-.782A16 16 0 0 1 5.14 7.426m15.172 13.29L3.815 4.22l.936-.936 2.963 2.962A13.6 13.6 0 0 1 12 5.583c4.654 0 8.517 2.102 11.538 6.258a.665.665 0 0 1 0 .782 15.8 15.8 0 0 1-4.902 4.546l2.611 2.613z\" }));\n }\n return null;\n}, { displayName: 'InputHide' }));\n","import * as React from 'react';\nexport var CloseCircle = React.forwardRef(Object.assign(function (props, forwardRef) {\n var variant = props.variant || \"default\";\n if (variant === \"small\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"12\", height: \"12\", viewBox: \"0 0 12 12\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M6 11.665A5.48 5.48 0 0 1 .335 6 5.48 5.48 0 0 1 6 .335 5.48 5.48 0 0 1 11.665 6 5.48 5.48 0 0 1 6 11.665m0-10A4.147 4.147 0 0 0 1.665 6 4.147 4.147 0 0 0 6 10.335 4.147 4.147 0 0 0 10.335 6 4.147 4.147 0 0 0 6 1.665\" }),\n React.createElement(\"path\", { d: \"m8.235 4.706-.94-.942L6 5.059 4.705 3.764l-.94.942L5.059 6 3.765 7.294l.94.942L6 6.941l1.295 1.295.94-.942L6.941 6z\" }));\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 46C10.963 46 1.5 36.746 1.5 24S10.963 2 24 2s22.5 9.252 22.5 22S37.037 46 24 46m0-42C12.121 4 3.5 12.412 3.5 24S12.121 44 24 44s20.5-8.412 20.5-20c0-11.589-8.62-20-20.5-20\" }),\n React.createElement(\"path\", { d: \"m31.149 18.416-1.397-1.431L24 22.603l-5.752-5.618-1.396 1.431L22.569 24l-5.717 5.584 1.396 1.432L24 25.398l5.752 5.618 1.397-1.432L25.431 24z\" }));\n }\n if (variant === \"default\") {\n return React.createElement(\"svg\", { className: props.className, \"aria-hidden\": props.ariaHidden, role: props.ariaHidden ? undefined : \"img\", tabIndex: props.tabIndex, \"aria-label\": props.ariaLabel, ref: forwardRef, xmlns: \"http://www.w3.org/2000/svg\", width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 22.665A10.315 10.315 0 0 1 1.335 12 10.315 10.315 0 0 1 12 1.335 10.315 10.315 0 0 1 22.665 12 10.315 10.315 0 0 1 12 22.665m0-20A9.03 9.03 0 0 0 2.665 12 9.03 9.03 0 0 0 12 21.335 9.03 9.03 0 0 0 21.335 12 9.03 9.03 0 0 0 12 2.665\" }),\n React.createElement(\"path\", { d: \"m15.47 9.471-.94-.941L12 11.059 9.47 8.53l-.94.941L11.059 12 8.53 14.53l.94.941 2.53-2.53 2.53 2.53.94-.941L12.941 12z\" }));\n }\n return null;\n}, { displayName: 'CloseCircle' }));\n","import * as React from 'react';\nimport { CloseCircle, InputShow, InputHide } from '@volkswagen-onehub/icons-core';\nimport { styled, css } from '../theme-provider';\nimport { CharacterCounter } from '../character-counter';\nimport { getAuxillaryColor, getAuxillaryTextColor, getMainColor, getLabelColor, } from '../helpers/input';\nimport { Spinner } from '../spinner';\nimport { getCommonProps } from '../helpers/common-props';\nimport { createA11yOutlineStyles } from '../helpers/a11y';\nimport { InputNotification } from '../helpers/input-notification';\nconst iconTransitionDuration = '0.15s';\nconst clearClickAreaSize = 44;\nconst clearIconSize = 24;\nconst clearIconOffset = (clearClickAreaSize - clearIconSize) / 2;\nconst inputClearPadding = `${clearClickAreaSize - clearIconOffset}px`;\nconst StyledInput = styled.input.withConfig({ displayName: \"StyledInput\", componentId: \"sc-dkk40\" }) `width:100%;padding:${({ theme }) => parseInt(theme.size.static100) / 2}px 0;padding-inline-start:${({ icon, hasValue, placeholder, theme }) => icon && !hasValue && placeholder ? theme.size.static400 : '0'};padding-inline-end:${(hasClearButton) => hasClearButton ? inputClearPadding : '0'};border:0;border-radius:0;background:transparent;cursor:${({ appearance }) => (appearance === 'disabled' ? 'not-allowed' : '')};color:${getMainColor};outline:none;-webkit-appearance:none;font-size:${({ theme }) => theme.fonts.copy[200].fontSize};font-family:inherit;transition:${(props) => \n/*\n \"padding\" instead of \"padding-inline-start\" because Safari (15.6.1)\n will not animate the padding otherwise\n*/\nprops.hasValue ? 'none' : `padding ${iconTransitionDuration} ease-in-out`};&::placeholder{opacity:1;color:${({ theme }) => theme.colors.content.secondary};}&::-webkit-input-placeholder{color:${({ theme }) => theme.colors.content.secondary};}&:focus:not(:read-only){padding-inline-start:0;}&::-ms-reveal{display:none;}&::-ms-clear{display:none;width:0;height:0;}&::-webkit-search-decoration,&::-webkit-search-cancel-button,&::-webkit-search-results-button,&::-webkit-search-results-decoration{display:none;}`;\nconst StyledLabel = styled.label.withConfig({ displayName: \"StyledLabel\", componentId: \"sc-1qwsrsp\" }) `display:flex;flex-direction:column;justify-content:center;gap:2px;width:100%;height:50px;margin-bottom:${({ theme }) => theme.size.static150};padding:0 ${({ theme }) => theme.size.static250};position:relative;color:${getLabelColor};background-color:${({ appearance, theme }) => appearance === 'readonly' && theme.colors.background.tertiary};box-shadow:0 0 0 ${({ theme }) => theme.size.border.light} ${getAuxillaryColor};border-radius:${({ theme }) => theme.size.static150};${({ appearance }) => (appearance === 'success' ||\n appearance === 'error' ||\n appearance === 'information') &&\n css `\n\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t${getAuxillaryColor};\n\t\t`} ${({ appearance }) => (appearance === 'default' || appearance === 'validation') &&\n css `\n\t\t\t&:hover {\n\t\t\t\ttransition: box-shadow 300ms ease;\n\t\t\t\t-webkit-transition: box-shadow 300ms ease;\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.light}\n\t\t\t\t\t${({ theme }) => theme.colors.border.hover};\n\t\t\t}\n\t\t\t&:focus-within {\n\t\t\t\tbox-shadow: 0 0 0 ${({ theme }) => theme.size.border.heavy}\n\t\t\t\t\t${({ theme }) => theme.colors.focus.main};\n\t\t\t}\n\t\t`} ${({ hasIcon, theme, isFloatingLabel }) => !isFloatingLabel &&\n css `\n\t\t\t${StyledSmallLabelText} {\n\t\t\t\tpadding-inline-start: ${hasIcon ? theme.size.static400 : '0'};\n\t\t\t\ttransition: padding-inline-start ${iconTransitionDuration} ease-in-out;\n\t\t\t}\n\t\t\t&:focus-within ${StyledSmallLabelText} {\n\t\t\t\tpadding-inline-start: 0;\n\t\t\t\ttransition: padding-inline-start ${iconTransitionDuration} ease-in-out\n\t\t\t\t\t${iconTransitionDuration};\n\t\t\t}\n\t\t`} ${({ appearance, isFloatingLabel, theme }) => appearance !== 'readonly' &&\n isFloatingLabel &&\n css `\n\t\t\t/* On focus / while typing: Label-style, above the input */\n\t\t\t&:focus-within ${StyledSmallLabelText} {\n\t\t\t\tmax-height: ${theme.size.static250};\n\t\t\t\ttransition: max-height ${iconTransitionDuration} ease-in-out\n\t\t\t\t\t${iconTransitionDuration};\n\t\t\t}\n\n\t\t\t${StyledSmallLabelText} {\n\t\t\t\ttransition: max-height ${iconTransitionDuration} ease-in-out;\n\t\t\t}\n\t\t`} ${({ hasMessage, appearance, theme }) => hasMessage &&\n appearance === 'information' &&\n css `\n\t\t\tmargin-bottom: ${theme.size.static400};\n\t\t`} ${({ hasMessage, appearance, theme }) => hasMessage &&\n (appearance === 'success' || appearance === 'error') &&\n css `\n\t\t\t&:focus-within {\n\t\t\t\tmargin-bottom: ${theme.size.static400};\n\t\t\t}\n\t\t`} ${({ hasValue, theme }) => hasValue &&\n css `\n\t\t\t${StyledSmallLabelText} {\n\t\t\t\tmax-height: ${theme.size.static250};\n\t\t\t}\n\t\t`}`;\n/**\n * Basic version of the label.\n * If there is a floating label, this one only acts as an invisible spacer.\n * We need this spacer because we cannot know its height if the user has\n * text-only zoom activated and/or there are line breaks.\n */\nconst StyledSmallLabelText = styled.p.withConfig({ displayName: \"StyledSmallLabelText\", componentId: \"sc-14oup5p\" }) `font-size:${({ theme }) => theme.fonts.label[100].fontSize};margin:0;padding:0;visibility:${({ isSpacer }) => (isSpacer ? 'hidden' : 'initial')};max-height:${({ isSpacer, theme }) => (isSpacer ? '0' : theme.size.static250)};transition:max-height 0.25s ease-in-out;`;\nconst StyledFloatingLabelText = styled.p.withConfig({ displayName: \"StyledFloatingLabelText\", componentId: \"sc-3d3za9\" }) `position:absolute;margin:0;transition:all 0.25s ease-in-out;${({ hasValue, hasIcon, theme, hasClearButton }) => {\n // Label-style, above the input\n if (hasValue) {\n return css `\n\t\t\t\tbottom: 100%;\n\t\t\t\tcursor: initial;\n\t\t\t\tfont-size: ${theme.fonts.label[100].fontSize};\n\t\t\t\tpadding: 0;\n\t\t\t`;\n }\n // Placeholder style, \"inside\" the input\n return css `\n\t\t\tbottom: 0;\n\t\t\tcursor: text;\n\t\t\tfont-size: ${theme.fonts.copy[200].fontSize};\n\t\t\tpadding: ${theme.size.static100} 0;\n\t\t\tpadding-inline-start: ${hasIcon ? theme.size.static400 : '0'};\n\t\t\tpadding-inline-end: ${hasClearButton ? inputClearPadding : '0'};\n\t\t`;\n}} ${StyledInput}:focus:not(:read-only)~ &{bottom:100%;padding:0;font-size:${({ theme }) => theme.fonts.label[100].fontSize};cursor:initial;background:transparent;color:${getMainColor};}`;\nconst StyledIcon = styled.div.withConfig({ displayName: \"StyledIcon\", componentId: \"sc-1ay2o8c\" }) `display:flex;position:absolute;opacity:${({ hasValue }) => (hasValue ? 0 : 1)};transition:${({ hasValue }) => hasValue\n ? 'none'\n : `all ${iconTransitionDuration} ease-in-out\n\t\t${iconTransitionDuration}`};${StyledLabel}:focus-within &{opacity:0;transition:all ${iconTransitionDuration} ease-in-out;}`;\nconst StyledAdditionalInfo = styled.div.withConfig({ displayName: \"StyledAdditionalInfo\", componentId: \"sc-141e8wv\" }) `display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start;gap:${({ theme }) => theme.size.static150};width:100%;color:${getAuxillaryTextColor};position:absolute;bottom:0;left:0;padding-top:2px;transform:translateY(100%);`;\nconst StyledClearButton = styled.button.withConfig({ displayName: \"StyledClearButton\", componentId: \"sc-k6jebn\" }) `position:relative;width:${clearClickAreaSize}px;height:${clearClickAreaSize}px;transform:translateX(\\n\\t\\t${({ theme }) => theme.direction === 'rtl'\n ? `-${clearIconOffset}px`\n : `${clearIconOffset}px`}\\n\\t);background:transparent;padding:0;border:none;line-height:0;cursor:${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};outline:none;-webkit-appearance:none;pointer-events:initial;color:${({ disabled, theme }) => theme.colors.button.primary[disabled ? 'disabled' : 'default']};:hover:not(:disabled){color:${({ theme }) => theme.colors.button.primary.hover};}:focus-visible{${({ theme }) => createA11yOutlineStyles(theme)}}`;\nconst StyledClearButtonWrapper = styled.div.withConfig({ displayName: \"StyledClearButtonWrapper\", componentId: \"sc-3jqzog\" }) `position:absolute;right:0;left:0;top:calc(50% - ${({ theme }) => theme.size.static150});transform:translateY(-50%);pointer-events:none;display:flex;flex-direction:row-reverse;`;\nconst StyledInputLineWrapper = styled.div.withConfig({ displayName: \"StyledInputLineWrapper\", componentId: \"sc-19kmswn\" }) `position:relative;`;\nconst SpinnerWrapper = styled.div.withConfig({ displayName: \"SpinnerWrapper\", componentId: \"sc-10k8t3q\" }) `position:absolute;${({ theme }) => (theme.direction === 'rtl' ? `left: 0;` : `right: 0;`)} top:0;`;\nexport const TextInputInner = (props) => {\n const { additionalFeedback, appearance = 'default', autoFocus, clearIconLabel = '', customId, defaultValue, hasClearButton, icon, innerRef, isClearButtonVisible, label = '', maxLength, name, onBlur, onChange, onKeyDown, onClear, onFocus, isFloating, message = '', placeholder, required = false, togglePasswordVisibilityIconLabel = '', type, value, autoComplete, inputMode, characterCountLimit, max, min, step, } = props;\n const [hasValue, setHasValue] = React.useState(Boolean(value || defaultValue));\n const [currentInputType, setCurrentInputType] = React.useState(type);\n const [characterCount, setCharacterCount] = React.useState((value === null || value === void 0 ? void 0 : value.length) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.length) || 0);\n const [isFocused, setIsFocused] = React.useState(false);\n const commonProps = getCommonProps(props);\n const isPasswordInput = type === 'password';\n const labelText = (React.createElement(React.Fragment, null,\n label,\n required && '*'));\n const isDisabled = appearance === 'disabled';\n const isReadOnly = appearance === 'readonly';\n const validateInputField = (event) => {\n setHasValue(Boolean(event.currentTarget.value));\n };\n const handleBlur = (event) => {\n validateInputField(event);\n setIsFocused(false);\n if (onBlur) {\n onBlur(event);\n }\n };\n const handleChange = (event) => {\n // needed for the label to float when the input is filled in through browser's autocomplete\n setHasValue(Boolean(event.target.value));\n if (onChange) {\n onChange(event);\n }\n };\n const handleFocus = (event) => {\n setIsFocused(true);\n if (onFocus) {\n onFocus(event);\n }\n };\n const isNotificationAppearance = (appearance) => ['error', 'success', 'information'].includes(appearance);\n /*\n ariaInvalid and ariaDescribedBy are used to set the aria-invalid and aria-describedby attributes\n according to the appearance of the input. These properties are needed to make the input accessible.\n */\n const ariaInvalid = appearance === 'error';\n const ariaDescribedBy = isNotificationAppearance(appearance)\n ? `${appearance}-message-${customId}`\n : undefined;\n React.useEffect(() => {\n var _a;\n setCharacterCount((_a = value === null || value === void 0 ? void 0 : value.length) !== null && _a !== void 0 ? _a : 0);\n }, [value]);\n return (React.createElement(StyledLabel, Object.assign({ appearance: appearance, isFloatingLabel: isFloating, hasValue: hasValue, hasMessage: message, hasIcon: Boolean(icon) }, commonProps),\n icon && React.createElement(StyledIcon, { hasValue: hasValue }, icon),\n React.createElement(StyledSmallLabelText, { isSpacer: isFloating }, labelText),\n React.createElement(StyledInputLineWrapper, null,\n React.createElement(StyledInput, { appearance: appearance, autoFocus: autoFocus, defaultValue: defaultValue, \"aria-required\": required, required: required, disabled: isDisabled, icon: icon, maxLength: maxLength, name: name, onBlur: handleBlur, onChange: handleChange, onFocus: handleFocus, onKeyDown: onKeyDown, placeholder: placeholder, readOnly: isReadOnly, \"aria-readonly\": isReadOnly, \"aria-describedby\": ariaDescribedBy, \"aria-invalid\": ariaInvalid, ref: innerRef, type: currentInputType, value: value, autoComplete: autoComplete, hasValue: hasValue, hasClearButton: hasClearButton, inputMode: inputMode, max: max, min: min, step: step }),\n isPasswordInput && currentInputType === 'password' && (React.createElement(StyledClearButtonWrapper, null,\n React.createElement(StyledClearButton, { \"aria-label\": togglePasswordVisibilityIconLabel, title: togglePasswordVisibilityIconLabel, onClick: () => setCurrentInputType('text'), type: \"button\", disabled: appearance === 'disabled' },\n React.createElement(InputShow, { ariaHidden: true })))),\n isPasswordInput && currentInputType === 'text' && (React.createElement(StyledClearButtonWrapper, null,\n React.createElement(StyledClearButton, { \"aria-label\": togglePasswordVisibilityIconLabel, title: togglePasswordVisibilityIconLabel, onClick: () => setCurrentInputType('password'), type: \"button\", disabled: appearance === 'disabled' },\n React.createElement(InputHide, null)))),\n !isPasswordInput && hasClearButton && isClearButtonVisible && (React.createElement(StyledClearButtonWrapper, null,\n React.createElement(StyledClearButton, { \"aria-label\": clearIconLabel, title: clearIconLabel, onClick: onClear, type: \"button\", disabled: appearance === 'disabled' },\n React.createElement(CloseCircle, { variant: \"default\", ariaHidden: true })))),\n isFloating && (React.createElement(StyledFloatingLabelText, { hasIcon: Boolean(icon), hasValue: hasValue, hasClearButton: hasClearButton }, labelText)),\n appearance === 'validation' && (React.createElement(SpinnerWrapper, null,\n React.createElement(Spinner, null)))),\n React.createElement(StyledAdditionalInfo, null,\n isNotificationAppearance(appearance) && (React.createElement(InputNotification, { appearance: appearance, id: ariaDescribedBy, text: message, isFocused: isFocused, hideIcon: appearance === 'information', iconVariant: \"default\" })),\n (characterCountLimit !== null && characterCountLimit !== void 0 ? characterCountLimit : (maxLength && maxLength > 0)) ? (React.createElement(CharacterCounter, { value: characterCount, limit: characterCountLimit || maxLength || 0 })) : null),\n additionalFeedback));\n};\nexport const TextInput = React.forwardRef((props, ref) => React.createElement(TextInputInner, Object.assign({}, props, { innerRef: ref })));\n","import * as React from 'react';\nimport { css, styled } from '../theme-provider';\nimport { createStylesForBreakpoints, } from '../helpers/breakpoint';\nimport { warnWithTrace } from '../helpers/logger';\nimport { getCommonProps } from '../helpers/common-props';\nimport { TextAppearance as TokenTextAppearance, } from '@volkswagen-onehub/tokens/';\nexport { TokenTextAppearance };\nexport var TextTag;\n(function (TextTag) {\n TextTag[\"span\"] = \"span\";\n TextTag[\"div\"] = \"div\";\n TextTag[\"p\"] = \"p\";\n TextTag[\"h1\"] = \"h1\";\n TextTag[\"h2\"] = \"h2\";\n TextTag[\"h3\"] = \"h3\";\n TextTag[\"h4\"] = \"h4\";\n TextTag[\"h5\"] = \"h5\";\n TextTag[\"sub\"] = \"sub\";\n TextTag[\"sup\"] = \"sup\";\n TextTag[\"strong\"] = \"strong\";\n TextTag[\"del\"] = \"del\";\n TextTag[\"legend\"] = \"legend\";\n TextTag[\"li\"] = \"li\";\n TextTag[\"dt\"] = \"dt\";\n TextTag[\"dd\"] = \"dd\";\n})(TextTag || (TextTag = {}));\nexport var TextAlignment;\n(function (TextAlignment) {\n TextAlignment[\"center\"] = \"center\";\n TextAlignment[\"left\"] = \"left\";\n TextAlignment[\"right\"] = \"right\";\n TextAlignment[\"start\"] = \"start\";\n TextAlignment[\"end\"] = \"end\";\n})(TextAlignment || (TextAlignment = {}));\nexport var TokenTextColor;\n(function (TokenTextColor) {\n TokenTextColor[\"primary\"] = \"primary\";\n TokenTextColor[\"secondary\"] = \"secondary\";\n TokenTextColor[\"inherit\"] = \"inherit\";\n TokenTextColor[\"tertiary\"] = \"tertiary\";\n TokenTextColor[\"inverted\"] = \"inverted\";\n TokenTextColor[\"active\"] = \"active\";\n})(TokenTextColor || (TokenTextColor = {}));\nexport var WhiteSpace;\n(function (WhiteSpace) {\n WhiteSpace[\"normal\"] = \"normal\";\n WhiteSpace[\"nowrap\"] = \"nowrap\";\n WhiteSpace[\"pre\"] = \"pre\";\n WhiteSpace[\"preLine\"] = \"pre-line\";\n WhiteSpace[\"preWrap\"] = \"pre-wrap\";\n WhiteSpace[\"initial\"] = \"initial\";\n WhiteSpace[\"inherit\"] = \"inherit\";\n})(WhiteSpace || (WhiteSpace = {}));\nconst createTextColorStyles = (props) => {\n const { theme, textColor } = props;\n const colorPath = theme.colors.content;\n const colorsObj = {\n [TokenTextColor.inherit]: 'inherit',\n [TokenTextColor.primary]: colorPath.primary,\n [TokenTextColor.secondary]: colorPath.secondary,\n [TokenTextColor.tertiary]: colorPath.tertiary,\n [TokenTextColor.inverted]: colorPath.inverted,\n [TokenTextColor.active]: colorPath.active,\n };\n const color = textColor\n ? colorsObj[textColor]\n : colorsObj[TokenTextColor.primary];\n return `\n\t\tcolor: ${color};\n\t`;\n};\nfunction createTokenFontStyles(props) {\n var _a;\n const { bold, staticSize, sub, sup, appearance = 'copy200', theme } = props;\n const [, fontKey, fontSizeKey] = appearance.match(/([a-z]{1,25})(\\d{1,10})/);\n const fontProperties = theme.fonts[fontKey][parseInt(fontSizeKey, 10)];\n if (!fontProperties) {\n warnWithTrace(`The textAppearance ${appearance} could not be found`);\n return '';\n }\n const fontWeight = bold ? 'bold' : ((_a = fontProperties.fontWeight) !== null && _a !== void 0 ? _a : 'normal');\n const { fontFamily, fontSize, letterSpacing, lineHeight, reducedFontSize } = staticSize ? Object.assign(Object.assign({}, fontProperties), fontProperties.static) : fontProperties;\n // var(--font-family-text) and var(--font-family-head) are set in the integrator-root component\n return `\n\t\tmargin: unset;\n\t\tfont-family: ${(fontFamily === null || fontFamily === void 0 ? void 0 : fontFamily.startsWith('vw-head')) ? 'var(--font-family-head)' : 'var(--font-family-text)'};\n\t\tfont-weight: ${fontWeight};\n\t\tfont-size: ${sub || sup ? reducedFontSize : fontSize};\n\t\tline-height: ${sub || sup ? '0' : lineHeight};\n\t\tletter-spacing: ${letterSpacing};\n\t`;\n}\nfunction createTextAlignStylesForBreakpoints(props) {\n if (!props.textAlign) {\n return '';\n }\n return createStylesForBreakpoints(props.textAlign, (textAlign) => `text-align: ${textAlign};`);\n}\nconst StyledTextComponent = styled.span.withConfig({ displayName: \"StyledTextComponent\", componentId: \"sc-hqqa9q\" }) `position:${(props) => (props.sub || props.sup) && 'static'};vertical-align:${(props) => {\n if (props.sup) {\n return 'super';\n }\n if (props.sub) {\n return 'sub';\n }\n return '';\n}};${({ wordBreak }) => wordBreak &&\n css `\n\t\t\tword-break: normal;\n\t\t`} ${({ wordBreak, hyphens }) => wordBreak &&\n typeof hyphens === 'undefined' &&\n css `\n\t\t\toverflow-wrap: anywhere;\n\t\t`} ${({ hyphens }) => hyphens &&\n css `\n\t\t\thyphens: ${hyphens};\n\t\t`} &:lang(ko){word-break:keep-all;}${createTextColorStyles} ${createTokenFontStyles} ${createTextAlignStylesForBreakpoints} ${({ strikethrough }) => {\n if (typeof strikethrough === 'undefined') {\n return;\n }\n return `text-decoration: ${strikethrough ? 'line-through' : 'initial'};`;\n}} white-space:${(props) => props.whiteSpace};`;\nStyledTextComponent.displayName = 'StyledTextComponent';\nexport const TextContext = React.createContext({});\n/**\n * Usually React.memo has no big effect on components that take children,\n * because the children are a new object reference on each render - The text\n * component however is often used with just a string as children, which makes\n * this optimization work well in those cases.\n */\nexport const Text = React.memo((props) => {\n const context = React.useContext(TextContext);\n const { appearance, bold = context.bold, children, className, id, color = context.textColor, staticSize = context.staticSize, strikethrough, sub, sup, tag = (sub && TextTag.sub) ||\n (sup && TextTag.sup) ||\n (context.textAppearance && TextTag.span) ||\n TextTag.div, textAlign, wordBreak, whiteSpace, hyphens, } = props;\n const commonProps = getCommonProps(props);\n const textAppearance = appearance || context.textAppearance || TokenTextAppearance.copy200;\n const innerContextValue = React.useMemo(() => ({\n textAppearance,\n bold,\n textColor: color,\n staticSize,\n }), [textAppearance, bold, color, staticSize]);\n return (React.createElement(StyledTextComponent, Object.assign({ as: tag, appearance: textAppearance, bold: bold, textColor: color, staticSize: staticSize, strikethrough: strikethrough, sub: sub, sup: sup, textAlign: textAlign, wordBreak: wordBreak, whiteSpace: whiteSpace, hyphens: hyphens, className: className, id: id }, commonProps),\n React.createElement(TextContext.Provider, { value: innerContextValue }, children)));\n});\nText.displayName = 'Text';\n","export function createCSSVarName(data, prefix) {\n if (!data || Object.keys(data).length === 0) {\n throw new Error('invalid data');\n }\n const path = [\n ...(prefix ? [prefix] : []),\n ...(typeof data === 'string'\n ? [data]\n : Object.keys(data)\n .sort()\n .reduce((acc, key) => [...acc, key, data[key]], [])),\n ];\n return `--${path\n .join('-')\n .toLowerCase()\n .replace(/[^a-z,0-9-]/g, '-')}`;\n}\n","export var DesignTokenSizeEnum;\n(function (DesignTokenSizeEnum) {\n DesignTokenSizeEnum[\"static0\"] = \"static0\";\n DesignTokenSizeEnum[\"static100\"] = \"static100\";\n DesignTokenSizeEnum[\"static150\"] = \"static150\";\n DesignTokenSizeEnum[\"static200\"] = \"static200\";\n DesignTokenSizeEnum[\"static250\"] = \"static250\";\n DesignTokenSizeEnum[\"static300\"] = \"static300\";\n DesignTokenSizeEnum[\"static350\"] = \"static350\";\n DesignTokenSizeEnum[\"static370\"] = \"static370\";\n DesignTokenSizeEnum[\"static400\"] = \"static400\";\n DesignTokenSizeEnum[\"static450\"] = \"static450\";\n DesignTokenSizeEnum[\"static500\"] = \"static500\";\n DesignTokenSizeEnum[\"static510\"] = \"static510\";\n DesignTokenSizeEnum[\"static515\"] = \"static515\";\n DesignTokenSizeEnum[\"static520\"] = \"static520\";\n DesignTokenSizeEnum[\"static530\"] = \"static530\";\n DesignTokenSizeEnum[\"static535\"] = \"static535\";\n DesignTokenSizeEnum[\"static550\"] = \"static550\";\n DesignTokenSizeEnum[\"static565\"] = \"static565\";\n DesignTokenSizeEnum[\"static575\"] = \"static575\";\n DesignTokenSizeEnum[\"static600\"] = \"static600\";\n DesignTokenSizeEnum[\"static625\"] = \"static625\";\n DesignTokenSizeEnum[\"static650\"] = \"static650\";\n DesignTokenSizeEnum[\"static700\"] = \"static700\";\n DesignTokenSizeEnum[\"static750\"] = \"static750\";\n DesignTokenSizeEnum[\"static800\"] = \"static800\";\n DesignTokenSizeEnum[\"static900\"] = \"static900\";\n DesignTokenSizeEnum[\"static1000\"] = \"static1000\";\n DesignTokenSizeEnum[\"static1100\"] = \"static1100\";\n DesignTokenSizeEnum[\"static1200\"] = \"static1200\";\n DesignTokenSizeEnum[\"grid001\"] = \"grid001\";\n DesignTokenSizeEnum[\"grid002\"] = \"grid002\";\n DesignTokenSizeEnum[\"grid003\"] = \"grid003\";\n DesignTokenSizeEnum[\"grid004\"] = \"grid004\";\n DesignTokenSizeEnum[\"grid005\"] = \"grid005\";\n DesignTokenSizeEnum[\"grid006\"] = \"grid006\";\n DesignTokenSizeEnum[\"grid007\"] = \"grid007\";\n DesignTokenSizeEnum[\"grid008\"] = \"grid008\";\n DesignTokenSizeEnum[\"grid009\"] = \"grid009\";\n DesignTokenSizeEnum[\"grid010\"] = \"grid010\";\n DesignTokenSizeEnum[\"grid011\"] = \"grid011\";\n DesignTokenSizeEnum[\"grid012\"] = \"grid012\";\n DesignTokenSizeEnum[\"grid013\"] = \"grid013\";\n DesignTokenSizeEnum[\"grid014\"] = \"grid014\";\n DesignTokenSizeEnum[\"grid015\"] = \"grid015\";\n DesignTokenSizeEnum[\"grid016\"] = \"grid016\";\n DesignTokenSizeEnum[\"grid017\"] = \"grid017\";\n DesignTokenSizeEnum[\"grid018\"] = \"grid018\";\n DesignTokenSizeEnum[\"grid019\"] = \"grid019\";\n DesignTokenSizeEnum[\"grid020\"] = \"grid020\";\n DesignTokenSizeEnum[\"grid021\"] = \"grid021\";\n DesignTokenSizeEnum[\"grid022\"] = \"grid022\";\n DesignTokenSizeEnum[\"grid023\"] = \"grid023\";\n DesignTokenSizeEnum[\"grid024\"] = \"grid024\";\n DesignTokenSizeEnum[\"dynamic0020\"] = \"dynamic0020\";\n DesignTokenSizeEnum[\"dynamic0040\"] = \"dynamic0040\";\n DesignTokenSizeEnum[\"dynamic0050\"] = \"dynamic0050\";\n DesignTokenSizeEnum[\"dynamic0100\"] = \"dynamic0100\";\n DesignTokenSizeEnum[\"dynamic0120\"] = \"dynamic0120\";\n DesignTokenSizeEnum[\"dynamic0130\"] = \"dynamic0130\";\n DesignTokenSizeEnum[\"dynamic0140\"] = \"dynamic0140\";\n DesignTokenSizeEnum[\"dynamic0150\"] = \"dynamic0150\";\n DesignTokenSizeEnum[\"dynamic0200\"] = \"dynamic0200\";\n DesignTokenSizeEnum[\"dynamic0250\"] = \"dynamic0250\";\n DesignTokenSizeEnum[\"dynamic0270\"] = \"dynamic0270\";\n DesignTokenSizeEnum[\"dynamic0300\"] = \"dynamic0300\";\n DesignTokenSizeEnum[\"dynamic0350\"] = \"dynamic0350\";\n DesignTokenSizeEnum[\"dynamic0450\"] = \"dynamic0450\";\n DesignTokenSizeEnum[\"fluid200\"] = \"fluid200\";\n})(DesignTokenSizeEnum || (DesignTokenSizeEnum = {}));\nexport var DesignTokenFontSizes;\n(function (DesignTokenFontSizes) {\n DesignTokenFontSizes[\"size0100\"] = \"size0100\";\n DesignTokenFontSizes[\"size0150\"] = \"size0150\";\n DesignTokenFontSizes[\"size0200\"] = \"size0200\";\n DesignTokenFontSizes[\"size0250\"] = \"size0250\";\n DesignTokenFontSizes[\"size0300\"] = \"size0300\";\n DesignTokenFontSizes[\"size0350\"] = \"size0350\";\n DesignTokenFontSizes[\"size0400\"] = \"size0400\";\n DesignTokenFontSizes[\"size0450\"] = \"size0450\";\n DesignTokenFontSizes[\"size0500\"] = \"size0500\";\n DesignTokenFontSizes[\"size0550\"] = \"size0550\";\n DesignTokenFontSizes[\"size0600\"] = \"size0600\";\n DesignTokenFontSizes[\"fluid200\"] = \"fluid200\";\n})(DesignTokenFontSizes || (DesignTokenFontSizes = {}));\n","const basis = 24;\nfunction assertCountGridColumn(count) {\n if (process.env.NODE_ENV !== 'production') {\n if (Math.floor(count) !== count) {\n throw new Error('count has to be an integer.');\n }\n if (count < 0 || count > basis) {\n throw new Error(`count has to be between 0 and ${basis}.`);\n }\n }\n}\nexport function getGridColumn(count) {\n assertCountGridColumn(count);\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((100 / basis) * count * 100) / 100}vw`;\n}\nexport function getColumnsWidthForBreakpoint(columns, breakpoint) {\n assertCountGridColumn(columns);\n // Round down to two decimal places\n // two decimal places because Edge has issues with too many decimal places\n // round down, so (positive) rounding errors do not add up\n return `${Math.floor((breakpoint / basis) * columns * 100) / 100}px`;\n}\n","import { Breakpoints } from '../helpers/breakpoint';\nimport { getColumnsWidthForBreakpoint, getGridColumn } from '../helpers/grid';\nimport { globalColors } from '@volkswagen-onehub/tokens';\n/**\n * This map contains values to be used with sizes and spacings. The 'spacing'\n * key is deprecated. Use 'size' instead. This map allows the same values to be\n * available for both keys.\n */\nconst sizes = {\n static0: '0',\n static100: '4px',\n static150: '8px',\n static200: '12px',\n static250: '16px',\n static300: '20px',\n static350: '24px',\n static370: '28px',\n static400: '32px',\n static450: '40px',\n static500: '44px',\n static510: '48px',\n static515: '52px',\n static520: '56px',\n static530: '64px',\n static535: '68px',\n static550: '72px',\n static565: '80px',\n static575: '84px',\n static600: '92px',\n static625: '96px',\n static650: '100px',\n static750: '120px',\n static800: '132px',\n static900: '156px',\n static1000: '172px',\n static1100: '184px',\n static1200: '196px',\n grid001: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(1) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(1, Breakpoints.b2560),\n },\n ],\n grid002: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(2) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(2, Breakpoints.b2560),\n },\n ],\n grid003: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(3) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(3, Breakpoints.b2560),\n },\n ],\n grid004: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(4) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(4, Breakpoints.b2560),\n },\n ],\n grid005: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(5) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(5, Breakpoints.b2560),\n },\n ],\n grid006: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(6) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(6, Breakpoints.b2560),\n },\n ],\n grid007: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(7) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(7, Breakpoints.b2560),\n },\n ],\n grid008: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(8) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(8, Breakpoints.b2560),\n },\n ],\n grid009: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(9) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(9, Breakpoints.b2560),\n },\n ],\n grid010: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(10) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(10, Breakpoints.b2560),\n },\n ],\n grid011: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(11) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(11, Breakpoints.b2560),\n },\n ],\n grid012: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(12) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(12, Breakpoints.b2560),\n },\n ],\n grid013: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(13) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(13, Breakpoints.b2560),\n },\n ],\n grid014: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(14) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(14, Breakpoints.b2560),\n },\n ],\n grid015: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(15) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(15, Breakpoints.b2560),\n },\n ],\n grid016: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(16) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(16, Breakpoints.b2560),\n },\n ],\n grid017: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(17) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(17, Breakpoints.b2560),\n },\n ],\n grid018: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(18) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(18, Breakpoints.b2560),\n },\n ],\n grid019: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(19) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(19, Breakpoints.b2560),\n },\n ],\n grid020: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(20) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(20, Breakpoints.b2560),\n },\n ],\n grid021: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(21) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(21, Breakpoints.b2560),\n },\n ],\n grid022: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(22) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(22, Breakpoints.b2560),\n },\n ],\n grid023: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(23) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(23, Breakpoints.b2560),\n },\n ],\n grid024: [\n { breakpoint: `${Breakpoints.default}`, value: getGridColumn(24) },\n {\n breakpoint: `${Breakpoints.b2560}px`,\n value: getColumnsWidthForBreakpoint(24, Breakpoints.b2560),\n },\n ],\n dynamic0020: [\n { breakpoint: `${Breakpoints.default}`, value: '4px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '4px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '8px' },\n ],\n dynamic0040: [\n { breakpoint: `${Breakpoints.default}`, value: '12px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '20px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '32px' },\n { breakpoint: `${Breakpoints.b2560}px`, value: '48px' },\n ],\n dynamic0050: [\n { breakpoint: `${Breakpoints.default}`, value: '12px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '20px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '24px' },\n ],\n dynamic0100: [\n { breakpoint: `${Breakpoints.default}`, value: '20px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '24px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '28px' },\n ],\n dynamic0120: [\n { breakpoint: `${Breakpoints.default}`, value: '24px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '20px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '20px' },\n ],\n dynamic0130: [\n { breakpoint: `${Breakpoints.default}`, value: '24px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '40px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '52px' },\n ],\n dynamic0140: [\n { breakpoint: `${Breakpoints.default}`, value: '28px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '32px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '48px' },\n ],\n dynamic0150: [\n { breakpoint: `${Breakpoints.default}`, value: '28px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '52px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '64px' },\n ],\n dynamic0200: [\n { breakpoint: `${Breakpoints.default}`, value: '32px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '56px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '72px' },\n ],\n dynamic0250: [\n { breakpoint: `${Breakpoints.default}`, value: '44px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '68px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '84px' },\n ],\n dynamic0270: [\n { breakpoint: `${Breakpoints.default}`, value: '56px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '80px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '100px' },\n ],\n dynamic0300: [\n { breakpoint: `${Breakpoints.default}`, value: '72px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '96px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '120px' },\n ],\n dynamic0350: [\n { breakpoint: `${Breakpoints.default}`, value: '100px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '132px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '196px' },\n ],\n dynamic0450: [\n { breakpoint: `${Breakpoints.default}`, value: '156px' },\n { breakpoint: `${Breakpoints.b560}px`, value: '172px' },\n { breakpoint: `${Breakpoints.b1600}px`, value: '184px' },\n ],\n line100: '1px',\n line200: '2px',\n};\n/**\n * Set of design tokens to be used in the UI themes\n *\n * Only the tokens defined here can be used for component styling\n */\nexport const designTokens = {\n animation: {\n duration: {\n duration300: '300ms',\n duration400: '400ms',\n duration500: '500ms',\n duration600: '600ms',\n duration2000: '2000ms',\n },\n timingFunction: {\n timing100: 'ease',\n timing200: 'linear',\n timing300: 'cubic-bezier(0.215, 0.61, 0.355, 1)',\n timing400: 'ease-in',\n },\n },\n global: globalColors,\n shadows: {\n variant1: '0 4px 5px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.2)',\n variant2: '0 3px 15px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.2)',\n variant3: '0 6px 30px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2)',\n variant4: '0px 8px 32px rgba(0, 0, 0, 0.1), 0px 16px 48px rgba(0, 0, 0, 0.05)',\n },\n size: sizes,\n};\n","import baseStyled, { css as baseCSS, useTheme as baseUseTheme, } from 'styled-components';\nexport * from './definitions';\nexport * from './example-design-tokens';\nexport * from './theme-provider';\nexport const styled = baseStyled;\nexport const css = baseCSS;\nexport const useTheme = baseUseTheme;\n","/*\nThese conditions are checked for every part of the theme path.\n\nIf in this case the `b` is deprecated:\n```\n{\n a: {\n b: {\n c: 'testValue';\n }\n }\n}\n```\n\nThe regex should look like this:\n`/\\.b$/g`\n\nThis ensures that the deprecation warning is only triggered once and\nnot again for the children of `b`.\n\nExample deprecation:\n\n```\n{\n condition: /\\.example$/g,\n message: '`example` is deprecated. Please use `example2` instead.',\n}\n```\n*/\nexport const deprecations = [];\n","const isObject = (x) => typeof x === 'object' && !Array.isArray(x);\nexport function get(obj, path) {\n const parts = path.split('.');\n const key = parts.shift();\n if (key && obj[key] !== undefined) {\n const result = obj[key];\n if (isObject(result) && parts.length > 0) {\n return get(result, parts.join('.'));\n }\n return result;\n }\n return undefined;\n}\n","import { DesignTokenSizeEnum, } from './definitions';\nimport { fonts, mainThemeColors, invertedThemeColors, appearances, } from '@volkswagen-onehub/tokens';\n/**\n * This map contains values to be used with sizes and spacings.\n */\nconst sizesAndSpacings = Object.keys(DesignTokenSizeEnum).reduce((acc, key) => {\n acc[key] = `size.${key}`;\n return acc;\n}, {\n line: {\n default: 'size.line100',\n active: 'size.line200',\n },\n border: {\n light: 'size.line100',\n heavy: 'size.line200',\n },\n});\n/**\n * Set of available UI themes\n *\n * \"main\" theme must be a complete UI theme, all other themes defined here can be\n * a partial definition, missing values will be inherited from \"main\"\n */\nconst main = {\n animation: {\n timingFunction: {\n in: 'animation.timingFunction.timing100',\n out: 'animation.timingFunction.timing100',\n linear: 'animation.timingFunction.timing200',\n cubicOut: 'animation.timingFunction.timing300',\n navigation: 'animation.timingFunction.timing400',\n },\n duration: {\n collapsible: 'animation.duration.duration600',\n color: 'animation.duration.duration300',\n layer: 'animation.duration.duration300',\n scrollIndicator: 'animation.duration.duration2000',\n nba: 'animation.duration.duration300',\n tabIndicator: 'animation.duration.duration300',\n statusIndicator: 'animation.duration.duration400',\n },\n },\n size: sizesAndSpacings,\n shadows: {\n variant1: 'shadows.variant1',\n variant2: 'shadows.variant2',\n variant3: 'shadows.variant3',\n variant4: 'shadows.variant4',\n },\n fonts: fonts,\n appearances: appearances,\n colors: mainThemeColors,\n};\nconst inverted = {\n colors: invertedThemeColors,\n};\nexport const themeSet = {\n main,\n inverted,\n};\n","import { warnWithTrace } from '../helpers/logger';\nimport { deprecations } from './deprecations';\nimport { getDesignTokenValue } from './get-design-token-value';\nimport { themeSet as defaultThemeSet } from './example-theme-definitions';\n/**\n * TypeGuard for type `ThemeName`\n *\n * @param prop Some arbitrary component property\n */\nfunction isThemeName(prop) {\n return typeof prop === 'string';\n}\nfunction warnIfDeprecated(path) {\n deprecations.forEach((deprecation) => {\n if (path.match(deprecation.condition)) {\n warnWithTrace(`found: ${path} - ${deprecation.message}`);\n }\n });\n}\nfunction addProxy(targetObject, getFallbackTheme = () => undefined, path) {\n return new Proxy(targetObject, {\n get: (target, key) => {\n if (typeof key !== 'string') {\n return undefined;\n }\n if (Object.hasOwnProperty.call(target, key)) {\n warnIfDeprecated(path ? `${path}.${key}` : `${key}`);\n return target[key];\n }\n const fallbackTheme = getFallbackTheme();\n return fallbackTheme && fallbackTheme[key];\n },\n });\n}\nfunction recursivelyAddProxies(targetObject, getFallbackTheme = () => undefined, path) {\n const result = {};\n Object.entries(targetObject).forEach(([key, value]) => {\n if (typeof value === 'object' && value) {\n result[key] = recursivelyAddProxies(value, () => {\n const fallbackTheme = getFallbackTheme();\n return fallbackTheme && fallbackTheme[key];\n }, path ? `${path}.${key}` : key);\n }\n else {\n result[key] = value;\n }\n });\n return addProxy(result, getFallbackTheme, path);\n}\nfunction isThemeSubtree(subtree) {\n return !Array.isArray(subtree) && typeof subtree !== 'string';\n}\nfunction resolveDesignTokenValues(themeSubTree, tokensOverride) {\n const resolvedTheme = {};\n Object.entries(themeSubTree).forEach(([key, value]) => {\n if (value === null || value === undefined) {\n return;\n }\n if (isThemeSubtree(value)) {\n resolvedTheme[key] =\n resolveDesignTokenValues(value, tokensOverride) || {};\n return;\n }\n resolvedTheme[key] = getDesignTokenValue(value, tokensOverride);\n });\n return resolvedTheme;\n}\nfunction addLanguageAndDirectionToTheme(theme, language, direction) {\n // avoid empty keys in themes\n let result = theme;\n if (language) {\n result = Object.assign(Object.assign({}, result), { language });\n }\n if (direction) {\n result = Object.assign(Object.assign({}, result), { direction });\n }\n return result;\n}\nexport function getTheme(currentTheme, newTheme, language, direction, optionsOverride) {\n const optionsThemeSet = optionsOverride\n ? optionsOverride.themeSet\n : undefined;\n const themeSet = optionsThemeSet || defaultThemeSet;\n const parentTheme = currentTheme && Object.keys(currentTheme).length > 0\n ? currentTheme\n : recursivelyAddProxies(resolveDesignTokenValues(themeSet.main, optionsOverride && optionsOverride.tokens));\n const theme = (newTheme && isThemeName(newTheme) ? themeSet[newTheme] : newTheme) || {};\n const themeWithResolvedDesignTokens = resolveDesignTokenValues(theme, optionsOverride && optionsOverride.tokens);\n const themeWithLanguageAndDirection = addLanguageAndDirectionToTheme(themeWithResolvedDesignTokens, language, direction);\n return recursivelyAddProxies(themeWithLanguageAndDirection, () => parentTheme);\n}\n","import { warnWithTrace } from '../helpers/logger';\nimport { get } from '../helpers/get';\nimport { createCSSVarName } from './create-css-var-name';\nimport { designTokens } from './example-design-tokens';\nexport function getDesignTokenValue(propertyPath = '', tokensOverride) {\n if (!propertyPath) {\n warnWithTrace(`Design token value could not be found: ${propertyPath}`);\n return undefined;\n }\n const designTokenValue = get(tokensOverride || designTokens, propertyPath);\n // propertyPath is probably already resolved, comes from the tokens package...\n if (!designTokenValue) {\n return propertyPath;\n }\n // array values, return css var instead\n // the assumption is that every array is a dynamic designToken\n if (Array.isArray(designTokenValue)) {\n return `var(${createCSSVarName(propertyPath)})`;\n }\n return designTokenValue;\n}\n","import * as React from 'react';\nimport { ThemeProvider as StyledComponentsThemeProvider } from 'styled-components';\nimport { getTheme } from './get-theme';\nexport const ThemeProviderContext = React.createContext({});\nconst InnerThemeProvider = ({ children, context, themeContextOptions, language, direction, theme }) => {\n const memoizedValue = React.useMemo(() => (Object.assign(Object.assign({}, context), themeContextOptions)), [context, themeContextOptions]);\n // Hint: Do not remove the fragment (<>...) below. It is absolutely\n // necessary to ensure the theme provider's children have the correct type.\n return (React.createElement(ThemeProviderContext.Provider, { value: memoizedValue },\n React.createElement(StyledComponentsThemeProvider, { theme: (currentTheme) => getTheme(currentTheme, theme, language, direction) },\n React.createElement(React.Fragment, null, children))));\n};\n/**\n * ThemeProvider component\n *\n * Provides a theme object to all it's child components via `styled-components`' ThemeProvider\n *\n * @param props Component properties\n */\nexport function ThemeProvider(props) {\n const { children, direction, language, theme, themeContextOptions } = props;\n const validChildren = React.Children.toArray(children).filter(React.isValidElement);\n if (validChildren.length === 0) {\n return null;\n }\n return (React.createElement(ThemeProviderContext.Consumer, null, (context) => (React.createElement(InnerThemeProvider, { context: context, themeContextOptions: themeContextOptions, direction: direction, language: language, theme: theme }, validChildren))));\n}\n","import * as React from 'react';\nexport var Close = 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: \"m21.474 3.467-.942-.941L12 11.059 3.466 2.526l-.94.941L11.059 12l-8.533 8.532.94.942L12 12.941l8.532 8.533.942-.942L12.941 12z\" }));\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.466 2.473-.94-.94L6 5.06 2.474 1.533l-.941.94L5.06 6 1.533 9.527l.941.94L6 6.94l3.526 3.527.94-.94L6.94 6z\" }));\n }\n return null;\n}, { displayName: 'Close' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.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, 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: \"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, 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: \"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, 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: \"M11 5.3H6.7V1H5.3v4.3H1v1.4h4.3V11h1.4V6.7H11z\" }));\n }\n return null;\n}, { displayName: 'Add' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Alert = 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: \"M12.26 14.995a.718.718 0 0 1-.665-.76V7.74a.671.671 0 1 1 1.33 0v6.495a.718.718 0 0 1-.665.76z\" }),\n React.createElement(\"ellipse\", { cx: \"12.261\", cy: \"17.232\", rx: \".73\", ry: \".761\" }),\n React.createElement(\"path\", { d: \"M12.276 3.38a.902.902 0 0 1 .83.517l.018.036.02.034 8.156 14.36a.926.926 0 0 1-.844 1.306H4.032a.926.926 0 0 1-.843-1.308l8.221-14.36.02-.035.018-.036a.902.902 0 0 1 .829-.514m0-1.33a2.23 2.23 0 0 0-2.021 1.254L2.01 17.706a2.256 2.256 0 0 0 2.021 3.257h16.424a2.256 2.256 0 0 0 2.024-3.25L14.3 3.31a2.23 2.23 0 0 0-2.024-1.26z\" }));\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: \"M24 32.026a1 1 0 0 1-1-1v-15.02a1 1 0 1 1 2 0v15.02a1 1 0 0 1-1 1z\" }),\n React.createElement(\"ellipse\", { cx: \"24\", cy: \"36.535\", rx: \"1.409\", ry: \"1.47\" }),\n React.createElement(\"path\", { d: \"M24.064 6.998a2.483 2.483 0 0 1 2.27 1.413l.027.054.03.052 16.395 28.867a2.53 2.53 0 0 1-2.293 3.6H7.507a2.53 2.53 0 0 1-2.29-3.607L21.742 8.51l.03-.052.027-.053a2.483 2.483 0 0 1 2.266-1.407m0-2a4.477 4.477 0 0 0-4.059 2.518L3.448 36.443a4.53 4.53 0 0 0 4.059 6.542h32.986a4.53 4.53 0 0 0 4.065-6.53L28.13 7.53a4.478 4.478 0 0 0-4.065-2.531z\" }));\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: \"M5.979 7.948a.665.665 0 0 1-.665-.665V1.602a.665.665 0 1 1 1.33 0v5.681a.665.665 0 0 1-.665.665z\" }),\n React.createElement(\"ellipse\", { cx: \"5.979\", cy: \"10.195\", rx: \".73\", ry: \".761\" }));\n }\n return null;\n}, { displayName: 'Alert' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.ArrowDown = 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: \"M17.298 15.116c-1.885 2.105-3.6 3.812-4.634 4.782V2.003h-1.33V19.88a88.166 88.166 0 0 1-4.583-4.764l-.99.887c.054.06 5.384 6 6.238 6 .876 0 6.236-5.94 6.29-6z\" }));\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: \"M8.618 7.143A44.65 44.65 0 0 1 6.72 9.134V.43H5.39v8.69a48.593 48.593 0 0 1-1.871-1.977l-.99.887C5.458 11.3 5.891 11.3 6.054 11.3c.515 0 2.217-1.78 3.554-3.271z\" }));\n }\n return null;\n}, { displayName: 'ArrowDown' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.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, 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.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, 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: \"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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.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, 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: \"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, 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: \"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","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.ArrowUp = 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: \"M12.038 2.003c-.877 0-6.236 5.94-6.29 6l.991.888a80.828 80.828 0 0 1 4.634-4.783v17.895h1.33V4.125c1.018.97 2.7 2.663 4.583 4.766l.99-.887c-.053-.06-5.383-6.001-6.238-6.001z\" }));\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: \"M9.608 4.29c-2.93-3.273-3.363-3.273-3.527-3.273-.514 0-2.216 1.779-3.553 3.272l.99.887a44.965 44.965 0 0 1 1.899-1.992v8.074h1.33v-8.06a49.517 49.517 0 0 1 1.871 1.978z\" }));\n }\n return null;\n}, { displayName: 'ArrowUp' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Calc = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M7 10.33h2v1.33H7zM11 10.33h2v1.33h-2zM7 14.33h2v1.33H7zM11 14.33h2v1.33h-2zM15 10.33h2v1.33h-2zM7 18.33h2v1.33H7zM11 18.33h2v1.33h-2zM15.33 14.5h1.33V20h-1.33z\" }),\n React.createElement(\"path\", { d: \"M19.44 1.33a.23.23 0 0 1 .23.23v20.88a.23.23 0 0 1-.23.23H4.56a.23.23 0 0 1-.23-.23V1.56a.23.23 0 0 1 .23-.23zm0-1.33H4.56A1.56 1.56 0 0 0 3 1.56v20.88A1.56 1.56 0 0 0 4.56 24h14.88A1.56 1.56 0 0 0 21 22.44V1.56A1.56 1.56 0 0 0 19.44 0z\" }),\n React.createElement(\"path\", { d: \"M16.67 4.33v2.34H7.33V4.33zM18 3H6v5h12z\" }));\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, viewBox: \"0 0 48 48\", width: \"48\", height: \"48\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M41 3v42H7V3zm0-2H7a2 2 0 0 0-2 2v42a2 2 0 0 0 2 2h34a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2z\" }),\n React.createElement(\"path\", { d: \"M36 8v5H12V8zm2-2H10v9h28zM36 21v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM28 21v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM14 21v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM28 29v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM14 29v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM28 37v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM21 21v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM21 29v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM21 37v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM14 37v2h-2v-2zm1.25-2h-4.5a.76.76 0 0 0-.75.75v4.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-4.5a.76.76 0 0 0-.75-.75zM36 29v10h-2V29zm1.25-2h-4.5a.76.76 0 0 0-.75.75v12.5a.76.76 0 0 0 .75.75h4.5a.76.76 0 0 0 .75-.75v-12.5a.76.76 0 0 0-.75-.75z\" }));\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: \"M3.5 2.84h5v1.33h-5zM3.83 6h1.33v1H3.83zM3.83 8h1.33v1H3.83zM6.83 6h1.33v1H6.83zM6.83 8h1.33v1H6.83z\" }),\n React.createElement(\"path\", { d: \"M9.67 1.33v9.34H2.33V1.33zM11 0H1v12h10z\" }));\n }\n return null;\n}, { displayName: 'Calc' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Calendar = 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, height: \"24\", viewBox: \"0 0 24 24\", width: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M6 13.5c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm-12 4c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm4 0c.581 0 1 .419 1 1s-.419 1-1 1-1-.42-1-1 .42-1 1-1zm2 4.17c.921 0 1.67-.75 1.67-1.67v-8.835H2.33V20c0 .92.75 1.67 1.67 1.67zM5 4.327H2.33v5.508h19.34V4.327h-2.674V7h-1.33V4.327H6.33V7H5zm13.996-1.33H23V20c0 1.656-1.344 3-3 3H4a3 3 0 0 1-3-3V2.997h4V1h1.33v1.997h11.336V1h1.33z\" }));\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, height: \"12\", viewBox: \"0 0 12 12\", width: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M3.335 8c.386 0 .665.278.665.665a.642.642 0 0 1-.665.665A.672.672 0 0 1 3 9.236a.637.637 0 0 1-.33-.57c0-.26.132-.46.33-.572A.672.672 0 0 1 3.335 8zM6 8c.386 0 .665.278.665.665A.642.642 0 0 1 6 9.33a.642.642 0 0 1-.665-.665C5.335 8.278 5.613 8 6 8zm3 .094c.198.111.33.312.33.571a.638.638 0 0 1-.33.571.685.685 0 0 1-.335.094A.642.642 0 0 1 8 8.665C8 8.278 8.278 8 8.665 8c.128 0 .236.04.335.094zm0-2c.198.111.33.312.33.571a.638.638 0 0 1-.33.571.685.685 0 0 1-.335.094A.642.642 0 0 1 8 6.665C8 6.278 8.278 6 8.665 6c.128 0 .236.04.335.094zM3.335 6c.386 0 .665.278.665.665a.642.642 0 0 1-.665.665A.672.672 0 0 1 3 7.236a.637.637 0 0 1-.33-.57c0-.26.132-.46.33-.572A.672.672 0 0 1 3.335 6zM6 6c.386 0 .665.278.665.665A.642.642 0 0 1 6 7.33a.642.642 0 0 1-.665-.665C5.335 6.278 5.613 6 6 6zm4.67 3V5.268H1.33V9c0 .921.75 1.67 1.67 1.67h6c.921 0 1.67-.749 1.67-1.67zM1.33 2.33v1.608h9.34V2.33H9.33V3H8v-.67H4V3H2.67v-.67zM11.665 1H12v8c0 .488-.128.943-.335 1.35A2.99 2.99 0 0 1 9 12H3a2.989 2.989 0 0 1-2.665-1.649A2.974 2.974 0 0 1 0 9.001V1h2.67V0H4v1h4V0h1.331v1z\" }));\n }\n return null;\n}, { displayName: 'Calendar' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.CarPickupService = 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, height: \"24\", viewBox: \"0 0 24 24\", width: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M15.321 10.575c1.242 0 2.11-.868 2.11-2.11 0-1.243-.868-2.11-2.11-2.11s-2.11.867-2.11 2.11c0 1.242.868 2.11 2.11 2.11zm0-5.55c1.993 0 3.44 1.446 3.44 3.44 0 1.993-1.447 3.44-3.44 3.44s-3.44-1.447-3.44-3.44c0-1.994 1.447-3.44 3.44-3.44zm3.768 7.401c1.554-1.553 1.996-3.777 1.155-5.807-.84-2.028-2.726-3.289-4.923-3.289-2.196 0-4.082 1.261-4.922 3.29s-.398 4.254 1.155 5.806l3.767 3.769zM8.34 17.52l3.213-3.214-.94-.94a6.9 6.9 0 0 1-.844-1.05l-6.341 6.339a.335.335 0 0 0 0 .473l1.415 1.416c.09.09.243.137.339.144a7.011 7.011 0 0 0-.055-1.008l-.092-.746h1.501V17.52zM21.473 6.111c1.051 2.535.497 5.316-1.443 7.256l-4.709 4.708-2.827-2.828-3.603 3.603H7.866v1.414H6.509c.013.373-.006.759-.107 1.003a1.209 1.209 0 0 1-.901.722 1.594 1.594 0 0 1-.302.029c-.466 0-.96-.196-1.297-.533l-1.415-1.416A1.654 1.654 0 0 1 2 18.893c0-.446.173-.863.487-1.179l6.622-6.619.02.02c-.634-1.569-.649-3.337.041-5.003C10.22 3.575 12.577 2 15.321 2c2.745 0 5.102 1.575 6.152 4.111z\" }));\n }\n return null;\n}, { displayName: 'CarPickupService' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Checkmark = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M9.037 22.392a.667.667 0 0 1-.422-.151l-7.49-6.142.844-1.028 6.933 5.685 13.1-18.861 1.092.759L9.583 22.106a.669.669 0 0 1-.546.286z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M4.39 11.39a.81.81 0 0 1-.51-.18L0 8.11l.88-1 3.39 2.67L10.86.39l1.14.76L4.88 11.3l-.37.08z\" }));\n }\n return null;\n}, { displayName: 'Checkmark' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.ChevronLeft = 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: \"m17.25 21.56-.93.94-9.1-9.32a1.71 1.71 0 0 1 0-2.36l9.1-9.32.93.94-9.09 9.32a.34.34 0 0 0 0 .48z\" }));\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: \"M9 .94 4.39 5.76a.37.37 0 0 0 0 .48L9 11.06l-.93.94-4.6-4.82a1.71 1.71 0 0 1 0-2.36L8.07 0z\" }));\n }\n return null;\n}, { displayName: 'ChevronLeft' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.ChevronRight = 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: \"M17.25 12a1.72 1.72 0 0 1-.47 1.18l-9.1 9.32-.93-.94 9.09-9.32a.34.34 0 0 0 0-.48L6.75 2.44l.93-.94 9.1 9.32a1.7 1.7 0 0 1 .47 1.18z\" }));\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: \"M9 6a1.7 1.7 0 0 1-.47 1.18L3.93 12 3 11.06l4.61-4.82a.36.36 0 0 0 0-.48L3 .94 3.93 0l4.6 4.82A1.72 1.72 0 0 1 9 6z\" }));\n }\n return null;\n}, { displayName: 'ChevronRight' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Close = 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: \"m21.474 3.467-.942-.941L12 11.059 3.466 2.526l-.94.941L11.059 12l-8.533 8.532.94.942L12 12.941l8.532 8.533.942-.942L12.941 12z\" }));\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.466 2.473-.94-.94L6 5.06 2.474 1.533l-.941.94L5.06 6 1.533 9.527l.941.94L6 6.94l3.526 3.527.94-.94L6.94 6z\" }));\n }\n return null;\n}, { displayName: 'Close' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.ContactDealer = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M21.72.83H11.18a1.45 1.45 0 0 0-1.45 1.45v3.51a4.48 4.48 0 1 0 1.33.21V2.28a.11.11 0 0 1 .12-.11h10.54a.11.11 0 0 1 .11.11v15.63a.12.12 0 0 1-.11.12H18l-.2-1a3.14 3.14 0 0 0-2-2.36L14 14l-.47 1.25 1.88.7a1.86 1.86 0 0 1 1.17 1.38l.76 3.87-2.34.04-.31-2.33-1.32.18.29 2.2c-2.63.06-5.27.06-7.9 0l.24-2.2-1.3-.18-.3 2.31c-.75 0-1.49 0-2.23-.08l.76-3.85a1.88 1.88 0 0 1 1.17-1.38l1.9-.7L5.51 14l-1.88.71a3.18 3.18 0 0 0-2 2.36l-.77 3.81a1.34 1.34 0 0 0 1.25 1.6 161.13 161.13 0 0 0 15.24 0 1.34 1.34 0 0 0 1.25-1.6l-.3-1.52h3.42a1.45 1.45 0 0 0 1.45-1.45V2.28A1.45 1.45 0 0 0 21.72.83zm-8.93 9.36a3.06 3.06 0 1 1-3.06-3.07 3.07 3.07 0 0 1 3.06 3.07z\" }),\n React.createElement(\"path\", { d: \"M15.5 4.37h4.48V5.7H15.5zM15.5 7.41h4.48v1.33H15.5z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11 0H4.87A1.07 1.07 0 0 0 3.8 1v2.11a2.49 2.49 0 1 0 1.33-.06V1.34h5.54v6.89H8.5a1.78 1.78 0 0 0-.89-.73l-.28-.11-.47 1.25.28.11a.52.52 0 0 1 .34.4l.29 1.45c-2.12.09-4.25.09-6.37 0l.29-1.45a.5.5 0 0 1 .31-.4l.3-.12-.44-1.25-.3.12A1.87 1.87 0 0 0 .38 8.89L0 10.73a1 1 0 0 0 .19.8 1 1 0 0 0 .73.38c1.23.09 2.45.09 3.66.09s2.42 0 3.65-.09a1 1 0 0 0 .92-1.18l-.23-1.16h2a1 1 0 0 0 1-1.05V1A1 1 0 0 0 11 0zM5.73 5.49a1.17 1.17 0 1 1-1.17-1.17 1.17 1.17 0 0 1 1.17 1.17z\" }),\n React.createElement(\"path\", { d: \"M7.46 2.31h2.16v1.34H7.46zM8.17 4.52h1.46v1.34H8.17z\" }));\n }\n return null;\n}, { displayName: 'ContactDealer' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Edit = 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: \"M17.57 3.472 6.454 11.768l3.577 4.76 10.97-8.33zM5.41 12.59a2.03 2.03 0 0 0-.485.687l-1.786 4.4h4.695a2.035 2.035 0 0 0 1.128-.36zM17.852 1.6l4.991 6.868-12.975 9.854a3.377 3.377 0 0 1-2.034.685h-6.67l2.53-6.231a3.372 3.372 0 0 1 1.103-1.431zm5.072 19.468v1.33H1.077v-1.33z\" }));\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: \"M8.456 2.29 3.394 6.068a.527.527 0 0 0-.177.23l-.594 1.464h1.556a.545.545 0 0 0 .328-.111l5.054-3.838zM8.739.419l2.664 3.665L5.311 8.71a1.89 1.89 0 0 1-1.132.382H.648l1.336-3.294A1.874 1.874 0 0 1 2.6 5zM11.5 10.25v1.33H.5v-1.33z\" }));\n }\n return null;\n}, { displayName: 'Edit' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.FleetServicePrivate = 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: \"M9.15 17.66a.84.84 0 1 0 1.68 0 .84.84 0 1 0-1.68 0zM22.05 5.23c.64-.09 1.28-.19 1.92-.31l-.24-1.31c-.73.14-1.47.25-2.21.36l-1.07-2.56A2.78 2.78 0 0 0 18.28 0H9.7a2.81 2.81 0 0 0-2.18 1.4L6.44 4c-.73-.11-1.47-.22-2.2-.35L4 5c.64.12 1.28.22 1.92.31l-.46 1.03c-.07.12-.11.26-.17.39l.3-.05h1.18l.51-1.24a54.34 54.34 0 0 0 6.62.41 55 55 0 0 0 6.78-.43l.6 1.43v.09l.05.08a4.17 4.17 0 0 1 .46 1.25c-1.21.18-2.45.33-3.72.43l.1 1.32c1.27-.1 2.5-.24 3.71-.42v5.1h-1.76a6.7 6.7 0 0 1 .36 1.3h1.41a1.4 1.4 0 0 0 1.36-1.43v-5.5a5.4 5.4 0 0 0-.74-2.73zM7.82 4.16 8.71 2a1.47 1.47 0 0 1 1-.68h8.45a1.47 1.47 0 0 1 1.11.68l.88 2.12a53.52 53.52 0 0 1-12.33.04z\" }),\n React.createElement(\"path\", { d: \"M19.73 11.61c-.73.14-1.47.26-2.21.36l-1.07-2.56A2.78 2.78 0 0 0 14.28 8H5.7a2.81 2.81 0 0 0-2.18 1.4L2.44 12c-.73-.11-1.47-.22-2.2-.35L0 13c.64.12 1.28.22 1.92.31l-.46 1.08a5.39 5.39 0 0 0-.73 2.73v5.5A1.4 1.4 0 0 0 2.09 24h1.66a1.41 1.41 0 0 0 1.37-1.44v-.43h9.74v.44A1.39 1.39 0 0 0 16.21 24h1.68a1.4 1.4 0 0 0 1.36-1.43v-5.5a5.4 5.4 0 0 0-.74-2.73l-.46-1.11c.64-.09 1.28-.19 1.92-.31zM4.71 10a1.47 1.47 0 0 1 1-.68h8.45a1.47 1.47 0 0 1 1.06.68l.88 2.12a53.52 53.52 0 0 1-12.33 0zm12.57 4.83v.09l.05.08a4.17 4.17 0 0 1 .46 1.25c-1.21.18-2.45.33-3.72.43l.1 1.32c1.27-.1 2.5-.24 3.71-.42v5.1h-1.65V20.8H3.79v1.76a.16.16 0 0 1 0 .11H2.1v-5.04c1.23.17 2.5.32 3.79.41L6 16.72c-1.3-.1-2.57-.25-3.81-.42a4.1 4.1 0 0 1 .42-1.3l.05-.08v-.09l.59-1.41a54.34 54.34 0 0 0 6.62.41 55 55 0 0 0 6.78-.43z\" }));\n }\n return null;\n}, { displayName: 'FleetServicePrivate' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Info = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 6.493c.442 0 .774.295.774.811s-.332.811-.774.811-.774-.295-.774-.811.332-.811.774-.811zM12.783 15.656v-5.649H9.414v1.33h2.039v4.319H8.419v1.33l6.967-.001v-1.33z\" }),\n React.createElement(\"path\", { d: \"M12 2.33c5.603 0 9.67 4.067 9.67 9.67s-4.067 9.67-9.67 9.67S2.33 17.603 2.33 12 6.397 2.33 12 2.33M12 1C5.626 1 1 5.626 1 12s4.626 11 11 11 11-4.626 11-11S18.374 1 12 1z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M5.33 6h1.33v3H5.33z\" }),\n React.createElement(\"path\", { d: \"M6 0a6 6 0 1 0 6 6 6 6 0 0 0-6-6zm0 10.65A4.65 4.65 0 1 1 10.65 6 4.66 4.66 0 0 1 6 10.65z\" }),\n React.createElement(\"circle\", { cx: \"6\", cy: \"4\", r: \".75\" }));\n }\n return null;\n}, { displayName: 'Info' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Interior = 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: \"M12.7 20.6v-5.7c1.2-.2 2-1.1 2.3-2.3h5.7c-.3 4.6-3.5 7.8-8 8m-9.3-7.9h5.7c.2 1.2 1.1 2 2.3 2.3v5.7c-4.6-.3-7.8-3.5-8-8m8.6 1c-1 0-1.7-.7-1.7-1.7s.7-1.7 1.7-1.7 1.7.7 1.7 1.7-.7 1.7-1.7 1.7m0-10.4c4.9 0 8.3 3.3 8.6 8h-5.7C14.7 9.9 13.5 9 12 9s-2.7.9-2.9 2.3H3.4c.3-4.7 3.7-8 8.6-8M12 2C6.2 2 2 6.2 2 12s4.2 10 10 10 10-4.2 10-10S17.8 2 12 2\" }));\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: \"M6.7 10V8c.6-.2 1.1-.7 1.3-1.3h2c-.3 1.8-1.5 3-3.3 3.3M2 6.7h2c.2.6.7 1.1 1.3 1.3v2C3.5 9.7 2.2 8.5 2 6.7m4 0c-.5 0-.8-.2-.8-.7s.3-.7.7-.7c.5 0 .8.3.8.7s-.2.7-.7.7m0-4.8c2.2 0 3.7 1.4 4 3.4H8c-.3-.8-1-1.4-2-1.4s-1.7.6-2 1.4H2c.3-2 1.8-3.4 4-3.4M6 .6C2.9.6.6 2.9.6 6s2.3 5.4 5.4 5.4 5.4-2.3 5.4-5.4S9.1.6 6 .6\" }));\n }\n return null;\n}, { displayName: 'Interior' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Locate = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M23 11.45h-2a9 9 0 0 0-8.3-8.31v-2h-1.37v2A9 9 0 0 0 3 11.45H1v1.33h2a9 9 0 0 0 8.3 8.3v2h1.34v-2a9 9 0 0 0 8.3-8.3h2zm-10.33 8.3v-2.64h-1.34v2.64a7.69 7.69 0 0 1-7-7H7v-1.3H4.36a7.69 7.69 0 0 1 7-7v2.66h1.34V4.47a7.69 7.69 0 0 1 7 7H17v1.33h2.64a7.69 7.69 0 0 1-6.97 6.95z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M12 5.34h-1.32a4.71 4.71 0 0 0-4-4V0H5.33v1.32a4.71 4.71 0 0 0-4 4H0v1.35h1.32a4.71 4.71 0 0 0 4 4V12h1.35v-1.32a4.71 4.71 0 0 0 4-4H12zm-5.33 4V8H5.33v1.35a3.42 3.42 0 0 1-2.68-2.68H4V5.34H2.65a3.42 3.42 0 0 1 2.68-2.69V4h1.34V2.65a3.42 3.42 0 0 1 2.68 2.69H8v1.33h1.35a3.42 3.42 0 0 1-2.68 2.68z\" }));\n }\n return null;\n}, { displayName: 'Locate' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Magnifier = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"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.5 21.53-4.81-4.93a9.38 9.38 0 0 0 2-5.79 9.19 9.19 0 0 0-9.1-9.31 9.2 9.2 0 0 0-9.09 9.31 9.2 9.2 0 0 0 9.09 9.31 8.94 8.94 0 0 0 6.19-2.51l4.77 4.89zM2.84 10.81a7.85 7.85 0 0 1 7.75-7.93 7.85 7.85 0 0 1 7.74 7.93 7.85 7.85 0 0 1-7.74 7.94 7.86 7.86 0 0 1-7.75-7.94z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"M11.8 10.69 9 7.93A5 5 0 1 0 5 10a4.93 4.93 0 0 0 3.11-1.12l2.75 2.75zM1.33 5A3.67 3.67 0 1 1 5 8.67 3.68 3.68 0 0 1 1.33 5z\" }));\n }\n return null;\n}, { displayName: 'Magnifier' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Mail = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"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.08 4H1.92a.92.92 0 0 0-.92.92v14.16a.92.92 0 0 0 .92.92h20.16a.92.92 0 0 0 .92-.92V4.92a.92.92 0 0 0-.92-.92zm-1.35 1.33-7.51 7.5h-2.44l-7.51-7.5zM2.33 18.67V6.27l7.89 7.9h3.56l7.89-7.9v12.4z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"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.9 1.25H1.1A1.08 1.08 0 0 0 0 2.31v7.38a1.08 1.08 0 0 0 1.1 1.06h9.8A1.08 1.08 0 0 0 12 9.69V2.31a1.08 1.08 0 0 0-1.1-1.06zm-.54 1.33L6.42 5.84h-.84L1.64 2.58zm-9 6.84V4.05L5.1 7.17h1.8l3.77-3.12v5.37z\" }));\n }\n return null;\n}, { displayName: 'Mail' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Phone = 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: \"M9.5 23.1c-.9 0-1.7-.2-2.4-.5-1-.5-2.8-1.5-3.2-2.9-.2-.8.6-2.9 1.1-4.1l.1-.1c1-1.3 2.8-1.7 5.2-1l2.6-5.3C11.4 7.8 10 6 10.8 4.3c.4-.7 1.6-2.8 2.6-3.2 1.3-.4 2.8-.2 4 .6 1.1.6 2.1 1.6 2.5 2.9.4 1.4.1 2.7-.6 3.9L13.7 20c-.7 1.7-2.2 2.9-4.1 3.1h-.1zm-3.3-6.9c-.6 1.4-1.1 2.8-1 3.2.2.6 1.1 1.4 2.4 2 .6.3 1.3.4 2 .4 1.3-.2 2.4-1 2.9-2.3l5.7-11.7c.5-.9.7-1.9.5-2.8-.3-.9-1-1.6-1.9-2.1-.9-.6-1.9-.7-2.9-.5-.3.2-1.2 1.3-1.9 2.5-.3.8.5 2.1 2.2 3.6l.4.3L11 16l-.5-.2c-1.3-.3-3.3-.8-4.3.4z\" }));\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: \"M3.421 11.496a3.334 3.334 0 0 1-1.614-1.504A2.222 2.222 0 0 1 1.9 8.279l.373-.71a1.726 1.726 0 0 1 2.224-.61l1.27-2.587a2.05 2.05 0 0 1-.723-2.198l.259-.612A2.132 2.132 0 0 1 6.548.357L6.55.356A2.787 2.787 0 0 1 8.77.639a3.02 3.02 0 0 1 1.434 1.611 2.656 2.656 0 0 1-.277 2.104s-1 2.049-2.793 5.719a2.799 2.799 0 0 1-2.285 1.699 2.837 2.837 0 0 1-1.428-.276zm.198-3.383c-.111 0-.147.053-.207.14l-.323.624a.889.889 0 0 0-.028.672 2.23 2.23 0 0 0 .923.741 1.376 1.376 0 0 0 .792.155c.588-.013.998-.618 1.164-.956l2.788-5.71a1.452 1.452 0 0 0 .222-1.087 1.714 1.714 0 0 0-.796-.875 1.425 1.425 0 0 0-1.15-.21.803.803 0 0 0-.477.477l-.238.554c-.07.227.013.466.725 1.055l.404.334-2.233 4.552-.867-.28a2.82 2.82 0 0 0-.699-.186z\" }));\n }\n return null;\n}, { displayName: 'Phone' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Reload = 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: \"m15.714 5.2-.522 1.224a7.2 7.2 0 0 1 4.335 6.901A7.28 7.28 0 0 1 12 20.852a7.28 7.28 0 0 1-7.527-7.527 7.234 7.234 0 0 1 6.464-7.455 69.224 69.224 0 0 1-1.973 2.637l1.049.818c3.1-3.977 3.028-4.319 2.971-4.592-.057-.277-.128-.62-4.6-3.066l-.638 1.166a66.588 66.588 0 0 1 2.994 1.721 8.512 8.512 0 0 0-7.597 8.771A8.567 8.567 0 0 0 12 22.183a8.568 8.568 0 0 0 8.857-8.858A8.602 8.602 0 0 0 15.714 5.2z\" }));\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: \"m8.86 2.744-.737 1.108a3.566 3.566 0 0 1 1.535 3.05A3.5 3.5 0 0 1 6 10.56a3.5 3.5 0 0 1-3.658-3.658 3.464 3.464 0 0 1 2.92-3.592 22.27 22.27 0 0 1-.96 1.035l.947.934C5.907 4.613 7.432 3 7.381 2.442c-.04-.456-.958-1.23-2.733-2.303L3.96 1.278c.46.277.822.515 1.12.72a4.785 4.785 0 0 0-4.068 4.904A4.824 4.824 0 0 0 6 11.89a4.824 4.824 0 0 0 4.988-4.988 4.875 4.875 0 0 0-2.129-4.158z\" }));\n }\n return null;\n}, { displayName: 'Reload' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Remove = 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: \"M3.003 11.335H21v1.33H3.003z\" }));\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: \"M5.98 23h36.05v2H5.98z\" }));\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: \"M.758 5.335h10.27v1.33H.757z\" }));\n }\n return null;\n}, { displayName: 'Remove' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.Route = 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: \"M8.047 6.995a1.114 1.114 0 1 0 0 2.229 1.114 1.114 0 0 0 0-2.229zm-.003-1.334a2.444 2.444 0 1 1 .006 4.888 2.444 2.444 0 0 1-.006-4.888zm0-2.824c-1.414 0-2.812.456-3.809 1.475-.997 1.018-1.391 2.37-1.391 3.84 0 2.11 1.752 5.188 5.208 9.166 3.451-3.978 5.203-7.125 5.203-9.167 0-1.503-.395-2.825-1.395-3.844-1-1.02-2.376-1.47-3.816-1.47zm4.762.525c1.25 1.269 1.78 2.964 1.78 4.79 0 2.576-1.977 6.05-6.042 10.615l-.5.558-.5-.558c-4.058-4.566-6.035-8.064-6.035-10.616 0-1.815.53-3.517 1.778-4.787S6.22 1.507 8.044 1.507c1.834 0 3.512.585 4.762 1.855zM23 20.5v2h-2v-2zm-4 0v2h-2v-2zm-4 0v2h-2v-2zm-4 0v2H9v-2zm-4 0v2H5v-2zm-4 0v2H1v-2z\" }));\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: \"M4.035 2.62a1.164 1.164 0 1 1 0 2.327 1.164 1.164 0 0 1 0-2.328zm-.011-1.422c-1.559 0-2.574 1.037-2.574 2.624 0 .972.762 2.377 2.296 4.187l.113.133.116.134a.065.065 0 0 0 .074.017l.017-.01.123-.142c1.61-1.873 2.409-3.323 2.409-4.32 0-1.586-1.016-2.623-2.574-2.623zm.01-1.2c2.264 0 3.786 1.554 3.786 3.847 0 1.451-1.1 3.414-3.286 5.926a.662.662 0 0 1-.952.048l-.047-.049-.145-.168C1.3 7.171.25 5.264.25 3.845.25 1.552 1.77-.002 4.035-.002zm7.716 11.004v1h-1v-1zm-2 0v1h-1v-1zm-2 0v1h-1v-1zm-2 0v1h-1v-1zm-2 0v1h-1v-1zm-2 0v1h-1v-1z\" }));\n }\n return null;\n}, { displayName: 'Route' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.StarFilled = 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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m23.4 10.17-.39-1.19-7.8-.12-2.58-7.43h-1.26L8.86 8.81l-7.87.17-.39 1.19 6.24 4.68-2.27 7.53 1.01.74 6.38-4.5 6.46 4.5 1.01-.74-2.3-7.45z\" }));\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, viewBox: \"0 0 48 48\", width: \"48\", height: \"48\", xmlns: \"http://www.w3.org/2000/svg\", 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.51z\" }));\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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", fill: \"currentColor\" },\n props.title && React.createElement(\"title\", null, props.title),\n React.createElement(\"path\", { d: \"m11.93 5.04-.39-1.2-3.68-.07L6.65.3H5.4L4.19 3.77l-3.68.07-.39 1.2 2.93 2.22-1.06 3.51 1.01.74 3.02-2.1 3.02 2.1 1.02-.74-1.07-3.51z\" }));\n }\n return null;\n}, { displayName: 'StarFilled' }));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar React = require(\"react\");\nexports.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, viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", xmlns: \"http://www.w3.org/2000/svg\", 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, viewBox: \"0 0 48 48\", width: \"48\", height: \"48\", xmlns: \"http://www.w3.org/2000/svg\", 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, viewBox: \"0 0 12 12\", width: \"12\", height: \"12\", xmlns: \"http://www.w3.org/2000/svg\", 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","/**\n * Only put public interfaces in here\n */\n\nimport {Subscribable} from '@volkswagen-onehub/feature-hub-utils';\nimport React from 'react';\n\nimport {\n LayerCloseHandleV1,\n LayerContentElementV1,\n LayerContentOptionsV1,\n LayerHandleV1,\n LayerStyleOptionsV1,\n LayerTypeV1\n} from '../v1';\n\nexport interface LayerIdOptionsV2 {\n id: string;\n}\n\nexport type LayerContentOptionsV2 = LayerContentOptionsV1;\n\nexport type LayerCloseHandleV2 = LayerCloseHandleV1;\nexport type LayerContentElementV2 = LayerContentElementV1;\nexport type LayerRenderOptionsV2 = LayerContentOptionsV2 & LayerIdOptionsV2;\nexport type RenderFunctionV2 = (\n state: TState,\n close: LayerCloseHandleV2,\n layerOptions: LayerRenderOptionsV2\n) => LayerContentElementV2;\n\nexport interface LayerV2 {\n readonly handle: LayerHandleV2;\n readonly isClosed: boolean;\n readonly options: TOptions & LayerStyleOptionsV2;\n readonly id: string;\n element?: HTMLElement;\n close(): void;\n render(): LayerContentElementV2;\n}\n\nexport type LayerTypeV2 = LayerTypeV1;\n\ninterface AlertLayerDescriptionV2 {\n readonly type: 'ALERT';\n readonly layer: LayerV2;\n}\ninterface FocusLayerDescriptionV2 {\n readonly type: 'FOCUS';\n readonly layer: LayerV2;\n}\ninterface InteractionLayerDescriptionV2 {\n readonly type: 'INTERACTION';\n readonly layer: LayerV2;\n}\ninterface ContentLayerDescriptionV2 {\n readonly type: 'CONTENT';\n readonly layer: LayerV2;\n}\ninterface ContentLayerV2DescriptionV2 {\n readonly type: 'CONTENTV2';\n readonly layer: LayerV2;\n}\n\ninterface FullscreenLayerDescriptionV2 {\n readonly type: 'FULLSCREEN';\n readonly layer: LayerV2;\n}\n\ninterface CustomLayerDescriptionV2 {\n readonly type: 'CUSTOM';\n readonly layer: LayerV2;\n}\n\n// tslint:disable-next-line:no-any\nexport type LayerDescriptionV2 =\n | AlertLayerDescriptionV2\n | FocusLayerDescriptionV2\n | InteractionLayerDescriptionV2\n | ContentLayerDescriptionV2\n | ContentLayerV2DescriptionV2\n | FullscreenLayerDescriptionV2\n | CustomLayerDescriptionV2;\n\nexport type LayerHandleV2 = LayerHandleV1;\n\nexport type CloseHandleV2 = (\n state: TState,\n response: TReturn | undefined,\n layerOptions: LayerContentOptionsV2\n) => void;\n\nexport interface LayerStyleOptionsV2 extends LayerStyleOptionsV1 {\n /**\n * Disable restoring original focus on layer deactivation\n */\n readonly disableReturnFocus?: boolean;\n /**\n * Close button component that is placed on shim out of the layer\n */\n readonly closeButton?: JSX.Element;\n /**\n * Type of shim background used under the layer. This overrides default shim for layer type\n */\n readonly shimBackgroundType?: ShimBackgroundTypeV2;\n}\n\nexport interface InternalLayerOptionsV2 {\n readonly onClose?: CloseHandleV2;\n}\n\nexport interface AlertLayerOptionsV2 {}\n\nexport const enum FocusLayerSizeV2 {\n A = 'A',\n B = 'B',\n C = 'C',\n NONE = 'NONE'\n}\n\nexport interface FocusLayerOptionsV2 {\n readonly size: FocusLayerSizeV2;\n}\n\nexport interface FullscreenLayerOptionsV2 {}\n\nexport interface CustomLayerOptionsV2 {\n readonly layerComponent: React.ComponentType<{\n active: boolean;\n scrollElementRef(el: HTMLDivElement): void;\n }>;\n readonly animationClassNames?: string;\n readonly animationTimeout:\n | number\n | {appear?: number; enter?: number; exit?: number};\n}\n\nexport const enum InteractionLayerSizeV2 {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E'\n}\n\nexport const enum ShimBackgroundTypeV2 {\n OPAQUE = 'OPAQUE',\n TRANSPARENT = 'TRANSPARENT'\n}\n\nexport interface InteractionLayerOptionsV2 {\n readonly size: InteractionLayerSizeV2;\n}\n\nexport interface ContentLayerOptionsV2 {}\n\nexport type ContentLayerV2OptionsV2 =\n | FullContentLayerV2OptionsV2\n | WithoutHeaderContentLayerV2OptionsV2;\n\nexport interface FullContentLayerV2OptionsV2\n extends BaseContentLayerV2OptionsV2 {\n readonly closeButtonLabel: string;\n readonly contentHeadline: string | JSX.Element;\n readonly disableDefaultPadding?: boolean;\n readonly withoutHeader?: undefined;\n}\n\nexport interface WithoutHeaderContentLayerV2OptionsV2\n extends BaseContentLayerV2OptionsV2 {\n readonly withoutHeader: true;\n}\n\nexport interface BaseContentLayerV2OptionsV2 {\n readonly withoutHeader?: boolean;\n}\n\nexport const enum DisclaimerLayerAppearanceV2 {\n DARK = 'DARK',\n LIGHT = 'LIGHT'\n}\nexport interface DisclaimerLayerOptionsV2 {\n readonly appearance?: DisclaimerLayerAppearanceV2;\n}\n\nexport type LayerOptionsV2 = InternalLayerOptionsV2<\n TState,\n TReturn\n> &\n LayerStyleOptionsV2 &\n TOptions;\n\ntype NonOptionalKeys = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\nexport type OpenFunctionV2 = NonOptionalKeys extends never\n ? (\n render: RenderFunctionV2,\n state: TState,\n options?: LayerOptionsV2\n ) => LayerHandleV2\n : (\n render: RenderFunctionV2,\n state: TState,\n options: LayerOptionsV2\n ) => LayerHandleV2;\n\nexport interface LayerManagerV2\n extends Omit<\n Subscribable,\n 'eventEmitter' | 'updateInternal'\n > {\n readonly openAlert: OpenFunctionV2;\n readonly openFocusLayer: OpenFunctionV2;\n readonly openInteractionLayer: OpenFunctionV2;\n // tslint:disable-next-line: deprecation\n /** @deprecated */\n readonly openContentLayer: OpenFunctionV2;\n readonly openContentLayerV2: OpenFunctionV2;\n getLayers(): LayerDescriptionV2[];\n onRender(id: string, el: HTMLElement | null): void;\n}\n\nexport interface DisclaimerLayerDescriptionV2 {\n readonly type: 'DISCLAIMER';\n readonly layer: LayerV2;\n}\n\nexport interface LayerManagerV24 extends LayerManagerV2 {\n readonly openDisclaimerLayer: OpenFunctionV2;\n getDisclaimerLayer(): DisclaimerLayerDescriptionV2 | undefined;\n}\n\nexport interface LayerManagerV25 extends LayerManagerV24 {\n readonly openFullscreenLayer: OpenFunctionV2;\n}\n\nexport interface LayerManagerV27 extends LayerManagerV25 {\n readonly openCustomLayer: OpenFunctionV2;\n}\n\nexport type LayerEventPayload = 'update' | 'afterRender' | 'beforeClose';\n","export var fonts = {\n\tsuper: {\n\t\t100: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(3.5rem, 2.94vw + 2.47rem, 6rem)',\n\t\t\treducedFontSize: 'clamp(1.75rem, 1.47vw + 1.24rem, 3rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '3.5rem', reducedFontSize: '1.75rem'},\n\t\t},\n\t\t200: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(5.25rem, 2.65vw + 4.32rem, 7.5rem)',\n\t\t\treducedFontSize: 'clamp(2.63rem, 1.32vw + 2.16rem, 3.75rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '5.25rem', reducedFontSize: '2.63rem'},\n\t\t},\n\t},\n\theadline: {\n\t\t100: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: '1rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t\t200: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(1.25rem, 0.29vw + 1.15rem, 1.5rem)',\n\t\t\treducedFontSize: 'clamp(0.75rem, 0.15vw + 0.57rem, 0.75rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '1.25rem', reducedFontSize: '0.75rem'},\n\t\t},\n\t\t300: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(1.5rem, 0.59vw + 1.29rem, 2rem)',\n\t\t\treducedFontSize: 'clamp(0.75rem, 0.29vw + 0.65rem, 1rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '1.5rem', reducedFontSize: '0.75rem'},\n\t\t},\n\t\t400: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(1.75rem, 1.47vw + 1.24rem, 3rem)',\n\t\t\treducedFontSize: 'clamp(0.88rem, 0.74vw + 0.62rem, 1.5rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '1.75rem', reducedFontSize: '0.88rem'},\n\t\t},\n\t\t500: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(2rem, 2.06vw + 1.28rem, 3.75rem)',\n\t\t\treducedFontSize: 'clamp(1rem, 1.03vw + 0.64rem, 1.88rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '2rem', reducedFontSize: '1rem'},\n\t\t},\n\t\t600: {\n\t\t\tfontFamily: 'vw-head,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: '200',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: 'clamp(2.75rem, 2.35vw + 1.93rem, 4.75rem)',\n\t\t\treducedFontSize: 'clamp(1.38rem, 1.18vw + 0.96rem, 2.38rem)',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t\tstatic: {fontSize: '2.75rem', reducedFontSize: '1.38rem'},\n\t\t},\n\t},\n\tbigcopy: {\n\t\t100: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '150%',\n\t\t\tfontSize: '1.25rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t\t200: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '150%',\n\t\t\tfontSize: '1.5rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t},\n\tcopy: {\n\t\t100: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '150%',\n\t\t\tfontSize: '0.88rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t\t200: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '150%',\n\t\t\tfontSize: '1rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t},\n\tlabel: {\n\t\t100: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: '0.75rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t\t150: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: '0.88rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t\t200: {\n\t\t\tfontFamily: 'vw-text,Helvetica,Arial,sans-serif',\n\t\t\tfontWeight: 'normal',\n\t\t\tlineHeight: '120%',\n\t\t\tfontSize: '1rem',\n\t\t\treducedFontSize: '0.75rem',\n\t\t\tletterSpacing: 'calc(0.02rem - 0.02em)',\n\t\t},\n\t},\n};\nexport var appearances = {\n\tsuper100: 'super100',\n\tsuper200: 'super200',\n\theadline100: 'headline100',\n\theadline200: 'headline200',\n\theadline300: 'headline300',\n\theadline400: 'headline400',\n\theadline500: 'headline500',\n\theadline600: 'headline600',\n\tbigcopy100: 'bigcopy100',\n\tbigcopy200: 'bigcopy200',\n\tcopy100: 'copy100',\n\tcopy200: 'copy200',\n\tlabel100: 'label100',\n\tlabel150: 'label150',\n\tlabel200: 'label200',\n};\nexport var TextAppearance;\n(function (TextAppearance) {\n\tTextAppearance['super100'] = 'super100';\n\tTextAppearance['super200'] = 'super200';\n\tTextAppearance['headline100'] = 'headline100';\n\tTextAppearance['headline200'] = 'headline200';\n\tTextAppearance['headline300'] = 'headline300';\n\tTextAppearance['headline400'] = 'headline400';\n\tTextAppearance['headline500'] = 'headline500';\n\tTextAppearance['headline600'] = 'headline600';\n\tTextAppearance['bigcopy100'] = 'bigcopy100';\n\tTextAppearance['bigcopy200'] = 'bigcopy200';\n\tTextAppearance['copy100'] = 'copy100';\n\tTextAppearance['copy200'] = 'copy200';\n\tTextAppearance['label100'] = 'label100';\n\tTextAppearance['label150'] = 'label150';\n\tTextAppearance['label200'] = 'label200';\n})(TextAppearance || (TextAppearance = {}));\nexport var globalColors = {\n\tblue100: '#4cc7f4',\n\tblue200: '#00b0f0',\n\tblue300: '#0082d6',\n\tblue500: '#00437a',\n\tblue600: '#001e50',\n\tblue700: '#002b79',\n\tblue800: '#00359f',\n\tblue900: '#0040c5',\n\tblack100: '#000e26',\n\twhite000: '#ffffff',\n\tgrey050: '#f3f4f5',\n\tgrey100: '#dfe4e8',\n\tgrey200: '#c2cacf',\n\tgrey300: '#96a3a8',\n\tgrey400: '#6a767d',\n\tgrey500: '#3c484d',\n\tgreen100: '#ade5a1',\n\tgreen200: '#0F852F',\n\tred100: '#ff335c',\n\tred200: '#e4002c',\n\tmint100: '#00e6e6',\n\tpurple100: '#5b08a4',\n\tyellow100: '#fffae5',\n\tyellow200: '#ffd100',\n\tpink100: '#d106a5',\n\tpurple050: '#BC69FF',\n};\nexport var mainThemeColors = {\n\taccent: {\n\t\tnbab: {\n\t\t\tdefault: 'global.blue100',\n\t\t\thover: 'global.blue900',\n\t\t\tactive: 'global.blue900',\n\t\t},\n\t\toffer: {\n\t\t\tdefault: 'global.yellow200',\n\t\t\thover: 'global.blue900',\n\t\t\tactive: 'global.blue900',\n\t\t},\n\t},\n\tbackground: {\n\t\tprimary: 'global.white000',\n\t\tsecondary: 'global.grey200',\n\t\ttertiary: 'global.grey050',\n\t\toffer: 'global.yellow100',\n\t},\n\tborder: {\n\t\tdefault: 'global.grey200',\n\t\thover: 'global.blue900',\n\t\tactive: 'global.blue900',\n\t\tdivider: 'global.grey100',\n\t\tdisabled: 'global.grey100',\n\t},\n\tbutton: {\n\t\tprimary: {\n\t\t\tdefault: 'global.blue600',\n\t\t\thover: 'global.blue900',\n\t\t\tactive: 'global.blue900',\n\t\t\tdisabled: 'global.grey200',\n\t\t},\n\t\tsecondary: {\n\t\t\tdefault: 'global.blue600',\n\t\t\thover: 'global.blue900',\n\t\t\tactive: 'global.blue900',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\ttertiary: {\n\t\t\tdefault: 'global.blue600',\n\t\t\thover: 'global.blue900',\n\t\t\tactive: 'global.blue900',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t},\n\tlink: {\n\t\tdefault: 'global.blue900',\n\t\thover: 'global.blue800',\n\t\tvisited: 'global.purple100',\n\t\tdisabled: 'global.grey300',\n\t},\n\tfilter: {\n\t\toff: {\n\t\t\tdefault: 'global.grey100',\n\t\t\thover: 'global.grey200',\n\t\t\tdisabled: 'global.grey050',\n\t\t},\n\t\ton: {\n\t\t\tdefault: 'global.blue900',\n\t\t\thover: 'global.blue800',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t},\n\tcontent: {\n\t\tprimary: 'global.black100',\n\t\tsecondary: 'global.grey400',\n\t\ttertiary: 'global.grey500',\n\t\tinverted: 'global.white000',\n\t\tactive: 'global.blue600',\n\t\tonsurface: 'global.white000',\n\t\tdisabled: 'global.grey300',\n\t\tinvertedOnSurface: 'global.blue600',\n\t\thover: 'global.blue900',\n\t},\n\tfocus: {main: 'global.blue200', accent: 'global.blue500'},\n\toverlay: {default: '#00000099', enhanced: '#000000cc', sticky: '#ffffff'},\n\tscrolling: {\n\t\tright: 'linear-gradient(-90deg, #ffffff 0%, #ffffff00 100%)',\n\t\tleft: 'linear-gradient(-90deg, #ffffff00 0%, #ffffff 100%)',\n\t},\n\tsignal: {\n\t\tinfo: 'global.grey100',\n\t\tneutral: 'global.purple100',\n\t\tsuccess: 'global.green200',\n\t\terror: 'global.red200',\n\t\toffer: 'global.yellow200',\n\t\tpromo: 'global.mint100',\n\t\tbookmark: 'global.pink100',\n\t\tprogress: 'global.blue900',\n\t\tcontrast: 'global.black100',\n\t},\n\ttab: {\n\t\tdefault: 'global.blue600',\n\t\thover: 'global.blue900',\n\t\tactive: 'global.blue600',\n\t\tdisabled: 'global.grey300',\n\t\tstepnav: {\n\t\t\tdefault: 'global.white000',\n\t\t\tselected: 'global.grey100',\n\t\t\tdisabled: 'global.grey050',\n\t\t},\n\t},\n\tcontrollers: {\n\t\ton: {\n\t\t\tdefault: 'global.blue900',\n\t\t\thover: 'global.blue700',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\toff: {\n\t\t\tdefault: 'global.blue600',\n\t\t\thover: 'global.blue900',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t},\n\tbadge: {\n\t\tdefault: 'global.grey200',\n\t\thover: 'global.blue900',\n\t\tactive: 'global.blue900',\n\t},\n\thoverIndicator: 'global.grey050',\n\tshadow: {\n\t\tvariant1:\n\t\t\t'0 4px 5px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.2)',\n\t\tvariant2: '0 3px 15px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.2)',\n\t\tvariant3: '0 6px 30px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2)',\n\t\tvariant4:\n\t\t\t'0px 8px 32px rgba(0, 0, 0, 0.1), 0px 16px 48px rgba(0, 0, 0, 0.05)',\n\t},\n\tgradient: {\n\t\ttop: 'linear-gradient(180deg, #00437a 0%, #001e50 100%)',\n\t\tleft: 'linear-gradient(90deg, #00437a 0%, #001e50 100%)',\n\t\tright: 'linear-gradient(270deg, #00437a 0%, #001e50 100%)',\n\t\tbottom: 'linear-gradient(0deg, #00437a 0%, #001e50 100%)',\n\t\tradial: 'radial-gradient(circle, #00437a 0%, #001e50 100%)',\n\t},\n\tswitcher: {\n\t\ton: {\n\t\t\tdefault: 'global.grey100',\n\t\t\thover: 'global.blue900',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\toff: {\n\t\t\tdefault: 'global.grey200',\n\t\t\thover: 'global.blue900',\n\t\t\tdisabled: 'global.grey100',\n\t\t},\n\t},\n};\nexport var invertedThemeColors = {\n\taccent: {\n\t\toffer: {\n\t\t\tdefault: 'global.yellow200',\n\t\t\thover: 'global.blue200',\n\t\t\tactive: 'global.blue200',\n\t\t},\n\t\tnbab: {\n\t\t\tdefault: 'global.blue100',\n\t\t\thover: 'global.blue200',\n\t\t\tactive: 'global.blue200',\n\t\t},\n\t},\n\tbackground: {\n\t\tprimary: 'global.blue600',\n\t\tsecondary: 'global.blue500',\n\t\ttertiary: 'global.blue700',\n\t\toffer: 'global.yellow100',\n\t},\n\tborder: {\n\t\tdefault: 'global.white000',\n\t\thover: 'global.blue200',\n\t\tactive: 'global.blue200',\n\t\tdivider: 'global.white000',\n\t\tdisabled: 'global.blue500',\n\t},\n\tbutton: {\n\t\tprimary: {\n\t\t\tdefault: 'global.white000',\n\t\t\thover: 'global.blue200',\n\t\t\tactive: 'global.blue200',\n\t\t\tdisabled: 'global.grey500',\n\t\t},\n\t\tsecondary: {\n\t\t\tdefault: 'global.white000',\n\t\t\thover: 'global.blue200',\n\t\t\tactive: 'global.blue200',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\ttertiary: {\n\t\t\tdefault: 'global.white000',\n\t\t\thover: 'global.blue200',\n\t\t\tactive: 'global.blue200',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t},\n\tlink: {\n\t\tdefault: 'global.blue200',\n\t\thover: 'global.blue100',\n\t\tvisited: 'global.pink100',\n\t\tdisabled: 'global.grey300',\n\t},\n\tfilter: {\n\t\toff: {\n\t\t\tdefault: 'global.grey400',\n\t\t\thover: 'global.grey200',\n\t\t\tdisabled: 'global.grey500',\n\t\t},\n\t\ton: {\n\t\t\tdefault: 'global.blue100',\n\t\t\thover: 'global.blue200',\n\t\t\tdisabled: 'global.grey400',\n\t\t},\n\t},\n\tcontent: {\n\t\tprimary: 'global.white000',\n\t\tsecondary: 'global.grey100',\n\t\ttertiary: 'global.grey200',\n\t\tinverted: 'global.blue600',\n\t\tactive: 'global.white000',\n\t\tonsurface: 'global.white000',\n\t\tdisabled: 'global.grey300',\n\t\tinvertedOnSurface: 'global.blue600',\n\t\thover: 'global.blue200',\n\t},\n\tfocus: {main: 'global.blue100', accent: 'global.white000'},\n\toverlay: {default: '#00000099', enhanced: '#000000cc', sticky: '#ffffff'},\n\tscrolling: {\n\t\tright: 'linear-gradient(-90deg, #001e50 0%, #001e5000 100%)',\n\t\tleft: 'linear-gradient(-90deg, #001e5000 0%, #001e50 100%)',\n\t},\n\tsignal: {\n\t\tinfo: 'global.grey500',\n\t\tneutral: 'global.purple050',\n\t\tsuccess: 'global.green100',\n\t\terror: 'global.red100',\n\t\toffer: 'global.yellow200',\n\t\tpromo: 'global.mint100',\n\t\tbookmark: 'global.pink100',\n\t\tprogress: 'global.blue200',\n\t\tcontrast: 'global.white000',\n\t},\n\ttab: {\n\t\tdefault: 'global.white000',\n\t\thover: 'global.blue100',\n\t\tactive: 'global.white000',\n\t\tdisabled: 'global.grey300',\n\t\tstepnav: {\n\t\t\tdefault: 'global.blue600',\n\t\t\tselected: 'global.blue800',\n\t\t\tdisabled: 'global.blue700',\n\t\t},\n\t},\n\tcontrollers: {\n\t\toff: {\n\t\t\tdefault: 'global.white000',\n\t\t\thover: 'global.blue200',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\ton: {\n\t\t\tdefault: 'global.blue100',\n\t\t\thover: 'global.blue200',\n\t\t\tdisabled: 'global.grey400',\n\t\t},\n\t},\n\tbadge: {\n\t\tdefault: 'global.blue600',\n\t\thover: 'global.blue700',\n\t\tactive: 'global.blue300',\n\t},\n\thoverIndicator: 'global.blue500',\n\tshadow: {\n\t\tvariant1:\n\t\t\t'0 4px 5px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.2)',\n\t\tvariant2: '0 3px 15px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.2)',\n\t\tvariant3: '0 6px 30px rgba(0,0,0,0.1), 0 4px 8px rgba(0,0,0,0.2)',\n\t\tvariant4:\n\t\t\t'0px 8px 32px rgba(0, 0, 0, 0.1), 0px 16px 48px rgba(0, 0, 0, 0.05)',\n\t},\n\tgradient: {\n\t\ttop: 'linear-gradient(180deg, #00437a 0%, #001e50 100%)',\n\t\tleft: 'linear-gradient(90deg, #00437a 0%, #001e50 100%)',\n\t\tright: 'linear-gradient(270deg, #00437a 0%, #001e50 100%)',\n\t\tbottom: 'linear-gradient(0deg, #00437a 0%, #001e50 100%)',\n\t\tradial: 'radial-gradient(circle, #00437a 0%, #001e50 100%)',\n\t},\n\tswitcher: {\n\t\ton: {\n\t\t\tdefault: 'global.white000',\n\t\t\thover: 'global.blue200',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t\toff: {\n\t\t\tdefault: 'global.grey100',\n\t\t\thover: 'global.blue200',\n\t\t\tdisabled: 'global.grey300',\n\t\t},\n\t},\n};\n","import { LocaleServiceV1 } from '@volkswagen-onehub/locale-service';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { ConsentsVehicleResponse, ICreateConsentDecisionsPayload } from './types';\n\nexport class TTDSGConsentClient {\n\n private readonly locale: string;\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(\n private readonly authServiceWeConnect: IAuthServiceV2,\n private readonly localeService: LocaleServiceV1,\n private readonly stage: string\n ) {\n this.locale = `${this.localeService.language}-${this.localeService.countryCode}`;\n this.resourceHostId = `myvw-ttdsg-consent-${stage}`;\n }\n\n public async getDocumentConsentVehicle(isWcar: boolean, userId: string): Promise {\n\n const response = await this.authServiceWeConnect.get(this.resourceHostId,\n `api/v1/consents/vehicle?gdc=${this.getGdcType(isWcar)}&userId=${userId}&locale=${this.locale}`);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as ConsentsVehicleResponse;\n }\n\n public async createConsent(payload: ICreateConsentDecisionsPayload, isWcar: boolean, userId: string): Promise\n {\n const response = await this.authServiceWeConnect.post(this.resourceHostId,\n `api/v1/consents/vehicle?gdc=${this.getGdcType(isWcar)}&userId=${userId}&locale=${this.locale}`,\n JSON.stringify(payload),\n {\n 'Content-Type': 'application/json'\n }\n );\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n}\n","import { LoggingFacade } from '@vwdfive/myvw-logging';\nimport { IVehicle } from '../gvf';\nimport { TTDSGConsentClient } from './TTDSGConsentClient';\nimport {\n ConsentsVehicle,\n ConsentsVehicleResponse,\n Decision,\n DocumentWithVin,\n EnrichedDocument,\n ICreateConsentDecisionsPayload,\n} from './types';\nimport { DecisionType } from '../enums';\n\nexport class TTDSGConsentService {\n constructor(\n private readonly ttdsgConsentClient: TTDSGConsentClient,\n private readonly loggingFacade: LoggingFacade,\n ) {}\n\n public checkIsConsentDue(documentsForVehicles: ConsentsVehicle[]) {\n let isConsentDue = false;\n if (!documentsForVehicles.length) {\n return isConsentDue;\n }\n for (let i = 0; i < documentsForVehicles.length; i++) {\n const vehicle = documentsForVehicles[i];\n if (vehicle.consentDecisionRequired) {\n isConsentDue = true;\n break;\n }\n }\n return isConsentDue;\n }\n\n private getFilteredDocumentsGroupedByVehicles(data: ConsentsVehicle[]) {\n return data\n .filter((vehicle) => vehicle.consentDecisionRequired)\n .map((vehicle) => ({\n ...vehicle,\n documents: vehicle.documents.filter((document) => document.consentDocumentDecisionRequired),\n }));\n }\n\n public async getDocumentsConsentDecisionRequiredGroupedByVehicle(isWcar: boolean, userId: string) {\n try {\n return this.getFilteredDocumentsGroupedByVehicles(\n await this.ttdsgConsentClient.getDocumentConsentVehicle(isWcar, userId),\n );\n } catch (error: any) {\n this.loggingFacade.error(`Could not fetch documents from ttdsg-consent`, error as Error);\n throw new Error(error);\n }\n }\n\n public async getDocumentsGroupedByVehicles(isWcar: boolean, userId: string, vehicles: IVehicle[]) {\n try {\n const data: ConsentsVehicleResponse = await this.ttdsgConsentClient.getDocumentConsentVehicle(isWcar, userId);\n return data.map((item) => ({ ...item, vehicle: vehicles.find((vehicle) => vehicle.vin === item.vin) }));\n } catch (error: any) {\n this.loggingFacade.error(`Could not fetch documents from ttdsg-consent`, error as Error);\n throw new Error(error);\n }\n }\n\n private getAllDocuments(data: ConsentsVehicleResponse) {\n const result: DocumentWithVin[] = [];\n\n if (!data) {\n return result;\n }\n\n data.forEach((item) => {\n item.documents.forEach((document) => {\n result.push({\n userId: item.userId,\n consentDecisionRequired: item.consentDecisionRequired,\n consentDocumentDecisionRequired: document.consentDocumentDecisionRequired,\n ...document.versionDetails,\n vin: item.vin,\n consent: document.consent,\n });\n });\n });\n return result;\n }\n\n private getVinsByDocumentId(documentId: string, data: ConsentsVehicleResponse) {\n const allDocuments = this.getAllDocuments(data);\n return allDocuments.filter((document) => document.id === documentId).map((documentVin) => documentVin.vin);\n }\n\n private getVehiclesByDocumentId(documentId: string, vehicles: IVehicle[], data: ConsentsVehicleResponse) {\n const vins = this.getVinsByDocumentId(documentId, data);\n\n const result: IVehicle[] = [];\n vins.forEach((vin) => {\n const v = vehicles.find((v) => v.vin === vin);\n if (v) {\n result.push(v);\n }\n });\n return result;\n }\n\n public getUniqueDocuments(data: ConsentsVehicleResponse, vehicles: IVehicle[]) {\n const allDocuments = this.getAllDocuments(data);\n const result: EnrichedDocument[] = [];\n\n allDocuments.forEach((document) => {\n if (!result.some((item) => item.id === document.id)) {\n const {vin, ...rest} = document;\n result.push({\n ...rest,\n vehicles: this.getVehiclesByDocumentId(document.id, vehicles, data),\n });\n }\n });\n return result;\n }\n\n public async createConsents(payload: ICreateConsentDecisionsPayload[], isWcar: boolean, userId: string) {\n for (const consent of payload)\n {\n try {\n await this.ttdsgConsentClient.createConsent(consent, isWcar, userId);\n } catch (error: any) {\n this.loggingFacade.error(`Could not fetch documents from ttdsg-consent`, error as Error);\n throw new Error(error);\n }\n }\n }\n\n public createDecisions(existingDecisions: Decision[], newDecision: Decision) {\n const existingItem = existingDecisions.find(\n (d) => d.versionDetailsId === newDecision.versionDetailsId && d.vin === newDecision.vin,\n );\n if (existingItem) {\n existingItem.decision = newDecision.decision;\n return existingDecisions;\n }\n return existingDecisions.concat(newDecision);\n }\n\n public createConsentPayload(\n initialData: ConsentsVehicleResponse,\n decisions: Decision[],\n decisionType: DecisionType,\n ) {\n return initialData.map((item) => ({\n userId: item.userId,\n vin: item.vin,\n consents: item.documents.map((document) => ({\n versionDetailsId: document.versionDetails.id,\n decision:\n decisionType === DecisionType.ACCEPT_ALL\n ? true\n : decisionType === DecisionType.DECLINE_ALL\n ? false\n : decisions.find(\n (decision) =>\n decision.vin === item.vin &&\n decision.versionDetailsId === document.versionDetails.versionId,\n )?.decision ?? false,\n })),\n }));\n }\n}\n","export * from './TTDSGConsentClient';\nexport * from './TTDSGConsentService';\nexport * from './types';\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IArticle {\n readonly category: string;\n readonly available: boolean;\n}\n\nexport interface IArticleInformationData {\n readonly vehicles: [\n {\n vin: string,\n articles: IArticle[]\n }\n ] | [];\n}\n\n// https://vw-car-net.qs-shop-volkswagen-we.com/documentation/shop\nexport class CarNetShopClient {\n\n private readonly resourceHostId;\n\n constructor(private readonly authServiceWeConnect: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-car-net-shop-${stage}`;\n }\n\n // https://vw-car-net.qs-shop-volkswagen-we.com/documentation/shop/#/Checkout%20Data/getArticleInformation\n public async getArticleInformation(vin: string, isWcar: boolean, shopCountry: string, shopLocale: string): Promise {\n const url = `vw/de/v3/checkout/__userId__/article-information?gdc=${this.getGdcType(isWcar)}&vin=${vin}&shop-country=${shopCountry}&shop-locale=${shopLocale}`;\n const response = await this.authServiceWeConnect.get(this.resourceHostId, url);\n\n if (!response.ok) {\n throw new Error();\n }\n\n return await response.json();\n }\n\n private getGdcType(isWcar: boolean) {\n return isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n }\n\n}\n","import { LoggingFacade } from '@vwdfive/myvw-logging';\nimport { CarNetShopClient, IArticle } from './CarNetShopClient';\n\nexport class CarNetShopService {\n constructor(private readonly loggingFacade: LoggingFacade, private readonly carNetShopClient: CarNetShopClient,\n private readonly shopLocale: string, private readonly shopCountry: string) {\n }\n\n public async hasAppArticles(vin: string, isWcar: boolean): Promise {\n const articlesForApp = await this.getArticlesForCategory(vin, isWcar, 'APP');\n return articlesForApp.length > 0;\n }\n\n public async hasFodArticles(vin: string, isWcar: boolean): Promise {\n const articlesForFod = await this.getArticlesForCategory(vin, isWcar, 'FOD');\n return articlesForFod.filter(article => article.available).length > 0;\n }\n\n private async getArticlesForCategory(vin: string, isWcar: boolean, category: string): Promise {\n try {\n const carNetResponse = await this.carNetShopClient.getArticleInformation(vin, isWcar,\n this.shopCountry, this.shopLocale);\n return carNetResponse.vehicles[0]?.articles.filter((article) => article.category === category) ?? [];\n } catch (e: any) {\n this.loggingFacade.error('Fetching data from CarNetShop failed', e);\n return [];\n }\n }\n}","export * from './CarNetShopClient';\nexport * from './CarNetShopService';","import { IConsentConfiguration, ILatestVersion } from './ConsentService';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IVehicleSpecificConsentResponse {\n readonly consentsGiven: boolean;\n}\n\nexport class ConsentClient {\n\n private readonly headers: HeadersInit = {\n 'Content-Type': 'application/json',\n }\n\n private readonly resourceHostId: string;\n\n private readonly resourceProxyId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly consentConfiguration: IConsentConfiguration, private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-consent-${stage}`;\n this.resourceProxyId = `myvw-vehicle-consent-proxy-${stage}`;\n }\n\n public async getVehicleSpecificConsent(vin: string, isWcar: boolean): Promise {\n const url = `consent/v2/users/__userId__/vehicles/${vin}?gdc=${this.getGdcType(isWcar)}&client=__aud__&scopes=openid`;\n const response = await this.authService.get(this.resourceHostId, url);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json();\n }\n\n public async storeVehicleSpecificConsent(vin: string, isWcar: boolean): Promise {\n const url = `consents/${vin}?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authService.post(this.resourceProxyId, url, undefined, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n public async storeConsentForMajorVersion(majorVersion: number, isWcar: boolean): Promise {\n const url = `consent/v2/legal-text-consents/${this.consentConfiguration.appName}/__userId__/${this.consentConfiguration.termsAndConditionsTextId}/${this.consentConfiguration.countryCode}?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authService.post(this.resourceHostId, url,\n JSON.stringify({majorVersion, language: this.consentConfiguration.language}), this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n public async getLatestVersion(isWcar: boolean): Promise {\n const url = `consent/v3/legal-text-consents/${this.consentConfiguration.appName}/__userId__/${this.consentConfiguration.termsAndConditionsTextId}/${this.consentConfiguration.countryCode}/${this.consentConfiguration.language}/details?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authService.get(this.resourceHostId, url);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n const data = await response.json();\n return data.latestVersion;\n }\n}","import {ServiceConfigProviderV1} from \"@volkswagen-onehub/service-config-provider\";\nimport {LocaleServiceV1} from \"@volkswagen-onehub/locale-service\";\nimport {IConsentConfiguration} from \"./ConsentService\";\n\nexport class ConsentConfigurationBuilder {\n public constructor(private readonly serviceConfigProvider: ServiceConfigProviderV1,\n private readonly localeService: LocaleServiceV1) {\n }\n\n public getConfiguration(): IConsentConfiguration {\n const consentCustomConfig = this.serviceConfigProvider.configs.consent?.customConfig as any;\n if (!consentCustomConfig\n || !consentCustomConfig.appName\n || !consentCustomConfig.termsAndConditionsTextId\n || !consentCustomConfig.privacyStatementTextId) {\n throw new Error('Consent configuration is missing or incomplete');\n }\n return {\n consentEndpoint: this.serviceConfigProvider.configs.consent!.urlOrigin,\n appName: consentCustomConfig.appName,\n termsAndConditionsTextId: consentCustomConfig.termsAndConditionsTextId,\n privacyStatementTextId: consentCustomConfig.privacyStatementTextId,\n countryCode: this.localeService.countryCode,\n language: this.localeService.language\n };\n }\n}","import { ConsentClient } from './ConsentClient';\n\nexport interface IConsentConfiguration {\n consentEndpoint: string\n appName: string\n termsAndConditionsTextId: string\n privacyStatementTextId: string\n countryCode: string\n language: string\n}\n\nexport interface ILatestVersion {\n majorVersion: number\n minorVersion: number\n}\n\nexport class ConsentService {\n public constructor(private readonly consentConfiguration: IConsentConfiguration, private readonly client: ConsentClient) {\n }\n\n public getTermsAndConditionsTextPdfUrl(version: ILatestVersion): string {\n return `${this.consentConfiguration.consentEndpoint}/consent/v1/texts/${this.consentConfiguration.appName}/${this.consentConfiguration.countryCode}/${this.consentConfiguration.language}/${this.consentConfiguration.termsAndConditionsTextId}/${version.majorVersion}.${version.minorVersion}/pdf`;\n }\n\n public getPrivacyStatementTextPdfUrl(): string {\n return `${this.consentConfiguration.consentEndpoint}/consent/v1/texts/${this.consentConfiguration.appName}/${this.consentConfiguration.countryCode}/${this.consentConfiguration.language}/${this.consentConfiguration.privacyStatementTextId}/latest/pdf`;\n }\n\n public async acceptTermsAndConditions(majorVersion: number, isWcar: boolean): Promise {\n try {\n await this.client.storeConsentForMajorVersion(majorVersion, isWcar);\n return true;\n } catch {\n return false;\n }\n }\n\n public async getLatestVersion(isWcar: boolean): Promise {\n return this.client.getLatestVersion(isWcar);\n }\n\n public async setVehicleSpecificConsentIfNeeded(vin: string, isWcar: boolean): Promise {\n const consentResponse = await this.client.getVehicleSpecificConsent(vin, isWcar);\n if (!consentResponse.consentsGiven) {\n await this.client.storeVehicleSpecificConsent(vin, isWcar);\n }\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { ContractsOverview } from './types';\n\nexport class ContractCenterService {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `cwat-contract-center-service-${stage}`\n };\n\n public async getContracts(): Promise {\n const url = 'user/vehicles/overview';\n\n const response = await this.authService.get(this.resourceHostId, url);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as ContractsOverview;\n }\n}","import { DevicePlatform, EnrollmentStatus, ModGeneration, Role } from '../enums';\n\nexport enum LicenseCategory {\n MOD = 'MOD',\n FOD = 'FOD',\n}\n\nexport enum LicenseType {\n LIFETIME = 'LIFETIME',\n ACTIVE = 'ACTIVE',\n INACTIVE = 'INACTIVE',\n ENDING_SOON = 'ENDING_SOON',\n EXPIRED = 'EXPIRED',\n}\n\nexport enum LicenseOrigin {\n CAR_NET_SHOP = 'CAR_NET_SHOP',\n VDBS = 'VDBS',\n}\n\nexport type Contract = {\n articleId: string | null;\n activationDate: string | null;\n available: boolean;\n category: LicenseCategory;\n description: string | null;\n expirationDate: string | null;\n name: string;\n origin: LicenseOrigin;\n licenseType: LicenseType;\n masterSalesPartNumber: string | null;\n lifetimeLicense: boolean;\n isSubscriptionLicense: boolean | null;\n};\n\nexport type VehicleOverview = {\n vin: string;\n nickname: string;\n licensePlateNumber: string | null;\n role: Role;\n enrollmentStatus: EnrollmentStatus;\n devicePlatform: DevicePlatform;\n primaryCar: boolean;\n cubicNetworkEnabled: boolean;\n carDetails: string | null;\n contracts: Contract[] | null;\n contractsRequestFailed: boolean;\n modGeneration: ModGeneration;\n};\n\nexport type ContractsOverview = {\n vehicleOverviews: VehicleOverview[];\n cubicNetworkEnabled: boolean;\n};","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { LocaleServiceV1 } from '@volkswagen-onehub/locale-service';\n\nexport interface IDocumentConsentResponse {\n readonly consentRequired?: boolean;\n readonly versionDetails?: {\n readonly id: string;\n readonly versionId: string;\n readonly locale: string;\n readonly title: string;\n readonly text: string;\n readonly disclaimer: string;\n };\n readonly consent?: {\n readonly id: string;\n readonly userId: string;\n readonly decision: boolean;\n readonly versionDetailsId: string;\n readonly collector: string;\n readonly updatedAt: string;\n };\n}\n\nexport class DocumentConsentClient {\n private readonly locale: string;\n\n private readonly resourceHostId;\n\n private getGdcType = (isWcar: boolean) => (isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`);\n\n constructor(\n private readonly authServiceWeConnect: IAuthServiceV2,\n private readonly localeService: LocaleServiceV1,\n private readonly stage: string,\n ) {\n this.locale = `${this.localeService.language}-${this.localeService.countryCode}`;\n\n /**\n * The condition below is a special handling of Norwegian\n * market. The language-country code of this market\n * is 'no-NO', but this particular API would return\n * 'No concents for this language'. Therefore, we ask for\n * 'nb-NO' language-country code for this case.\n */\n if (this.localeService.language === 'no' && this.localeService.countryCode === 'NO') {\n this.locale = 'nb-NO';\n }\n\n this.resourceHostId = `myvw-document-consent-${stage}`;\n }\n\n public async getDocumentConsentRequired(\n isWcar: boolean,\n documentId: string,\n userId: string,\n ): Promise {\n const documentConsentUrl = 'api/v2/consents/required';\n let response = await this.authServiceWeConnect.get(\n this.resourceHostId,\n `${documentConsentUrl}?gdc=${this.getGdcType(isWcar)}&document-id=${documentId}&user-id=${userId}&locale=${\n this.locale\n }`,\n );\n\n if (!response.ok) {\n throw new Error();\n }\n return (await response.json()) as IDocumentConsentResponse;\n }\n}\n","import {LoggingFacade} from '@vwdfive/myvw-logging';\nimport {DocumentConsentClient, IDocumentConsentResponse} from './DocumentConsentClient';\n\nexport class DocumentConsentService {\n constructor(private readonly documentConsentClient: DocumentConsentClient, private readonly loggingFacade: LoggingFacade) {\n }\n\n public async getDocumentConsentRequired(isWcar: boolean, documentId: string, userId: string): Promise {\n try {\n return await this.documentConsentClient.getDocumentConsentRequired(isWcar, documentId, userId);\n } catch (error) {\n this.loggingFacade.error(`Could not fetch document from document-consent for id ${documentId}`, error as Error);\n return undefined;\n }\n }\n}","export enum DecisionType {\n ACCEPT_MY_CHOICE = 'ACCEPT_MY_CHOICE',\n ACCEPT_ALL = 'ACCEPT_ALL',\n DECLINE_ALL = 'DECLINE_ALL',\n}","export enum DevicePlatform {\n MBB = 'MBB',\n MBB_ODP = 'MBB_ODP',\n WCAR = 'WCAR',\n UNKNOWN = 'UNKNOWN'\n}","export enum EnrollmentStatus {\n NOT_STARTED = 'NOT_STARTED',\n STARTED = 'STARTED',\n COMPLETED = 'COMPLETED',\n INACTIVE = 'INACTIVE',\n UNKNOWN = 'UNKNOWN'\n}","export enum ModGeneration {\n MOD1 = 'MOD1',\n MOD2 = 'MOD2',\n MOD2_5 = 'MOD2.5',\n MOD3 = 'MOD3',\n MOD3_1 = 'MOD3.1',\n MOD3_1_UNECE = 'MOD3.1UNECE',\n MOD3_2 = 'MOD3.2',\n MOD3_2_UNECE = 'MOD3.2UNECE',\n MOD3_5 = 'MOD3.5',\n MOD4 = 'MOD4',\n MOD5 = 'MOD5',\n MOD6 = 'MOD6',\n NA = 'NA',\n UNKNOWN = 'UNKNOWN',\n}\n","export enum Role {\n PRIMARY_USER = 'PRIMARY_USER',\n SECONDARY_USER = 'SECONDARY_USER',\n GUEST_USER = 'GUEST_USER',\n ANONYMOUS_USER = 'ANONYMOUS_USER',\n UNKNOWN = 'UNKNOWN'\n}","export enum SoftwareVersion {\n ME0 = 'ME0',\n ME1 = 'ME1',\n ME2 = 'ME2',\n UNKNOWN = 'UNKNOWN'\n}","export * from './DecisionType';\nexport * from './DevicePlatform';\nexport * from './EnrollmentStatus';\nexport * from './ModGeneration';\nexport * from './Role';\nexport * from './SoftwareVersion';","export class TimeoutError extends Error {\n\n constructor(m?: string) {\n if(!m) {\n m = 'Timeout exceeded';\n }\n super(m);\n }\n}\n","export class UnknownSimStatusError extends Error {\n\n constructor(m?: string) {\n if(!m) {\n m = 'Unknown SIM Status';\n }\n super(m);\n }\n}","export class VcfUpdateCapabilityError extends Error {\n\n constructor(m?: string) {\n if(!m) {\n m = 'Cannot update user vehicle capability';\n }\n super(m);\n }\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { GfaAuthServiceRequestInitV2 } from '@volkswagen-onehub/gfa-auth-service/src/v2/gfa-auth-service-v2';\nimport { InvitationAction, InvitationRequestBody, Invitations, RectivateAndReovkeSURightsRequestBody } from './types';\n\nconst getRequestOptions = async (stage: string, method: string) => {\n const requestHeaders: HeadersInit = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n };\n\n const options: GfaAuthServiceRequestInitV2 = {\n resourceHostId: `myvw-gupis-${stage}`,\n method: method,\n headers: requestHeaders,\n credentials: 'same-origin',\n mode: 'cors',\n redirect: 'follow',\n referrer: 'no-referrer',\n };\n\n return options;\n};\n\nexport const fetchGupis = async (authService: IAuthServiceV2, url: string, options: RequestInit): Promise => {\n return authService\n .fetch(url, options)\n .then((response: Response) => {\n if (!response.ok) {\n throw new Error(`Fetch Gupis request failed with ${response.status}`);\n }\n\n if (response.status === 201 || response.status === 204) {\n return null as unknown as Promise;\n }\n\n return response.json();\n })\n .then((data: any) => {\n return data;\n })\n .catch((error: any) => {\n if (error instanceof Error) {\n console.error(`Fetch Gupis request failed with ${error.message}`);\n } else {\n console.error(`Fetch Gupis request: ${error}`);\n }\n });\n};\n\nexport const fetchInvitations = async (\n authService: IAuthServiceV2,\n gdcType: string,\n stage: string,\n): Promise => {\n const options = await getRequestOptions(stage, 'GET');\n return fetchGupis(authService, `v1/guestuserplus/invitations?gdc=${gdcType}`, options);\n};\n\nexport const sendInvitation = async (\n authService: IAuthServiceV2,\n stage: string,\n invitationBody: InvitationRequestBody,\n gdcType: string,\n): Promise => {\n const options = await getRequestOptions(stage, 'POST');\n options.body = JSON.stringify({\n '2fmToken': invitationBody.fmToken,\n vin: invitationBody.vin,\n guSsoId: invitationBody.inviteeID,\n });\n\n return fetchGupis(authService, `v1/guestuserplus/invitations?gdc=${gdcType}`, options);\n};\n\nconst invitationAction = async (\n authService: IAuthServiceV2,\n stage: string,\n invitationID: string,\n requestMethod: 'PUT' | 'DELETE',\n gdcType: string,\n action?: 'reject' | 'accept',\n): Promise => {\n const options = await getRequestOptions(stage, requestMethod);\n return fetchGupis(\n authService,\n `v1/guestuserplus/invitations/${invitationID}${action ? '/' + action : ''}?gdc=${gdcType}`,\n options,\n );\n};\n\nexport const rejectInvitation = async (\n authService: IAuthServiceV2,\n stage: string,\n invitationID: string,\n gdcType: string,\n): Promise => {\n return invitationAction(authService, stage, invitationID, 'PUT', gdcType, 'reject');\n};\n\nexport const acceptInvitation = async (\n authService: IAuthServiceV2,\n stage: string,\n invitationID: string,\n gdcType: string,\n): Promise => {\n return invitationAction(authService, stage, invitationID, 'PUT', gdcType, 'accept');\n};\n\nexport const revokeInvitation = async (\n authService: IAuthServiceV2,\n stage: string,\n invitationID: string,\n gdcType: string,\n): Promise => {\n const options = await getRequestOptions(stage, 'DELETE');\n return fetchGupis(authService, `v1/guestuserplus/invitations/${invitationID}?gdc=${gdcType}`, options);\n};\n\nexport const revokeSURights = async (\n authService: IAuthServiceV2,\n stage: string,\n reactivationBody: RectivateAndReovkeSURightsRequestBody,\n gdcType: string,\n): Promise => {\n const options = await getRequestOptions(stage, 'DELETE');\n options.body = JSON.stringify({\n vin: reactivationBody.vin,\n guSsoId: reactivationBody.guSsoId,\n });\n return fetchGupis(authService, `v1/guestuserplus/permissions/revoke?gdc=${gdcType}`, options);\n};\n","export * from './fetch';\nexport * from './types';","import { GvfNetworkError } from './errors/GvfNetworkError';\nimport { UserNotAuthorizedError } from './errors/UserNotAuthorizedError';\nimport { UnknownVehicleError } from './errors/UnknownVehicleError';\nimport { LocaleServiceV1 } from '@volkswagen-onehub/locale-service';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\ninterface ISpecification {\n readonly codeText: string,\n readonly origin: string\n}\n\nexport interface IGvfResponse {\n readonly vin?: string;\n readonly modelName?: string;\n readonly exteriorColor?: string;\n readonly engine?: string;\n readonly specifications?: ISpecification[];\n readonly modelYear?: string;\n}\n\nexport class GvfClient {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly localeService: LocaleServiceV1, private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `myvw-gvf-proxy-${stage}`\n }\n\n public async getGvfData(vehicleId: string): Promise {\n let response;\n try {\n const baseUrl = `vehicleData/${this.localeService.language}-${this.localeService.countryCode}`;\n response = await this.authService.get(this.resourceHostId, `${baseUrl}/${vehicleId}`);\n } catch (e: any) {\n if (e.message === 'Network Error' || e.code === 'ECONNABORTED') {\n throw new GvfNetworkError();\n }\n }\n\n if (!response) {\n throw new GvfNetworkError();\n }\n\n if (response.status === 401) {\n throw new UserNotAuthorizedError();\n } else if (response.status === 404) {\n throw new UnknownVehicleError();\n } else if (!response.ok) {\n throw new GvfNetworkError();\n }\n\n return await response.json() as IGvfResponse;\n }\n\n public async getGvfDetails(vehicleId: string): Promise {\n try {\n const response = await this.authService.get(this.resourceHostId,\n `vehicleDetails/${this.localeService.language}-${this.localeService.countryCode}/${vehicleId}`);\n return await response.json() as IGvfResponse;\n } catch {\n return undefined;\n }\n }\n}\n","import {VehicleCommissionDataHelper} from \"./VehicleCommissionDataHelper\";\nimport {GvfClient} from \"./GvfClient\";\nimport {GvfNetworkError} from \"./errors/GvfNetworkError\";\nimport {ServiceConfigProviderV1} from \"@volkswagen-onehub/service-config-provider\";\nimport {SpecificationFilter} from \"./SpecificationFilter\";\nimport { getCustomConfig } from '../serviceConfig/ServiceConfigHelper';\nimport { IVumFlattenedVehicle } from '../vum/VumFlattenedVehicleConverter';\n\nexport interface IVehicle extends IVumFlattenedVehicle {\n readonly modelName?: string;\n readonly exteriorColor?: string;\n readonly engine?: string;\n readonly specifications?: string[];\n readonly modelYear?: string;\n readonly exteriorColorText?: string;\n}\n\nexport class GvfService {\n private readonly vehicleCommissionDataHelper: VehicleCommissionDataHelper;\n private readonly specificationFilter: SpecificationFilter;\n\n constructor(private readonly gvfClient: GvfClient,\n private readonly serviceConfigProvider: ServiceConfigProviderV1) {\n const gvfCustomServiceConfig: any = serviceConfigProvider.configs['myvw_group-vehicle-file']!.customConfig;\n const validBids = gvfCustomServiceConfig.validBids;\n\n this.vehicleCommissionDataHelper = new VehicleCommissionDataHelper(validBids);\n this.specificationFilter = new SpecificationFilter(gvfCustomServiceConfig.prNumberOrigins);\n }\n\n public async getGvfEnrichedVehicle(vehicle: IVehicle, modelNameFallback: string): Promise {\n if (vehicle.vin) {\n vehicle = await this.getGvfEnrichedVinVehicle(vehicle);\n } else if (vehicle.commissionNumber) {\n const commissionVehicleCombinations = this.vehicleCommissionDataHelper.getAllCommissionVehicleCombinations(vehicle);\n vehicle = await this.getGvfEnrichedCommissionDataVehicle(commissionVehicleCombinations);\n }\n\n if (getCustomConfig(this.serviceConfigProvider.configs['myvw_group-vehicle-file']).useFallbackForModelName) {\n return {...vehicle, modelName: modelNameFallback};\n }\n\n return vehicle;\n }\n\n private async getGvfEnrichedVinVehicle(vehicle: IVehicle): Promise {\n const gvfDataResponse = await this.gvfClient.getGvfData(vehicle.vin!);\n const gvfDetailsResponse = await this.gvfClient.getGvfDetails(vehicle.vin!);\n let specifications = this.specificationFilter.filter(gvfDetailsResponse);\n\n return {...vehicle, ...gvfDataResponse, ...gvfDetailsResponse, specifications};\n }\n\n private async getGvfEnrichedCommissionDataVehicle(vehicles: IVehicle[]): Promise {\n const gvfDataResponse = await this.getVehicleWithGvfDataForPossibleCombinations(vehicles);\n const gvfDetailsResponse = await this.gvfClient.getGvfDetails(gvfDataResponse.bid! + gvfDataResponse.commissionNumberYear + gvfDataResponse.commissionNumber);\n let specifications = this.specificationFilter.filter(gvfDetailsResponse);\n\n return {...gvfDataResponse, ...gvfDetailsResponse, specifications};\n }\n\n private async getVehicleWithGvfDataForPossibleCombinations(vehicles: IVehicle[]): Promise {\n let lastException = new GvfNetworkError();\n let gvfResponsesWithBids = await Promise.all(vehicles.map(async (vehicle) => {\n try {\n const response = await this.gvfClient.getGvfData(vehicle.bid! + vehicle.commissionNumberYear + vehicle.commissionNumber);\n if (response) {\n return {...vehicle, ...response} as IVehicle;\n }\n } catch (e: any) {\n lastException = e;\n }\n return undefined;\n }));\n\n const result = gvfResponsesWithBids.find((response) => response !== undefined);\n if (result) {\n return result;\n } else {\n throw lastException;\n }\n }\n}\n","import {IGvfResponse} from \"./GvfClient\";\n\nexport class SpecificationFilter {\n private readonly defaultPrNumberOrigins: string[] = ['E', 'G', 'P'];\n\n constructor(private readonly allowedPrNumberOrigins: string[] | undefined) {\n if (this.allowedPrNumberOrigins === undefined) {\n this.allowedPrNumberOrigins = this.defaultPrNumberOrigins;\n }\n }\n\n public filter(gvfDetailsResponse: IGvfResponse | undefined): string[] | undefined {\n if (gvfDetailsResponse === undefined || gvfDetailsResponse.specifications === undefined) {\n return undefined;\n }\n\n const filteredSpecifications = gvfDetailsResponse.specifications\n .filter(specification => this.allowedPrNumberOrigins!.includes(specification.origin))\n .map(specification => specification.codeText);\n\n if (filteredSpecifications.length > 0) {\n return filteredSpecifications;\n } else {\n return gvfDetailsResponse.specifications.map(specification => specification.codeText);\n }\n }\n}\n","import { IVehicle } from './GvfService';\n\nexport class VehicleCommissionDataHelper {\n private readonly possibleYears: string[];\n\n constructor(private readonly bids: string[]) {\n const currentYear = new Date().getFullYear();\n this.possibleYears = [`${currentYear}`, `${currentYear - 1}`];\n }\n\n public getAllCommissionVehicleCombinations(vehicle: IVehicle): IVehicle[] {\n if (vehicle.bid) {\n return [vehicle];\n }\n\n if (vehicle.commissionNumberYear) {\n return this.bids.map(bid => {\n return {...vehicle, bid}\n })\n } else {\n return this.possibleYears.map(year =>\n this.getAllCommissionVehicleCombinations({\n ...vehicle,\n commissionNumberYear: year\n })).flat()\n }\n }\n}","export class GvfNetworkError extends Error {\n constructor(m?: string) {\n if(!m) {\n m = 'Error with gvf';\n }\n super(m);\n }\n}","export class UnknownVehicleError extends Error {\n constructor(m?: string) {\n if(!m) {\n m = 'Unknown vehicle';\n }\n super(m);\n }\n}\n","export class UserNotAuthorizedError extends Error {\n constructor(m?: string) {\n if(!m) {\n m = 'User is not authorized';\n }\n super(m);\n }\n}\n","export * from './errors/GvfNetworkError';\nexport * from './errors/UnknownVehicleError';\nexport * from './errors/UserNotAuthorizedError';\nexport * from './GvfClient';\nexport * from './GvfService';\nexport * from './SpecificationFilter';\nexport * from './VehicleCommissionDataHelper';","import {IAuthServiceV2} from \"@volkswagen-onehub/authservice\";\n\nexport interface IIdentityData {\n readonly lastAuthenticationDate: number;\n}\n\nexport class IdentityDataClient {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authServiceWeConnectFag: IAuthServiceV2, stage: string) {\n this.resourceHostId = `myvw-customer-profile-${stage}`\n }\n\n public async getIdentityData(): Promise {\n const response = await this.authServiceWeConnectFag.get(this.resourceHostId,\n 'v3/customers/__userId__/identityData')\n\n if (!response.ok) {\n throw new Error();\n }\n\n return await response.json();\n }\n}","import {IAuthServiceV2} from \"@volkswagen-onehub/authservice\";\nimport {IdentityDataClient} from \"./IdentityDataClient\";\n\nexport class LoginRenewalService {\n private EXPIRATION_DELTA_MS = (5 * 60 - 10) * 1000;\n\n constructor(private readonly authServiceWeConnectFag: IAuthServiceV2, private readonly identityDataClient: IdentityDataClient) {\n }\n\n public async reloginIfNecessary(redirectUrl: string): Promise {\n if (await this.loginIsRequired()) {\n await this.relogin(redirectUrl);\n }\n }\n\n public async relogin(redirectUrl: string) {\n await this.authServiceWeConnectFag.login('login', redirectUrl);\n }\n\n public async loginIsRequired(): Promise {\n try {\n const currentTimestampMs = Date.now();\n const {lastAuthenticationDate} = await this.identityDataClient.getIdentityData();\n return currentTimestampMs >= lastAuthenticationDate + this.EXPIRATION_DELTA_MS;\n } catch (e) {\n return false; // has to be false to prevent endless loop\n }\n }\n}","export * from './IdentityDataClient'\nexport * from './LoginRenewalService'\nexport * from './userData/UserDataClient';\nexport * from './userData/UserDataService';\nexport * from './userData/helper-functions';","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { Role } from '../../enums';\n\nexport interface IUserData {\n readonly userId: string,\n readonly nickname?: string,\n readonly picture?: string,\n readonly name?: string,\n readonly role: Role\n}\n\nexport class UserDataClient {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, readonly stage: string, private readonly useNewUserDataService = false) {\n this.resourceHostId = useNewUserDataService ? `myvw-user-data-service-${stage}` : `myvw-idk-token-exchanger-${stage}`;\n }\n\n public async getUserData(vin: string, isWcar: boolean, pictures?: boolean, roles?: Role[]): Promise {\n let response;\n\n if (this.useNewUserDataService) {\n if (roles) {\n response = await this.authService.get(this.resourceHostId,\n `vehicles/${vin}/users?isWcar=${isWcar}&pictures=${pictures ?? false}&roles=${roles}`);\n } else {\n response = await this.authService.get(this.resourceHostId,\n `vehicles/${vin}/users?isWcar=${isWcar}&pictures=${pictures ?? false}`);\n }\n } else {\n response = await this.authService.get(this.resourceHostId, `user-data/${vin}?isWcar=${isWcar}`);\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IUserData[];\n\n }\n}","import { DevicePlatform, Role } from '../../enums';\nimport { IUserData, UserDataClient } from './UserDataClient';\nimport { IVumFlattenedVehicle } from '../../vum/VumFlattenedVehicleConverter';\n\ninterface IVehicle extends IVumFlattenedVehicle {\n readonly vin: string;\n readonly modelName?: string;\n readonly licensePlateNumber?: string;\n readonly exteriorColorText?: string;\n readonly engine?: string;\n readonly modelYear?: string;\n}\n\nexport class UserDataService {\n constructor(readonly userDataClient: UserDataClient) {\n }\n\n /**\n *\n * @param vin\n * @param isWcar\n * @param pictures set to true if you need the image of the profile picture for every user (default false)\n * @param roles set to list of roles if you need just this in the response (default all roles)\n */\n public async getUserData(vin: string, isWcar: boolean, pictures?: boolean, roles?: Role[]) {\n return await this.userDataClient.getUserData(vin, isWcar, pictures, roles);\n }\n\n // /**-\n // * @deprecated The method should not be used, see {@link getUserData} with role PRIMARY_USER and pictures true\n // */\n public async getPrimaryUser(vehicle: IVehicle): Promise {\n const allUsers = await this.userDataClient.getUserData(vehicle.vin, vehicle.devicePlatform === DevicePlatform.WCAR);\n const primaryUser = allUsers.find(user => user.role === \"PRIMARY_USER\");\n if (primaryUser) {\n return {\n userId: primaryUser.userId,\n nickname: primaryUser.nickname,\n picture: primaryUser.picture,\n name: primaryUser.name,\n role: Role.PRIMARY_USER\n } as IUserData\n }\n return undefined;\n }\n\n // /**\n // * @deprecated The method should not be used, see {@link getUserData} with pictures true\n // */\n public async getAllUsers(vehicle: IVehicle): Promise {\n const allUsers = await this.userDataClient.getUserData(vehicle.vin, vehicle.devicePlatform === DevicePlatform.WCAR);\n return allUsers.map(this.adjustUserRole).sort(this.sortByRoleAndUserId);\n }\n\n private adjustUserRole(userDataResponse: IUserData): IUserData {\n const role = Role[userDataResponse.role as keyof typeof Role] ?? Role.UNKNOWN\n return {\n name: userDataResponse.name,\n role,\n nickname: userDataResponse.nickname,\n picture: userDataResponse.picture,\n userId: userDataResponse.userId\n };\n }\n\n private sortByRoleAndUserId(user1: IUserData, user2: IUserData) {\n if (user1.role === Role.PRIMARY_USER || (user1.role === Role.SECONDARY_USER && user2.role === Role.GUEST_USER)) {\n return -1;\n }\n if (user2.role === Role.PRIMARY_USER || (user2.role === Role.SECONDARY_USER && user1.role === Role.GUEST_USER)) {\n return 1;\n }\n return user1.userId.localeCompare(user2.userId.toString());\n }\n}","import { Role } from '../../enums';\nimport { IUserData } from './UserDataClient';\n\nexport const getUserImage = (user: IUserData) => {\n if (user.picture) {\n return 'data:image;base64, ' + user.picture.toString();\n }\n return undefined;\n}\n\nexport const getUserRoleTranslationKey = (role: Role): string => {\n switch (role) {\n case Role.PRIMARY_USER:\n return 'weconnect.userlist.tile.overlay.table.mainUser';\n case Role.SECONDARY_USER:\n return 'weconnect.userlist.tile.overlay.table.secondaryUser';\n case Role.GUEST_USER:\n return 'weconnect.userlist.tile.overlay.table.guestUser';\n default:\n return '';\n }\n\n}","export * from './carNetShop';\nexport * from './consent/ConsentClient';\nexport * from './consent/ConsentConfigurationBuilder';\nexport * from './consent/ConsentService';\nexport * from './contractCenter/ContractCenterService';\nexport * from './contractCenter/types';\nexport * from './documentConsent/DocumentConsentClient';\nexport * from './documentConsent/DocumentConsentService';\nexport * from './enums';\nexport * from './errors/TimeoutError';\nexport * from './errors/UnknownSimStatusError';\nexport * from './errors/VcfUpdateCapabilityError';\nexport * from './gupis';\nexport * from './gvf';\nexport * from './idk';\nexport * from './mapPackages/MapPackagesService';\nexport * from './oilNorm/OilNormService';\nexport * from './permissionService/PermissionService';\nexport * from './profileService/ProfileServiceV2';\nexport * from './profileService/WeProfileFacade';\nexport * from './serviceConfig/ServiceConfigHelper';\nexport * from './spin';\nexport * from './trackingFacade/TrackingFacade';\nexport * from './user';\nexport * from './validation/VehicleIdentifierValidator';\nexport * from './vas/VasClient';\nexport * from './vcf';\nexport * from './vdbs/VdbsClient';\nexport * from './vdbs/VdbsService';\nexport * from './vehicleImage/VehicleImageClient';\nexport * from './vehicleImage/VehicleImageService';\nexport * from './vehicleImage/VehicleImageUrlBuilder';\nexport * from './vum/CommissionIdConverter';\nexport * from './vum/VumClient';\nexport * from './vum/VumFlattenedVehicleConverter';\nexport * from './vum/VumService';\nexport * from './vum/VumUserRoleClient';\nexport * from './vum/VumUserRoleService';\nexport * from './vum/errors/NotEnrolledVehicleError';\nexport * from './vum/errors/VumProfileBrokenError';\nexport * from './TTDSGConsent';","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport enum providers {\n HERE = 'here',\n TOMTOM = 'tomtom',\n GARMIN = 'garmin'\n}\n\nexport interface MapPackage {\n translationKey: string,\n link: string,\n sizeGB: number,\n updatedAt: string,\n provider: providers,\n isMapComplete: boolean,\n isSizeSensitive: boolean\n}\n\nexport interface MapPackagesData {\n MIB: string,\n manuals: { [id: string]: string },\n downloads: MapPackage[]\n}\n\nexport class MapPackagesService {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `cwat-vw-navigation-map-update-service-${stage}`;\n };\n\n public async getMapPackages(vin: string): Promise {\n const url = `packages/${vin}`;\n\n try {\n const response = await this.authService.get(this.resourceHostId, url);\n if (response.ok) {\n return await response.json();\n }\n } catch (error) {\n console.log(error);\n }\n\n return null;\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport type OilNormData = {\n vin: string;\n unit: string;\n fix: {\n amount: number;\n oilNorm: [string, string];\n };\n flexible: {\n amount: number;\n oilNorm: [string, string];\n };\n transactionId: string;\n dealerId: string | null;\n};\n\nexport class OilNormService {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `cwat-oil-norm-service-${stage}`;\n };\n\n public async getVehicleOilNorm(vin: string, language: string): Promise {\n const url = `api/oil-norm/${vin}?language=${language}`;\n\n const response = await this.authService.get(this.resourceHostId, url);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as OilNormData;\n }\n}","import { DevicePlatform, EnrollmentStatus, Role } from '../enums';\n\nexport interface IPermissionData {\n devicePlatform?: DevicePlatform;\n enrollmentStatus?: EnrollmentStatus;\n role?: Role;\n vin?: string;\n commissionNumber?: string;\n commissionNumberYear?: string;\n}\n\nexport enum PermissionGroup {\n PU_COMPLETED,\n PU_COMPLETED_MBB,\n PU,\n SU,\n GU,\n GU_WCAR,\n WCAR,\n MBB,\n VIN,\n COMMISSION\n}\n\nexport class PermissionService {\n\n public hasPermission(permissionData: IPermissionData, ...permissionGroups: PermissionGroup[]) {\n return permissionGroups.filter((group) => this.hasSinglePermission(group, permissionData)).length > 0;\n }\n\n private hasSinglePermission(permissionGroup: PermissionGroup, permissionData: IPermissionData): boolean {\n // @formatter:off\n switch (permissionGroup) {\n case PermissionGroup.PU_COMPLETED:\n return permissionData.role === Role.PRIMARY_USER && permissionData.enrollmentStatus === EnrollmentStatus.COMPLETED;\n case PermissionGroup.PU_COMPLETED_MBB:\n return this.hasAllPermissions(permissionData, PermissionGroup.PU_COMPLETED, PermissionGroup.MBB);\n case PermissionGroup.PU:\n return permissionData.role === Role.PRIMARY_USER;\n case PermissionGroup.SU:\n return permissionData.role === Role.SECONDARY_USER;\n case PermissionGroup.GU:\n return permissionData.role === Role.GUEST_USER;\n case PermissionGroup.GU_WCAR:\n return permissionData.role === Role.GUEST_USER && permissionData.devicePlatform === DevicePlatform.WCAR;\n case PermissionGroup.WCAR:\n return permissionData.devicePlatform === DevicePlatform.WCAR;\n case PermissionGroup.MBB:\n return permissionData.devicePlatform === DevicePlatform.MBB || permissionData.devicePlatform === DevicePlatform.MBB_ODP;\n case PermissionGroup.VIN:\n return !!permissionData.vin;\n case PermissionGroup.COMMISSION:\n return !!permissionData.commissionNumber && !!permissionData.commissionNumberYear;\n }\n return false;\n // @formatter:on\n }\n\n private hasAllPermissions(permissionData: IPermissionData, ...permissionGroups: PermissionGroup[]) {\n return permissionGroups.filter((group) => this.hasSinglePermission(group, permissionData)).length === permissionGroups.length;\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { IPersonalDataResponse, WeProfileFacade } from './WeProfileFacade';\n\nexport interface IProfileServiceV2 {\n isUserProfileComplete(): Promise;\n\n getUserProfile(): Promise;\n\n updateUserProfile(salutation: string, firstName: string, lastName: string): Promise;\n\n getMBBStatusData(): Promise;\n}\n\nexport interface IUserProfile {\n firstName?: string;\n lastName?: string;\n salutation?: string;\n dateOfBirth?: string;\n address?: {\n country?: string;\n city?: string;\n street?: string;\n housenumber?: string;\n zipCode?: string;\n primary?: boolean;\n };\n phoneNumber?: string;\n preferredLanguages?: string[];\n}\n\nexport interface IMBBStatusData {\n profileCompleted: boolean;\n spinDefined: boolean;\n carnetEnrollmentCountry: string;\n mbbUserId: string;\n}\n\nexport type User = {\n email: string;\n email_verified: boolean;\n family_name: string;\n given_name: string;\n name: string;\n picture: string;\n sub: string;\n updated_at: number;\n};\n\nexport class ProfileServiceV2Impl implements IProfileServiceV2 {\n private readonly weProfileFacade: WeProfileFacade;\n\n public constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.weProfileFacade = new WeProfileFacade(this.authService, stage);\n }\n\n public async isUserProfileComplete(): Promise {\n const userProfile: IUserProfile = await this.getUserProfile();\n return (\n userProfile !== undefined &&\n this.isNotBlank(userProfile.firstName) &&\n this.isNotBlank(userProfile.lastName) &&\n ['SALUTATION:MR', 'SALUTATION:MRS', 'SALUTATION:MS', undefined].some((s) => s === userProfile.salutation)\n );\n }\n\n public async getUserProfile(): Promise {\n const personalDataResponse = await this.weProfileFacade.get('personalData');\n return this.convertPersonalDataResponse(personalDataResponse);\n }\n\n public async getMBBStatusData(): Promise {\n return await this.weProfileFacade.get('mbbStatusData');\n }\n\n public async updateUserProfile(salutation: string, firstName: string, lastName: string): Promise {\n const patchOperations: any = [];\n if (salutation) {\n patchOperations.push({ op: 'replace', path: '/salutation', value: salutation });\n } else {\n patchOperations.push({ op: 'remove', path: '/salutation' });\n }\n patchOperations.push(\n { op: 'replace', path: '/firstName', value: firstName },\n { op: 'replace', path: '/lastName', value: lastName },\n );\n return this.weProfileFacade.patch('personalData', patchOperations);\n }\n\n\n\n private isNotBlank(value: string | undefined): boolean {\n return !!(value && value.trim());\n }\n\n private convertPersonalDataResponse(responseData: IPersonalDataResponse): IUserProfile {\n const { addresses, phoneNumbers, ...rest } = responseData;\n const primaryPhoneNumber = phoneNumbers && phoneNumbers.find((phoneNumber) => phoneNumber.primary === true);\n\n return {\n ...rest,\n address: addresses && addresses.find((address) => address.primary === true),\n phoneNumber: primaryPhoneNumber && primaryPhoneNumber.number,\n };\n }\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IPersonalDataResponse {\n firstName?: string\n lastName?: string\n dateOfBirth?: string\n addresses?: [{\n country?: string\n city?: string\n street?: string\n housenumber?: string\n zipCode?: string\n primary?: boolean\n }],\n phoneNumbers?: [{\n number?: string\n primary?: boolean\n }]\n}\n\nexport class WeProfileFacade {\n private etagVersions = new Map();\n\n private readonly resourceHostId: string;\n\n public constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `myvw-customer-profile-${stage}`;\n }\n\n public async get(weProfileFolder: string): Promise {\n const url = `v2/customers/__userId__/${weProfileFolder}`;\n const response = await this.authService.get(this.resourceHostId, url);\n const eTag = response.headers.get('etag');\n if (eTag) {\n this.etagVersions.set(weProfileFolder, eTag);\n }\n\n if (!response.ok) {\n if (response.status === 404) {\n this.etagVersions.set(weProfileFolder, '0');\n }\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n\n return await response.json();\n }\n\n public async patch(weProfileFolder: string, jsonPatch: any): Promise {\n const url = `v2/customers/__userId__/${weProfileFolder}`;\n const etag = this.etagVersions.get(weProfileFolder);\n if (etag) {\n const response = await this.authService.patch(this.resourceHostId, url, JSON.stringify(jsonPatch),\n {\n 'Content-Type': 'application/json-patch+json',\n 'If-Match': etag,\n });\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n const eTag = response.headers.get('etag');\n if (eTag) {\n this.etagVersions.set(weProfileFolder, eTag);\n }\n } else {\n throw Error('No etag version available');\n }\n }\n}\n","import {ServiceConfigurationV1} from \"@volkswagen-onehub/service-config-provider\";\n\nexport const getCustomConfig = (serviceConfig: ServiceConfigurationV1 | undefined): any => {\n if (serviceConfig && serviceConfig.customConfig) {\n return (serviceConfig.customConfig as any);\n } else {\n return {};\n }\n};\n\nexport const getUrlOrigin = (serviceConfig: ServiceConfigurationV1 | undefined): string => {\n return serviceConfig ? serviceConfig.urlOrigin : '';\n};\n\nexport const getFeatureToggle = (serviceConfig: ServiceConfigurationV1 | undefined, toggleName: string): boolean => {\n return !!getCustomConfig(serviceConfig)[toggleName];\n};\n\n","export enum SpinNotificationType {\n NONE = 'none',\n SUCCESS = 'usersettings.weconnect.spin.change.confirmation',\n SYSTEM_ERROR = 'usersettings.weconnect.spin.systemerror.feedback',\n CURRENT_MATCHES_NEW_SPIN_ERROR = 'usersettings.weconnect.spin.invalidpin.feedback',\n CURRENT_SPIN_INCORRECT_ERROR = 'usersettings.weconnect.spin.invalidcurrentpin.feedback',\n CONSECUTIVE_NUMBERS_ERROR = 'usersettings.weconnect.spin.consecutiveNumbers.feedback',\n EQUAL_NUMBERS_ERROR = 'usersettings.weconnect.spin.sameNumbers.feedback',\n MISMATCHING_SPIN_ERROR = 'usersettings.weconnect.spin.mismatch.feedback'\n}","import { LoggingFacade } from '@vwdfive/myvw-logging';\nimport { DevicePlatform } from '../enums';\nimport { TwoFactorManagementClient } from './TwoFactorManagementClient';\nimport { MissingScopeSpinError } from './errors/MissingScopeSpinError';\nimport { IWeConnectVehicle } from '../vcf';\n\nexport interface ISpinAvailability {\n readonly isAvailable: boolean;\n readonly spinChangeLockTime: number;\n readonly remainingTries: number;\n readonly hasMissingScopeError?: boolean;\n}\n\nexport class SpinService {\n constructor(\n private readonly twoFactorManagementClient: TwoFactorManagementClient,\n private readonly loggingFacade: LoggingFacade,\n ) {\n }\n\n public async getSpinAvailability(enrolledVehicles: IWeConnectVehicle[]): Promise {\n try {\n const spinStateResponse = await this.twoFactorManagementClient.getSpinState(\n this.isFirstVehicleWCar(enrolledVehicles)\n );\n return {\n isAvailable: spinStateResponse.spinState === 'DEFINED' || spinStateResponse.spinState === 'LOCKED',\n spinChangeLockTime: spinStateResponse.spinLockedWaitingTime ?? 0,\n remainingTries: spinStateResponse.remainingTries ?? 0,\n };\n } catch (e: any) {\n this.loggingFacade.error('Could not get spin availability', e);\n const hasMissingScopeError = e instanceof MissingScopeSpinError;\n return { isAvailable: false, spinChangeLockTime: 0, remainingTries: 0, hasMissingScopeError };\n }\n }\n\n public async changeSpin(currentSpin: string, newSpin: string, enrolledVehicles: IWeConnectVehicle[]): Promise {\n await this.twoFactorManagementClient.changeSpin(currentSpin, newSpin, this.isFirstVehicleWCar(enrolledVehicles));\n }\n\n public async resetSpin(newSpin: string, enrolledVehicles: IWeConnectVehicle[]): Promise {\n await this.twoFactorManagementClient.resetSpin(newSpin, this.isFirstVehicleWCar(enrolledVehicles));\n }\n\n public async verifySpin(currentSpin: string, enrolledVehicles: IWeConnectVehicle[]): Promise {\n return await this.twoFactorManagementClient.verifySpin(currentSpin, this.isFirstVehicleWCar(enrolledVehicles));\n }\n\n private isFirstVehicleWCar = (enrolledVehicles: IWeConnectVehicle[]): boolean =>\n enrolledVehicles[0]?.devicePlatform === DevicePlatform.WCAR;\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { InvalidSpinError } from './errors/InvalidSpinError';\nimport { MissingScopeSpinError } from './errors/MissingScopeSpinError';\n\nexport interface ISpinStateResponse {\n readonly spinState: string;\n readonly spinLockedWaitingTime: number;\n readonly remainingTries: number;\n}\n\nexport interface ISpinChangeBody {\n readonly existingSPin: string;\n readonly newSPin: string;\n}\n\nexport interface ISpinBody {\n readonly spin: string;\n}\n\nexport interface ISpinResetBody {\n readonly newSPin: string;\n}\n\nexport class TwoFactorManagementClient {\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-2fm-${stage}`;\n }\n\n public async getSpinState(isWcar: boolean): Promise {\n const response = await this.authService.get(this.resourceHostId,\n `v2/spin/state/user/__userId__?gdc=${this.getGdcType(isWcar)}`);\n const spinResponse = await response.json();\n\n if (response.status === 403 && spinResponse.type === '/errors/403-3') {\n throw new MissingScopeSpinError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return spinResponse;\n\n }\n\n public async changeSpin(currentSpin: string, newSpin: string, isWcar: boolean): Promise {\n const spinChangeBody: ISpinChangeBody = {\n existingSPin: currentSpin,\n newSPin: newSpin,\n };\n const response = await this.authService.patch(this.resourceHostId,\n `v2/spin/user/__userId__?gdc=${this.getGdcType(isWcar)}`, JSON.stringify(spinChangeBody),\n { 'Content-Type': 'application/json' });\n\n if (response.status === 403) {\n throw new InvalidSpinError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n }\n\n public async resetSpin(newSpin: string, isWcar: boolean): Promise {\n const spinResetBody: ISpinResetBody = { newSPin: newSpin };\n\n const response = await this.authService.put(this.resourceHostId,\n `v2/spin/user/__userId__?gdc=${this.getGdcType(isWcar)}`, JSON.stringify(spinResetBody),\n { 'Content-Type': 'application/json' });\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n }\n\n public async verifySpin(currentSpin: string, isWcar: boolean): Promise {\n const verifySpinBody: ISpinBody = {\n spin: currentSpin,\n };\n const response = await this.authService.post(this.resourceHostId,\n `v2/spin/verify/user/__userId__?gdc=${this.getGdcType(isWcar)}`, JSON.stringify(verifySpinBody),\n { 'Content-Type': 'application/json' });\n const spinResponse = await response.json();\n\n if (response.status === 403 && spinResponse.type === '/errors/403-4') {\n throw new InvalidSpinError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return spinResponse.value;\n\n }\n}\n","export class InvalidSpinError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'Invalid SPIN';\n }\n super(m);\n }\n}","export class MissingScopeSpinError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'Missing scope in access token for SPIN';\n }\n super(m);\n }\n}","export * from './SpinNotificationType';\nexport * from './SpinService';\nexport * from './TwoFactorManagementClient';\nexport * from './errors/MissingScopeSpinError';\nexport * from './errors/InvalidSpinError';","import {IAuthServiceV2} from \"@volkswagen-onehub/authservice\";\nimport {LocaleServiceV1} from \"@volkswagen-onehub/locale-service\";\nimport {LoggingFacade} from \"@vwdfive/myvw-logging\";\nimport {TrackingManagerV1} from \"@volkswagen-onehub/tracking-service\";\n\nexport interface ITrackingEvent {\n readonly action: TrackingEventAction;\n readonly contentId: string;\n readonly pageName: string;\n readonly sectionName?: string;\n readonly error?: { code: string, message: string }\n}\n\nexport enum TrackingEventAction {\n VWBasic_Layer_Load,\n VWBasic_Button_Click,\n VWBasic_Screen_Load,\n VWBasic_ErrorMessage_Load,\n VWBasic_Link_Click,\n VWBasic_BackendCall_Result,\n VWBasic_Download_Click,\n}\n\nexport class TrackingFacade {\n private applicationId = 'VWLocalMyVolkswagenD6';\n\n constructor(\n private localeService: LocaleServiceV1,\n private trackingService: TrackingManagerV1,\n private loggingFacade: LoggingFacade,\n private authService?: IAuthServiceV2\n ) {\n }\n\n public async pushEvent(trackingEvent: ITrackingEvent): Promise {\n try {\n const trackingData = await this.createTrackingData(trackingEvent);\n this.trackingService.track(TrackingEventAction[trackingEvent.action], trackingData);\n } catch (e: any) {\n this.loggingFacade.error('TrackingFacade - pushing event failed.', e);\n }\n }\n\n private async createTrackingData(trackingEvent: ITrackingEvent) {\n const isAuthenticated = this.authService ? await this.authService.isAuthenticated() : false;\n const trackingData: any = {\n eventInfo: {\n contentId: trackingEvent.contentId,\n pageName: trackingEvent.pageName,\n sectionName: trackingEvent.sectionName\n },\n environment: {\n applicationId: this.applicationId,\n language: this.localeService.language,\n country: this.localeService.countryCode\n },\n user: {\n loginStatus: isAuthenticated\n }\n };\n if ([TrackingEventAction.VWBasic_Button_Click, TrackingEventAction.VWBasic_Link_Click,\n TrackingEventAction.VWBasic_Download_Click].includes(trackingEvent.action)) {\n trackingData.link = {name: trackingEvent.contentId, url: this.getPageId()};\n }\n if (trackingEvent.action === TrackingEventAction.VWBasic_ErrorMessage_Load) {\n trackingData.error = {...trackingEvent.error, referringUrl: window.location.href}\n }\n return trackingData;\n }\n\n // Implementation is taken from: https://github.com/volkswagen-onehub/tracking-service/blob/master/src/v1/index.ts\n private getPageId(): string {\n return `${window.location.host}${window.location.pathname}`;\n }\n}\n","import { User } from '../profileService/ProfileServiceV2';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport class UserClient {\n\n constructor(private readonly authService: IAuthServiceV2) {\n };\n\n public async getCurrentUser(): Promise {\n const response = await this.authService.get('', '../user');\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as User;\n }\n\n}\n","import { UserClient } from './UserClient';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport class UserService {\n\n private readonly userClient: UserClient;\n\n public constructor(private readonly authService: IAuthServiceV2) {\n this.userClient = new UserClient(this.authService);\n }\n\n public async getCurrentUserEmail(): Promise {\n const userData = await this.userClient.getCurrentUser();\n return userData.email ? userData.email : '';\n }\n\n public async getCurrentUserId(): Promise {\n const userData = await this.userClient.getCurrentUser();\n return userData.sub ? userData.sub : '';\n }\n\n}\n","export * from './UserClient';\nexport * from './UserService';\n","export class VehicleIdentifierValidator {\n private static REGEX_VIN = /^[A-HJ-NPR-Z\\d]{13}\\d{4}$/;\n private static REGEX_COMMISSION_NUMBER_WITH_YEAR = /^\\d{4}[A-Z0-9]{6}$/;\n private static REGEX_COMMISSION_NUMBER = /^[A-Z\\d]{6}$/;\n private static COMMERCIAL_VEHICLES_WMI = ['WV1', 'WV2', 'WV3', 'WV4'];\n\n public static isValid(vehicleId: string): boolean {\n return VehicleIdentifierValidator.isValidVin(vehicleId)\n || VehicleIdentifierValidator.isValidCommissionNumber(vehicleId)\n || VehicleIdentifierValidator.isValidCommissionNumberWithYear(vehicleId)\n || VehicleIdentifierValidator.isValidInventoryNumber(vehicleId);\n }\n\n public static isValidVin(vehicleId: string | undefined): boolean {\n return !!vehicleId && VehicleIdentifierValidator.REGEX_VIN.test(vehicleId);\n }\n\n public static isValidCommissionNumber(vehicleId: string): boolean {\n return VehicleIdentifierValidator.REGEX_COMMISSION_NUMBER.test(vehicleId);\n }\n\n public static isValidCommissionNumberWithYear(vehicleId: string): boolean {\n return VehicleIdentifierValidator.REGEX_COMMISSION_NUMBER_WITH_YEAR.test(vehicleId);\n }\n\n public static isValidInventoryNumber(vehicleId: string): boolean {\n return VehicleIdentifierValidator.isValidCommissionNumber(vehicleId.slice(1));\n }\n\n public static isCommercialVehicleVin(vehicleId: string | undefined): boolean {\n return VehicleIdentifierValidator.isValidVin(vehicleId)\n && VehicleIdentifierValidator.COMMERCIAL_VEHICLES_WMI.includes(vehicleId!.slice(0, 3));\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { UnknownSimStatusError } from '../errors/UnknownSimStatusError';\nimport { LoggingFacade } from '@vwdfive/myvw-logging';\n\nexport interface UserStatus {\n guestUserEnrollment: {\n status: string;\n vehicleCapabilities: string;\n vehicleCapabilitiesStatus: boolean;\n };\n profileEnrichment: {\n personalDataCompleted: boolean;\n spinCompleted: boolean;\n status: string;\n termsAndConditionsAccepted: boolean;\n };\n userIdentification: {\n status: string;\n };\n vehiclesEnrollments: [\n {\n HasPrimaryUser: boolean;\n enrollmentStatus: string;\n isHg3CapabilitiesAvailable: boolean;\n isSpinResetFlow: boolean;\n status: string;\n vehicleCapabilities: string;\n vehicleCapabilitiesStatus: boolean;\n verificationMode: string;\n vin: string;\n },\n ];\n}\n\nexport type UserIdentStatus = Pick;\n\ninterface IPostData {\n success: string;\n vin: string;\n requestedSteps: string;\n cancelUrl?: string;\n}\n\nexport class VasClient {\n private readonly resourceHostId = `myvw-vas-${this.stage}`;\n\n constructor(\n private readonly authServiceV2: IAuthServiceV2,\n private readonly loggingFacade: LoggingFacade,\n private readonly stage: string,\n ) {}\n\n public async getEnrollmentUrl(\n vin: string,\n successUrl: string,\n requestedSteps?: string,\n cancelUrl?: string,\n ): Promise {\n return this.getUrlFor(vin, successUrl, requestedSteps || 'VW_PE_VE_1', cancelUrl);\n }\n\n public async getProfileEnrichmentUrl(vin: string, successUrl: string, requestedSteps?: string): Promise {\n return this.getUrlFor(vin, successUrl, requestedSteps || 'VW_PE_1');\n }\n\n private async getUrlFor(\n vin: string,\n successUrl: string,\n requestedSteps: string,\n cancelUrl?: string,\n ): Promise {\n const query = `auth/users/__userId__/session`;\n const postDataObj: IPostData = {\n success: successUrl,\n vin,\n requestedSteps,\n cancelUrl: cancelUrl || undefined,\n };\n const postData = JSON.stringify(postDataObj);\n\n try {\n const response = await this.authServiceV2.post(this.resourceHostId, query, postData,\n {'Content-Type': 'application/json'});\n if (response.headers.has('Location')) {\n return response.headers.get('Location') as string;\n }\n // TODO: Clean this code smell\n throw new Error('There is not Location in the VAS headers response');\n\n } catch (error: any) {\n throw this.handleError(error);\n }\n }\n\n public async getUserStatus(vin: string): Promise {\n const query = `auth/v2/users/__userId__/status?vin=${vin}&requestedSteps=VW_Dynamic_1`;\n\n try {\n const response = await this.authServiceV2.get(this.resourceHostId, query);\n\n return await response.json() as UserStatus;\n } catch (error: any) {\n throw this.handleError(error);\n }\n }\n\n public async getUserIdentStatus(vin: string): Promise {\n const query = `auth/v2/users/__userId__/status/ident?vin=${vin}`;\n\n try {\n const response = await this.authServiceV2.get(this.resourceHostId, query);\n return await response.json() as UserIdentStatus;\n } catch (error: any) {\n throw this.handleError(error);\n }\n }\n\n private handleError(error: any) {\n const errorCode = error.errorDetail?.errorCode;\n\n if (error.status === 400 && errorCode === '1009') {\n error = new UnknownSimStatusError();\n }\n\n const errorMessage = errorCode\n ? `VAS call failed with error code ${errorCode}`\n : 'VAS call failed. No error code provided.';\n this.loggingFacade.error(errorMessage, error);\n \n return error;\n }\n}\n","import {IVcfTransactionHistoryMessage, VcfTransactionHistoryClient} from \"./VcfTransactionHistoryClient\";\nimport { DevicePlatform } from '../enums';\n\nexport enum MessageCategory {\n REMOTELOCKUNLOCK = 1,\n ANTITHEFTALARM,\n HONKFLASH,\n GEOFENCE,\n SPEEDALERT,\n DIGITALKEY,\n UNKNOWN\n}\n\nexport enum MessageAction {\n LOCK,\n UNLOCK,\n ALARM_INTERIOR,\n ALARM_EXTERIOR,\n ALARM_MOVEMENT,\n ALARM_TRAILER,\n ALARM_UNKNOWN,\n HONK,\n FLASH,\n HONKFLASH,\n EXIT_GREENZONE,\n ENTER_REDZONE,\n START_EXCEEDING,\n MK_INSTALLED,\n PERMISSION_DECLINED,\n PERMISSION_GRANTED,\n PERMISSION_VTAN_REJECTED,\n PERMISSION_REVOKED_VERWALTER,\n PERMISSION_AND_MK_REVOKED_VERWALTER,\n PERMISSION_RETURNED,\n MK_RETURNED,\n PERMISSION_EXPIRED,\n PERMISSION_AND_MK_EXPIRED,\n MK_REMOVAL_SUCCEEDED_VERWALTER,\n MK_REMOVAL_FAILED_VERWALTER,\n MK_EXTENDED,\n UNKNOWN\n}\n\nexport interface IMessage {\n readonly category: MessageCategory;\n readonly timestamp?: string;\n readonly action: MessageAction;\n readonly actionSuccess?: boolean;\n readonly alertName?: string;\n readonly keyName?: string;\n readonly keyUserName?: string;\n}\n\nexport class VcfMessageService {\n constructor(private readonly vcfTransactionHistoryClient: VcfTransactionHistoryClient) {\n }\n\n public async getMessages(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const transactionHistoryResponse = await this.vcfTransactionHistoryClient.getTransactionHistory(vin, isWcar);\n return this.filterAndTransformAndSort(transactionHistoryResponse.data?.messages ?? []);\n }\n\n public async deleteMessage(vin: string, devicePlatform: DevicePlatform, category: MessageCategory): Promise {\n const validCategories = [MessageCategory.ANTITHEFTALARM, MessageCategory.GEOFENCE, MessageCategory.SPEEDALERT];\n if (validCategories.includes(category)) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n return this.vcfTransactionHistoryClient.deleteTransactionHistory(vin, isWcar, MessageCategory[category]!.toLowerCase());\n }\n }\n\n private filterAndTransformAndSort(messages: IVcfTransactionHistoryMessage[]): IMessage[] {\n return messages.map(this.transformVcfTransactionHistoryMessageToMessage)\n .filter((entry) => entry.action !== MessageAction.UNKNOWN)\n .sort(this.sortMessagesByTimestamp);\n }\n\n private sortMessagesByTimestamp(message1: IMessage, message2: IMessage) {\n const firstDate = message1.timestamp ? new Date(message1.timestamp) : new Date();\n const secondDate = message2.timestamp ? new Date(message2.timestamp) : new Date();\n return secondDate.getTime() - firstDate.getTime();\n }\n\n private transformVcfTransactionHistoryMessageToMessage(message: IVcfTransactionHistoryMessage): IMessage {\n return {\n category: (MessageCategory as any)[message.category?.toUpperCase() ?? ''] ?? MessageCategory.UNKNOWN,\n timestamp: message.timestamp,\n action: (MessageAction as any)[message.action?.toUpperCase() ?? ''] ?? MessageAction.UNKNOWN,\n actionSuccess: message.actionSuccess,\n alertName: message.alertName,\n keyName: message.keyName,\n keyUserName: message.keyUserName\n };\n }\n}","import { IAuthServiceV2 } from \"@volkswagen-onehub/authservice\";\nimport { NoSubscriptionSettingsFoundError } from \"./errors/NoSubscriptionSettingsFoundError\";\n\nexport interface IVcfSubscriptionsSettingsTopic {\n readonly id: string,\n readonly eMail?: boolean,\n readonly push?: boolean,\n}\n\nexport interface IVcfSubscriptionsSettingsResponse {\n readonly data?: {\n readonly topics?: IVcfSubscriptionsSettingsTopic[];\n };\n}\n\nexport class VcfSubscriptionsSettingsClient {\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n }\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Notifications/operation/getSubscriptionsSettings\n public async getSubscriptionsSettings(vin: string, isWcar: boolean): Promise {\n const response = await this.authService.get(this.resourceHostId,\n `vehicles/${vin}/subscriptions/settings?gdc=${this.getGdcType(isWcar)}`, this.headers);\n\n if (response.status === 404) {\n throw new NoSubscriptionSettingsFoundError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfSubscriptionsSettingsResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Notifications/operation/putSubscriptionsSettings\n public async saveSubscriptionsSettings(vin: string, isWcar: boolean, settings: IVcfSubscriptionsSettingsTopic[]): Promise {\n const payload = {topics: settings};\n\n const response = await this.authService.put(this.resourceHostId,\n `vehicles/${vin}/subscriptions/settings?gdc=${this.getGdcType(isWcar)}`, JSON.stringify(payload), this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n }\n}","import { LoggingFacade } from '@vwdfive/myvw-logging';\nimport { DevicePlatform, Role } from '../enums';\nimport { IVumFlattenedVehicle } from '../vum/VumFlattenedVehicleConverter';\nimport { IVcfSubscriptionsSettingsTopic, VcfSubscriptionsSettingsClient } from './VcfSubscriptionsSettingsClient';\nimport { NoSubscriptionSettingsFoundError } from './errors/NoSubscriptionSettingsFoundError';\n\nexport interface ITheftAlarmVehicle extends IWeConnectVehicle {\n email: boolean;\n push: boolean;\n requestFailed?: boolean;\n}\n\nexport interface IWeConnectVehicle extends IVumFlattenedVehicle {\n readonly vin: string;\n}\n\nexport class VcfSubscriptionsSettingsService {\n constructor(private readonly vcfSubscriptionsSettingsClient: VcfSubscriptionsSettingsClient, private loggingFacade: LoggingFacade) {\n }\n\n public async retainTheftAlarmCapableVehicles(vehicles: IWeConnectVehicle[]): Promise {\n const filterUndefinedVehicles = (vehicle: ITheftAlarmVehicle | undefined) => vehicle !== undefined;\n const sortRequestSuccessVehiclesFirst = (vehicle?: ITheftAlarmVehicle) => vehicle?.requestFailed ?? false ? 1 : -1;\n const sortPrimaryVehicleFirst = (vehicle?: ITheftAlarmVehicle) => vehicle?.primaryCar && !!vehicle?.requestFailed ? -1 : 1;\n\n const vehiclesWithoutGuestUsers = vehicles.filter(vehicle => vehicle.role !== Role.GUEST_USER);\n const theftAlarmVehicles = await Promise.all(vehiclesWithoutGuestUsers.map((vehicle) => this.getTheftAlarmSettings(vehicle)));\n\n return theftAlarmVehicles\n .filter(filterUndefinedVehicles)\n .sort(sortPrimaryVehicleFirst)\n .sort(sortRequestSuccessVehiclesFirst) as ITheftAlarmVehicle[];\n }\n\n public async saveTheftAlarmSettings(vehicle: ITheftAlarmVehicle): Promise {\n const isWcar = vehicle.devicePlatform === DevicePlatform.WCAR;\n const settings: IVcfSubscriptionsSettingsTopic[] = [{id: 'theftalarm', eMail: vehicle.email, push: vehicle.push}];\n await this.vcfSubscriptionsSettingsClient.saveSubscriptionsSettings(vehicle.vin, isWcar, settings);\n }\n\n private async getTheftAlarmSettings(vehicle: IWeConnectVehicle): Promise {\n const isWcar = vehicle.devicePlatform === DevicePlatform.WCAR;\n try {\n const settings = await this.vcfSubscriptionsSettingsClient.getSubscriptionsSettings(vehicle.vin, isWcar);\n const settingsWithTheftAlarmTopic = settings?.data?.topics?.find(topic => topic.id === 'theftalarm');\n if (settingsWithTheftAlarmTopic !== undefined) {\n return {\n ...vehicle,\n email: settingsWithTheftAlarmTopic.eMail ?? false,\n push: settingsWithTheftAlarmTopic.push ?? false\n };\n }\n } catch (e: any) {\n if (!(e instanceof NoSubscriptionSettingsFoundError)) {\n this.loggingFacade.error(`Error fetching subscriptions settings for vin: ${vehicle.vin}`, e);\n return {\n ...vehicle,\n email: false,\n push: false,\n requestFailed: true\n };\n }\n }\n return undefined;\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { NoMessagesFoundError } from './errors/NoMessagesFoundError';\n\nexport interface IVcfTransactionHistoryMessage {\n readonly category?: string;\n readonly timestamp?: string;\n readonly action?: string;\n readonly actionSuccess?: boolean;\n readonly alertName?: string;\n readonly keyName?: string;\n readonly keyUserName?: string;\n}\n\nexport interface IVcfTransactionHistoryResponse {\n readonly data?: {\n readonly messages?: IVcfTransactionHistoryMessage[];\n };\n}\n\n// https://cardata.apps.emea.vwapps.io/documentation#tag/Transaction-History\nexport class VcfTransactionHistoryClient {\n \n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authServiceWeConnect: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Transaction-History/operation/transactionHistory\n public async getTransactionHistory(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/transactionhistory?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authServiceWeConnect.get(this.resourceHostId, url,\n { 'User-Id': '__userId__' });\n\n if (response.status === 404) {\n throw new NoMessagesFoundError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfTransactionHistoryResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Transaction-History\n public async deleteTransactionHistory(vin: string, isWcar: boolean, transactionCategory: string): Promise {\n const url = `vehicles/${vin}/transactionhistory/${transactionCategory}?gdc=${this.getGdcType(isWcar)}`;\n let response;\n\n try {\n response = await this.authServiceWeConnect.delete(this.resourceHostId, url, undefined, { 'User-Id': '__userId__' });\n } catch (e) {\n throw e;\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n}","import { IVcfUpdateStatusResponse } from './VcfCapabilityClient';\n\n\nexport function evaluate(resultToEvaluate: IVcfUpdateStatusResponse | undefined): boolean {\n const status = resultToEvaluate?.data?.status;\n return status === 'successful' || status === 'fail';\n}","export async function poll(functionToCall: () => Promise, evaluationFunction: (result: TResult) => boolean, retryIntervalMs: number = 100, timeoutInMs: number = 250): Promise {\n let result: TResult;\n\n const throwTimeout = new Promise((resolve) => {\n setTimeout(() => {\n resolve(result);\n }, timeoutInMs);\n });\n const getResult = new Promise(async (resolve) => {\n result = await functionToCall();\n while (!evaluationFunction(result)) {\n result = await new Promise((resolveRetry) => {\n setTimeout(() => {\n resolveRetry(functionToCall())\n }, retryIntervalMs)\n });\n }\n return resolve(result);\n });\n return Promise.race([throwTimeout, getResult]);\n}","import { LoggingFacade } from '@vwdfive/myvw-logging';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IVcfCapabilityResponse {\n readonly data?: IVcfCapability[];\n}\n\nexport interface IVcfCapability {\n readonly id: string;\n readonly status: number[];\n readonly expirationDate?: string | null;\n readonly userDisablingAllowed?: boolean;\n}\n\nexport interface IVcfRequestIdResponse {\n readonly data?: {\n readonly requestID: string;\n };\n}\n\nexport interface IVcfUpdateStatusResponse {\n readonly data?: {\n readonly status: string;\n };\n}\n\nexport interface IVcfCapabilityPostRequestV1\n extends Array<{\n readonly id: string;\n readonly enabled: boolean;\n }> {}\n\nexport interface IVcfCapabilityPostRequestV2 {\n readonly capabilities: [\n {\n readonly id: string;\n readonly enabled: boolean;\n },\n ];\n}\n\nenum ApplicationVersion {\n V1 = 1,\n V2 = 2,\n V3 = 3,\n}\n\n// https://cardata.apps.emea.vwapps.io/documentation#tag/Capabilities\nexport class VcfCapabilityClient {\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n };\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => (isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`);\n\n constructor(\n private readonly authServiceWeConnect: IAuthServiceV2,\n private readonly loggingFacade: LoggingFacade,\n private readonly stage: string,\n ) {\n this.resourceHostId = `myvw-vcf-${stage}`;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Capabilities/operation/getUserCapabilities\n public async getUserVehicleCapabilities(vin: string, isWcar: boolean): Promise {\n const headers = {\n ...this.headers,\n Accept: `application/json;version=${ApplicationVersion.V3}`,\n data: JSON.stringify({}),\n 'Content-Type': `application/json;version=${ApplicationVersion.V3}`,\n };\n const url = `vehicles/${vin}/usercapabilities?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authServiceWeConnect.get(this.resourceHostId, url, headers);\n\n if (response.status === 404) {\n return {};\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json();\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Capabilities/operation/postUserCapabilities\n public async setUserVehicleCapabilityEnabled(\n vin: string,\n isWcar: boolean,\n capabilityId: string,\n enabled: boolean,\n ): Promise {\n const headers = {\n ...this.headers,\n Accept: `application/json;version=${ApplicationVersion.V2}`,\n 'Content-Type': `application/json;version=${ApplicationVersion.V2}`,\n };\n const url = `vehicles/${vin}/usercapabilities?gdc=${this.getGdcType(isWcar)}`;\n const data: IVcfCapabilityPostRequestV2 = {\n capabilities: [\n {\n id: capabilityId,\n enabled: enabled,\n },\n ],\n };\n const response = await this.authServiceWeConnect.post(this.resourceHostId, url, JSON.stringify(data), headers);\n\n if (!response.ok) {\n this.loggingFacade.error(\n 'Could not set user vehicle capability enabled',\n new Error(`Request failed with status code ${response.status}`),\n );\n return undefined;\n }\n\n return await response.json();\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Capabilities/operation/getSetUsercapabilitiesRequestStatus\n public async getCapabilityUpdateStatus(\n vin: string,\n isWcar: boolean,\n requestId: string,\n ): Promise {\n const url = `vehicles/${vin}/usercapabilities/requests/${requestId}?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authServiceWeConnect.get(this.resourceHostId, url, this.headers);\n\n if (!response || !response.ok) {\n this.loggingFacade.error('Could not get capability update status', new Error());\n return undefined;\n }\n\n return await response.json();\n }\n}\n","import { LoggingFacade } from '@vwdfive/myvw-logging';\n\nimport { DevicePlatform } from '../../enums';\nimport { TimeoutError } from '../../errors/TimeoutError';\nimport { VcfUpdateCapabilityError } from '../../errors/VcfUpdateCapabilityError';\n\nimport { evaluate } from './CapabilityUpdateStatusEvaluator';\nimport { poll } from './PollingWrapper';\nimport { IVcfCapability, IVcfUpdateStatusResponse, VcfCapabilityClient } from './VcfCapabilityClient';\n\nexport class VcfCapabilityService {\n constructor(private readonly vcfCapabilityClient: VcfCapabilityClient, private readonly loggingFacade: LoggingFacade) {\n }\n\n public async getUserVehicleCapabilities(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWCar = devicePlatform === DevicePlatform.WCAR;\n const vcfResponse = await this.vcfCapabilityClient.getUserVehicleCapabilities(vin, isWCar);\n return vcfResponse.data ?? [];\n }\n\n public isCapabilityEnabled(id: string, capabilities: IVcfCapability[]): boolean {\n return capabilities?.some(capability => capability.id === id && capability.status.length === 0);\n }\n\n public isAtLeastOneCapabilityEnabled(ids: string[], capabilities: IVcfCapability[]): boolean {\n return capabilities?.some(capability => (ids.includes(capability.id)\n && capability.status.length === 0));\n }\n\n public isCapabilityDisabledByUser(id: string, capabilities: IVcfCapability[]): boolean {\n const foundCapability = capabilities?.find(capability => capability.id === id);\n if (!foundCapability) {\n return false;\n }\n const allowedStatusCodes = [1004, 1005, 1014, 3005];\n const statusCodes = foundCapability.status;\n if (statusCodes.filter(code => !allowedStatusCodes.includes(code)).length !== 0) {\n return false;\n }\n return (statusCodes.includes(1004) || statusCodes.includes(1005));\n }\n\n public async updateUserVehicleCapability(vin: string, devicePlatform: DevicePlatform, capabilityId: string, active: boolean): Promise {\n const isWCar = devicePlatform === DevicePlatform.WCAR;\n const requestIdResponse = await this.vcfCapabilityClient.setUserVehicleCapabilityEnabled(vin, isWCar, capabilityId, active);\n if (!(requestIdResponse?.data?.requestID)) {\n this.loggingFacade.error('Could not get requestId to update user vehicle capability');\n throw new VcfUpdateCapabilityError();\n }\n\n const updateStatus = await poll(\n () => this.vcfCapabilityClient.getCapabilityUpdateStatus(vin, isWCar, requestIdResponse.data!.requestID),\n evaluate, 1000, 60000);\n this.checkUpdateStatus(updateStatus);\n\n const capabilities = await this.vcfCapabilityClient.getUserVehicleCapabilities(vin, isWCar);\n if (!(capabilities.data && capabilities.data.length > 0)) {\n this.loggingFacade.error('Could not reload user vehicle capabilities after update');\n throw new VcfUpdateCapabilityError();\n }\n\n return capabilities.data\n }\n\n private checkUpdateStatus(updateStatus: IVcfUpdateStatusResponse | undefined) {\n if (!(updateStatus?.data) || updateStatus.data.status === 'pending') {\n this.loggingFacade.error('Could not update user vehicle capability (timeout)');\n throw new TimeoutError();\n }\n if (updateStatus.data.status === 'fail') {\n this.loggingFacade.error('Could not update user vehicle capability (status: fail)');\n throw new VcfUpdateCapabilityError();\n }\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { Role } from '../../enums';\n\nexport interface IVcfTrustedDevice {\n readonly primaryUserID?: string;\n readonly teeId?: string;\n readonly imei?: string;\n readonly status?: string;\n}\n\nexport interface IMobileKeyServiceStatus {\n userRole?: Role;\n keyVoucherFreeCount?: number;\n}\n\nexport interface IVcfMobileKeysStatusResponse {\n readonly data?: {\n readonly serviceStatus?: IMobileKeyServiceStatus;\n readonly trusteddevice?: IVcfTrustedDevice[];\n };\n}\n\nexport interface IVcfPermission {\n readonly permissionId?: string;\n readonly frontendAlias?: string;\n readonly mkUserUserName?: string;\n readonly mkAdministratorUserName?: string;\n readonly expirationTimestamp?: string;\n readonly state?: string | null;\n readonly installationState?: string | null;\n readonly removalState?: string | null;\n}\n\nexport interface IVcfMobileKeysListResponse {\n readonly data?: {\n readonly permissionList?: IVcfPermission[];\n };\n}\n\n// https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys\nexport class VcfDigitalKeyClient {\n\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n };\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`\n };\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys/operation/getMobileKeysStatus\n public async getMobileKeysStatus(vin: string, isWcar: boolean): Promise {\n const response = await this.authService.get(this.resourceHostId,\n `vehicles/${vin}/mobilekeys/status?gdc=${this.getGdcType(isWcar)}`, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfMobileKeysStatusResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys/operation/getMobileKeysList\n public async getMobileKeysList(vin: string, isWcar: boolean): Promise {\n const response = await this.authService.get(this.resourceHostId,\n `vehicles/${vin}/mobilekeys/keys?gdc=${this.getGdcType(isWcar)}`, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfMobileKeysListResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys/operation/deleteTrustedDevice\n public async deleteTrustedDevice(teeId: string, vin: string, isWcar: boolean): Promise {\n const response = await this.authService.delete(this.resourceHostId,\n `vehicles/${vin}/trusteddevices/${teeId}?gdc=${this.getGdcType(isWcar)}`, undefined, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys/operation/deleteMobileKeyPermission\n public async deleteMobileKeyPermission(id: string, vin: string, isWcar: boolean): Promise {\n const response = await this.authService.delete(this.resourceHostId,\n `vehicles/${vin}/permissions/${id}?gdc=${this.getGdcType(isWcar)}`, undefined, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Mobile-Keys/operation/putMobileKeyPermission\n public async putMobileKeyPermission(id: string, frontendAlias: string, vin: string, isWcar: boolean): Promise {\n const response = await this.authService.put(this.resourceHostId,\n `vehicles/${vin}/permissions/${id}?gdc=${this.getGdcType(isWcar)}`, JSON.stringify({ frontendAlias }), this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n}","import { DevicePlatform, Role } from '../../enums';\nimport { IVcfPermission, IVcfTrustedDevice, VcfDigitalKeyClient } from './VcfDigitalKeyClient';\n\nexport enum DigitalKeyState {\n ENDED,\n UNKNOWN,\n CONFIRMED,\n ACCEPTED,\n USED\n}\n\nexport enum DigitalKeyRemovalState {\n INREMOVAL,\n REMOVALFAILED,\n UNKNOWN\n}\n\nexport enum InstallationState {\n SUCCEEDED,\n FAILED,\n UNKNOWN\n}\n\nexport interface IDigitalKey {\n readonly id?: string;\n readonly alias?: string;\n readonly userName?: string;\n readonly expirationTimestamp?: string;\n readonly state: DigitalKeyState;\n readonly removalState: DigitalKeyRemovalState;\n readonly installationState: InstallationState;\n readonly isOwnKey: boolean;\n}\n\nexport interface ITrustedDevice {\n readonly id?: string;\n readonly primaryUserId?: string;\n readonly imei?: string;\n}\n\nexport interface IDigitalKeyStatus {\n readonly userRole: Role;\n readonly freeMobileKeys: number;\n readonly trustedDevices: ITrustedDevice[];\n}\n\nexport class VcfDigitalKeyService {\n constructor(private readonly vcfDigitalKeyClient: VcfDigitalKeyClient) {\n }\n\n public async getDigitalKeys(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const mobileKeysListResponse = await this.vcfDigitalKeyClient.getMobileKeysList(vin, isWcar);\n const mappedKeys = mobileKeysListResponse.data?.permissionList?.map(this.transformPermissionToDigitalKey) ?? []\n return mappedKeys.filter(this.filterKeysWithValidStates);\n }\n\n public async getDigitalKeyStatus(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const response = await this.vcfDigitalKeyClient.getMobileKeysStatus(vin, isWcar);\n return {\n trustedDevices: this.filterTrustedDevices(response.data?.trusteddevice ?? []),\n freeMobileKeys: response.data?.serviceStatus?.keyVoucherFreeCount ?? 0,\n userRole: response.data?.serviceStatus?.userRole ?? Role.UNKNOWN\n };\n }\n\n public async deleteTrustedDevice(id: string, vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n await this.vcfDigitalKeyClient.deleteTrustedDevice(id, vin, isWcar);\n }\n\n public async deleteDigitalKey(id: string, vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n await this.vcfDigitalKeyClient.deleteMobileKeyPermission(id, vin, isWcar);\n }\n\n public async renameDigitalKey(id: string, alias: string, vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n await this.vcfDigitalKeyClient.putMobileKeyPermission(id, alias, vin, isWcar);\n }\n\n private filterKeysWithValidStates(key: IDigitalKey): boolean {\n const validState1 = key.state === DigitalKeyState.CONFIRMED || key.state === DigitalKeyState.ACCEPTED;\n const validState2 = key.state === DigitalKeyState.USED && key.installationState === InstallationState.SUCCEEDED\n const validState3 = key.state === DigitalKeyState.ENDED\n && (key.removalState === DigitalKeyRemovalState.INREMOVAL || key.removalState === DigitalKeyRemovalState.REMOVALFAILED)\n && key.installationState === InstallationState.SUCCEEDED\n\n return validState1 || validState2 || validState3;\n }\n\n\n private filterTrustedDevices(trustedDevices: IVcfTrustedDevice[]): ITrustedDevice[] {\n return trustedDevices.filter(this.trustedDeviceIsRegistered).map(this.transformVcfTrustedDevice);\n }\n\n private transformPermissionToDigitalKey(permission: IVcfPermission): IDigitalKey {\n const {\n permissionId,\n frontendAlias,\n mkUserUserName,\n expirationTimestamp,\n state,\n removalState,\n mkAdministratorUserName,\n installationState\n } = permission;\n\n return {\n id: permissionId,\n alias: frontendAlias,\n userName: mkUserUserName,\n expirationTimestamp: expirationTimestamp,\n state: (DigitalKeyState as any)[state?.toUpperCase() ?? ''] ?? DigitalKeyState.UNKNOWN,\n installationState: (InstallationState as any)[installationState?.toUpperCase() ?? ''] ?? InstallationState.UNKNOWN,\n removalState: (DigitalKeyRemovalState as any)[removalState?.toUpperCase() ?? ''] ?? DigitalKeyRemovalState.UNKNOWN,\n isOwnKey: mkUserUserName ? VcfDigitalKeyService.equalsIgnoreCase(mkUserUserName, mkAdministratorUserName) : false,\n };\n }\n\n private trustedDeviceIsRegistered(vcfTrustedDevice: IVcfTrustedDevice): boolean {\n return vcfTrustedDevice.status === 'REGISTERED';\n }\n\n private transformVcfTrustedDevice(vcfTrustedDevice: IVcfTrustedDevice): ITrustedDevice {\n const {teeId, primaryUserID, imei} = vcfTrustedDevice;\n return {id: teeId, primaryUserId: primaryUserID, imei};\n }\n\n private static equalsIgnoreCase(str1: string, str2?: string) {\n if (str1 && str2) {\n return str1.localeCompare(str2, undefined, {sensitivity: 'base'}) === 0\n }\n return false;\n };\n\n}","export class NoMessagesFoundError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'No messages found.';\n }\n super(m);\n }\n}","export class NoReportAvailableError extends Error {\n\n constructor(m?: string) {\n if (!m) {\n m = 'No vehicle health report available';\n }\n super(m);\n }\n}","export class NoSubscriptionSettingsFoundError extends Error {\n}","export class VcfMeasurementsError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'Measurements data cannot be retrieved';\n }\n super(m);\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IVcfFuelStatusResponse {\n readonly data?: [{\n readonly carCapturedTimestamp: string;\n readonly properties: {\n readonly name: string;\n readonly value: string;\n }[];\n }];\n}\n\n// https://cardata.apps.emea.vwapps.io/documentation#tag/Fuel-Status\nexport class VcfFuelStatusClient {\n\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n };\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authServiceWeConnect: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Fuel-Status/operation/getFuelStatus\n public async getFuelStatus(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/fuel/status?gdc=${this.getGdcType(isWcar)}`;\n const response = await this.authServiceWeConnect.get(this.resourceHostId, url, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json();\n }\n}","import { IVcfFuelStatusResponse, VcfFuelStatusClient } from './VcfFuelStatusClient';\nimport { VcfMeasurementsError } from '../errors/VcfMeasurementsError';\nimport { DevicePlatform } from '../../enums';\n\nexport interface ICruisingRange {\n readonly lastUpdate: string;\n readonly value: number;\n}\n\nexport class VcfFuelStatusService {\n constructor(private readonly vcfFuelStatusClient: VcfFuelStatusClient) {\n }\n\n public async getCruisingRange(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n let fuelStatusResponse: IVcfFuelStatusResponse | undefined;\n fuelStatusResponse = await this.vcfFuelStatusClient.getFuelStatus(vin, isWcar);\n try {\n const data = fuelStatusResponse?.data![0]!;\n const lastUpdate = data.carCapturedTimestamp;\n const value = parseInt(data.properties.find(p => p.name === 'remainingRange_km')!.value);\n return {lastUpdate, value};\n } catch (e: any) {\n throw new VcfMeasurementsError('Could not parse VCF fuel status response');\n }\n }\n}","/** VCF docs: https://cardata.apps.emea.vwapps.io/documentation */\n\nexport * from './capabilities/CapabilityUpdateStatusEvaluator';\nexport * from './capabilities/PollingWrapper';\nexport * from './capabilities/VcfCapabilityClient';\nexport * from './capabilities/VcfCapabilityService';\nexport * from './digitalKeys/VcfDigitalKeyClient';\nexport * from './digitalKeys/VcfDigitalKeyService';\nexport * from './errors/NoMessagesFoundError';\nexport * from './errors/NoReportAvailableError'\nexport * from './errors/NoSubscriptionSettingsFoundError';\nexport * from './errors/VcfMeasurementsError';\nexport * from './fuelStatus/VcfFuelStatusClient';\nexport * from './fuelStatus/VcfFuelStatusService';\nexport * from './newsfeeds/fetch';\nexport * from './newsfeeds/VcfNewsFeedsClient';\nexport * from './notifications';\nexport * from './vehicleHealth/VcfHealthClient';\nexport * from './vehicleHealth/VcfHealthService';\nexport * from './vehicleHealth/VcfHealthSettingsConverter';\nexport * from './VcfMessageService';\nexport * from './VcfSubscriptionsSettingsClient';\nexport * from './VcfSubscriptionsSettingsService';\nexport * from './VcfTransactionHistoryClient';\nexport * from './measurements/VcfMeasurementsClient';\nexport * from './measurements/VcfMeasurementsService'\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\ninterface IMeasurementsProperties {\n name: string;\n value: string;\n}\n\ninterface IMeasurements {\n id: string;\n carCapturedTimestamp: string;\n properties: IMeasurementsProperties[];\n}\n\nexport interface IMeasurementsResponse {\n data?: IMeasurements[];\n}\n\n/** /measurements docs: https://cardata.apps.emea.vwapps.io/documentation#tag/Measurements/operation/getMeasurements */\n\nexport class VcfMeasurementsClient {\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n 'Content-Type': 'application/json;version=1',\n };\n\n private readonly resourceHostId: string;\n\n constructor(\n private readonly authService: IAuthServiceV2,\n private readonly stage: string,\n private readonly gdcType: string,\n ) {\n this.resourceHostId = `myvw-vcf-${this.stage}`;\n }\n\n public async getMeasurementsStatus(vin: string, id: string = 'range'): Promise {\n const url = `vehicles/${vin}/measurements?gdc=${this.gdcType}&id=${id}`;\n const response = await this.authService.get(this.resourceHostId, url, this.headers);\n\n if (!response.ok) {\n throw new Error(`Request to /measurements failed with status code ${response.status}`);\n }\n\n return await response.json();\n }\n}\n","import { VcfMeasurementsError } from '../errors/VcfMeasurementsError';\nimport { IMeasurementsResponse, VcfMeasurementsClient } from './VcfMeasurementsClient';\n\nexport interface IMeasurementsRange {\n readonly lastUpdate: string;\n readonly value: number;\n}\n\nexport class VcfMeasurementsService {\n constructor(private readonly vcfMeasurementsClient: VcfMeasurementsClient) {}\n\n public async getMeasurementsRange(vin: string): Promise {\n const ranges = [\n 'cngRange_km',\n 'dieselRange_km',\n 'electricRange_km',\n 'gasRange_km',\n 'gasolineRange_km',\n 'lpgRange_km',\n 'petrolRange_km',\n ];\n const measurementsStatusResponse = await this.vcfMeasurementsClient.getMeasurementsStatus(vin);\n try {\n const data = measurementsStatusResponse.data?.find((array) => array.id === 'range');\n if (!data) throw new VcfMeasurementsError('Could not get \"data\" object from the API');\n const lastUpdate = data.carCapturedTimestamp;\n let value: number = 0;\n ranges.forEach((range) => {\n value += parseInt(data.properties.find((p) => p.name === range)?.value ?? '0');\n });\n return { lastUpdate, value };\n } catch (e: any) {\n throw new VcfMeasurementsError('Could not parse VCF measurements response');\n }\n }\n\n public async getMeasurementsOdometerRange(vin: string): Promise {\n const measurementsStatusResponse = await this.vcfMeasurementsClient.getMeasurementsStatus(\n vin,\n 'odometer,range',\n );\n return measurementsStatusResponse;\n }\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { getRequest, deleteRequest, postRequest } from './fetch';\n\nexport interface INewsFeed {\n feedID: string;\n title: string;\n description: string;\n feedUrl: string;\n logoUrl: string;\n language: string;\n pos: number;\n active: boolean;\n}\n\nexport interface INewsFeeds {\n standardFeeds: INewsFeed[];\n personalFeeds: INewsFeed[];\n}\n\nexport interface INewsFeedsResponse {\n data?: INewsFeeds;\n}\n\nexport class VcfNewsFeedsClient {\n\n private readonly headers: HeadersInit = {\n 'User-Id': '__userId__',\n 'Content-Type': 'application/json',\n };\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`\n };\n\n\n public async getNewsFeeds(vin: string, isWcar: boolean):Promise {\n const url = `vehicles/${vin}/newsfeeds?gdc=${this.getGdcType(isWcar)}`;\n return getRequest(this.authService, this.resourceHostId, url, this.headers);\n };\n\n public async deleteNewsFeed(vin: string, id: string, isWcar: boolean):Promise {\n const url = `vehicles/${vin}/newsfeeds/${id}?gdc=${this.getGdcType(isWcar)}`;\n return deleteRequest(this.authService, this.resourceHostId, url, this.headers)\n };\n\n\n public async postNewsfeeds(vin: string, feedUrl: any, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/newsfeeds?gdc=${this.getGdcType(isWcar)}`;\n return postRequest(this.authService, this.resourceHostId, url, feedUrl, this.headers);\n };\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nconst prepareGetResponse = (response: Response) => {\n if (response.ok) {\n return response.json() as Promise;\n }\n throw new Error(response.statusText);\n};\n\nconst pepareDeleteResponse = (response: Response): void => {\n if (!response.ok || response.status !== 204) {\n throw new Error(response.statusText);\n }\n};\n\nconst preparePostResponse = async (response: Response) => {\n const contentType = response.headers.get('content-type');\n const isJsonContentType = contentType?.includes('application/json');\n\n if (response.ok || response.status === 201) {\n return response.text();\n }\n\n if (response.status === 400) {\n if (isJsonContentType) {\n const error = await response.json();\n throw new Error(error);\n } else {\n const error = await response.text();\n throw new Error(error);\n }\n }\n\n throw new Error(response.statusText);\n};\n\nexport const getRequest = (\n authService: IAuthServiceV2,\n resourceHostId: string,\n url: string,\n headers?: any,\n): Promise => authService.get(resourceHostId, url, headers)\n .then((response) => prepareGetResponse(response));\n\nexport const deleteRequest = (\n authService: IAuthServiceV2,\n resourceHostId: string,\n url: string,\n headers?: any,\n): Promise => authService.delete(resourceHostId, url, headers)\n .then((response) => pepareDeleteResponse(response));\n\nexport const postRequest = async (\n authService: IAuthServiceV2,\n resourceHostId: string,\n url: string,\n payload: any,\n headers: any,\n): Promise => {\n const response = await authService.post(resourceHostId, url, JSON.stringify(payload), headers);\n return preparePostResponse(response);\n}\n\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport {\n ISubscriptionSettingsResponse,\n ISubscriptionSettingsTopic,\n IVcfGeofenceCreatePayload,\n IVcfGeofenceResponse,\n IVcfGeofenceUpdatePayload,\n IVcfNotificationCreateOrUpdateResponse,\n IVcfNotificationDeleteResponse,\n IVcfSpeedAlertCreatePayload,\n IVcfSpeedAlertResponse,\n IVcfSpeedAlertUpdatePayload,\n IVcfUserCapabilitiesResponse,\n NotificationConfigRequestStatusResponse,\n TransactionHistoryResponse,\n} from './types';\n\nconst headers = {\n 'User-Id': '__userId__',\n};\n\nexport class VcfNotificationClient {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`;\n }\n\n private gdcTokenQueryString = (isWcar: boolean) => (isWcar ? `gdc=myvw-wcar-${this.stage}` : `gdc=myvw-mbb-${this.stage}`);\n\n public async getUserCapabilities(vin: string, isWcar: boolean): Promise {\n let response: Response;\n\n try {\n response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/usercapabilities?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(await response.json());\n }\n\n return json;\n }\n\n public async getTransactionHistory(vin: string, isWcar: boolean): Promise {\n let response: Response;\n\n try {\n response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/transactionhistory?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n if (response.status === 404) {\n return {\n data: {\n messages: [],\n errors: [],\n },\n };\n }\n \n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n \n return json;\n }\n\n public async deleteTransactionHistory(\n vin: string,\n isWcar: boolean,\n category: 'speedalert' | 'geofence' | 'antitheftalarm',\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.delete(\n this.resourceHostId,\n `vehicles/${vin}/transactionhistory/${category}?${this.gdcTokenQueryString(isWcar)}`,\n undefined,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n if (!response.ok) {\n throw new Error(await response.json());\n }\n }\n\n public async getGeofenceNotifications(vin: string, isWcar: boolean): Promise {\n let response: Response;\n\n try {\n response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/alerts/geofence?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n if (response.status === 404) {\n return {\n data: {\n carCapturedTimestamp: '',\n maxDefinitions: 0,\n maxActiveDefinitions: 0,\n geofences: [],\n },\n };\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async createGeofenceNotification(\n vin: string,\n isWcar: boolean,\n payload: IVcfGeofenceCreatePayload,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.post(\n this.resourceHostId,\n `vehicles/${vin}/alerts/geofence?${this.gdcTokenQueryString(isWcar)}`,\n JSON.stringify(payload),\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async updateGeofenceNotification(\n vin: string,\n isWcar: boolean,\n payload: IVcfGeofenceUpdatePayload,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.put(\n this.resourceHostId,\n `vehicles/${vin}/alerts/geofence?${this.gdcTokenQueryString(isWcar)}`,\n JSON.stringify(payload),\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async deleteGeofenceNotification(\n vin: string,\n isWcar: boolean,\n id: string,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.delete(\n this.resourceHostId,\n `vehicles/${vin}/alerts/geofence/${id}?${this.gdcTokenQueryString(isWcar)}`,\n undefined,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async getSpeedAlertNotifications(vin: string, isWcar: boolean): Promise {\n let response: Response;\n\n try {\n response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/alerts/speed?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n if (response.status === 404) {\n return {\n data: {\n carCapturedTimestamp: '',\n maxDefinitions: 0,\n maxActiveDefinitions: 0,\n speedAlerts: [],\n },\n };\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async createSpeedAlertNotification(\n vin: string,\n isWcar: boolean,\n payload: IVcfSpeedAlertCreatePayload,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.post(\n this.resourceHostId,\n `vehicles/${vin}/alerts/speed?${this.gdcTokenQueryString(isWcar)}`,\n JSON.stringify(payload),\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async updateSpeedAlertNotification(\n vin: string,\n isWcar: boolean,\n payload: IVcfSpeedAlertUpdatePayload,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.put(\n this.resourceHostId,\n `vehicles/${vin}/alerts/speed?${this.gdcTokenQueryString(isWcar)}`,\n JSON.stringify(payload),\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async deleteSpeedAlertNotification(\n vin: string,\n isWcar: boolean,\n id: string,\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.delete(\n this.resourceHostId,\n `vehicles/${vin}/alerts/speed/${id}/?${this.gdcTokenQueryString(isWcar)}`,\n undefined,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async getSubscriptionSettings(vin: string, isWcar: boolean): Promise {\n let response: Response;\n\n try {\n response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/subscriptions/settings?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n const json = await response.json();\n\n if (!response.ok) {\n throw new Error(json);\n }\n\n return json;\n }\n\n public async updateSubscriptionSettings(\n vin: string,\n isWcar: boolean,\n payload: { topics: ISubscriptionSettingsTopic[] },\n ): Promise {\n let response: Response;\n\n try {\n response = await this.authService.put(\n this.resourceHostId,\n `vehicles/${vin}/subscriptions/settings?${this.gdcTokenQueryString(isWcar)}`,\n JSON.stringify(payload),\n headers,\n );\n } catch (error: any) {\n throw new Error(error);\n }\n\n if (!response.ok) {\n throw new Error(await response.json());\n }\n }\n\n public async getNotificationConfigRequestStatus(\n vin: string,\n isWcar: boolean,\n category: 'speed' | 'geofence',\n requestId: string,\n ): Promise {\n const response = await this.authService.get(\n this.resourceHostId,\n `vehicles/${vin}/alerts/${category}/requests/${requestId}?${this.gdcTokenQueryString(isWcar)}`,\n headers,\n );\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return response.json();\n }\n}\n","import { DevicePlatform } from '../../enums';\n\nimport {\n Category,\n INotificationSchedule,\n ISubscriptionSettingsTopic,\n IVcfGeofenceCreatePayload,\n IVcfGeofenceUpdatePayload,\n IVcfSpeedAlertCreatePayload,\n IVcfSpeedAlertUpdatePayload,\n TransactionHistoryResponseData,\n} from './types';\nimport { VcfNotificationClient } from './VcfNotificationClient';\n\nconst allNavigationItems = [\n {\n name: 'weconnect.notifications.editAlerts.category1',\n link: '/geofence',\n category: Category.GEOFENCE,\n },\n {\n name: 'weconnect.notifications.editAlerts.category2',\n link: '/speedalert',\n category: Category.SPEEDALERT,\n },\n {\n name: 'weconnect.notifications.editAlerts.category3',\n link: '/theftalarm',\n category: Category.TRANSACTION_HISTORY_ANTITHEFT_ALERT,\n },\n];\n\nconst sortMessages = (messages: any) => {\n return messages.sort((a: any, b: any) => {\n if (a.timestamp > b.timestamp) {\n return -1;\n }\n if (a.timestamp < b.timestamp) {\n return 1;\n }\n return 0;\n });\n};\n\nconst limitMessages = (messages: any, limit?: number) => {\n if (!limit || messages.length <= limit) {\n return messages;\n }\n const result = [];\n for (let i = 0; i < limit; i++) {\n result.push(messages[i]);\n }\n return result;\n};\n\nexport class VcfNotificationService {\n constructor(private readonly vcfNotificationClient: VcfNotificationClient) {}\n\n public calcTime = (time: string, direction: 'from' | 'to'): string | undefined => {\n\n const date = new Date();\n const offset = date.getTimezoneOffset(); // in minutes\n const hours = Number(time.split(':')[0]);\n const minutes = Number(time.split(':')[1]);\n\n date.setHours(hours);\n date.setMinutes(direction === 'from' ? minutes - offset : minutes + offset);\n\n return date.toLocaleString([], { hour: '2-digit', minute: '2-digit', hour12: false });\n };\n\n public fromUtc = (time: string | null | undefined) => {\n if (!time) {\n return null;\n }\n return this.calcTime(time, 'from');\n };\n\n public toUtc = (time: string | null | undefined) => {\n return this.calcTime(time || '00:00', 'to');\n };\n\n public shiftDays = (recurringOn: INotificationSchedule['recurringOn'], startTime: string | undefined | null) => {\n if (!recurringOn) {\n return;\n }\n\n let dayShift = 0; // -1 = shift backwards; +1 = shift forward\n const currentDate = new Date();\n const offsetMinutes = currentDate.getTimezoneOffset();\n\n // shift if startTime is null or undefined\n if (!startTime) {\n if (offsetMinutes < 0) {\n dayShift = -1;\n }\n if (offsetMinutes > 0) {\n dayShift = 1;\n }\n if (offsetMinutes === 0) {\n return recurringOn;\n }\n } else {\n const offsetHours = offsetMinutes / 60;\n const hours = Number(startTime.split(':')[0]);\n if (hours + offsetHours < 0) {\n dayShift = -1;\n }\n if (hours + offsetHours >= 24) {\n dayShift = 1;\n }\n if (dayShift === 0) {\n return recurringOn;\n }\n }\n\n const arr = Object.entries(recurringOn).map(([day, enabled]) => ({\n day,\n enabled,\n }));\n\n const shiftedArr = arr.map((item, i) => ({\n ...item,\n enabled:\n dayShift === -1\n ? arr[i === arr.length - 1 ? 0 : i + 1].enabled\n : arr[i === 0 ? arr.length - 1 : i - 1].enabled,\n }));\n\n const result = shiftedArr.reduce((a, v) => ({ ...a, [v.day as string]: v.enabled }), {});\n\n return result;\n };\n\n public unshiftDays = (recurringOn: INotificationSchedule['recurringOn'], startTime: string | undefined | null) => {\n if (!recurringOn) {\n return;\n }\n\n let dayShift = 0; // -1 = shift backwards; +1 = shift forward\n const currentDate = new Date();\n const offsetMinutes = currentDate.getTimezoneOffset();\n\n // shift if startTime is null or undefined\n if (!startTime) {\n if (offsetMinutes < 0) {\n dayShift = 1;\n }\n if (offsetMinutes > 0) {\n dayShift = -1;\n }\n if (offsetMinutes === 0) {\n return recurringOn;\n }\n } else {\n const offsetHours = offsetMinutes / 60;\n const hours = Number(startTime.split(':')[0]);\n\n if (hours - offsetHours < 0) {\n dayShift = -1;\n }\n\n if (hours - offsetHours >= 24) {\n dayShift = 1;\n }\n\n if (dayShift === 0) {\n return recurringOn;\n }\n }\n const arr = Object.entries(recurringOn).map(([day, enabled]) => ({\n day,\n enabled,\n }));\n\n const shiftedArr = arr.map((item, i) => ({\n ...item,\n enabled:\n dayShift === -1\n ? arr[i === arr.length - 1 ? 0 : i + 1].enabled\n : arr[i === 0 ? arr.length - 1 : i - 1].enabled,\n }));\n\n const result = shiftedArr.reduce((a, v) => ({ ...a, [v.day as string]: v.enabled }), {});\n\n return result;\n };\n\n public async getEditableCategories(vin: string, devicePlatform: DevicePlatform) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n try {\n const response = await this.vcfNotificationClient.getUserCapabilities(vin, isWcar);\n const allowedCategories = response.data.filter((item) => item.status.length === 0).map((item) => item.id);\n return allowedCategories;\n } catch (error: any) {\n console.log(error);\n throw new Error(error?.message);\n }\n }\n\n public async getTransactionHistory(vin: string, devicePlatform: DevicePlatform, limit?: number) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n\n try {\n const response = await this.vcfNotificationClient.getTransactionHistory(vin, isWcar);\n\n return {\n messages: limitMessages(sortMessages(response.data.messages), limit),\n errors: response.data.errors,\n } as TransactionHistoryResponseData;\n } catch (error: any) {\n if (error.response?.data?.error.code === 4103) {\n return {\n messages: [],\n errors: [],\n errorStatus: undefined,\n };\n }\n throw new Error('Something went wrong');\n }\n }\n\n public getEditTabNavigationItems(data: string[]) {\n const lowerCasedArr = data.map((item) => item.toLowerCase());\n\n return allNavigationItems.filter(({ category }) => lowerCasedArr.includes(category.toLowerCase()));\n }\n\n public showNotificationCardEditBtn(data: string[]) {\n return (\n data.includes(Category.GEOFENCE) ||\n data.includes(Category.SPEEDALERT) ||\n data.includes(Category.TRANSACTION_HISTORY_ANTITHEFT_ALERT)\n );\n }\n\n public async deleteTransactionHistory(\n vin: string,\n devicePlatform: DevicePlatform,\n category: 'speedalert' | 'geofence' | 'antitheftalarm',\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n await this.vcfNotificationClient.deleteTransactionHistory(vin, isWcar, category);\n }\n\n public async getGeofenceNotifications(vin: string, devicePlatform: DevicePlatform) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n try {\n const response = await this.vcfNotificationClient.getGeofenceNotifications(vin, isWcar);\n const responseDataCalculatedFromUtc = {\n ...response.data,\n geofences: response.data.geofences.map((item) => ({\n ...item,\n schedule: !item.schedule ? null : {\n ...item.schedule,\n startTime: this.fromUtc(item.schedule?.startTime),\n endTime: this.fromUtc(item.schedule?.endTime),\n recurringOn: this.unshiftDays(item.schedule?.recurringOn, item.schedule?.startTime),\n },\n })),\n };\n return responseDataCalculatedFromUtc;\n } catch (e: any) {\n throw new Error(e.message);\n }\n }\n\n public async createGeofenceNotification(\n vin: string,\n devicePlatform: DevicePlatform,\n payload: IVcfGeofenceCreatePayload,\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n\n const payloadCalculatedToUtc = {\n ...payload,\n geofence: {\n ...payload.geofence,\n schedule: !payload.geofence.schedule ? null : {\n ...payload.geofence.schedule,\n startTime: this.toUtc(payload.geofence.schedule?.startTime),\n endTime: this.toUtc(payload.geofence.schedule?.endTime),\n recurringOn: this.shiftDays(\n payload.geofence.schedule?.recurringOn,\n payload.geofence.schedule?.startTime,\n ),\n },\n },\n };\n\n const response = await this.vcfNotificationClient.createGeofenceNotification(\n vin,\n isWcar,\n payloadCalculatedToUtc as IVcfGeofenceCreatePayload,\n );\n return response.data;\n }\n\n public async updateGeofenceNotification(\n vin: string,\n devicePlatform: DevicePlatform,\n payload: IVcfGeofenceUpdatePayload,\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n\n const payloadCalculatedToUtc = {\n ...payload,\n geofences: payload.geofences.map((item) => ({\n ...item,\n schedule: !item.schedule ? null : {\n ...item.schedule,\n startTime: this.toUtc(item.schedule?.startTime),\n endTime: this.toUtc(item.schedule?.endTime),\n recurringOn: this.shiftDays(item.schedule.recurringOn, item.schedule.startTime),\n },\n })),\n };\n\n const response = await this.vcfNotificationClient.updateGeofenceNotification(\n vin,\n isWcar,\n payloadCalculatedToUtc as IVcfGeofenceUpdatePayload,\n );\n return response.data;\n }\n\n public async deleteGeofenceNotification(vin: string, devicePlatform: DevicePlatform, id: any) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const response = await this.vcfNotificationClient.deleteGeofenceNotification(vin, isWcar, id);\n return response.data;\n }\n\n public async getSpeedAlertNotifications(vin: string, devicePlatform: DevicePlatform) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n try {\n const response = await this.vcfNotificationClient.getSpeedAlertNotifications(vin, isWcar);\n const responseDataCalculatedFromUtc = {\n ...response.data,\n speedAlerts: response.data.speedAlerts.map((item) => ({\n ...item,\n schedule: !item.schedule ? null : {\n ...item.schedule,\n startTime: this.fromUtc(item.schedule?.startTime),\n endTime: this.fromUtc(item.schedule?.endTime),\n recurringOn: this.unshiftDays(item.schedule?.recurringOn, item.schedule?.startTime),\n },\n })),\n };\n return responseDataCalculatedFromUtc;\n } catch (e: any) {\n if (e.response?.data?.error.code === 4103) {\n return {\n carCapturedTimestamp: '123',\n maxDefinitions: 10,\n maxActiveDefinitions: 0,\n speedAlerts: [],\n };\n }\n throw new Error(e.message);\n }\n }\n\n public async createSpeedAlertNotification(\n vin: string,\n devicePlatform: DevicePlatform,\n payload: IVcfSpeedAlertCreatePayload,\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n\n const payloadCalculatedToUtc = {\n ...payload,\n speedAlert: {\n ...payload.speedAlert,\n schedule: !payload.speedAlert.schedule ? null : {\n ...payload.speedAlert.schedule,\n startTime: this.toUtc(payload.speedAlert.schedule?.startTime),\n endTime: this.toUtc(payload.speedAlert.schedule?.endTime),\n recurringOn: this.shiftDays(\n payload.speedAlert.schedule?.recurringOn,\n payload.speedAlert.schedule?.startTime,\n ),\n },\n },\n };\n\n const response = await this.vcfNotificationClient.createSpeedAlertNotification(\n vin,\n isWcar,\n payloadCalculatedToUtc as IVcfSpeedAlertCreatePayload,\n );\n return response.data;\n }\n\n public async updateSpeedAlertNotification(\n vin: string,\n devicePlatform: DevicePlatform,\n payload: IVcfSpeedAlertUpdatePayload,\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n\n const payloadCalculatedToUtc = {\n ...payload,\n speedAlerts: payload.speedAlerts.map((item) => ({\n ...item,\n schedule: !item.schedule ? null : {\n ...item.schedule,\n startTime: this.toUtc(item.schedule?.startTime),\n endTime: this.toUtc(item.schedule?.endTime),\n recurringOn: this.shiftDays(item.schedule?.recurringOn, item.schedule?.startTime),\n },\n })),\n };\n\n const response = await this.vcfNotificationClient.updateSpeedAlertNotification(\n vin,\n isWcar,\n payloadCalculatedToUtc as IVcfSpeedAlertUpdatePayload,\n );\n return response.data;\n }\n\n public async deleteSpeedAlertNotification(vin: string, devicePlatform: DevicePlatform, id: any) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const response = await this.vcfNotificationClient.deleteSpeedAlertNotification(vin, isWcar, id);\n return response.data;\n }\n\n public async getSubscriptionSettings(vin: string, devicePlatform: DevicePlatform) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const response = await this.vcfNotificationClient.getSubscriptionSettings(vin, isWcar);\n return response.data;\n }\n\n public async updateSubscriptionSettings(\n vin: string,\n devicePlatform: DevicePlatform,\n payload: { topics: ISubscriptionSettingsTopic[] },\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n await this.vcfNotificationClient.updateSubscriptionSettings(vin, isWcar, payload);\n }\n\n public async getNotificationConfigRequestStatus(\n vin: string,\n devicePlatform: DevicePlatform,\n category: 'speed' | 'geofence',\n requestId: string,\n ) {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const response = await this.vcfNotificationClient.getNotificationConfigRequestStatus(\n vin,\n isWcar,\n category,\n requestId,\n );\n if (['delayed', 'in_progress'].includes(response.data.status)) {\n throw new Error('request was delayed or is in progress');\n }\n return response.data;\n }\n}\n","export * from './VcfNotificationClient';\nexport * from './VcfNotificationService';\nexport * from './types';\n","export interface IVcfUserCapabilitiesResponse {\n data: {\n id: string;\n status: number[];\n expirationDate: string;\n userDisablingAllowed: boolean;\n }[];\n}\n\nexport interface INotification {\n category: 'speedalert' | 'geofence' | 'antitheftalarm' | 'honkflash' | 'remotelockunlock' | 'digitalkey';\n action: string;\n timestamp: string;\n}\n\nexport interface INotificationSpeedAlert extends INotification {\n category: 'speedalert';\n allowedSpeedLimit_kmph: number;\n alertName: string;\n}\n\nexport interface INotificationGeofence extends INotification {\n category: 'geofence';\n alertName: string;\n action: 'enter_redzone' | 'exit_greenzone';\n}\n\nexport interface INotificationAntiTheftAlarm extends INotification {\n category: 'antitheftalarm';\n}\n\nexport interface INotificationHonkFlash extends INotification {\n category: 'honkflash';\n actionSuccess: boolean;\n}\n\nexport interface INotificationRemoteLockUnlock extends INotification {\n category: 'remotelockunlock';\n actionSuccess: boolean;\n}\n\nexport interface INotificationDigitalKey extends INotification {\n category: 'digitalkey';\n action:\n | 'mk_extended'\n | 'mk_installed'\n | 'mk_removal_failed_verwalter'\n | 'mk_removal_succeeded_verwalter'\n | 'mk_returned'\n | 'permission_and_mk_expired'\n | 'permission_and_mk_revoked_verwalter'\n | 'permission_declined'\n | 'permission_expired'\n | 'permission_granted'\n | 'permission_returned'\n | 'permission_revoked_verwalter'\n | 'permission_vtan_rejected';\n}\n\nexport interface IVcfTransactionHistoryGeofenceResponse {\n readonly data?: INotification[];\n}\n\nexport interface TransactionHistoryMessage {\n category: string;\n action: string;\n timestamp: string;\n}\n\nexport interface IVcfTransactionHistoryAccess extends TransactionHistoryMessage {\n actionSuccess: boolean;\n}\n\nexport interface IVcfTransactionHistoryGeofence extends TransactionHistoryMessage {\n alertName: string;\n}\n\nexport interface IVcfTransactionHistorySpeedAlert extends TransactionHistoryMessage {\n alertName: string;\n allowedSpeedLimit_kmph: number;\n}\n\nexport interface TransactionHistoryResponse {\n data: {\n messages: TransactionHistoryMessage[];\n errors: { category: TransactionHistoryCategory; error: { code: number; message: string } }[];\n };\n}\n\nexport type VcfGeofenceZone = 'exit' | 'enter';\n\nexport type VcfGeofenceScheduleType = 'recurring' | 'single';\n\nexport interface INotificationSchedule {\n type: 'recurring' | 'single';\n startDateTime?: string | null;\n endDateTime?: string | null;\n recurringOn?: {\n mondays: boolean;\n tuesdays: boolean;\n wednesdays: boolean;\n thursdays: boolean;\n fridays: boolean;\n saturdays: boolean;\n sundays: boolean;\n } | null;\n startTime?: string | null;\n endTime?: string | null;\n}\n\nexport interface IVcfGeofence {\n enabled: boolean;\n id: number;\n alertName: string;\n zone: 'exit' | 'enter';\n area: {\n type: 'rectangle' | 'circle';\n lat: number;\n lon: number;\n width: number | null;\n height: number | null;\n radius: number;\n };\n schedule: {\n type: 'recurring' | 'single';\n startDateTime: string | null;\n endDateTime: string | null;\n recurringOn: {\n mondays: boolean;\n tuesdays: boolean;\n wednesdays: boolean;\n thursdays: boolean;\n fridays: boolean;\n saturdays: boolean;\n sundays: boolean;\n } | null;\n startTime: string | null;\n endTime: string | null;\n } | null;\n}\n\nexport interface IVcfSpeedAlert {\n enabled: boolean;\n id: number;\n alertName: string;\n allowedSpeedLimit_kmph: number;\n schedule: INotificationSchedule | null;\n}\n\nexport interface IVcfGeofenceResponse {\n data: {\n carCapturedTimestamp: string;\n maxDefinitions: number;\n maxActiveDefinitions: number;\n geofences: IVcfGeofence[];\n };\n}\n\nexport interface IVcfGeofenceCreatePayload {\n callback: string;\n geofence: {\n enabled: boolean;\n alertName: string;\n zone: string;\n area: any;\n schedule: INotificationSchedule | null;\n };\n}\n\nexport interface IVcfSpeedAlertCreatePayload {\n callback: string;\n speedAlert: {\n enabled: boolean;\n alertName: string;\n allowedSpeedLimit_kmph: number;\n schedule: INotificationSchedule | null;\n };\n}\n\nexport interface IVcfGeofenceUpdatePayload {\n callback: string;\n geofences: [\n {\n id: number;\n enabled: boolean;\n alertName: string;\n zone: string;\n area: any;\n schedule: any;\n },\n ];\n}\n\nexport interface IVcfNotificationCreateOrUpdateResponse {\n data: {\n requestID: string;\n };\n}\n\nexport interface IVcfSpeedAlertResponse {\n data: {\n carCapturedTimestamp: string;\n maxDefinitions: number;\n maxActiveDefinitions: number;\n speedAlerts: IVcfSpeedAlert[];\n };\n}\n\nexport interface IVcfSpeedAlertUpdatePayload {\n callback: string;\n speedAlerts: IVcfSpeedAlert[];\n}\n\nexport type Path = undefined | 'last' | 'speedalert' | 'geofence' | 'antitheftalarm' | 'honkflash' | 'access';\n\nexport type VcfNotificationSchedule = {\n type: 'recurring' | 'single';\n startDateTime: string | null;\n endDateTime: string | null;\n recurringOn: {\n mondays: boolean;\n tuesdays: boolean;\n wednesdays: boolean;\n thursdays: boolean;\n fridays: boolean;\n saturdays: boolean;\n sundays: boolean;\n } | null;\n startTime: string | null;\n endTime: string | null;\n} | null;\n\nexport interface IVcfNotificationSchedule {\n type: 'single' | 'recurring';\n startDateTime: string | null;\n endDateTime: string | null;\n recurringOn: {\n mondays: false;\n tuesdays: false;\n wednesdays: false;\n thursdays: false;\n fridays: false;\n saturdays: false;\n sundays: false;\n } | null;\n startTime: string | null;\n endTime: string | null;\n}\n\nexport interface ISubscriptionSettingsTopic {\n id: 'theftalarm' | 'vehicleHealth';\n eMail: boolean;\n}\nexport interface ISubscriptionSettingsResponse {\n data: {\n topics: ISubscriptionSettingsTopic[];\n };\n}\n\nexport enum Category {\n ALL = 'all',\n SPEEDALERT = 'speedalert',\n GEOFENCE = 'geofence',\n ANTITHEFTALARM = 'antitheftalarm',\n TRANSACTION_HISTORY_ANTITHEFT_ALERT = 'transactionHistoryAntiTheftAlert',\n HONKFLASH = 'honkflash',\n REMOTELOCKUNLOCK = 'remotelockunlock',\n}\n\nexport type TransactionHistoryCategory =\n | 'speedalert'\n | 'geofence'\n | 'antitheftalarm'\n | 'honkflash'\n | 'access'\n | 'remotelockunlock';\n\nexport enum TransactionHistoryErrorStatus {\n 'UNKNOWN',\n 'NO_CAPABILITIES',\n}\n\nexport interface TransactionHistoryResponseData {\n messages?: [];\n errors?: {\n category: Category;\n error: {\n code: number;\n message: string;\n };\n }[];\n errorStatus?: TransactionHistoryErrorStatus;\n isEditTabVisible?: boolean;\n}\n\nexport interface IVcfNotificationDeleteResponse {\n data: {\n requestID: string;\n };\n}\n\nexport type NotificationConfigStatus = 'in_progress' | 'delayed' | 'error' | 'successful';\nexport interface NotificationConfigRequestStatusResponse {\n data: {\n status: NotificationConfigStatus;\n };\n}\n","import { IAuthServiceV2 } from \"@volkswagen-onehub/authservice\";\nimport { NoReportAvailableError } from \"../errors/NoReportAvailableError\";\n\nexport interface IVcfMaintenanceStatusResponse {\n readonly data?: {\n readonly inspectionDue_days?: number | null;\n readonly inspectionDue_km?: number | null;\n readonly oilServiceDue_days?: number | null;\n readonly oilServiceDue_km?: number | null;\n };\n}\n\nexport interface IVcfHealthReportsResponse {\n readonly data: IVcfHealthReportData[];\n}\n\nexport interface IVcfHealthReportData {\n readonly id?: number;\n readonly carCapturedTimestamp?: string;\n readonly mileage_km?: number;\n}\n\nexport interface IVcfHealthReportResponse {\n readonly data: {\n readonly carCapturedTimestamp?: string;\n readonly mileage_km?: number;\n readonly warningLights: IVcfWarningLight[];\n };\n}\n\nexport interface IVcfWarningLight {\n readonly text?: string;\n readonly priority?: string;\n readonly icon?: string;\n readonly category?: string;\n readonly iconName?: string;\n readonly messageId?: string;\n readonly customerRelevance?: boolean;\n}\n\nexport interface IVcfHealthReportSettingsResponse {\n readonly data: {\n readonly timeBasedSupported?: boolean;\n readonly timeBased?: IVcfTimeBasedSettings;\n readonly distanceBasedSupported?: boolean;\n readonly distanceBased?: IVcfDistanceBasedSettings;\n readonly maintenanceBasedSupported?: boolean;\n readonly maintenanceBased?: IVcfMaintenanceBasedSettings;\n };\n}\n\nexport interface IVcfHealthReportSettingsUpdate {\n readonly timeBased: IVcfTimeBasedSettings;\n readonly distanceBased: IVcfDistanceBasedSettings;\n readonly maintenanceBased: IVcfMaintenanceBasedSettings;\n}\n\nexport interface IVcfTimeBasedSettings {\n readonly collectionPeriod?: string;\n readonly dayOfMonth?: number;\n readonly monthsBetweenReports?: number;\n readonly hour?: number;\n readonly minute?: number;\n}\n\nexport interface IVcfDistanceBasedSettings {\n readonly distance_km?: number;\n readonly start_km?: number;\n}\n\nexport interface IVcfMaintenanceBasedSettings {\n readonly distance_km?: number;\n}\n\n// https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health\nexport class VcfHealthClient {\n \n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly vhrLanguage: string, private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vcf-${stage}`;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getMaintenanceStatus\n public async getMaintenanceStatus(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/maintenance/status?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__'};\n const response = await this.authService.get(this.resourceHostId, url, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfMaintenanceStatusResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getWarningLightReports\n public async getHealthReports(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/warninglights?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Accept-Language': this.vhrLanguage};\n const response = await this.authService.get(this.resourceHostId, url, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfHealthReportsResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getWarningLightReportByID\n public async deleteHealthReport(vin: string, isWcar: boolean, id: number): Promise {\n const url = `vehicles/${vin}/warninglights/${id}?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__'};\n const response = await this.authService.delete(this.resourceHostId, url, undefined, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getLastWarningLightsReport\n public async getLatestHealthReport(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/warninglights/last?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Accept-Language': this.vhrLanguage};\n const response = await this.authService.get(this.resourceHostId, url, headers);\n\n if (response.status === 404) {\n throw new NoReportAvailableError();\n }\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfHealthReportResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getWarningLightsSettings\n public async getHealthReportSettings(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/warninglights/settings?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Accept-Language': this.vhrLanguage};\n const response = await this.authService.get(this.resourceHostId, url, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfHealthReportSettingsResponse;\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/setWarningLightsSettings\n public async saveHealthReportSettings(vin: string, isWcar: boolean, healthReportSettings: IVcfHealthReportSettingsUpdate): Promise {\n const url = `vehicles/${vin}/warninglights/settings?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Content-Type': 'application/json'};\n const response = await this.authService.put(this.resourceHostId, url, JSON.stringify(healthReportSettings), headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/triggerWarningLightsReport\n public async triggerWarningLightsUpdate(vin: string, isWcar: boolean): Promise {\n const url = `vehicles/${vin}/warninglights/update?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Content-Type': 'application/json'};\n const response = await this.authService.post(this.resourceHostId, url, JSON.stringify({}), headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://cardata.apps.emea.vwapps.io/documentation#tag/Vehicle-Health/operation/getWarningLightReportByID\n public async getHealthReportById(vin: string, isWcar: boolean, id: number): Promise {\n const url = `vehicles/${vin}/warninglights/${id}?gdc=${this.getGdcType(isWcar)}`;\n const headers = {'User-Id': '__userId__', 'Accept-Language': this.vhrLanguage};\n const response = await this.authService.get(this.resourceHostId, url, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVcfHealthReportResponse;\n }\n}\n\n","import { DevicePlatform } from '../../enums';\nimport {\n IVcfHealthReportData,\n IVcfMaintenanceStatusResponse,\n IVcfWarningLight,\n VcfHealthClient\n} from \"./VcfHealthClient\";\nimport { IHealthReportSettings, VcfHealthSettingsConverter } from \"./VcfHealthSettingsConverter\";\n\nexport interface IMaintenanceStatus {\n readonly inspectionDueDays?: number;\n readonly inspectionDueKm?: number;\n readonly oilServiceDueDays?: number;\n readonly oilServiceDueKm?: number;\n}\n\nexport enum WarningLightsCategory {\n ASSISTANCE = 'ASSISTANCE',\n BRAKE = 'BRAKE',\n COMFORT = 'COMFORT',\n ENGINE = 'ENGINE',\n LIGHTING = 'LIGHTING',\n OTHER = 'OTHER',\n TIRE = 'TIRE'\n}\n\nexport interface IWarningLight {\n readonly text?: string;\n readonly priority?: string;\n readonly icon?: string;\n}\n\nexport interface IGroupedWarningLights {\n readonly category: WarningLightsCategory;\n readonly warningLights?: IWarningLight[];\n}\n\nexport interface IHealthReport {\n readonly lastUpdate?: string;\n readonly mileageKm?: number | null;\n readonly groupedWarningLights?: IGroupedWarningLights[];\n}\n\nexport interface IHealthReportArchive {\n readonly id?: number;\n readonly lastUpdate?: string;\n readonly mileageKm?: number | null;\n}\n\nexport class VcfHealthService {\n constructor(private readonly vcfHealthClient: VcfHealthClient) {\n }\n\n public async getMaintenanceStatus(vin: string, devicePlatform: DevicePlatform): Promise {\n let maintenanceStatusResponse: IVcfMaintenanceStatusResponse;\n maintenanceStatusResponse = await this.vcfHealthClient.getMaintenanceStatus(vin, this.isWcar(devicePlatform));\n const data = maintenanceStatusResponse.data;\n return {\n inspectionDueDays: data?.inspectionDue_days ?? undefined,\n inspectionDueKm: data?.inspectionDue_km ?? undefined,\n oilServiceDueDays: data?.oilServiceDue_days ?? undefined,\n oilServiceDueKm: data?.oilServiceDue_km ?? undefined\n };\n }\n\n public async getHealthReportArchives(vin: string, devicePlatform: DevicePlatform): Promise {\n const healthReportsResponse = await this.vcfHealthClient.getHealthReports(vin, this.isWcar(devicePlatform));\n if (healthReportsResponse?.data) {\n return this.sortHealthReportsByTimestampDesc(healthReportsResponse.data).map(value => {\n return {\n id: value.id,\n mileageKm: value.mileage_km,\n lastUpdate: value.carCapturedTimestamp\n }\n }\n );\n }\n return [];\n }\n\n public async deleteHealthReport(vin: string, devicePlatform: DevicePlatform, id: number): Promise {\n await this.vcfHealthClient.deleteHealthReport(vin, this.isWcar(devicePlatform), id);\n }\n\n public async getLatestHealthReport(vin: string, devicePlatform: DevicePlatform): Promise {\n const latestHealthReportResponse = await this.vcfHealthClient.getLatestHealthReport(vin, this.isWcar(devicePlatform));\n let warningLights = latestHealthReportResponse?.data.warningLights ?? [];\n\n if (devicePlatform === DevicePlatform.WCAR) {\n warningLights = warningLights.filter((warningLight) => warningLight.customerRelevance ?? true) ?? [];\n }\n const groupedWarningLights = this.groupWarningLightsByCategory(warningLights);\n return {\n lastUpdate: latestHealthReportResponse?.data?.carCapturedTimestamp,\n mileageKm: latestHealthReportResponse?.data?.mileage_km,\n groupedWarningLights\n };\n }\n\n public async getHealthReportById(vin: string, devicePlatform: DevicePlatform, id: number): Promise {\n const healthReportResponse = await this.vcfHealthClient.getHealthReportById(vin, this.isWcar(devicePlatform), id);\n const groupedWarningLights = this.groupWarningLightsByCategory(healthReportResponse?.data.warningLights ?? []);\n return {\n lastUpdate: healthReportResponse?.data?.carCapturedTimestamp,\n mileageKm: healthReportResponse?.data?.mileage_km,\n groupedWarningLights\n };\n }\n\n public async getHealthReportSettings(vin: string, devicePlatform: DevicePlatform): Promise {\n const healthReportSettingsResponse = await this.vcfHealthClient.getHealthReportSettings(vin, this.isWcar(devicePlatform));\n return VcfHealthSettingsConverter.convertVcfResponseToHealthReportSettings(healthReportSettingsResponse);\n }\n\n public async saveHealthReportSettings(vin: string, devicePlatform: DevicePlatform, healthReportSettings: IHealthReportSettings) {\n await this.vcfHealthClient.saveHealthReportSettings(vin, this.isWcar(devicePlatform),\n VcfHealthSettingsConverter.convertHealthReportSettingsToVcfData(healthReportSettings));\n }\n\n public async triggerWarningLightsUpdate(vin: string, devicePlatform: DevicePlatform): Promise {\n await this.vcfHealthClient.triggerWarningLightsUpdate(vin, this.isWcar(devicePlatform));\n }\n\n private isWcar(devicePlatform: DevicePlatform) {\n return devicePlatform === DevicePlatform.WCAR\n }\n\n private sortHealthReportsByTimestampDesc(healthReports: IVcfHealthReportData[]): IVcfHealthReportData[] {\n return healthReports.sort((firstReport: IVcfHealthReportData, secondReport: IVcfHealthReportData) => {\n const timestampFirstReport = new Date(firstReport.carCapturedTimestamp!).getTime();\n const timestampSecondReport = new Date(secondReport.carCapturedTimestamp!).getTime();\n return timestampFirstReport > timestampSecondReport ? -1 : 1;\n })\n }\n\n private groupWarningLightsByCategory(warningLights: IVcfWarningLight[]): IGroupedWarningLights[] {\n const result: IGroupedWarningLights[] = [];\n\n warningLights?.forEach((warningLight: IVcfWarningLight) => {\n const category = warningLight.category as WarningLightsCategory;\n if (category) {\n const transformedWarningLight = {\n text: warningLight.text,\n icon: warningLight.icon ?? undefined,\n priority: warningLight.priority\n };\n const categoryInResult = result.find(groupedWarningLight => groupedWarningLight.category === category);\n\n if (categoryInResult && categoryInResult.warningLights) {\n categoryInResult.warningLights.push(transformedWarningLight);\n } else {\n result.push({category, warningLights: [transformedWarningLight]});\n }\n }\n });\n\n return result;\n }\n}\n","import { IVcfHealthReportSettingsResponse, IVcfHealthReportSettingsUpdate } from \"./VcfHealthClient\";\n\nexport interface IHealthReportSetting {\n readonly supported: boolean;\n readonly enabled: boolean;\n readonly interval?: number;\n}\n\nexport interface ITimeBasedSetting extends IHealthReportSetting {\n readonly dayOfMonth?: number;\n}\n\nexport interface IHealthReportSettings {\n readonly timeBased: ITimeBasedSetting\n readonly distanceBased: IHealthReportSetting\n readonly maintenanceBased: IHealthReportSetting\n}\n\nexport class VcfHealthSettingsConverter {\n public static convertVcfResponseToHealthReportSettings(vcfResponse?: IVcfHealthReportSettingsResponse): IHealthReportSettings {\n const data = vcfResponse?.data;\n return {\n timeBased: {\n supported: data?.timeBasedSupported ?? false,\n enabled: data?.timeBased?.collectionPeriod === 'monthly',\n interval: this.fallbackToFirstElementIfNotInRange(data?.timeBased?.monthsBetweenReports, 3, 1),\n dayOfMonth: this.fallbackToFirstElementIfNotInRange(data?.timeBased?.dayOfMonth, 31, 1)\n },\n distanceBased: {\n supported: data?.distanceBasedSupported ?? false,\n enabled: (data?.distanceBased?.distance_km ?? 0) !== 0,\n interval: this.fallbackToFirstElementIfNotInRange(data?.distanceBased?.distance_km, 10, 1000)\n },\n maintenanceBased: {\n supported: data?.maintenanceBasedSupported ?? false,\n enabled: (data?.maintenanceBased?.distance_km ?? 0) !== 0,\n interval: this.fallbackToFirstElementIfNotInRange(data?.maintenanceBased?.distance_km, 10, 1000)\n }\n };\n }\n\n public static convertHealthReportSettingsToVcfData(healthReportSettings: IHealthReportSettings): IVcfHealthReportSettingsUpdate {\n return {\n timeBased: {\n collectionPeriod: healthReportSettings.timeBased.enabled ? 'monthly' : 'none',\n dayOfMonth: healthReportSettings.timeBased.dayOfMonth,\n monthsBetweenReports: healthReportSettings.timeBased.interval\n },\n distanceBased: {\n distance_km: healthReportSettings.distanceBased.enabled ? healthReportSettings.distanceBased.interval : 0\n },\n maintenanceBased: {\n distance_km: healthReportSettings.maintenanceBased.enabled ? healthReportSettings.maintenanceBased.interval : 0\n }\n };\n }\n\n private static fallbackToFirstElementIfNotInRange(value: number | undefined, numberOf: number, increment: number): number {\n const values = Array.from(Array(numberOf).keys(), x => (x + 1) * increment);\n return value && values.includes(value) ? value : values[0];\n }\n}","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { ModGeneration } from '../enums';\n\nexport interface IVdbsResponse {\n acronym: string;\n softwareVersion?: string;\n modGeneration?: ModGeneration;\n}\n\nexport class VdbsClient {\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n }\n\n public async callVdbsDevicePlatformEndpoint(\n vin: string,\n softwareVersion: boolean,\n modGeneration: boolean,\n ): Promise {\n const headers: HeadersInit = {\n 'Check-Software-Version': softwareVersion.toString(),\n 'Check-Mod-Generation': modGeneration.toString(),\n };\n const response = await this.authService.get(`myvw-vdbs-${this.stage}`,\n `v1/vehicles/${vin}/device-platform`, headers);\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n\n return await response.json() as IVdbsResponse;\n }\n\n public async getDevicePlatform(vin: string): Promise {\n return this.callDevicePlatformEndpoint(vin, false);\n }\n\n public async getDevicePlatformWithOnlineDevices(vin: string): Promise {\n return this.callDevicePlatformEndpoint(vin, true);\n }\n\n public async getModGeneration(vin: string): Promise {\n return this.callDevicePlatformEndpoint(vin, false);\n }\n\n private async callDevicePlatformEndpoint(\n vin: string,\n includeOnlineDevices: boolean,\n ): Promise {\n const headers: HeadersInit = {\n 'Check-Software-Version': includeOnlineDevices.toString(),\n 'Check-Mod-Generation': true.toString(),\n };\n let response;\n\n try {\n response = await this.authService.get(`myvw-vdbs-${this.stage}`,\n `v1/vehicles/${vin}/device-platform`, headers);\n } catch (e) {\n return undefined;\n }\n if (!response.ok) {\n return undefined;\n }\n\n return await response.json();\n\n }\n}\n","import { DevicePlatform, ModGeneration, SoftwareVersion } from '../enums';\nimport { IVdbsResponse, VdbsClient } from './VdbsClient';\nimport { LoggingFacade } from '@vwdfive/myvw-logging';\n\nexport class VdbsService {\n\n constructor(private readonly vdbsClient: VdbsClient, private readonly loggingFacade: LoggingFacade) {}\n\n public async getPlatformDetails(vin: string | undefined, softwareVersion = false, modGeneration = false): Promise {\n let vdbsResponse: IVdbsResponse = { acronym: DevicePlatform.UNKNOWN, softwareVersion: '', modGeneration: ModGeneration.UNKNOWN };\n\n if (!vin) {\n return vdbsResponse;\n }\n\n vdbsResponse = await this.vdbsClient.callVdbsDevicePlatformEndpoint(vin, softwareVersion, modGeneration);\n\n const devicePlatform = DevicePlatform[vdbsResponse?.acronym as keyof typeof DevicePlatform];\n if (!devicePlatform) {\n this.loggingFacade.error(`Could not fetch devicePlatform from VDBS for VIN ${vin}`);\n vdbsResponse.acronym = DevicePlatform.UNKNOWN;\n }\n\n if (softwareVersion && vdbsResponse.acronym !== DevicePlatform.WCAR) {\n this.loggingFacade.error(`Could not fetch softwareVersion from VDBS for VIN ${vin} and Device Platform ${vdbsResponse.acronym}`);\n vdbsResponse.softwareVersion = '';\n }\n\n if (modGeneration && !vdbsResponse?.modGeneration) {\n this.loggingFacade.error(`Could not fetch modGeneration from VDBS for VIN ${vin}`);\n vdbsResponse.modGeneration = ModGeneration.UNKNOWN;\n }\n\n return vdbsResponse;\n }\n\n /**\n * @deprecated The method should not be used, see {@link getPlatformDetails}\n */\n public async getDevicePlatform(vin: string | undefined): Promise {\n if (!vin) {\n return DevicePlatform.UNKNOWN;\n }\n const vdbsResponse = await this.vdbsClient.getDevicePlatform(vin);\n const devicePlatform = DevicePlatform[vdbsResponse?.acronym as keyof typeof DevicePlatform];\n if (!devicePlatform) {\n this.loggingFacade.error(`Could not fetch devicePlatform from VDBS for VIN ${vin}`);\n }\n return devicePlatform ?? DevicePlatform.UNKNOWN;\n }\n\n public async getWcarSoftwareVersion(vin: string, devicePlatform: DevicePlatform): Promise {\n if (devicePlatform !== DevicePlatform.WCAR) {\n return SoftwareVersion.UNKNOWN;\n }\n const vdbsResponse = await this.vdbsClient.getDevicePlatformWithOnlineDevices(vin);\n\n return this.getSoftwareVersionEnum(vdbsResponse?.softwareVersion ?? SoftwareVersion.UNKNOWN);\n }\n\n public async getSoftwareVersion(vin: string, devicePlatform: DevicePlatform): Promise {\n if (devicePlatform !== DevicePlatform.WCAR) {\n return '';\n }\n const vdbsResponse = await this.vdbsClient.getDevicePlatformWithOnlineDevices(vin);\n\n return vdbsResponse?.softwareVersion || '';\n }\n\n public async getModGeneration(vin: string | undefined): Promise {\n if (!vin) {\n return ModGeneration.UNKNOWN;\n }\n const vdbsResponse = await this.vdbsClient.getModGeneration(vin);\n if (!vdbsResponse?.modGeneration || !Object.values(ModGeneration).includes(vdbsResponse.modGeneration)) { \n return ModGeneration.UNKNOWN;\n }\n if (vdbsResponse?.modGeneration && vdbsResponse?.modGeneration?.length) {\n return vdbsResponse.modGeneration;\n }\n return ModGeneration.UNKNOWN;\n }\n\n private getSoftwareVersionEnum(softwareVersion: string): SoftwareVersion {\n if (softwareVersion.startsWith('0.')) {\n return SoftwareVersion.ME0;\n }\n if (softwareVersion.startsWith('1.')) {\n return SoftwareVersion.ME1;\n }\n if (softwareVersion.startsWith('2.')) {\n return SoftwareVersion.ME2;\n }\n return SoftwareVersion.UNKNOWN;\n }\n}\n","import { VehicleImageUrlBuilder } from './VehicleImageUrlBuilder';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { IVumFlattenedVehicle } from '../vum/VumFlattenedVehicleConverter';\n\nexport interface IVehicleImage {\n readonly url: string;\n readonly viewDirection: string;\n readonly angle: string;\n}\n\nexport interface IVehicleImagesResponse {\n readonly images: IVehicleImage[];\n readonly service: string;\n}\n\nexport class VehicleImageClient {\n\n constructor(\n private readonly vehicleImageUrlBuilder: VehicleImageUrlBuilder,\n private readonly authService: IAuthServiceV2,\n private readonly stage: string,\n ) {\n }\n\n public async getImages(vehicle: IVumFlattenedVehicle): Promise {\n const imageServiceUrl = this.vehicleImageUrlBuilder.getUrlForImageRequestWithDefaultView(vehicle);\n\n const response = await this.authService.get(`myvw-vilma-proxy-${this.stage}`, imageServiceUrl);\n if (response.ok) {\n return await response.json() as IVehicleImagesResponse;\n }\n\n throw new Error(await response.text());\n }\n}\n","import {IVehicleImage, VehicleImageClient} from \"./VehicleImageClient\";\nimport {IVumFlattenedVehicle} from \"../vum/VumFlattenedVehicleConverter\";\nimport {LoggingFacade} from \"@vwdfive/myvw-logging\";\n\nexport class VehicleImageService {\n\n private static vilmaDefaultProvider = 'DEFAULT';\n\n constructor(private readonly vehicleImageClient: VehicleImageClient,\n private readonly loggingFacade: LoggingFacade) {\n }\n\n public async getVehicleImages(vehicle: IVumFlattenedVehicle): Promise {\n try {\n const response = await this.vehicleImageClient.getImages(vehicle);\n if (!response.images) {\n throw new Error('No images in response from vehicle image service');\n }\n if (response.service === VehicleImageService.vilmaDefaultProvider) {\n return [];\n }\n return response.images;\n } catch (e: any) {\n this.loggingFacade.error('Could not fetch vehicle images', e);\n return [];\n }\n }\n}","import {VehicleIdentifierValidator} from \"../validation/VehicleIdentifierValidator\";\nimport {IVumFlattenedVehicle} from \"../vum/VumFlattenedVehicleConverter\";\n\nexport class VehicleImageUrlBuilder {\n private readonly vehicleImageEndpoint: string;\n private readonly fallbackViewDirection = 'side';\n private readonly fallbackAngle = 'right';\n private readonly volkswagenIdentifier = 'volkswagen';\n private readonly commercialVehiclesIdentifier = 'commercialVehicles';\n\n constructor(private readonly customConfig: any) {\n this.vehicleImageEndpoint = 'vehicleimages/exterior/'\n }\n\n public getUrlForImageRequestWithDefaultView(vehicle: IVumFlattenedVehicle): string {\n let viewDirection;\n let angle;\n try {\n if (VehicleIdentifierValidator.isCommercialVehicleVin(vehicle.vin)) {\n viewDirection = this.customConfig.defaultViews[this.commercialVehiclesIdentifier].viewDirection;\n angle = this.customConfig.defaultViews[this.commercialVehiclesIdentifier].angle;\n } else {\n viewDirection = this.customConfig.defaultViews[this.volkswagenIdentifier].viewDirection;\n angle = this.customConfig.defaultViews[this.volkswagenIdentifier].angle;\n }\n } catch (e) {\n viewDirection = this.fallbackViewDirection;\n angle = this.fallbackAngle;\n }\n\n return this.vehicleImageEndpoint + this.getVehicleUrlParams(vehicle) + `?viewDirection=${viewDirection}&angle=${angle}`;\n }\n\n private getVehicleUrlParams(vehicle: IVumFlattenedVehicle): string {\n return !vehicle.vin ?\n vehicle.commissionNumber + '/' + vehicle.bid + '/' + vehicle.commissionNumberYear : vehicle.vin;\n }\n}\n","export interface ICommissionData {\n readonly commissionNumber: string;\n readonly bid: string;\n readonly commissionNumberYear: string;\n}\n\nexport class CommissionIdConverter {\n public static convertCommissionDataToId(commissionNumber?: string, bid?: string, commissionNumberYear?: string): string | undefined {\n if (!commissionNumber || !commissionNumberYear || !bid) {\n return undefined;\n }\n return `${commissionNumber}-${bid}-${commissionNumberYear}`;\n }\n\n public static convertCommissionIdToData(commissionId?: string): ICommissionData | undefined {\n const splits = commissionId?.split('-');\n if (!splits || splits.length !== 3 || !(splits[0] && splits[1] && splits[2])) {\n return undefined;\n }\n return {\n commissionNumber: splits[0],\n bid: splits[1],\n commissionNumberYear: splits[2]\n };\n }\n}\n","import { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\nimport { v4 as uuid } from 'uuid';\nimport { ICommissionData } from './CommissionIdConverter';\nimport { VumProfileBrokenError } from './errors/VumProfileBrokenError';\n\nexport interface IVumUserVehicleRelationUpdate {\n readonly vehicleNickname?: string,\n readonly licensePlate?: string,\n readonly vehicle?: {\n readonly vin?: string,\n readonly commissionId?: string\n }\n}\n\nexport interface IVumUserVehicleRelation {\n readonly vehicleNickname?: string,\n readonly role?: string,\n readonly enrollmentStatus?: string,\n readonly licensePlate?: string,\n readonly primaryCar?: string,\n readonly dealerId?: string,\n readonly dealerBrandCode?: string,\n readonly allocatedDealerCountry?: string,\n readonly preferredContact?: string,\n readonly vehicle?: {\n readonly vin?: string,\n readonly commissionId?: string,\n readonly modBackend?: string\n }\n}\n\nexport interface IVumUser {\n readonly mbbUserId: string;\n}\n\nexport interface IVumUserVehicleRelationsResponse {\n readonly relations: IVumUserVehicleRelation[],\n readonly user: IVumUser\n}\n\nexport interface IVumUserVehicleRelationResponse {\n readonly relation: IVumUserVehicleRelation;\n}\n\nexport interface IJSONPatchOperation {\n readonly op: string,\n readonly path: string,\n readonly value: string | null,\n}\n\nexport class VumClient {\n\n private readonly resourceHostId: string;\n\n constructor(private readonly authService: IAuthServiceV2, stage: string) {\n this.resourceHostId = `myvw-vum-${stage}`\n }\n\n defaultBodyRequestHeaders = {\n 'Content-Type': 'application/json',\n };\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - getRelationsByUserWithMetadata\n public async getUserVehicleRelations(): Promise {\n const response = await this.authService.get(this.resourceHostId, 'v2/users/me/relations',\n { traceId: uuid() });\n\n if (response.status === 422) {\n throw new VumProfileBrokenError();\n }\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n\n return await response.json();\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - getRelationsByUserAndVin\n public async getUserVehicleRelation(vin: string): Promise {\n const response = await this.authService.get(this.resourceHostId, `v2/users/me/relations/${vin}`,\n { traceId: uuid() });\n\n if (response.status === 422) {\n throw new VumProfileBrokenError();\n }\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n\n return await response.json();\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io\n public async patchVinVehicle(vin: string, dataToUpdate: IJSONPatchOperation []): Promise {\n await this.authService.patch(this.resourceHostId,\n `dataStorageManagement/users/me/relations?vin=${vin}`, JSON.stringify(dataToUpdate),\n { ...this.defaultBodyRequestHeaders, traceId: uuid() });\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io\n public async patchCommissionVehicle(commissionData: ICommissionData, dataToUpdate: IJSONPatchOperation []): Promise {\n await this.authService.patch(this.resourceHostId, 'dataStorageManagement/users/me/relations?commissionId=' +\n `${commissionData.commissionNumber}-${commissionData.bid}-${commissionData.commissionNumberYear}`,\n JSON.stringify(dataToUpdate), { ...this.defaultBodyRequestHeaders, traceId: uuid() });\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io\n public async updateUserVehicleRelation(relation: IVumUserVehicleRelationUpdate): Promise {\n const response = await this.authService.put(this.resourceHostId,\n 'v1/dataStorageManagement/users/me/relations', JSON.stringify(relation),\n { ...this.defaultBodyRequestHeaders, traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io\n public async addVinToUserVehicle(commissionId: string, vin: string): Promise {\n const response = await this.authService.put(this.resourceHostId,\n `v1/dataStorageManagement/users/me/vehicles/${commissionId}/vin`,\n JSON.stringify({ vin }), { ...this.defaultBodyRequestHeaders, traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - primaryUserReset\n public async resetPrimaryUser(vin: string): Promise {\n const validStatusCodes = [204, 404, 409];\n\n const response = await this.authService.put(this.resourceHostId,\n `primaryUserReset/users/me/vehicles/${vin}`, undefined, { traceId: uuid() });\n\n if (!validStatusCodes.includes(response.status)) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - roleReset\n public async resetNonPrimaryUser(vin: string): Promise {\n const response = await this.authService.put(this.resourceHostId, `users/me/vehicles/${vin}`,\n undefined, { traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(`Request failed with status code ${response.status}`);\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io\n public async addUserVehicleRelation(userVehicleRelation: IVumUserVehicleRelationUpdate): Promise {\n const response = await this.authService.post(this.resourceHostId,\n 'v1/dataStorageManagement/users/me/relations', JSON.stringify(userVehicleRelation),\n { ...this.defaultBodyRequestHeaders, traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - deleteVehicleInGarage\n public async deleteUserVehicleRelation(userVehicleRelation: IVumUserVehicleRelationUpdate): Promise {\n let deleteUserVehicleRelationUrl = 'users/me/vehicles';\n if (userVehicleRelation.vehicle?.vin) {\n deleteUserVehicleRelationUrl += `?vin=${userVehicleRelation.vehicle.vin}`;\n } else {\n deleteUserVehicleRelationUrl += `?commissionId=${userVehicleRelation.vehicle?.commissionId}`;\n }\n\n const response = await this.authService.delete(this.resourceHostId, deleteUserVehicleRelationUrl,\n undefined, { traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - deleteUserAccount\n public async deleteUser(): Promise {\n const response = await this.authService.delete(this.resourceHostId, 'v1/users/me',\n undefined, { traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n\n // https://vum-sandbox-documentation.apps.emea.vwapps.io - Delete Guest or Secondary User by Primary User\n public async removeUserFromVehicle(userId: string, vin: string): Promise {\n const response = await this.authService.delete(this.resourceHostId,\n `v1/users/${userId}/vehicles/${vin}`, undefined, { traceId: uuid() });\n\n if (!response.ok) {\n throw new Error(); // TODO: How to get error message\n }\n }\n}","import { IVumUserVehicleRelation, IVumUserVehicleRelationUpdate } from './VumClient';\nimport { CommissionIdConverter } from './CommissionIdConverter';\nimport { DevicePlatform, EnrollmentStatus, Role } from '../enums';\n\nexport interface IVumFlattenedVehicleForUpdate {\n bid?: string\n commissionNumber?: string\n commissionNumberYear?: string\n vin?: string\n nickname?: string\n licensePlateNumber?: string\n}\n\nexport interface IVumFlattenedVehicle {\n bid?: string\n commissionNumber?: string\n commissionNumberYear?: string\n vin?: string\n nickname?: string\n licensePlateNumber?: string\n role: Role\n enrollmentStatus: EnrollmentStatus\n devicePlatform: DevicePlatform\n primaryCar: boolean\n dealerId?: string\n dealerBrandCode?: string\n allocatedDealerCountry?: string\n preferredContact?: string\n}\n\nexport class VumFlattenedVehicleConverter {\n\n public static convertUserVehicleRelationToFlattenedVehicle(relation: IVumUserVehicleRelation): IVumFlattenedVehicle {\n return {\n vin: relation.vehicle?.vin,\n ...CommissionIdConverter.convertCommissionIdToData(relation.vehicle?.commissionId),\n nickname: relation.vehicleNickname,\n licensePlateNumber: relation.licensePlate,\n primaryCar: !!relation.primaryCar,\n dealerId: relation.dealerId,\n dealerBrandCode: relation.dealerBrandCode,\n allocatedDealerCountry: relation.allocatedDealerCountry,\n preferredContact: relation.preferredContact,\n role: Role[relation.role as keyof typeof Role] ?? Role.UNKNOWN,\n enrollmentStatus: EnrollmentStatus[relation.enrollmentStatus as keyof typeof EnrollmentStatus] ?? EnrollmentStatus.UNKNOWN,\n devicePlatform: DevicePlatform[relation.vehicle?.modBackend as keyof typeof DevicePlatform] ?? DevicePlatform.UNKNOWN\n };\n }\n\n public static convertUserVehicleRelationsToFlattenedVehicles(relations: IVumUserVehicleRelation[]): IVumFlattenedVehicle[] {\n const vehicles: IVumFlattenedVehicle[] = [];\n relations.forEach(relation => {\n vehicles.push(this.convertUserVehicleRelationToFlattenedVehicle(relation));\n });\n return vehicles;\n }\n\n public static convertFlattenedVehicleToUserVehicleRelation(vehicle: IVumFlattenedVehicleForUpdate): IVumUserVehicleRelationUpdate {\n const commissionId = CommissionIdConverter.convertCommissionDataToId(vehicle.commissionNumber, vehicle.bid, vehicle.commissionNumberYear);\n return {\n vehicleNickname: vehicle.nickname,\n licensePlate: vehicle.licensePlateNumber,\n vehicle: {\n vin: vehicle.vin,\n commissionId,\n }\n };\n }\n}","import { DevicePlatform, EnrollmentStatus, Role } from '../enums';\nimport { PermissionGroup, PermissionService } from '../permissionService/PermissionService';\nimport { VdbsService } from '../vdbs/VdbsService';\nimport { CommissionIdConverter, ICommissionData } from './CommissionIdConverter';\nimport { NotEnrolledVehicleError } from './errors/NotEnrolledVehicleError';\nimport { IJSONPatchOperation, IVumUserVehicleRelation, IVumUserVehicleRelationsResponse, VumClient } from './VumClient';\nimport {\n IVumFlattenedVehicle,\n IVumFlattenedVehicleForUpdate,\n VumFlattenedVehicleConverter,\n} from './VumFlattenedVehicleConverter';\n\nexport class VumService {\n constructor(\n private readonly vumClient: VumClient,\n private readonly vdbsService: VdbsService,\n private readonly permissionService: PermissionService,\n ) {}\n\n public async getVehicles(): Promise {\n const vumResponse = await this.vumClient.getUserVehicleRelations();\n let vehicles: IVumFlattenedVehicle[] = [];\n if (vumResponse.relations) {\n const enrichedVehicles = await this.loadDevicePlatformIfMissing(vumResponse);\n vehicles = VumFlattenedVehicleConverter.convertUserVehicleRelationsToFlattenedVehicles(enrichedVehicles);\n }\n return vehicles;\n }\n\n public async getVehicle(vin: string): Promise {\n const vumResponse = await this.vumClient.getUserVehicleRelation(vin);\n let relation: IVumUserVehicleRelation = vumResponse.relation;\n if (!relation) {\n return undefined;\n }\n if (!relation.vehicle?.modBackend) {\n const modBackend = await this.vdbsService.getDevicePlatform(vin);\n relation = { ...relation, vehicle: { ...relation.vehicle, modBackend } };\n }\n return VumFlattenedVehicleConverter.convertUserVehicleRelationsToFlattenedVehicles([relation])[0];\n }\n\n public async updateNicknameAndLicensePlateForVehicle(vehicle: IVumFlattenedVehicleForUpdate): Promise {\n const dataToUpdate: IJSONPatchOperation[] = [\n {\n op: 'replace',\n path: '/vehicleNickname',\n value: vehicle.nickname ?? '',\n },\n {\n op: 'replace',\n path: '/licensePlate',\n value: vehicle.licensePlateNumber ?? '',\n },\n ];\n if (vehicle.vin) {\n await this.vumClient.patchVinVehicle(vehicle.vin, dataToUpdate);\n } else {\n const commissionData: ICommissionData = {\n commissionNumber: vehicle.commissionNumber!,\n bid: vehicle.bid!,\n commissionNumberYear: vehicle.commissionNumberYear!,\n };\n await this.vumClient.patchCommissionVehicle(commissionData, dataToUpdate);\n }\n }\n\n public async updatePrimaryVehicle(vehicle: IVumFlattenedVehicleForUpdate, isPrimaryCar: boolean): Promise {\n const dataToUpdate: IJSONPatchOperation[] = [\n {\n op: 'replace',\n path: '/primaryCar',\n value: String(isPrimaryCar),\n },\n ];\n if (vehicle.vin) {\n await this.vumClient.patchVinVehicle(vehicle.vin, dataToUpdate);\n } else {\n const commissionData: ICommissionData = {\n commissionNumber: vehicle.commissionNumber!,\n bid: vehicle.bid!,\n commissionNumberYear: vehicle.commissionNumberYear!,\n };\n await this.vumClient.patchCommissionVehicle(commissionData, dataToUpdate);\n }\n }\n\n public async addVinToCommissionDataVehicle(vehicle: IVumFlattenedVehicleForUpdate, vin: string): Promise {\n const commissionId = CommissionIdConverter.convertCommissionDataToId(\n vehicle.commissionNumber,\n vehicle.bid,\n vehicle.commissionNumberYear,\n );\n await this.vumClient.addVinToUserVehicle(commissionId!, vin);\n }\n\n public async addVehicle(vehicle: IVumFlattenedVehicleForUpdate): Promise {\n if (this.hasVehicleIdentifier(vehicle)) {\n await this.vumClient.addUserVehicleRelation(\n VumFlattenedVehicleConverter.convertFlattenedVehicleToUserVehicleRelation(vehicle),\n );\n return this.getAddedVehicleOrFallback(vehicle);\n } else {\n throw Error('Invalid vehicle');\n }\n }\n\n public async deleteVehicle(vehicle: IVumFlattenedVehicleForUpdate): Promise {\n if (vehicle.vin || (vehicle.commissionNumber && vehicle.bid && vehicle.commissionNumberYear)) {\n await this.vumClient.deleteUserVehicleRelation(\n VumFlattenedVehicleConverter.convertFlattenedVehicleToUserVehicleRelation(vehicle),\n );\n } else {\n throw Error('Invalid vehicle');\n }\n }\n\n public async disenrollUser(vehicle: IVumFlattenedVehicle): Promise {\n if (!vehicle.vin) {\n throw new NotEnrolledVehicleError();\n }\n const { PU_COMPLETED, GU, SU } = PermissionGroup;\n if (this.permissionService.hasPermission(vehicle, PU_COMPLETED)) {\n await this.vumClient.resetPrimaryUser(vehicle.vin);\n } else if (this.permissionService.hasPermission(vehicle, SU, GU)) {\n await this.vumClient.resetNonPrimaryUser(vehicle.vin);\n } else {\n throw new NotEnrolledVehicleError();\n }\n }\n\n public async getMbbUserId(): Promise {\n const vumResponse = await this.vumClient.getUserVehicleRelations();\n return vumResponse?.user?.mbbUserId ?? '';\n }\n\n public async deleteUser(): Promise {\n await this.vumClient.deleteUser();\n }\n\n public async removeUserFromVehicle(userId: string, vin: string): Promise {\n await this.vumClient.removeUserFromVehicle(userId, vin);\n }\n\n private async loadDevicePlatformIfMissing(\n vumResponse: IVumUserVehicleRelationsResponse,\n ): Promise {\n return Promise.all(\n vumResponse.relations.map(async (relation) => {\n const modBackend =\n relation.vehicle?.modBackend ?? (await this.vdbsService.getDevicePlatform(relation.vehicle?.vin));\n return {\n ...relation,\n vehicle: { ...relation.vehicle, modBackend },\n } as IVumUserVehicleRelation;\n }),\n );\n }\n\n private hasVehicleIdentifier(vehicle: IVumFlattenedVehicleForUpdate) {\n return vehicle.vin || (vehicle.commissionNumber && vehicle.bid && vehicle.commissionNumberYear);\n }\n\n private async getAddedVehicleOrFallback(vehicle: IVumFlattenedVehicleForUpdate): Promise {\n const fallbackVehicle: IVumFlattenedVehicle = {\n ...vehicle,\n role: Role.UNKNOWN,\n enrollmentStatus: EnrollmentStatus.UNKNOWN,\n devicePlatform: DevicePlatform.UNKNOWN,\n primaryCar: false,\n };\n try {\n if (vehicle.vin) {\n return (await this.getVehicle(vehicle.vin)) ?? fallbackVehicle;\n } else {\n return (await this.findMatchingCommissionDataVehicle(vehicle)) ?? fallbackVehicle;\n }\n } catch (e) {\n return fallbackVehicle;\n }\n }\n\n private async findMatchingCommissionDataVehicle(\n addedVehicle: IVumFlattenedVehicleForUpdate,\n ): Promise {\n const allVehicles = await this.getVehicles();\n\n return allVehicles.find(\n (vehicle) =>\n vehicle.commissionNumber === addedVehicle.commissionNumber &&\n vehicle.commissionNumberYear === addedVehicle.commissionNumberYear &&\n vehicle.bid === addedVehicle.bid,\n );\n }\n\n public async patchVinVehicle(vin: string, payload: IJSONPatchOperation[]) {\n return await this.vumClient.patchVinVehicle(vin, payload);\n }\n}","import { v4 as uuid } from 'uuid';\nimport { IAuthServiceV2 } from '@volkswagen-onehub/authservice';\n\nexport interface IVumRoleStatusResponse {\n readonly status: string;\n}\n\nexport class VumUserRoleClient {\n\n private readonly resourceHostId: string;\n\n private getGdcType = (isWcar: boolean) => isWcar ? `myvw-wcar-${this.stage}` : `myvw-mbb-${this.stage}`;\n\n constructor(private readonly authService: IAuthServiceV2, private readonly stage: string) {\n this.resourceHostId = `myvw-vum-${stage}`\n }\n\n public async getUserRoleStatus(vin: string, isWcar: boolean): Promise {\n let response: Response;\n try {\n response = await this.authService.get(this.resourceHostId, `users/me/${vin}/rolestatus?gdc=${this.getGdcType(isWcar)}`, { traceId: uuid() });\n } catch (e) {\n return undefined;\n }\n\n if (!response.ok) {\n return undefined;\n }\n\n return await response.json() as IVumRoleStatusResponse;\n }\n}","import { VumUserRoleClient } from './VumUserRoleClient';\nimport { DevicePlatform } from '../enums';\n\nexport enum VumUserRoleStatus {\n DISABLED_HMI = 'DISABLED_HMI',\n DISABLED_SPIN = 'DISABLED_SPIN',\n DISABLED_PU_SPIN_RESET = 'DISABLED_PU_SPIN_RESET',\n ENABLED = 'ENABLED',\n UNKNOWN = 'UNKNOWN'\n}\n\nexport class VumUserRoleService {\n constructor(private readonly vumUserRoleClient: VumUserRoleClient) {\n }\n\n public async getUserRoleStatus(vin: string, devicePlatform: DevicePlatform): Promise {\n const isWcar = devicePlatform === DevicePlatform.WCAR;\n const vumResponse = await this.vumUserRoleClient.getUserRoleStatus(vin, isWcar);\n if (!vumResponse) {\n throw Error(\"User role status undefined\");\n }\n\n switch (vumResponse.status?.toLowerCase()) {\n case \"enabled\":\n return VumUserRoleStatus.ENABLED;\n case \"disabled_hmi\":\n return VumUserRoleStatus.DISABLED_HMI;\n case \"disabled_spin\":\n return VumUserRoleStatus.DISABLED_SPIN;\n case \"disabled_pu_spin_reset\":\n return VumUserRoleStatus.DISABLED_PU_SPIN_RESET;\n default:\n return VumUserRoleStatus.UNKNOWN;\n }\n }\n}","export class NotEnrolledVehicleError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'Error due to disenrolling a vehicle which is not enrolled';\n }\n super(m);\n }\n}","export class VumProfileBrokenError extends Error {\n constructor(m?: string) {\n if (!m) {\n m = 'VUM profile seems to be broken';\n }\n super(m);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"NIL\", {\n enumerable: true,\n get: function get() {\n return _nil.default;\n }\n});\nObject.defineProperty(exports, \"parse\", {\n enumerable: true,\n get: function get() {\n return _parse.default;\n }\n});\nObject.defineProperty(exports, \"stringify\", {\n enumerable: true,\n get: function get() {\n return _stringify.default;\n }\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function get() {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function get() {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function get() {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function get() {\n return _v4.default;\n }\n});\nObject.defineProperty(exports, \"validate\", {\n enumerable: true,\n get: function get() {\n return _validate.default;\n }\n});\nObject.defineProperty(exports, \"version\", {\n enumerable: true,\n get: function get() {\n return _version.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nvar _nil = _interopRequireDefault(require(\"./nil.js\"));\n\nvar _version = _interopRequireDefault(require(\"./version.js\"));\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nvar _stringify = _interopRequireDefault(require(\"./stringify.js\"));\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (let i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n const output = [];\n const length32 = input.length * 32;\n const hexTab = '0123456789abcdef';\n\n for (let i = 0; i < length32; i += 8) {\n const x = input[i >> 5] >>> i % 32 & 0xff;\n const hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n let a = 1732584193;\n let b = -271733879;\n let c = -1732584194;\n let d = 271733878;\n\n for (let i = 0; i < x.length; i += 16) {\n const olda = a;\n const oldb = b;\n const oldc = c;\n const oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n const length8 = input.length * 8;\n const output = new Uint32Array(getOutputLength(length8));\n\n for (let i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n const lsw = (x & 0xffff) + (y & 0xffff);\n const msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nvar _default = {\n randomUUID\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = '00000000-0000-0000-0000-000000000000';\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction parse(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n let v;\n const arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\nvar _default = parse;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\n\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n const K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n const H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n const msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (let i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n const l = bytes.length / 4 + 2;\n const N = Math.ceil(l / 16);\n const M = new Array(N);\n\n for (let i = 0; i < N; ++i) {\n const arr = new Uint32Array(16);\n\n for (let j = 0; j < 16; ++j) {\n arr[j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n\n M[i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (let i = 0; i < N; ++i) {\n const W = new Uint32Array(80);\n\n for (let t = 0; t < 16; ++t) {\n W[t] = M[i][t];\n }\n\n for (let t = 16; t < 80; ++t) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n let a = H[0];\n let b = H[1];\n let c = H[2];\n let d = H[3];\n let e = H[4];\n\n for (let t = 0; t < 80; ++t) {\n const s = Math.floor(t / 20);\n const T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nexports.unsafeStringify = unsafeStringify;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nvar _default = stringify;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nlet _nodeId;\n\nlet _clockseq; // Previous uuid creation time\n\n\nlet _lastMSecs = 0;\nlet _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n let i = buf && offset || 0;\n const b = buf || new Array(16);\n options = options || {};\n let node = options.node || _nodeId;\n let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n const seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n const tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (let n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0, _stringify.unsafeStringify)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.URL = exports.DNS = void 0;\nexports.default = v35;\n\nvar _stringify = require(\"./stringify.js\");\n\nvar _parse = _interopRequireDefault(require(\"./parse.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n const bytes = [];\n\n for (let i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction v35(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n var _namespace;\n\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0, _parse.default)(namespace);\n }\n\n if (((_namespace = namespace) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n let bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _native = _interopRequireDefault(require(\"./native.js\"));\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _stringify = require(\"./stringify.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n if (_native.default.randomUUID && !buf && !options) {\n return _native.default.randomUUID();\n }\n\n options = options || {};\n\n const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0, _stringify.unsafeStringify)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regex = _interopRequireDefault(require(\"./regex.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex.default.test(uuid);\n}\n\nvar _default = validate;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _validate = _interopRequireDefault(require(\"./validate.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction version(uuid) {\n if (!(0, _validate.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.slice(14, 15), 16);\n}\n\nvar _default = version;\nexports.default = _default;","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)68?1900:2e3)};var f=function(e){return function(t){this[e]=+t}},h=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if(\"Z\"===e)return 0;var t=e.match(/([+-]|\\d\\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:\"+\"===t[0]?-n:n}(e)}],u=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?\"pm\":\"PM\");return n},c={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\\d{3}/,function(e){this.milliseconds=+e}],s:[i,f(\"seconds\")],ss:[i,f(\"seconds\")],m:[i,f(\"minutes\")],mm:[i,f(\"minutes\")],H:[i,f(\"hours\")],h:[i,f(\"hours\")],HH:[i,f(\"hours\")],hh:[i,f(\"hours\")],D:[i,f(\"day\")],DD:[r,f(\"day\")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\\[|\\]/g,\"\")===e&&(this.day=r)}],w:[i,f(\"week\")],ww:[r,f(\"week\")],M:[i,f(\"month\")],MM:[r,f(\"month\")],MMM:[o,function(e){var t=u(\"months\"),n=(u(\"monthsShort\")||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=u(\"months\").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\\d+/,f(\"year\")],YY:[r,function(e){this.year=a(e)}],YYYY:[/\\d{4}/,f(\"year\")],Z:h,ZZ:h};function l(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(e,t,n){return t||n.slice(1)}))}))).match(t),a=o.length,f=0;f-1)return new Date((\"X\"===t?1e3:1)*e);var i=l(t)(e),o=i.year,s=i.month,a=i.day,f=i.hours,h=i.minutes,u=i.seconds,d=i.milliseconds,c=i.zone,m=i.week,M=new Date,Y=a||(o||s?1:M.getDate()),p=o||M.getFullYear(),v=0;o&&!s||(v=s>0?s-1:M.getMonth());var D,w=f||0,g=h||0,y=u||0,L=d||0;return c?new Date(Date.UTC(p,v,Y,w,g,y,L+60*c.offset*1e3)):n?new Date(Date.UTC(p,v,Y,w,g,y,L)):(D=new Date(p,v,Y,w,g,y,L),m&&(D=r(D).week(m).toDate()),D)}catch(e){return new Date(\"\")}}(t,a,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(a)&&(this.$d=new Date(\"\")),s={}}else if(a instanceof Array)for(var c=a.length,m=1;m<=c;m+=1){o[1]=a[m-1];var M=n.apply(this,o);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===c&&(this.$d=new Date(\"\"))}else i.call(this,e)}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isBetween=i()}(this,(function(){\"use strict\";return function(e,i,t){i.prototype.isBetween=function(e,i,s,f){var n=t(e),o=t(i),r=\"(\"===(f=f||\"()\")[0],u=\")\"===f[1];return(r?this.isAfter(n,s):!this.isBefore(n,s))&&(u?this.isBefore(o,s):!this.isAfter(o,s))||(r?this.isBefore(n,s):!this.isAfter(n,s))&&(u?this.isAfter(o,s):!this.isBefore(o,s))}}}));","!function(e,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_isSameOrBefore=i()}(this,(function(){\"use strict\";return function(e,i){i.prototype.isSameOrBefore=function(e,i){return this.isSame(e,i)||this.isBefore(e,i)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_timezone=e()}(this,(function(){\"use strict\";var t={year:0,month:1,day:2,hour:3,minute:4,second:5},e={};return function(n,i,o){var r,a=function(t,n,i){void 0===i&&(i={});var o=new Date(t),r=function(t,n){void 0===n&&(n={});var i=n.timeZoneName||\"short\",o=t+\"|\"+i,r=e[o];return r||(r=new Intl.DateTimeFormat(\"en-US\",{hour12:!1,timeZone:t,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:i}),e[o]=r),r}(n,i);return r.formatToParts(o)},u=function(e,n){for(var i=a(e,n),r=[],u=0;u=0&&(r[c]=parseInt(m,10))}var d=r[3],l=24===d?0:d,h=r[0]+\"-\"+r[1]+\"-\"+r[2]+\" \"+l+\":\"+r[4]+\":\"+r[5]+\":000\",v=+e;return(o.utc(h).valueOf()-(v-=v%1e3))/6e4},f=i.prototype;f.tz=function(t,e){void 0===t&&(t=r);var n,i=this.utcOffset(),a=this.toDate(),u=a.toLocaleString(\"en-US\",{timeZone:t}),f=Math.round((a-new Date(u))/1e3/60),s=15*-Math.round(a.getTimezoneOffset()/15)-f;if(!Number(s))n=this.utcOffset(0,e);else if(n=o(u,{locale:this.$L}).$set(\"millisecond\",this.$ms).utcOffset(s,!0),e){var m=n.utcOffset();n=n.add(i-m,\"minute\")}return n.$x.$timezone=t,n},f.offsetName=function(t){var e=this.$x.$timezone||o.tz.guess(),n=a(this.valueOf(),e,{timeZoneName:t}).find((function(t){return\"timezonename\"===t.type.toLowerCase()}));return n&&n.value};var s=f.startOf;f.startOf=function(t,e){if(!this.$x||!this.$x.$timezone)return s.call(this,t,e);var n=o(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\"),{locale:this.$L});return s.call(n,t,e).tz(this.$x.$timezone,!0)},o.tz=function(t,e,n){var i=n&&e,a=n||e||r,f=u(+o(),a);if(\"string\"!=typeof t)return o(t).tz(a);var s=function(t,e,n){var i=t-60*e*1e3,o=u(i,n);if(e===o)return[i,e];var r=u(i-=60*(o-e)*1e3,n);return o===r?[i,o]:[t-60*Math.min(o,r)*1e3,Math.max(o,r)]}(o.utc(t,i).valueOf(),f,a),m=s[0],c=s[1],d=o(m).utcOffset(c);return d.$x.$timezone=a,d},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(t){r=t}}}));","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_utc=i()}(this,(function(){\"use strict\";var t=\"minute\",i=/[+-]\\d\\d(?::?\\d\\d)?/g,e=/([+-]|\\d\\d)/g;return function(s,f,n){var u=f.prototype;n.utc=function(t){var i={date:t,utc:!0,args:arguments};return new f(i)},u.utc=function(i){var e=n(this.toDate(),{locale:this.$L,utc:!0});return i?e.add(this.utcOffset(),t):e},u.local=function(){return n(this.toDate(),{locale:this.$L,utc:!1})};var o=u.parse;u.parse=function(t){t.utc&&(this.$u=!0),this.$utils().u(t.$offset)||(this.$offset=t.$offset),o.call(this,t)};var r=u.init;u.init=function(){if(this.$u){var t=this.$d;this.$y=t.getUTCFullYear(),this.$M=t.getUTCMonth(),this.$D=t.getUTCDate(),this.$W=t.getUTCDay(),this.$H=t.getUTCHours(),this.$m=t.getUTCMinutes(),this.$s=t.getUTCSeconds(),this.$ms=t.getUTCMilliseconds()}else r.call(this)};var a=u.utcOffset;u.utcOffset=function(s,f){var n=this.$utils().u;if(n(s))return this.$u?0:n(this.$offset)?a.call(this):this.$offset;if(\"string\"==typeof s&&(s=function(t){void 0===t&&(t=\"\");var s=t.match(i);if(!s)return null;var f=(\"\"+s[0]).match(e)||[\"-\",0,0],n=f[0],u=60*+f[1]+ +f[2];return 0===u?0:\"+\"===n?u:-u}(s),null===s))return this;var u=Math.abs(s)<=16?60*s:s,o=this;if(f)return o.$offset=u,o.$u=0===s,o;if(0!==s){var r=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(o=this.local().add(u+r,t)).$offset=u,o.$x.$localOffset=r}else o=this.utc();return o};var h=u.format;u.format=function(t){var i=t||(this.$u?\"YYYY-MM-DDTHH:mm:ss[Z]\":\"\");return h.call(this,i)},u.valueOf=function(){var t=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*t},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var l=u.toDate;u.toDate=function(t){return\"s\"===t&&this.$offset?n(this.format(\"YYYY-MM-DD HH:mm:ss:SSS\")).toDate():l.call(this)};var c=u.diff;u.diff=function(t,i,e){if(t&&this.$u===t.$u)return c.call(this,t,i,e);var s=this.local(),f=n(t).local();return c.call(s,f,i,e)}}}));","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.areaConversion=exports.timeConversion=exports.distanceConversion=exports.altitudeKeys=exports.latitudeKeys=exports.longitudeKeys=exports.MAXLON=exports.MINLON=exports.MAXLAT=exports.MINLAT=exports.earthRadius=exports.sexagesimalPattern=void 0;var sexagesimalPattern=/^([0-9]{1,3})°\\s*([0-9]{1,3}(?:\\.(?:[0-9]{1,}))?)['′]\\s*(([0-9]{1,3}(\\.([0-9]{1,}))?)[\"″]\\s*)?([NEOSW]?)$/;exports.sexagesimalPattern=sexagesimalPattern;var earthRadius=6378137;exports.earthRadius=earthRadius;var MINLAT=-90;exports.MINLAT=MINLAT;var MAXLAT=90;exports.MAXLAT=MAXLAT;var MINLON=-180;exports.MINLON=MINLON;var MAXLON=180;exports.MAXLON=MAXLON;var longitudeKeys=[\"lng\",\"lon\",\"longitude\",0];exports.longitudeKeys=longitudeKeys;var latitudeKeys=[\"lat\",\"latitude\",1];exports.latitudeKeys=latitudeKeys;var altitudeKeys=[\"alt\",\"altitude\",\"elevation\",\"elev\",2];exports.altitudeKeys=altitudeKeys;var distanceConversion={m:1,km:0.001,cm:100,mm:1000,mi:1/1609.344,sm:1/1852.216,ft:100/30.48,in:100/2.54,yd:1/0.9144};exports.distanceConversion=distanceConversion;var timeConversion={m:60,h:3600,d:86400};exports.timeConversion=timeConversion;var areaConversion={m2:1,km2:0.000001,ha:0.0001,a:0.01,ft2:10.763911,yd2:1.19599,in2:1550.0031};exports.areaConversion=areaConversion;areaConversion.sqm=areaConversion.m2;areaConversion.sqkm=areaConversion.km2;areaConversion.sqft=areaConversion.ft2;areaConversion.sqyd=areaConversion.yd2;areaConversion.sqin=areaConversion.in2;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var getCoordinateKey=function getCoordinateKey(point,keysToLookup){return keysToLookup.reduce(function(foundKey,key){if(typeof point===\"undefined\"||point===null){throw new Error(\"'\".concat(point,\"' is no valid coordinate.\"))}if(Object.prototype.hasOwnProperty.call(point,key)&&typeof key!==\"undefined\"&&typeof foundKey===\"undefined\"){foundKey=key;return key}return foundKey},undefined)};var _default=getCoordinateKey;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i1&&arguments[1]!==undefined?arguments[1]:{longitude:_constants.longitudeKeys,latitude:_constants.latitudeKeys,altitude:_constants.altitudeKeys};var longitude=(0,_getCoordinateKey.default)(point,keysToLookup.longitude);var latitude=(0,_getCoordinateKey.default)(point,keysToLookup.latitude);var altitude=(0,_getCoordinateKey.default)(point,keysToLookup.altitude);return _objectSpread({latitude:latitude,longitude:longitude},altitude?{altitude:altitude}:{})};var _default=getCoordinateKeys;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getLatitude=_interopRequireDefault(require(\"./getLatitude\"));var _getLongitude=_interopRequireDefault(require(\"./getLongitude\"));var _toRad=_interopRequireDefault(require(\"./toRad\"));var _robustAcos=_interopRequireDefault(require(\"./robustAcos\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getDistance=function getDistance(from,to){var accuracy=arguments.length>2&&arguments[2]!==undefined?arguments[2]:1;accuracy=typeof accuracy!==\"undefined\"&&!isNaN(accuracy)?accuracy:1;var fromLat=(0,_getLatitude.default)(from);var fromLon=(0,_getLongitude.default)(from);var toLat=(0,_getLatitude.default)(to);var toLon=(0,_getLongitude.default)(to);var distance=Math.acos((0,_robustAcos.default)(Math.sin((0,_toRad.default)(toLat))*Math.sin((0,_toRad.default)(fromLat))+Math.cos((0,_toRad.default)(toLat))*Math.cos((0,_toRad.default)(fromLat))*Math.cos((0,_toRad.default)(fromLon)-(0,_toRad.default)(toLon))))*_constants.earthRadius;return Math.round(distance/accuracy)*accuracy};var _default=getDistance;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLatitude=function getLatitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.latitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLatitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var _getCoordinateKey=_interopRequireDefault(require(\"./getCoordinateKey\"));var _toDecimal=_interopRequireDefault(require(\"./toDecimal\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var getLongitude=function getLongitude(point,raw){var latKey=(0,_getCoordinateKey.default)(point,_constants.longitudeKeys);if(typeof latKey===\"undefined\"||latKey===null){return}var value=point[latKey];return raw===true?value:(0,_toDecimal.default)(value)};var _default=getLongitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var isDecimal=function isDecimal(value){var checkedValue=value.toString().trim();if(isNaN(parseFloat(checkedValue))){return false}return parseFloat(checkedValue)===Number(checkedValue)};var _default=isDecimal;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var isSexagesimal=function isSexagesimal(value){return _constants.sexagesimalPattern.test(value.toString().trim())};var _default=isSexagesimal;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _getCoordinateKeys2=_interopRequireDefault(require(\"./getCoordinateKeys\"));var _isValidLatitude=_interopRequireDefault(require(\"./isValidLatitude\"));var _isValidLongitude=_interopRequireDefault(require(\"./isValidLongitude\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isValidCoordinate=function isValidCoordinate(point){var _getCoordinateKeys=(0,_getCoordinateKeys2.default)(point),latitude=_getCoordinateKeys.latitude,longitude=_getCoordinateKeys.longitude;if(Array.isArray(point)&&point.length>=2){return(0,_isValidLongitude.default)(point[0])&&(0,_isValidLatitude.default)(point[1])}if(typeof latitude===\"undefined\"||typeof longitude===\"undefined\"){return false}var lon=point[longitude];var lat=point[latitude];if(typeof lat===\"undefined\"||typeof lon===\"undefined\"){return false}if((0,_isValidLatitude.default)(lat)===false||(0,_isValidLongitude.default)(lon)===false){return false}return true};var _default=isValidCoordinate;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isValidLatitude=function isValidLatitude(value){if((0,_isDecimal.default)(value)){if(parseFloat(value)>_constants.MAXLAT||value<_constants.MINLAT){return false}return true}if((0,_isSexagesimal.default)(value)){return isValidLatitude((0,_sexagesimalToDecimal.default)(value))}return false};var _default=isValidLatitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _constants=require(\"./constants\");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}var isValidLongitude=function isValidLongitude(value){if((0,_isDecimal.default)(value)){if(parseFloat(value)>_constants.MAXLON||value<_constants.MINLON){return false}return true}if((0,_isSexagesimal.default)(value)){return isValidLongitude((0,_sexagesimalToDecimal.default)(value))}return false};var _default=isValidLongitude;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var robustAcos=function robustAcos(value){if(value>1){return 1}if(value<-1){return-1}return value};var _default=robustAcos;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _constants=require(\"./constants\");var sexagesimalToDecimal=function sexagesimalToDecimal(sexagesimal){var data=new RegExp(_constants.sexagesimalPattern).exec(sexagesimal.toString().trim());if(typeof data===\"undefined\"||data===null){throw new Error(\"Given value is not in sexagesimal format\")}var min=Number(data[2])/60||0;var sec=Number(data[4])/3600||0;var decimal=parseFloat(data[1])+min+sec;return[\"S\",\"W\"].includes(data[7])?-decimal:decimal};var _default=sexagesimalToDecimal;exports.default=_default;","\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;var _isDecimal=_interopRequireDefault(require(\"./isDecimal\"));var _isSexagesimal=_interopRequireDefault(require(\"./isSexagesimal\"));var _sexagesimalToDecimal=_interopRequireDefault(require(\"./sexagesimalToDecimal\"));var _isValidCoordinate=_interopRequireDefault(require(\"./isValidCoordinate\"));var _getCoordinateKeys=_interopRequireDefault(require(\"./getCoordinateKeys\"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable});keys.push.apply(keys,symbols)}return keys}function _objectSpread(target){for(var i=1;i\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n 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 (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(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 clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\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 = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _arrays = _interopRequireDefault(require(\"shallow-equal/arrays\"));\n\nvar _Autowhatever = _interopRequireDefault(require(\"./Autowhatever\"));\n\nvar _theme = require(\"./theme\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar alwaysTrue = function alwaysTrue() {\n return true;\n};\n\nvar defaultShouldRenderSuggestions = function defaultShouldRenderSuggestions(value) {\n return value.trim().length > 0;\n};\n\nvar defaultRenderSuggestionsContainer = function defaultRenderSuggestionsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar REASON_SUGGESTIONS_REVEALED = 'suggestions-revealed';\nvar REASON_SUGGESTIONS_UPDATED = 'suggestions-updated';\nvar REASON_SUGGESTION_SELECTED = 'suggestion-selected';\nvar REASON_INPUT_FOCUSED = 'input-focused';\nvar REASON_INPUT_CHANGED = 'input-changed';\nvar REASON_INPUT_BLURRED = 'input-blurred';\nvar REASON_ESCAPE_PRESSED = 'escape-pressed';\n\nvar Autosuggest = /*#__PURE__*/function (_Component) {\n _inherits(Autosuggest, _Component);\n\n var _super = _createSuper(Autosuggest);\n\n function Autosuggest(_ref2) {\n var _this;\n\n var _alwaysRenderSuggestions = _ref2.alwaysRenderSuggestions;\n\n _classCallCheck(this, Autosuggest);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseDown\", function (event) {\n _this.justClickedOnSuggestionsContainer = false;\n var node = event.detail && event.detail.target || // This is for testing only. Please show me a better way to emulate this.\n event.target;\n\n while (node !== null && node !== document) {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n // Suggestion was clicked\n return;\n }\n\n if (node === _this.suggestionsContainer) {\n // Something else inside suggestions container was clicked\n _this.justClickedOnSuggestionsContainer = true;\n return;\n }\n\n node = node.parentNode;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeAutowhateverRef\", function (autowhatever) {\n if (autowhatever !== null) {\n _this.autowhatever = autowhatever;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseEnter\", function (event, _ref3) {\n var sectionIndex = _ref3.sectionIndex,\n itemIndex = _ref3.itemIndex;\n\n _this.updateHighlightedSuggestion(sectionIndex, itemIndex);\n\n if (event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = true;\n }\n\n _this.justMouseEntered = true;\n setTimeout(function () {\n _this.justMouseEntered = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"highlightFirstSuggestion\", function () {\n _this.updateHighlightedSuggestion(_this.props.multiSection ? 0 : null, 0);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDocumentMouseUp\", function () {\n if (_this.pressedSuggestion && !_this.justSelectedSuggestion) {\n _this.input.focus();\n }\n\n _this.pressedSuggestion = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseDown\", function (event) {\n // Checking if this.justSelectedSuggestion is already true to not duplicate touch events in chrome\n // See: https://github.com/facebook/react/issues/9809#issuecomment-413978405\n if (!_this.justSelectedSuggestion) {\n _this.justSelectedSuggestion = true;\n _this.pressedSuggestion = event.target;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionsClearRequested\", function () {\n var onSuggestionsClearRequested = _this.props.onSuggestionsClearRequested;\n onSuggestionsClearRequested && onSuggestionsClearRequested();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionSelected\", function (event, data) {\n var _this$props = _this.props,\n alwaysRenderSuggestions = _this$props.alwaysRenderSuggestions,\n onSuggestionSelected = _this$props.onSuggestionSelected,\n onSuggestionsFetchRequested = _this$props.onSuggestionsFetchRequested;\n onSuggestionSelected && onSuggestionSelected(event, data);\n\n var keepSuggestionsOnSelect = _this.props.shouldKeepSuggestionsOnSelect(data.suggestion);\n\n if (alwaysRenderSuggestions || keepSuggestionsOnSelect) {\n onSuggestionsFetchRequested({\n value: data.suggestionValue,\n reason: REASON_SUGGESTION_SELECTED\n });\n } else {\n _this.onSuggestionsClearRequested();\n }\n\n _this.resetHighlightedSuggestion();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionClick\", function (event) {\n var _this$props2 = _this.props,\n alwaysRenderSuggestions = _this$props2.alwaysRenderSuggestions,\n focusInputOnSuggestionClick = _this$props2.focusInputOnSuggestionClick;\n\n var _this$getSuggestionIn = _this.getSuggestionIndices(_this.findSuggestionElement(event.target)),\n sectionIndex = _this$getSuggestionIn.sectionIndex,\n suggestionIndex = _this$getSuggestionIn.suggestionIndex;\n\n var clickedSuggestion = _this.getSuggestion(sectionIndex, suggestionIndex);\n\n var clickedSuggestionValue = _this.props.getSuggestionValue(clickedSuggestion);\n\n _this.maybeCallOnChange(event, clickedSuggestionValue, 'click');\n\n _this.onSuggestionSelected(event, {\n suggestion: clickedSuggestion,\n suggestionValue: clickedSuggestionValue,\n suggestionIndex: suggestionIndex,\n sectionIndex: sectionIndex,\n method: 'click'\n });\n\n var keepSuggestionsOnSelect = _this.props.shouldKeepSuggestionsOnSelect(clickedSuggestion);\n\n if (!(alwaysRenderSuggestions || keepSuggestionsOnSelect)) {\n _this.closeSuggestions();\n }\n\n if (focusInputOnSuggestionClick === true) {\n _this.input.focus();\n } else {\n _this.onBlur();\n }\n\n setTimeout(function () {\n _this.justSelectedSuggestion = false;\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function () {\n var _this$props3 = _this.props,\n inputProps = _this$props3.inputProps,\n shouldRenderSuggestions = _this$props3.shouldRenderSuggestions;\n var value = inputProps.value,\n onBlur = inputProps.onBlur;\n\n var highlightedSuggestion = _this.getHighlightedSuggestion();\n\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_BLURRED);\n\n _this.setState({\n isFocused: false,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n });\n\n onBlur && onBlur(_this.blurEvent, {\n highlightedSuggestion: highlightedSuggestion\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionMouseLeave\", function (event) {\n _this.resetHighlightedSuggestion(false); // shouldResetValueBeforeUpDown\n\n\n if (_this.justSelectedSuggestion && event.target === _this.pressedSuggestion) {\n _this.justSelectedSuggestion = false;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchStart\", function () {\n _this.justSelectedSuggestion = true; // todo: event.preventDefault when https://github.com/facebook/react/issues/2043\n // todo: gets released so onSuggestionMouseDown won't fire in chrome\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSuggestionTouchMove\", function () {\n _this.justSelectedSuggestion = false;\n _this.pressedSuggestion = null;\n\n _this.input.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"itemProps\", function (_ref4) {\n var sectionIndex = _ref4.sectionIndex,\n itemIndex = _ref4.itemIndex;\n return {\n 'data-section-index': sectionIndex,\n 'data-suggestion-index': itemIndex,\n onMouseEnter: _this.onSuggestionMouseEnter,\n onMouseLeave: _this.onSuggestionMouseLeave,\n onMouseDown: _this.onSuggestionMouseDown,\n onTouchStart: _this.onSuggestionTouchStart,\n onTouchMove: _this.onSuggestionTouchMove,\n onClick: _this.onSuggestionClick\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"renderSuggestionsContainer\", function (_ref5) {\n var containerProps = _ref5.containerProps,\n children = _ref5.children;\n var renderSuggestionsContainer = _this.props.renderSuggestionsContainer;\n return renderSuggestionsContainer({\n containerProps: containerProps,\n children: children,\n query: _this.getQuery()\n });\n });\n\n _this.state = {\n isFocused: false,\n isCollapsed: !_alwaysRenderSuggestions,\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null\n };\n _this.justPressedUpDown = false;\n _this.justMouseEntered = false;\n _this.pressedSuggestion = null;\n return _this;\n }\n\n _createClass(Autosuggest, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown);\n document.addEventListener('mouseup', this.onDocumentMouseUp);\n this.input = this.autowhatever.input;\n this.suggestionsContainer = this.autowhatever.itemsContainer;\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n // When highlightFirstSuggestion becomes deactivated, if the first suggestion was\n // set, we should reset the suggestion back to the unselected default state.\n var shouldResetHighlighting = this.state.highlightedSuggestionIndex === 0 && this.props.highlightFirstSuggestion && !nextProps.highlightFirstSuggestion;\n\n if ((0, _arrays[\"default\"])(nextProps.suggestions, this.props.suggestions)) {\n if (nextProps.highlightFirstSuggestion && nextProps.suggestions.length > 0 && this.justPressedUpDown === false && this.justMouseEntered === false) {\n this.highlightFirstSuggestion();\n } else if (shouldResetHighlighting) {\n this.resetHighlightedSuggestion();\n }\n } else {\n if (this.willRenderSuggestions(nextProps, REASON_SUGGESTIONS_UPDATED)) {\n if (this.state.isCollapsed && !this.justSelectedSuggestion) {\n this.revealSuggestions();\n }\n\n if (shouldResetHighlighting) {\n this.resetHighlightedSuggestion();\n }\n } else {\n this.resetHighlightedSuggestion();\n }\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState) {\n var _this$props4 = this.props,\n suggestions = _this$props4.suggestions,\n onSuggestionHighlighted = _this$props4.onSuggestionHighlighted,\n highlightFirstSuggestion = _this$props4.highlightFirstSuggestion;\n\n if (!(0, _arrays[\"default\"])(suggestions, prevProps.suggestions) && suggestions.length > 0 && highlightFirstSuggestion) {\n this.highlightFirstSuggestion();\n return;\n }\n\n if (onSuggestionHighlighted) {\n var highlightedSuggestion = this.getHighlightedSuggestion();\n var prevHighlightedSuggestion = prevState.highlightedSuggestion;\n\n if (highlightedSuggestion != prevHighlightedSuggestion) {\n onSuggestionHighlighted({\n suggestion: highlightedSuggestion\n });\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown);\n document.removeEventListener('mouseup', this.onDocumentMouseUp);\n }\n }, {\n key: \"updateHighlightedSuggestion\",\n value: function updateHighlightedSuggestion(sectionIndex, suggestionIndex, prevValue) {\n var _this2 = this;\n\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n\n if (suggestionIndex === null) {\n valueBeforeUpDown = null;\n } else if (valueBeforeUpDown === null && typeof prevValue !== 'undefined') {\n valueBeforeUpDown = prevValue;\n }\n\n return {\n highlightedSectionIndex: sectionIndex,\n highlightedSuggestionIndex: suggestionIndex,\n highlightedSuggestion: suggestionIndex === null ? null : _this2.getSuggestion(sectionIndex, suggestionIndex),\n valueBeforeUpDown: valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"resetHighlightedSuggestion\",\n value: function resetHighlightedSuggestion() {\n var shouldResetValueBeforeUpDown = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState(function (state) {\n var valueBeforeUpDown = state.valueBeforeUpDown;\n return {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: shouldResetValueBeforeUpDown ? null : valueBeforeUpDown\n };\n });\n }\n }, {\n key: \"revealSuggestions\",\n value: function revealSuggestions() {\n this.setState({\n isCollapsed: false\n });\n }\n }, {\n key: \"closeSuggestions\",\n value: function closeSuggestions() {\n this.setState({\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null,\n valueBeforeUpDown: null,\n isCollapsed: true\n });\n }\n }, {\n key: \"getSuggestion\",\n value: function getSuggestion(sectionIndex, suggestionIndex) {\n var _this$props5 = this.props,\n suggestions = _this$props5.suggestions,\n multiSection = _this$props5.multiSection,\n getSectionSuggestions = _this$props5.getSectionSuggestions;\n\n if (multiSection) {\n return getSectionSuggestions(suggestions[sectionIndex])[suggestionIndex];\n }\n\n return suggestions[suggestionIndex];\n }\n }, {\n key: \"getHighlightedSuggestion\",\n value: function getHighlightedSuggestion() {\n var _this$state = this.state,\n highlightedSectionIndex = _this$state.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state.highlightedSuggestionIndex;\n\n if (highlightedSuggestionIndex === null) {\n return null;\n }\n\n return this.getSuggestion(highlightedSectionIndex, highlightedSuggestionIndex);\n }\n }, {\n key: \"getSuggestionValueByIndex\",\n value: function getSuggestionValueByIndex(sectionIndex, suggestionIndex) {\n var getSuggestionValue = this.props.getSuggestionValue;\n return getSuggestionValue(this.getSuggestion(sectionIndex, suggestionIndex));\n }\n }, {\n key: \"getSuggestionIndices\",\n value: function getSuggestionIndices(suggestionElement) {\n var sectionIndex = suggestionElement.getAttribute('data-section-index');\n var suggestionIndex = suggestionElement.getAttribute('data-suggestion-index');\n return {\n sectionIndex: typeof sectionIndex === 'string' ? parseInt(sectionIndex, 10) : null,\n suggestionIndex: parseInt(suggestionIndex, 10)\n };\n }\n }, {\n key: \"findSuggestionElement\",\n value: function findSuggestionElement(startNode) {\n var node = startNode;\n\n do {\n if (node.getAttribute && node.getAttribute('data-suggestion-index') !== null) {\n return node;\n }\n\n node = node.parentNode;\n } while (node !== null);\n\n console.error('Clicked element:', startNode); // eslint-disable-line no-console\n\n throw new Error(\"Couldn't find suggestion element\");\n }\n }, {\n key: \"maybeCallOnChange\",\n value: function maybeCallOnChange(event, newValue, method) {\n var _this$props$inputProp = this.props.inputProps,\n value = _this$props$inputProp.value,\n onChange = _this$props$inputProp.onChange;\n\n if (newValue !== value) {\n onChange(event, {\n newValue: newValue,\n method: method\n });\n }\n }\n }, {\n key: \"willRenderSuggestions\",\n value: function willRenderSuggestions(props, reason) {\n var suggestions = props.suggestions,\n inputProps = props.inputProps,\n shouldRenderSuggestions = props.shouldRenderSuggestions;\n var value = inputProps.value;\n return suggestions.length > 0 && shouldRenderSuggestions(value, reason);\n }\n }, {\n key: \"getQuery\",\n value: function getQuery() {\n var inputProps = this.props.inputProps;\n var value = inputProps.value;\n var valueBeforeUpDown = this.state.valueBeforeUpDown;\n return (valueBeforeUpDown === null ? value : valueBeforeUpDown).trim();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$props6 = this.props,\n suggestions = _this$props6.suggestions,\n renderInputComponent = _this$props6.renderInputComponent,\n onSuggestionsFetchRequested = _this$props6.onSuggestionsFetchRequested,\n renderSuggestion = _this$props6.renderSuggestion,\n inputProps = _this$props6.inputProps,\n multiSection = _this$props6.multiSection,\n renderSectionTitle = _this$props6.renderSectionTitle,\n id = _this$props6.id,\n getSectionSuggestions = _this$props6.getSectionSuggestions,\n theme = _this$props6.theme,\n getSuggestionValue = _this$props6.getSuggestionValue,\n alwaysRenderSuggestions = _this$props6.alwaysRenderSuggestions,\n highlightFirstSuggestion = _this$props6.highlightFirstSuggestion,\n containerProps = _this$props6.containerProps;\n var _this$state2 = this.state,\n isFocused = _this$state2.isFocused,\n isCollapsed = _this$state2.isCollapsed,\n highlightedSectionIndex = _this$state2.highlightedSectionIndex,\n highlightedSuggestionIndex = _this$state2.highlightedSuggestionIndex,\n valueBeforeUpDown = _this$state2.valueBeforeUpDown;\n var shouldRenderSuggestions = alwaysRenderSuggestions ? alwaysTrue : this.props.shouldRenderSuggestions;\n var value = inputProps.value,\n _onFocus = inputProps.onFocus,\n _onKeyDown = inputProps.onKeyDown;\n var willRenderSuggestions = this.willRenderSuggestions(this.props, 'render');\n var isOpen = alwaysRenderSuggestions || isFocused && !isCollapsed && willRenderSuggestions;\n var items = isOpen ? suggestions : [];\n\n var autowhateverInputProps = _objectSpread({}, inputProps, {\n onFocus: function onFocus(event) {\n if (!_this3.justSelectedSuggestion && !_this3.justClickedOnSuggestionsContainer) {\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_FOCUSED);\n\n _this3.setState({\n isFocused: true,\n isCollapsed: !shouldRender\n });\n\n _onFocus && _onFocus(event);\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_INPUT_FOCUSED\n });\n }\n }\n },\n onBlur: function onBlur(event) {\n if (_this3.justClickedOnSuggestionsContainer) {\n _this3.input.focus();\n\n return;\n }\n\n _this3.blurEvent = event;\n\n if (!_this3.justSelectedSuggestion) {\n _this3.onBlur();\n\n _this3.onSuggestionsClearRequested();\n }\n },\n onChange: function onChange(event) {\n var value = event.target.value;\n var shouldRender = shouldRenderSuggestions(value, REASON_INPUT_CHANGED);\n\n _this3.maybeCallOnChange(event, value, 'type');\n\n if (_this3.suggestionsContainer) {\n _this3.suggestionsContainer.scrollTop = 0;\n }\n\n _this3.setState(_objectSpread({}, highlightFirstSuggestion ? {} : {\n highlightedSectionIndex: null,\n highlightedSuggestionIndex: null,\n highlightedSuggestion: null\n }, {\n valueBeforeUpDown: null,\n isCollapsed: !shouldRender\n }));\n\n if (shouldRender) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_INPUT_CHANGED\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n },\n onKeyDown: function onKeyDown(event, data) {\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n // ArrowUp\n if (isCollapsed) {\n if (shouldRenderSuggestions(value, REASON_SUGGESTIONS_REVEALED)) {\n onSuggestionsFetchRequested({\n value: value,\n reason: REASON_SUGGESTIONS_REVEALED\n });\n\n _this3.revealSuggestions();\n\n event.preventDefault(); // We act on the key.\n }\n } else if (suggestions.length > 0) {\n var newHighlightedSectionIndex = data.newHighlightedSectionIndex,\n newHighlightedItemIndex = data.newHighlightedItemIndex;\n var newValue;\n\n if (newHighlightedItemIndex === null) {\n // valueBeforeUpDown can be null if, for example, user\n // hovers on the first suggestion and then pressed Up.\n // If that happens, use the original input value.\n newValue = valueBeforeUpDown === null ? value : valueBeforeUpDown;\n } else {\n newValue = _this3.getSuggestionValueByIndex(newHighlightedSectionIndex, newHighlightedItemIndex);\n }\n\n _this3.updateHighlightedSuggestion(newHighlightedSectionIndex, newHighlightedItemIndex, value);\n\n _this3.maybeCallOnChange(event, newValue, keyCode === 40 ? 'down' : 'up');\n\n event.preventDefault(); // We act on the key.\n }\n\n _this3.justPressedUpDown = true;\n setTimeout(function () {\n _this3.justPressedUpDown = false;\n });\n break;\n // Enter\n\n case 13:\n {\n // See #388\n if (event.keyCode === 229) {\n break;\n }\n\n var highlightedSuggestion = _this3.getHighlightedSuggestion();\n\n if (isOpen && !alwaysRenderSuggestions) {\n _this3.closeSuggestions();\n }\n\n if (highlightedSuggestion != null) {\n event.preventDefault();\n\n var _newValue = getSuggestionValue(highlightedSuggestion);\n\n _this3.maybeCallOnChange(event, _newValue, 'enter');\n\n _this3.onSuggestionSelected(event, {\n suggestion: highlightedSuggestion,\n suggestionValue: _newValue,\n suggestionIndex: highlightedSuggestionIndex,\n sectionIndex: highlightedSectionIndex,\n method: 'enter'\n });\n\n _this3.justSelectedSuggestion = true;\n setTimeout(function () {\n _this3.justSelectedSuggestion = false;\n });\n }\n\n break;\n }\n // Escape\n\n case 27:\n {\n if (isOpen) {\n // If input.type === 'search', the browser clears the input\n // when Escape is pressed. We want to disable this default\n // behaviour so that, when suggestions are shown, we just hide\n // them, without clearing the input.\n event.preventDefault();\n }\n\n var willCloseSuggestions = isOpen && !alwaysRenderSuggestions;\n\n if (valueBeforeUpDown === null) {\n // Didn't interact with Up/Down\n if (!willCloseSuggestions) {\n var _newValue2 = '';\n\n _this3.maybeCallOnChange(event, _newValue2, 'escape');\n\n if (shouldRenderSuggestions(_newValue2, REASON_ESCAPE_PRESSED)) {\n onSuggestionsFetchRequested({\n value: _newValue2,\n reason: REASON_ESCAPE_PRESSED\n });\n } else {\n _this3.onSuggestionsClearRequested();\n }\n }\n } else {\n // Interacted with Up/Down\n _this3.maybeCallOnChange(event, valueBeforeUpDown, 'escape');\n }\n\n if (willCloseSuggestions) {\n _this3.onSuggestionsClearRequested();\n\n _this3.closeSuggestions();\n } else {\n _this3.resetHighlightedSuggestion();\n }\n\n break;\n }\n }\n\n _onKeyDown && _onKeyDown(event);\n }\n });\n\n var renderSuggestionData = {\n query: this.getQuery()\n };\n return /*#__PURE__*/_react[\"default\"].createElement(_Autowhatever[\"default\"], {\n multiSection: multiSection,\n items: items,\n renderInputComponent: renderInputComponent,\n renderItemsContainer: this.renderSuggestionsContainer,\n renderItem: renderSuggestion,\n renderItemData: renderSuggestionData,\n renderSectionTitle: renderSectionTitle,\n getSectionItems: getSectionSuggestions,\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedSuggestionIndex,\n containerProps: containerProps,\n inputProps: autowhateverInputProps,\n itemProps: this.itemProps,\n theme: (0, _theme.mapToAutowhateverTheme)(theme),\n id: id,\n ref: this.storeAutowhateverRef\n });\n }\n }]);\n\n return Autosuggest;\n}(_react.Component);\n\nexports[\"default\"] = Autosuggest;\n\n_defineProperty(Autosuggest, \"propTypes\", {\n suggestions: _propTypes[\"default\"].array.isRequired,\n onSuggestionsFetchRequested: function onSuggestionsFetchRequested(props, propName) {\n var onSuggestionsFetchRequested = props[propName];\n\n if (typeof onSuggestionsFetchRequested !== 'function') {\n throw new Error(\"'onSuggestionsFetchRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsFetchRequestedProp\");\n }\n },\n onSuggestionsClearRequested: function onSuggestionsClearRequested(props, propName) {\n var onSuggestionsClearRequested = props[propName];\n\n if (props.alwaysRenderSuggestions === false && typeof onSuggestionsClearRequested !== 'function') {\n throw new Error(\"'onSuggestionsClearRequested' must be implemented. See: https://github.com/moroshko/react-autosuggest#onSuggestionsClearRequestedProp\");\n }\n },\n shouldKeepSuggestionsOnSelect: _propTypes[\"default\"].func,\n onSuggestionSelected: _propTypes[\"default\"].func,\n onSuggestionHighlighted: _propTypes[\"default\"].func,\n renderInputComponent: _propTypes[\"default\"].func,\n renderSuggestionsContainer: _propTypes[\"default\"].func,\n getSuggestionValue: _propTypes[\"default\"].func.isRequired,\n renderSuggestion: _propTypes[\"default\"].func.isRequired,\n inputProps: function inputProps(props, propName) {\n var inputProps = props[propName];\n\n if (!inputProps) {\n throw new Error(\"'inputProps' must be passed.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'value')) {\n throw new Error(\"'inputProps' must have 'value'.\");\n }\n\n if (!Object.prototype.hasOwnProperty.call(inputProps, 'onChange')) {\n throw new Error(\"'inputProps' must have 'onChange'.\");\n }\n },\n shouldRenderSuggestions: _propTypes[\"default\"].func,\n alwaysRenderSuggestions: _propTypes[\"default\"].bool,\n multiSection: _propTypes[\"default\"].bool,\n renderSectionTitle: function renderSectionTitle(props, propName) {\n var renderSectionTitle = props[propName];\n\n if (props.multiSection === true && typeof renderSectionTitle !== 'function') {\n throw new Error(\"'renderSectionTitle' must be implemented. See: https://github.com/moroshko/react-autosuggest#renderSectionTitleProp\");\n }\n },\n getSectionSuggestions: function getSectionSuggestions(props, propName) {\n var getSectionSuggestions = props[propName];\n\n if (props.multiSection === true && typeof getSectionSuggestions !== 'function') {\n throw new Error(\"'getSectionSuggestions' must be implemented. See: https://github.com/moroshko/react-autosuggest#getSectionSuggestionsProp\");\n }\n },\n focusInputOnSuggestionClick: _propTypes[\"default\"].bool,\n highlightFirstSuggestion: _propTypes[\"default\"].bool,\n theme: _propTypes[\"default\"].object,\n id: _propTypes[\"default\"].string,\n containerProps: _propTypes[\"default\"].object // Arbitrary container props\n\n});\n\n_defineProperty(Autosuggest, \"defaultProps\", {\n renderSuggestionsContainer: defaultRenderSuggestionsContainer,\n shouldRenderSuggestions: defaultShouldRenderSuggestions,\n alwaysRenderSuggestions: false,\n multiSection: false,\n shouldKeepSuggestionsOnSelect: function shouldKeepSuggestionsOnSelect() {\n return false;\n },\n focusInputOnSuggestionClick: true,\n highlightFirstSuggestion: false,\n theme: _theme.defaultTheme,\n id: '1',\n containerProps: {}\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sectionIterator = _interopRequireDefault(require(\"section-iterator\"));\n\nvar _reactThemeable = _interopRequireDefault(require(\"react-themeable\"));\n\nvar _SectionTitle = _interopRequireDefault(require(\"./SectionTitle\"));\n\nvar _ItemList = _interopRequireDefault(require(\"./ItemList\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(n); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar emptyObject = {};\n\nvar defaultRenderInputComponent = function defaultRenderInputComponent(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"input\", props);\n};\n\nvar defaultRenderItemsContainer = function defaultRenderItemsContainer(_ref) {\n var containerProps = _ref.containerProps,\n children = _ref.children;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, children);\n};\n\nvar defaultTheme = {\n container: 'react-autowhatever__container',\n containerOpen: 'react-autowhatever__container--open',\n input: 'react-autowhatever__input',\n inputOpen: 'react-autowhatever__input--open',\n inputFocused: 'react-autowhatever__input--focused',\n itemsContainer: 'react-autowhatever__items-container',\n itemsContainerOpen: 'react-autowhatever__items-container--open',\n itemsList: 'react-autowhatever__items-list',\n item: 'react-autowhatever__item',\n itemFirst: 'react-autowhatever__item--first',\n itemHighlighted: 'react-autowhatever__item--highlighted',\n sectionContainer: 'react-autowhatever__section-container',\n sectionContainerFirst: 'react-autowhatever__section-container--first',\n sectionTitle: 'react-autowhatever__section-title'\n};\n\nvar Autowhatever = /*#__PURE__*/function (_Component) {\n _inherits(Autowhatever, _Component);\n\n var _super = _createSuper(Autowhatever);\n\n function Autowhatever(props) {\n var _this;\n\n _classCallCheck(this, Autowhatever);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"storeInputReference\", function (input) {\n if (input !== null) {\n _this.input = input;\n }\n\n var userRef = _this.props.inputProps.ref;\n\n if (userRef) {\n if (typeof userRef === 'function') {\n userRef(input);\n } else if (_typeof(userRef) === 'object' && Object.prototype.hasOwnProperty.call(userRef, 'current')) {\n userRef.current = input;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemsContainerReference\", function (itemsContainer) {\n if (itemsContainer !== null) {\n _this.itemsContainer = itemsContainer;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onHighlightedItemChange\", function (highlightedItem) {\n _this.highlightedItem = highlightedItem;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getItemId\", function (sectionIndex, itemIndex) {\n if (itemIndex === null) {\n return null;\n }\n\n var id = _this.props.id;\n var section = sectionIndex === null ? '' : \"section-\".concat(sectionIndex);\n return \"react-autowhatever-\".concat(id, \"-\").concat(section, \"-item-\").concat(itemIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onFocus\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: true\n });\n\n inputProps.onFocus && inputProps.onFocus(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onBlur\", function (event) {\n var inputProps = _this.props.inputProps;\n\n _this.setState({\n isInputFocused: false\n });\n\n inputProps.onBlur && inputProps.onBlur(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onKeyDown\", function (event) {\n var _this$props = _this.props,\n inputProps = _this$props.inputProps,\n highlightedSectionIndex = _this$props.highlightedSectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex;\n var keyCode = event.keyCode;\n\n switch (keyCode) {\n case 40: // ArrowDown\n\n case 38:\n {\n // ArrowUp\n var nextPrev = keyCode === 40 ? 'next' : 'prev';\n\n var _this$sectionIterator = _this.sectionIterator[nextPrev]([highlightedSectionIndex, highlightedItemIndex]),\n _this$sectionIterator2 = _slicedToArray(_this$sectionIterator, 2),\n newHighlightedSectionIndex = _this$sectionIterator2[0],\n newHighlightedItemIndex = _this$sectionIterator2[1];\n\n inputProps.onKeyDown(event, {\n newHighlightedSectionIndex: newHighlightedSectionIndex,\n newHighlightedItemIndex: newHighlightedItemIndex\n });\n break;\n }\n\n default:\n inputProps.onKeyDown(event, {\n highlightedSectionIndex: highlightedSectionIndex,\n highlightedItemIndex: highlightedItemIndex\n });\n }\n });\n\n _this.highlightedItem = null;\n _this.state = {\n isInputFocused: false\n };\n\n _this.setSectionsItems(props);\n\n _this.setSectionIterator(props);\n\n _this.setTheme(props);\n\n return _this;\n }\n\n _createClass(Autowhatever, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.ensureHighlightedItemIsVisible();\n } // eslint-disable-next-line camelcase, react/sort-comp\n\n }, {\n key: \"UNSAFE_componentWillReceiveProps\",\n value: function UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.items !== this.props.items) {\n this.setSectionsItems(nextProps);\n }\n\n if (nextProps.items !== this.props.items || nextProps.multiSection !== this.props.multiSection) {\n this.setSectionIterator(nextProps);\n }\n\n if (nextProps.theme !== this.props.theme) {\n this.setTheme(nextProps);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.ensureHighlightedItemIsVisible();\n }\n }, {\n key: \"setSectionsItems\",\n value: function setSectionsItems(props) {\n if (props.multiSection) {\n this.sectionsItems = props.items.map(function (section) {\n return props.getSectionItems(section);\n });\n this.sectionsLengths = this.sectionsItems.map(function (items) {\n return items.length;\n });\n this.allSectionsAreEmpty = this.sectionsLengths.every(function (itemsCount) {\n return itemsCount === 0;\n });\n }\n }\n }, {\n key: \"setSectionIterator\",\n value: function setSectionIterator(props) {\n this.sectionIterator = (0, _sectionIterator[\"default\"])({\n multiSection: props.multiSection,\n data: props.multiSection ? this.sectionsLengths : props.items.length\n });\n }\n }, {\n key: \"setTheme\",\n value: function setTheme(props) {\n this.theme = (0, _reactThemeable[\"default\"])(props.theme);\n }\n }, {\n key: \"renderSections\",\n value: function renderSections() {\n var _this2 = this;\n\n if (this.allSectionsAreEmpty) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props2 = this.props,\n id = _this$props2.id,\n items = _this$props2.items,\n renderItem = _this$props2.renderItem,\n renderItemData = _this$props2.renderItemData,\n renderSectionTitle = _this$props2.renderSectionTitle,\n highlightedSectionIndex = _this$props2.highlightedSectionIndex,\n highlightedItemIndex = _this$props2.highlightedItemIndex,\n itemProps = _this$props2.itemProps;\n return items.map(function (section, sectionIndex) {\n var keyPrefix = \"react-autowhatever-\".concat(id, \"-\");\n var sectionKeyPrefix = \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isFirstSection = sectionIndex === 0; // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"container\"), 'sectionContainer', isFirstSection && 'sectionContainerFirst'), /*#__PURE__*/_react[\"default\"].createElement(_SectionTitle[\"default\"], {\n section: section,\n renderSectionTitle: renderSectionTitle,\n theme: theme,\n sectionKeyPrefix: sectionKeyPrefix\n }), /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: _this2.sectionsItems[sectionIndex],\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n sectionIndex: sectionIndex,\n highlightedItemIndex: highlightedSectionIndex === sectionIndex ? highlightedItemIndex : null,\n onHighlightedItemChange: _this2.onHighlightedItemChange,\n getItemId: _this2.getItemId,\n theme: theme,\n keyPrefix: keyPrefix,\n ref: _this2.storeItemsListReference\n }));\n /* eslint-enable react/jsx-key */\n });\n }\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n var theme = this.theme;\n var _this$props3 = this.props,\n id = _this$props3.id,\n renderItem = _this$props3.renderItem,\n renderItemData = _this$props3.renderItemData,\n highlightedSectionIndex = _this$props3.highlightedSectionIndex,\n highlightedItemIndex = _this$props3.highlightedItemIndex,\n itemProps = _this$props3.itemProps;\n return /*#__PURE__*/_react[\"default\"].createElement(_ItemList[\"default\"], {\n items: items,\n itemProps: itemProps,\n renderItem: renderItem,\n renderItemData: renderItemData,\n highlightedItemIndex: highlightedSectionIndex === null ? highlightedItemIndex : null,\n onHighlightedItemChange: this.onHighlightedItemChange,\n getItemId: this.getItemId,\n theme: theme,\n keyPrefix: \"react-autowhatever-\".concat(id, \"-\")\n });\n }\n }, {\n key: \"ensureHighlightedItemIsVisible\",\n value: function ensureHighlightedItemIsVisible() {\n var highlightedItem = this.highlightedItem;\n\n if (!highlightedItem) {\n return;\n }\n\n var itemsContainer = this.itemsContainer;\n var itemOffsetRelativeToContainer = highlightedItem.offsetParent === itemsContainer ? highlightedItem.offsetTop : highlightedItem.offsetTop - itemsContainer.offsetTop;\n var scrollTop = itemsContainer.scrollTop; // Top of the visible area\n\n if (itemOffsetRelativeToContainer < scrollTop) {\n // Item is off the top of the visible area\n scrollTop = itemOffsetRelativeToContainer;\n } else if (itemOffsetRelativeToContainer + highlightedItem.offsetHeight > scrollTop + itemsContainer.offsetHeight) {\n // Item is off the bottom of the visible area\n scrollTop = itemOffsetRelativeToContainer + highlightedItem.offsetHeight - itemsContainer.offsetHeight;\n }\n\n if (scrollTop !== itemsContainer.scrollTop) {\n itemsContainer.scrollTop = scrollTop;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var theme = this.theme;\n var _this$props4 = this.props,\n id = _this$props4.id,\n multiSection = _this$props4.multiSection,\n renderInputComponent = _this$props4.renderInputComponent,\n renderItemsContainer = _this$props4.renderItemsContainer,\n highlightedSectionIndex = _this$props4.highlightedSectionIndex,\n highlightedItemIndex = _this$props4.highlightedItemIndex;\n var isInputFocused = this.state.isInputFocused;\n var renderedItems = multiSection ? this.renderSections() : this.renderItems();\n var isOpen = renderedItems !== null;\n var ariaActivedescendant = this.getItemId(highlightedSectionIndex, highlightedItemIndex);\n var itemsContainerId = \"react-autowhatever-\".concat(id);\n\n var containerProps = _objectSpread({\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-owns': itemsContainerId,\n 'aria-expanded': isOpen\n }, theme(\"react-autowhatever-\".concat(id, \"-container\"), 'container', isOpen && 'containerOpen'), {}, this.props.containerProps);\n\n var inputComponent = renderInputComponent(_objectSpread({\n type: 'text',\n value: '',\n autoComplete: 'off',\n 'aria-autocomplete': 'list',\n 'aria-controls': itemsContainerId,\n 'aria-activedescendant': ariaActivedescendant\n }, theme(\"react-autowhatever-\".concat(id, \"-input\"), 'input', isOpen && 'inputOpen', isInputFocused && 'inputFocused'), {}, this.props.inputProps, {\n onFocus: this.onFocus,\n onBlur: this.onBlur,\n onKeyDown: this.props.inputProps.onKeyDown && this.onKeyDown,\n ref: this.storeInputReference\n }));\n var itemsContainer = renderItemsContainer({\n containerProps: _objectSpread({\n id: itemsContainerId,\n role: 'listbox'\n }, theme(\"react-autowhatever-\".concat(id, \"-items-container\"), 'itemsContainer', isOpen && 'itemsContainerOpen'), {\n ref: this.storeItemsContainerReference\n }),\n children: renderedItems\n });\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", containerProps, inputComponent, itemsContainer);\n }\n }]);\n\n return Autowhatever;\n}(_react.Component);\n\nexports[\"default\"] = Autowhatever;\n\n_defineProperty(Autowhatever, \"propTypes\", {\n id: _propTypes[\"default\"].string,\n // Used in aria-* attributes. If multiple Autowhatever's are rendered on a page, they must have unique ids.\n multiSection: _propTypes[\"default\"].bool,\n // Indicates whether a multi section layout should be rendered.\n renderInputComponent: _propTypes[\"default\"].func,\n // When specified, it is used to render the input element.\n renderItemsContainer: _propTypes[\"default\"].func,\n // Renders the items container.\n items: _propTypes[\"default\"].array.isRequired,\n // Array of items or sections to render.\n renderItem: _propTypes[\"default\"].func,\n // This function renders a single item.\n renderItemData: _propTypes[\"default\"].object,\n // Arbitrary data that will be passed to renderItem()\n renderSectionTitle: _propTypes[\"default\"].func,\n // This function gets a section and renders its title.\n getSectionItems: _propTypes[\"default\"].func,\n // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.\n containerProps: _propTypes[\"default\"].object,\n // Arbitrary container props\n inputProps: _propTypes[\"default\"].object,\n // Arbitrary input props\n itemProps: _propTypes[\"default\"].oneOfType([// Arbitrary item props\n _propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n highlightedSectionIndex: _propTypes[\"default\"].number,\n // Section index of the highlighted item\n highlightedItemIndex: _propTypes[\"default\"].number,\n // Highlighted item index (within a section)\n theme: _propTypes[\"default\"].oneOfType([// Styles. See: https://github.com/markdalgleish/react-themeable\n _propTypes[\"default\"].object, _propTypes[\"default\"].array])\n});\n\n_defineProperty(Autowhatever, \"defaultProps\", {\n id: '1',\n multiSection: false,\n renderInputComponent: defaultRenderInputComponent,\n renderItemsContainer: defaultRenderItemsContainer,\n renderItem: function renderItem() {\n throw new Error('`renderItem` must be provided');\n },\n renderItemData: emptyObject,\n renderSectionTitle: function renderSectionTitle() {\n throw new Error('`renderSectionTitle` must be provided');\n },\n getSectionItems: function getSectionItems() {\n throw new Error('`getSectionItems` must be provided');\n },\n containerProps: emptyObject,\n inputProps: emptyObject,\n itemProps: emptyObject,\n highlightedSectionIndex: null,\n highlightedItemIndex: null,\n theme: defaultTheme\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Item = /*#__PURE__*/function (_Component) {\n _inherits(Item, _Component);\n\n var _super = _createSuper(Item);\n\n function Item() {\n var _this;\n\n _classCallCheck(this, Item);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeItemReference\", function (item) {\n if (item !== null) {\n _this.item = item;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseEnter\", function (event) {\n var _this$props = _this.props,\n sectionIndex = _this$props.sectionIndex,\n itemIndex = _this$props.itemIndex;\n\n _this.props.onMouseEnter(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseLeave\", function (event) {\n var _this$props2 = _this.props,\n sectionIndex = _this$props2.sectionIndex,\n itemIndex = _this$props2.itemIndex;\n\n _this.props.onMouseLeave(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var _this$props3 = _this.props,\n sectionIndex = _this$props3.sectionIndex,\n itemIndex = _this$props3.itemIndex;\n\n _this.props.onMouseDown(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onClick\", function (event) {\n var _this$props4 = _this.props,\n sectionIndex = _this$props4.sectionIndex,\n itemIndex = _this$props4.itemIndex;\n\n _this.props.onClick(event, {\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n });\n });\n\n return _this;\n }\n\n _createClass(Item, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['renderItemData']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n isHighlighted = _this$props5.isHighlighted,\n item = _this$props5.item,\n renderItem = _this$props5.renderItem,\n renderItemData = _this$props5.renderItemData,\n restProps = _objectWithoutProperties(_this$props5, [\"isHighlighted\", \"item\", \"renderItem\", \"renderItemData\"]);\n\n delete restProps.sectionIndex;\n delete restProps.itemIndex;\n\n if (typeof restProps.onMouseEnter === 'function') {\n restProps.onMouseEnter = this.onMouseEnter;\n }\n\n if (typeof restProps.onMouseLeave === 'function') {\n restProps.onMouseLeave = this.onMouseLeave;\n }\n\n if (typeof restProps.onMouseDown === 'function') {\n restProps.onMouseDown = this.onMouseDown;\n }\n\n if (typeof restProps.onClick === 'function') {\n restProps.onClick = this.onClick;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"li\", _extends({\n role: \"option\"\n }, restProps, {\n ref: this.storeItemReference\n }), renderItem(item, _objectSpread({\n isHighlighted: isHighlighted\n }, renderItemData)));\n }\n }]);\n\n return Item;\n}(_react.Component);\n\nexports[\"default\"] = Item;\n\n_defineProperty(Item, \"propTypes\", {\n sectionIndex: _propTypes[\"default\"].number,\n isHighlighted: _propTypes[\"default\"].bool.isRequired,\n itemIndex: _propTypes[\"default\"].number.isRequired,\n item: _propTypes[\"default\"].any.isRequired,\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n onMouseEnter: _propTypes[\"default\"].func,\n onMouseLeave: _propTypes[\"default\"].func,\n onMouseDown: _propTypes[\"default\"].func,\n onClick: _propTypes[\"default\"].func\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Item = _interopRequireDefault(require(\"./Item\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar ItemsList = /*#__PURE__*/function (_Component) {\n _inherits(ItemsList, _Component);\n\n var _super = _createSuper(ItemsList);\n\n function ItemsList() {\n var _this;\n\n _classCallCheck(this, ItemsList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"storeHighlightedItemReference\", function (highlightedItem) {\n _this.props.onHighlightedItemChange(highlightedItem === null ? null : highlightedItem.item);\n });\n\n return _this;\n }\n\n _createClass(ItemsList, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props, ['itemProps']);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n items = _this$props.items,\n itemProps = _this$props.itemProps,\n renderItem = _this$props.renderItem,\n renderItemData = _this$props.renderItemData,\n sectionIndex = _this$props.sectionIndex,\n highlightedItemIndex = _this$props.highlightedItemIndex,\n getItemId = _this$props.getItemId,\n theme = _this$props.theme,\n keyPrefix = _this$props.keyPrefix;\n var sectionPrefix = sectionIndex === null ? keyPrefix : \"\".concat(keyPrefix, \"section-\").concat(sectionIndex, \"-\");\n var isItemPropsFunction = typeof itemProps === 'function';\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", _extends({\n role: \"listbox\"\n }, theme(\"\".concat(sectionPrefix, \"items-list\"), 'itemsList')), items.map(function (item, itemIndex) {\n var isFirst = itemIndex === 0;\n var isHighlighted = itemIndex === highlightedItemIndex;\n var itemKey = \"\".concat(sectionPrefix, \"item-\").concat(itemIndex);\n var itemPropsObj = isItemPropsFunction ? itemProps({\n sectionIndex: sectionIndex,\n itemIndex: itemIndex\n }) : itemProps;\n\n var allItemProps = _objectSpread({\n id: getItemId(sectionIndex, itemIndex),\n 'aria-selected': isHighlighted\n }, theme(itemKey, 'item', isFirst && 'itemFirst', isHighlighted && 'itemHighlighted'), {}, itemPropsObj);\n\n if (isHighlighted) {\n allItemProps.ref = _this2.storeHighlightedItemReference;\n } // `key` is provided by theme()\n\n /* eslint-disable react/jsx-key */\n\n\n return /*#__PURE__*/_react[\"default\"].createElement(_Item[\"default\"], _extends({}, allItemProps, {\n sectionIndex: sectionIndex,\n isHighlighted: isHighlighted,\n itemIndex: itemIndex,\n item: item,\n renderItem: renderItem,\n renderItemData: renderItemData\n }));\n /* eslint-enable react/jsx-key */\n }));\n }\n }]);\n\n return ItemsList;\n}(_react.Component);\n\nexports[\"default\"] = ItemsList;\n\n_defineProperty(ItemsList, \"propTypes\", {\n items: _propTypes[\"default\"].array.isRequired,\n itemProps: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].object, _propTypes[\"default\"].func]),\n renderItem: _propTypes[\"default\"].func.isRequired,\n renderItemData: _propTypes[\"default\"].object.isRequired,\n sectionIndex: _propTypes[\"default\"].number,\n highlightedItemIndex: _propTypes[\"default\"].number,\n onHighlightedItemChange: _propTypes[\"default\"].func.isRequired,\n getItemId: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n keyPrefix: _propTypes[\"default\"].string.isRequired\n});\n\n_defineProperty(ItemsList, \"defaultProps\", {\n sectionIndex: null\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _compareObjects = _interopRequireDefault(require(\"./compareObjects\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar SectionTitle = /*#__PURE__*/function (_Component) {\n _inherits(SectionTitle, _Component);\n\n var _super = _createSuper(SectionTitle);\n\n function SectionTitle() {\n _classCallCheck(this, SectionTitle);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SectionTitle, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n return (0, _compareObjects[\"default\"])(nextProps, this.props);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n section = _this$props.section,\n renderSectionTitle = _this$props.renderSectionTitle,\n theme = _this$props.theme,\n sectionKeyPrefix = _this$props.sectionKeyPrefix;\n var sectionTitle = renderSectionTitle(section);\n\n if (!sectionTitle) {\n return null;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", theme(\"\".concat(sectionKeyPrefix, \"title\"), 'sectionTitle'), sectionTitle);\n }\n }]);\n\n return SectionTitle;\n}(_react.Component);\n\nexports[\"default\"] = SectionTitle;\n\n_defineProperty(SectionTitle, \"propTypes\", {\n section: _propTypes[\"default\"].any.isRequired,\n renderSectionTitle: _propTypes[\"default\"].func.isRequired,\n theme: _propTypes[\"default\"].func.isRequired,\n sectionKeyPrefix: _propTypes[\"default\"].string.isRequired\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = compareObjects;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction compareObjects(objA, objB) {\n var keys = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n if (objA === objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (aKeys.length !== bKeys.length) {\n return true;\n }\n\n var keysMap = {};\n var i, len;\n\n for (i = 0, len = keys.length; i < len; i++) {\n keysMap[keys[i]] = true;\n }\n\n for (i = 0, len = aKeys.length; i < len; i++) {\n var key = aKeys[i];\n var aValue = objA[key];\n var bValue = objB[key];\n\n if (aValue === bValue) {\n continue;\n }\n\n if (!keysMap[key] || aValue === null || bValue === null || _typeof(aValue) !== 'object' || _typeof(bValue) !== 'object') {\n return true;\n }\n\n var aValueKeys = Object.keys(aValue);\n var bValueKeys = Object.keys(bValue);\n\n if (aValueKeys.length !== bValueKeys.length) {\n return true;\n }\n\n for (var n = 0, length = aValueKeys.length; n < length; n++) {\n var aValueKey = aValueKeys[n];\n\n if (aValue[aValueKey] !== bValue[aValueKey]) {\n return true;\n }\n }\n }\n\n return false;\n}","\"use strict\";\n\nmodule.exports = require('./Autosuggest')[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mapToAutowhateverTheme = exports.defaultTheme = void 0;\nvar defaultTheme = {\n container: 'react-autosuggest__container',\n containerOpen: 'react-autosuggest__container--open',\n input: 'react-autosuggest__input',\n inputOpen: 'react-autosuggest__input--open',\n inputFocused: 'react-autosuggest__input--focused',\n suggestionsContainer: 'react-autosuggest__suggestions-container',\n suggestionsContainerOpen: 'react-autosuggest__suggestions-container--open',\n suggestionsList: 'react-autosuggest__suggestions-list',\n suggestion: 'react-autosuggest__suggestion',\n suggestionFirst: 'react-autosuggest__suggestion--first',\n suggestionHighlighted: 'react-autosuggest__suggestion--highlighted',\n sectionContainer: 'react-autosuggest__section-container',\n sectionContainerFirst: 'react-autosuggest__section-container--first',\n sectionTitle: 'react-autosuggest__section-title'\n};\nexports.defaultTheme = defaultTheme;\n\nvar mapToAutowhateverTheme = function mapToAutowhateverTheme(theme) {\n var result = {};\n\n for (var key in theme) {\n switch (key) {\n case 'suggestionsContainer':\n result['itemsContainer'] = theme[key];\n break;\n\n case 'suggestionsContainerOpen':\n result['itemsContainerOpen'] = theme[key];\n break;\n\n case 'suggestion':\n result['item'] = theme[key];\n break;\n\n case 'suggestionFirst':\n result['itemFirst'] = theme[key];\n break;\n\n case 'suggestionHighlighted':\n result['itemHighlighted'] = theme[key];\n break;\n\n case 'suggestionsList':\n result['itemsList'] = theme[key];\n break;\n\n default:\n result[key] = theme[key];\n }\n }\n\n return result;\n};\n\nexports.mapToAutowhateverTheme = mapToAutowhateverTheme;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: \"Firefox\",\n Opera: \"Opera\",\n Yandex: \"Yandex\",\n Safari: \"Safari\",\n InternetExplorer: \"Internet Explorer\",\n Edge: \"Edge\",\n Chromium: \"Chromium\",\n Ie: 'IE',\n MobileSafari: \"Mobile Safari\",\n EdgeChromium: \"Edge Chromium\",\n MIUI: \"MIUI Browser\",\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: \"Android\",\n WindowsPhone: \"Windows Phone\",\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\nvar checkType = function checkType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DeviceTypes.Mobile;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DeviceTypes.Tablet;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DeviceTypes.Mobile:\n case DeviceTypes.Tablet:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DeviceTypes.SmartTv;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DeviceTypes.Browser;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DeviceTypes.Wearable;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DeviceTypes.Console;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OsTypes.Android;\n};\n\nvar isWindowsType = function isWindowsType() {\n return os.name === OsTypes.Windows;\n};\n\nvar isMacOsType = function isMacOsType() {\n return os.name === OsTypes.MAC_OS;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OsTypes.WindowsPhone;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OsTypes.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BrowserTypes.Chrome;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BrowserTypes.Firefox;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BrowserTypes.Chromium;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BrowserTypes.Edge;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BrowserTypes.Yandex;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BrowserTypes.Opera;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;\n};\n\nvar isMIUIType = function isMIUIType() {\n return browser.name === BrowserTypes.MIUI;\n};\n\nvar isSamsungBrowserType = function isSamsungBrowserType() {\n return browser.name === BrowserTypes.SamsungBrowser;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isDesktop = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType() && !isEdgeChromiumType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\nvar isMIUI = isMIUIType();\nvar isSamsungBrowser = isSamsungBrowserType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;\n","import { isValidElement, useRef, useState, useCallback, useEffect, createContext, useContext, createElement, cloneElement, Fragment } from 'react';\n\nvar isNullOrUndefined = (value) => value == null;\n\nvar isArray = (value) => Array.isArray(value);\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) && !isArray(value) && isObjectType(value);\n\nvar isHTMLElement = (value) => isObject(value) && value.nodeType === Node.ELEMENT_NODE;\n\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n};\r\nconst VALUE = 'value';\r\nconst UNDEFINED = 'undefined';\r\nconst EVENTS = {\r\n BLUR: 'blur',\r\n CHANGE: 'change',\r\n INPUT: 'input',\r\n};\r\nconst SELECT = 'select';\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\r\nconst REGEX_IS_DEEP_PROP = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/;\r\nconst REGEX_IS_PLAIN_PROP = /^\\w*$/;\r\nconst REGEX_PROP_NAME = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\r\nconst REGEX_ESCAPE_CHAR = /\\\\(\\\\)?/g;\r\nconst REGEX_ARRAY_FIELD_INDEX = /[\\d+]/g;\n\nfunction attachEventListeners({ field: { ref }, handleChange, isRadioOrCheckbox, }) {\r\n if (isHTMLElement(ref) && handleChange) {\r\n ref.addEventListener(isRadioOrCheckbox ? EVENTS.CHANGE : EVENTS.INPUT, handleChange);\r\n ref.addEventListener(EVENTS.BLUR, handleChange);\r\n }\r\n}\n\nvar isKey = (value) => !isArray(value) &&\r\n (REGEX_IS_PLAIN_PROP.test(value) || !REGEX_IS_DEEP_PROP.test(value));\n\nvar stringToPath = (string) => {\r\n const result = [];\r\n string.replace(REGEX_PROP_NAME, (match, number, quote, string) => {\r\n result.push(quote ? string.replace(REGEX_ESCAPE_CHAR, '$1') : number || match);\r\n });\r\n return result;\r\n};\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nvar transformToNestObject = (data) => Object.entries(data).reduce((previous, [key, value]) => {\r\n if (!isKey(key)) {\r\n set(previous, key, value);\r\n return previous;\r\n }\r\n return Object.assign(Object.assign({}, previous), { [key]: value });\r\n}, {});\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj, path, defaultValue) => {\r\n const result = path\r\n .split(/[,[\\].]+?/)\r\n .filter(Boolean)\r\n .reduce((result, key) => (isNullOrUndefined(result) ? result : result[key]), obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nvar focusOnErrorField = (fields, fieldErrors) => {\r\n for (const key in fields) {\r\n if (get(fieldErrors, key)) {\r\n const field = fields[key];\r\n if (field) {\r\n if (field.ref.focus) {\r\n field.ref.focus();\r\n break;\r\n }\r\n else if (field.options) {\r\n field.options[0].ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n};\n\nvar removeAllEventListeners = (ref, validateWithStateUpdate) => {\r\n if (isHTMLElement(ref) && ref.removeEventListener) {\r\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\r\n }\r\n};\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nfunction isDetached(element) {\r\n if (!element) {\r\n return true;\r\n }\r\n if (!(element instanceof HTMLElement) ||\r\n element.nodeType === Node.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n return isDetached(element.parentNode);\r\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nfunction castPath(value) {\r\n return isArray(value) ? value : stringToPath(value);\r\n}\r\nfunction baseGet(object, path) {\r\n const updatePath = isKey(path) ? [path] : castPath(path);\r\n const length = path.length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return index == length ? object : undefined;\r\n}\r\nfunction baseSlice(array, start, end) {\r\n let index = -1;\r\n let length = array.length;\r\n if (start < 0) {\r\n start = -start > length ? 0 : length + start;\r\n }\r\n end = end > length ? length : end;\r\n if (end < 0) {\r\n end += length;\r\n }\r\n length = start > end ? 0 : end - start;\r\n const result = Array(length);\r\n while (++index < length) {\r\n result[index] = array[index + start];\r\n }\r\n return result;\r\n}\r\nfunction parent(object, path) {\r\n return path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));\r\n}\r\nfunction baseUnset(object, path) {\r\n const updatePath = isKey(path) ? [path] : castPath(path);\r\n const childObject = parent(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n const result = !(childObject != null) || delete childObject[key];\r\n let previousObjRef = undefined;\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef = undefined;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index) {\r\n if ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (isArray(objectRef) &&\r\n !objectRef.filter((data) => isObject(data) && !isEmptyObject(data))\r\n .length)) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction unset(object, paths) {\r\n paths.forEach((path) => {\r\n baseUnset(object, path);\r\n });\r\n return object;\r\n}\n\nconst isSameRef = (fieldValue, ref) => fieldValue && fieldValue.ref === ref;\r\nfunction findRemovedFieldAndRemoveListener(fields, handleChange, field, forceDelete) {\r\n const { ref, ref: { name, type }, mutationWatcher, } = field;\r\n const fieldValue = fields[name];\r\n if (!type) {\r\n delete fields[name];\r\n return;\r\n }\r\n if ((isRadioInput(ref) || isCheckBoxInput(ref)) && fieldValue) {\r\n const { options } = fieldValue;\r\n if (isArray(options) && options.length) {\r\n options.filter(Boolean).forEach((option, index) => {\r\n const { ref, mutationWatcher } = option;\r\n if ((ref && isDetached(ref) && isSameRef(option, ref)) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n if (mutationWatcher) {\r\n mutationWatcher.disconnect();\r\n }\r\n unset(options, [`[${index}]`]);\r\n }\r\n });\r\n if (options && !options.filter(Boolean).length) {\r\n delete fields[name];\r\n }\r\n }\r\n else {\r\n delete fields[name];\r\n }\r\n }\r\n else if ((isDetached(ref) && isSameRef(fieldValue, ref)) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n if (mutationWatcher) {\r\n mutationWatcher.disconnect();\r\n }\r\n delete fields[name];\r\n }\r\n}\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: '',\r\n};\r\nvar getRadioValue = (options) => isArray(options)\r\n ? options.reduce((previous, option) => option && option.ref.checked\r\n ? {\r\n isValid: true,\r\n value: option.ref.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nvar getMultipleSelectValue = (options) => [...options]\r\n .filter(({ selected }) => selected)\r\n .map(({ value }) => value);\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isMultipleSelect = (element) => element.type === `${SELECT}-multiple`;\n\nvar isEmptyString = (value) => value === '';\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.ref.checked)\r\n .map(({ ref: { value } }) => value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n const { checked, value, attributes } = options[0].ref;\r\n return checked\r\n ? attributes && !isUndefined(attributes.value)\r\n ? isUndefined(value) || isEmptyString(value)\r\n ? validResult\r\n : { value: value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nfunction getFieldValue(fields, ref) {\r\n const { name, value } = ref;\r\n const field = fields[name];\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return field ? getRadioValue(field.options).value : '';\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return getMultipleSelectValue(ref.options);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return field ? getCheckboxValue(field.options).value : false;\r\n }\r\n return value;\r\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar getFieldsValues = (fields, search) => {\r\n const output = {};\r\n for (const name in fields) {\r\n if (isUndefined(search) ||\r\n (isString(search)\r\n ? name.startsWith(search)\r\n : isArray(search)\r\n ? search.find((data) => name.startsWith(data))\r\n : search && search.nest)) {\r\n output[name] = getFieldValue(fields, fields[name].ref);\r\n }\r\n }\r\n return output;\r\n};\n\nvar compareObject = (objectA = {}, objectB = {}) => {\r\n const objectAKeys = Object.keys(objectA);\r\n const objectBKeys = Object.keys(objectB);\r\n return (objectAKeys.length === objectBKeys.length &&\r\n objectAKeys.every((key) => objectB[key] && objectB[key] === objectA[key]));\r\n};\n\nvar isSameError = (error, { type, types, message }) => isObject(error) &&\r\n error.type === type &&\r\n error.message === message &&\r\n compareObject(error.types, types);\n\nfunction shouldRenderBasedOnError({ errors, name, error, validFields, fieldsWithValidation, }) {\r\n const isFieldValid = isEmptyObject(error);\r\n const isFormValid = isEmptyObject(errors);\r\n const currentFieldError = get(error, name);\r\n const existFieldError = get(errors, name);\r\n if ((isFieldValid && validFields.has(name)) ||\r\n (existFieldError && existFieldError.isManual)) {\r\n return false;\r\n }\r\n if (isFormValid !== isFieldValid ||\r\n (!isFormValid && !existFieldError) ||\r\n (isFieldValid && fieldsWithValidation.has(name) && !validFields.has(name))) {\r\n return true;\r\n }\r\n return currentFieldError && !isSameError(existFieldError, currentFieldError);\r\n}\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getValueAndMessage = (validationData) => {\r\n const isValueMessage = (value) => isObject(value) && !isRegex(value);\r\n return isValueMessage(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\r\n};\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isMessage = (value) => isString(value) || (isObject(value) && isValidElement(value));\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) || (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => {\r\n if (validateAllFieldCriteria) {\r\n const error = errors[name];\r\n return Object.assign(Object.assign({}, error), { types: Object.assign(Object.assign({}, (error && error.types ? error.types : {})), { [type]: message || true }) });\r\n }\r\n return {};\r\n};\n\nvar validateField = async (fieldsRef, validateAllFieldCriteria, { ref, ref: { type, value, name }, options, required, maxLength, minLength, min, max, pattern, validate, }) => {\r\n var _a;\r\n const fields = fieldsRef.current;\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = isEmptyString(value);\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = Object.assign({ type: exceedMax ? maxType : minType, message,\r\n ref }, (exceedMax\r\n ? appendErrorsCurry(maxType, message)\r\n : appendErrorsCurry(minType, message)));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n };\r\n if (required &&\r\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\r\n (isBoolean(value) && !value) ||\r\n (isCheckBox && !getCheckboxValue(options).isValid) ||\r\n (isRadio && !getRadioValue(options).isValid))) {\r\n const { value: requiredValue, message: requiredMessage } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (requiredValue) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message: requiredMessage, ref: isRadioOrCheckbox ? (_a = fields[name].options) === null || _a === void 0 ? void 0 : _a[0].ref : ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, requiredMessage));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(min) || !isNullOrUndefined(max)) {\r\n let exceedMax;\r\n let exceedMin;\r\n const { value: maxValue, message: maxMessage } = getValueAndMessage(max);\r\n const { value: minValue, message: minMessage } = getValueAndMessage(min);\r\n if (type === 'number' || (!type && !isNaN(value))) {\r\n const valueNumber = ref.valueAsNumber || parseFloat(value);\r\n if (!isNullOrUndefined(maxValue)) {\r\n exceedMax = valueNumber > maxValue;\r\n }\r\n if (!isNullOrUndefined(minValue)) {\r\n exceedMin = valueNumber < minValue;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(value);\r\n if (isString(maxValue)) {\r\n exceedMax = valueDate > new Date(maxValue);\r\n }\r\n if (isString(minValue)) {\r\n exceedMin = valueDate < new Date(minValue);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxMessage, minMessage, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\r\n const { value: maxLengthValue, message: maxLengthMessage, } = getValueAndMessage(maxLength);\r\n const { value: minLengthValue, message: minLengthMessage, } = getValueAndMessage(minLength);\r\n const inputLength = value.toString().length;\r\n const exceedMax = !isNullOrUndefined(maxLengthValue) && inputLength > maxLengthValue;\r\n const exceedMin = !isNullOrUndefined(minLengthValue) && inputLength < minLengthValue;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxLengthMessage, minLengthMessage);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (pattern && !isEmpty) {\r\n const { value: patternValue, message: patternMessage } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !patternValue.test(value)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message: patternMessage, ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, patternMessage));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n const fieldValue = getFieldValue(fields, ref);\r\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\r\n if (isFunction(validate)) {\r\n const result = await validate(fieldValue);\r\n const validateError = getValidateError(result, validateRef);\r\n if (validateError) {\r\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const [key, validateFunction] of Object.entries(validate)) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateResult = await validateFunction(fieldValue);\r\n const validateError = getValidateError(validateResult, validateRef, key);\r\n if (validateError) {\r\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = Object.assign({ ref: validateRef }, validationResult);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n return error;\r\n};\n\nconst parseErrorSchema = (error, validateAllFieldCriteria) => isArray(error.inner)\r\n ? error.inner.reduce((previous, { path, message, type }) => (Object.assign(Object.assign({}, previous), (path\r\n ? previous[path] && validateAllFieldCriteria\r\n ? {\r\n [path]: appendErrors(path, validateAllFieldCriteria, previous, type, message),\r\n }\r\n : {\r\n [path]: previous[path] || Object.assign({ message,\r\n type }, (validateAllFieldCriteria\r\n ? {\r\n types: { [type]: message || true },\r\n }\r\n : {})),\r\n }\r\n : {}))), {})\r\n : {\r\n [error.path]: { message: error.message, type: error.type },\r\n };\r\nasync function validateWithSchema(validationSchema, validateAllFieldCriteria, data, validationResolver, context) {\r\n if (validationResolver) {\r\n return validationResolver(data, context);\r\n }\r\n try {\r\n return {\r\n values: await validationSchema.validate(data, {\r\n abortEarly: false,\r\n context,\r\n }),\r\n errors: {},\r\n };\r\n }\r\n catch (e) {\r\n return {\r\n values: {},\r\n errors: transformToNestObject(parseErrorSchema(e, validateAllFieldCriteria)),\r\n };\r\n }\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nconst getPath = (path, values) => {\r\n const getInnerPath = (value, key, isObject) => {\r\n const pathWithIndex = isObject ? `${path}.${key}` : `${path}[${key}]`;\r\n return isPrimitive(value) ? pathWithIndex : getPath(pathWithIndex, value);\r\n };\r\n return isArray(values)\r\n ? values.map((value, key) => getInnerPath(value, key))\r\n : Object.entries(values).map(([key, value]) => getInnerPath(value, key, true));\r\n};\r\nvar getPath$1 = (parentPath, value) => getPath(parentPath, value).flat(Infinity);\n\nvar assignWatchFields = (fieldValues, fieldName, watchFields, inputValue, isSingleField) => {\r\n let value;\r\n watchFields.add(fieldName);\r\n if (isEmptyObject(fieldValues)) {\r\n value = undefined;\r\n }\r\n else if (!isUndefined(fieldValues[fieldName])) {\r\n value = fieldValues[fieldName];\r\n watchFields.add(fieldName);\r\n }\r\n else {\r\n value = get(transformToNestObject(fieldValues), fieldName);\r\n if (!isUndefined(value)) {\r\n getPath$1(fieldName, value).forEach((name) => watchFields.add(name));\r\n }\r\n }\r\n return isUndefined(value)\r\n ? isSingleField\r\n ? inputValue\r\n : get(inputValue, fieldName)\r\n : value;\r\n};\n\nvar skipValidation = ({ isOnChange, hasError, isBlurEvent, isOnSubmit, isReValidateOnSubmit, isOnBlur, isReValidateOnBlur, isSubmitted, }) => (isOnChange && isBlurEvent) ||\r\n (isOnSubmit && isReValidateOnSubmit) ||\r\n (isOnSubmit && !isSubmitted) ||\r\n (isOnBlur && !isBlurEvent && !hasError) ||\r\n (isReValidateOnBlur && !isBlurEvent && hasError) ||\r\n (isReValidateOnSubmit && isSubmitted);\n\nvar getFieldArrayParentName = (name) => name.substring(0, name.indexOf('['));\n\nvar getFieldValueByName = (fields, name) => {\r\n const results = transformToNestObject(getFieldsValues(fields));\r\n return name ? get(results, name, results) : results;\r\n};\n\nfunction getIsFieldsDifferent(referenceArray, differenceArray) {\r\n let isMatch = false;\r\n if (!isArray(referenceArray) ||\r\n !isArray(differenceArray) ||\r\n referenceArray.length !== differenceArray.length) {\r\n return true;\r\n }\r\n for (let i = 0; i < referenceArray.length; i++) {\r\n if (isMatch) {\r\n break;\r\n }\r\n const dataA = referenceArray[i];\r\n const dataB = differenceArray[i];\r\n if (isUndefined(dataB) ||\r\n Object.keys(dataA).length !== Object.keys(dataB).length) {\r\n isMatch = true;\r\n break;\r\n }\r\n for (const key in dataA) {\r\n if (dataA[key] !== dataB[key]) {\r\n isMatch = true;\r\n break;\r\n }\r\n }\r\n }\r\n return isMatch;\r\n}\n\nconst isMatchFieldArrayName = (name, searchName) => RegExp(`^${searchName}[\\\\d+]`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]')).test(name);\r\nvar isNameInFieldArray = (names, name) => [...names].some((current) => isMatchFieldArrayName(name, current));\n\nvar isSelectInput = (element) => element.type === `${SELECT}-one`;\n\nfunction onDomRemove(element, onDetachCallback) {\r\n const observer = new MutationObserver(() => {\r\n if (isDetached(element)) {\r\n observer.disconnect();\r\n onDetachCallback();\r\n }\r\n });\r\n observer.observe(window.document, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\n\nvar modeChecker = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n});\n\nvar isRadioOrCheckboxFunction = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nfunction useForm({ mode = VALIDATION_MODE.onSubmit, reValidateMode = VALIDATION_MODE.onChange, validationSchema, validationResolver, validationContext, defaultValues = {}, submitFocusError = true, validateCriteriaMode, } = {}) {\r\n const fieldsRef = useRef({});\r\n const errorsRef = useRef({});\r\n const touchedFieldsRef = useRef({});\r\n const fieldArrayDefaultValues = useRef({});\r\n const watchFieldsRef = useRef(new Set());\r\n const dirtyFieldsRef = useRef(new Set());\r\n const fieldsWithValidationRef = useRef(new Set());\r\n const validFieldsRef = useRef(new Set());\r\n const isValidRef = useRef(true);\r\n const defaultValuesRef = useRef(defaultValues);\r\n const defaultValuesAtRenderRef = useRef({});\r\n const isUnMount = useRef(false);\r\n const isWatchAllRef = useRef(false);\r\n const isSubmittedRef = useRef(false);\r\n const isDirtyRef = useRef(false);\r\n const submitCountRef = useRef(0);\r\n const isSubmittingRef = useRef(false);\r\n const handleChangeRef = useRef();\r\n const resetFieldArrayFunctionRef = useRef({});\r\n const validationContextRef = useRef(validationContext);\r\n const fieldArrayNamesRef = useRef(new Set());\r\n const [, render] = useState();\r\n const { isOnBlur, isOnSubmit, isOnChange } = useRef(modeChecker(mode)).current;\r\n const validateAllFieldCriteria = validateCriteriaMode === 'all';\r\n const isWindowUndefined = typeof window === UNDEFINED;\r\n const shouldValidateSchemaOrResolver = !!(validationSchema || validationResolver);\r\n const isWeb = typeof document !== UNDEFINED &&\r\n !isWindowUndefined &&\r\n !isUndefined(window.HTMLElement);\r\n const isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\r\n const readFormStateRef = useRef({\r\n dirty: !isProxyEnabled,\r\n dirtyFields: !isProxyEnabled,\r\n isSubmitted: isOnSubmit,\r\n submitCount: !isProxyEnabled,\r\n touched: !isProxyEnabled,\r\n isSubmitting: !isProxyEnabled,\r\n isValid: !isProxyEnabled,\r\n });\r\n const { isOnBlur: isReValidateOnBlur, isOnSubmit: isReValidateOnSubmit, } = useRef(modeChecker(reValidateMode)).current;\r\n validationContextRef.current = validationContext;\r\n const reRender = useCallback(() => {\r\n if (!isUnMount.current) {\r\n render({});\r\n }\r\n }, []);\r\n const shouldRenderBaseOnError = useCallback((name, error, shouldRender = false) => {\r\n let shouldReRender = shouldRender ||\r\n shouldRenderBasedOnError({\r\n errors: errorsRef.current,\r\n error,\r\n name,\r\n validFields: validFieldsRef.current,\r\n fieldsWithValidation: fieldsWithValidationRef.current,\r\n });\r\n if (isEmptyObject(error)) {\r\n if (fieldsWithValidationRef.current.has(name) ||\r\n shouldValidateSchemaOrResolver) {\r\n validFieldsRef.current.add(name);\r\n shouldReRender = shouldReRender || get(errorsRef.current, name);\r\n }\r\n errorsRef.current = unset(errorsRef.current, [name]);\r\n }\r\n else {\r\n const previousError = get(errorsRef.current, name);\r\n validFieldsRef.current.delete(name);\r\n shouldReRender =\r\n shouldReRender ||\r\n (previousError\r\n ? !isSameError(previousError, error[name])\r\n : true);\r\n set(errorsRef.current, name, error[name]);\r\n }\r\n if (shouldReRender && !isNullOrUndefined(shouldRender)) {\r\n reRender();\r\n return true;\r\n }\r\n }, [reRender, shouldValidateSchemaOrResolver]);\r\n const setFieldValue = useCallback((field, rawValue) => {\r\n const { ref, options } = field;\r\n const value = isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\r\n ? ''\r\n : rawValue;\r\n if (isRadioInput(ref) && options) {\r\n options.forEach(({ ref: radioRef }) => (radioRef.checked = radioRef.value === value));\r\n }\r\n else if (isFileInput(ref)) {\r\n if (isString(value)) {\r\n ref.value = value;\r\n }\r\n else {\r\n ref.files = value;\r\n }\r\n }\r\n else if (isMultipleSelect(ref)) {\r\n [...ref.options].forEach((selectRef) => (selectRef.selected = value.includes(selectRef.value)));\r\n }\r\n else if (isCheckBoxInput(ref) && options) {\r\n options.length > 1\r\n ? options.forEach(({ ref: checkboxRef }) => (checkboxRef.checked = value.includes(checkboxRef.value)))\r\n : (options[0].ref.checked = !!value);\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n }, [isWeb]);\r\n const setDirty = useCallback((name) => {\r\n if (!fieldsRef.current[name] ||\r\n (!readFormStateRef.current.dirty && !readFormStateRef.current.dirtyFields)) {\r\n return false;\r\n }\r\n let isFieldDirty = defaultValuesAtRenderRef.current[name] !==\r\n getFieldValue(fieldsRef.current, fieldsRef.current[name].ref);\r\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const previousDirtyFieldsLength = dirtyFieldsRef.current.size;\r\n if (isFieldArray) {\r\n const fieldArrayName = getFieldArrayParentName(name);\r\n isFieldDirty = getIsFieldsDifferent(getFieldValueByName(fieldsRef.current, fieldArrayName), get(defaultValuesRef.current, fieldArrayName));\r\n }\r\n const isDirtyChanged = (isFieldArray ? isDirtyRef.current : dirtyFieldsRef.current.has(name)) !==\r\n isFieldDirty;\r\n if (isFieldDirty) {\r\n dirtyFieldsRef.current.add(name);\r\n }\r\n else {\r\n dirtyFieldsRef.current.delete(name);\r\n }\r\n isDirtyRef.current = isFieldArray\r\n ? isFieldDirty\r\n : !!dirtyFieldsRef.current.size;\r\n return readFormStateRef.current.dirty\r\n ? isDirtyChanged\r\n : previousDirtyFieldsLength !== dirtyFieldsRef.current.size;\r\n }, []);\r\n const setInternalValues = useCallback((name, value, parentFieldName) => {\r\n const isValueArray = isArray(value);\r\n for (const key in value) {\r\n const fieldName = `${parentFieldName || name}${isValueArray ? `[${key}]` : `.${key}`}`;\r\n const field = fieldsRef.current[fieldName];\r\n if (isObject(value[key])) {\r\n setInternalValues(name, value[key], fieldName);\r\n }\r\n if (field) {\r\n setFieldValue(field, value[key]);\r\n setDirty(fieldName);\r\n }\r\n }\r\n }, [setFieldValue, setDirty]);\r\n const setInternalValue = useCallback((name, value) => {\r\n const field = fieldsRef.current[name];\r\n if (field) {\r\n setFieldValue(field, value);\r\n const output = setDirty(name);\r\n if (isBoolean(output)) {\r\n return output;\r\n }\r\n }\r\n else if (!isPrimitive(value)) {\r\n setInternalValues(name, value);\r\n }\r\n }, [setDirty, setFieldValue, setInternalValues]);\r\n const executeValidation = useCallback(async (name, skipReRender) => {\r\n const field = fieldsRef.current[name];\r\n if (field) {\r\n const error = await validateField(fieldsRef, validateAllFieldCriteria, field);\r\n shouldRenderBaseOnError(name, error, skipReRender ? null : false);\r\n return isEmptyObject(error);\r\n }\r\n return false;\r\n }, [shouldRenderBaseOnError, validateAllFieldCriteria]);\r\n const executeSchemaOrResolverValidation = useCallback(async (payload) => {\r\n const { errors } = await validateWithSchema(validationSchema, validateAllFieldCriteria, getFieldValueByName(fieldsRef.current), validationResolver, validationContextRef.current);\r\n const previousFormIsValid = isValidRef.current;\r\n isValidRef.current = isEmptyObject(errors);\r\n if (isArray(payload)) {\r\n payload.forEach((name) => {\r\n const error = get(errors, name);\r\n if (error) {\r\n set(errorsRef.current, name, error);\r\n }\r\n else {\r\n unset(errorsRef.current, [name]);\r\n }\r\n });\r\n reRender();\r\n }\r\n else {\r\n const error = get(errors, payload);\r\n shouldRenderBaseOnError(payload, (error ? { [payload]: error } : {}), previousFormIsValid !== isValidRef.current);\r\n }\r\n return isEmptyObject(errorsRef.current);\r\n }, [\r\n reRender,\r\n shouldRenderBaseOnError,\r\n validateAllFieldCriteria,\r\n validationResolver,\r\n validationSchema,\r\n ]);\r\n const triggerValidation = useCallback(async (payload) => {\r\n const fields = payload || Object.keys(fieldsRef.current);\r\n if (shouldValidateSchemaOrResolver) {\r\n return executeSchemaOrResolverValidation(fields);\r\n }\r\n if (isArray(fields)) {\r\n const result = await Promise.all(fields.map(async (data) => await executeValidation(data, true)));\r\n reRender();\r\n return result.every(Boolean);\r\n }\r\n return await executeValidation(fields);\r\n }, [\r\n executeSchemaOrResolverValidation,\r\n executeValidation,\r\n reRender,\r\n shouldValidateSchemaOrResolver,\r\n ]);\r\n const isFieldWatched = (name) => isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name) ||\r\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\r\n function setValue(names, valueOrShouldValidate, shouldValidate) {\r\n let shouldRender = false;\r\n const isArrayValue = isArray(names);\r\n (isArrayValue\r\n ? names\r\n : [names]).forEach((name) => {\r\n const isStringFieldName = isString(name);\r\n shouldRender =\r\n setInternalValue(isStringFieldName ? name : Object.keys(name)[0], isStringFieldName\r\n ? valueOrShouldValidate\r\n : Object.values(name)[0]) || isArrayValue\r\n ? true\r\n : isFieldWatched(name);\r\n });\r\n if (shouldRender || isArrayValue) {\r\n reRender();\r\n }\r\n if (shouldValidate || (isArrayValue && valueOrShouldValidate)) {\r\n triggerValidation(isArrayValue ? undefined : names);\r\n }\r\n }\r\n handleChangeRef.current = handleChangeRef.current\r\n ? handleChangeRef.current\r\n : async ({ type, target }) => {\r\n const name = target ? target.name : '';\r\n const fields = fieldsRef.current;\r\n const errors = errorsRef.current;\r\n const field = fields[name];\r\n const currentError = get(errors, name);\r\n let error;\r\n if (!field) {\r\n return;\r\n }\r\n const isBlurEvent = type === EVENTS.BLUR;\r\n const shouldSkipValidation = skipValidation({\r\n hasError: !!currentError,\r\n isOnChange,\r\n isBlurEvent,\r\n isOnSubmit,\r\n isReValidateOnSubmit,\r\n isOnBlur,\r\n isReValidateOnBlur,\r\n isSubmitted: isSubmittedRef.current,\r\n });\r\n const shouldUpdateDirty = setDirty(name);\r\n let shouldRender = isFieldWatched(name) || shouldUpdateDirty;\r\n if (isBlurEvent &&\r\n !get(touchedFieldsRef.current, name) &&\r\n readFormStateRef.current.touched) {\r\n set(touchedFieldsRef.current, name, true);\r\n shouldRender = true;\r\n }\r\n if (shouldSkipValidation) {\r\n return shouldRender && reRender();\r\n }\r\n if (shouldValidateSchemaOrResolver) {\r\n const { errors } = await validateWithSchema(validationSchema, validateAllFieldCriteria, getFieldValueByName(fields), validationResolver, validationContextRef.current);\r\n const previousFormIsValid = isValidRef.current;\r\n isValidRef.current = isEmptyObject(errors);\r\n error = (get(errors, name)\r\n ? { [name]: get(errors, name) }\r\n : {});\r\n if (previousFormIsValid !== isValidRef.current) {\r\n shouldRender = true;\r\n }\r\n }\r\n else {\r\n error = await validateField(fieldsRef, validateAllFieldCriteria, field);\r\n }\r\n if (!shouldRenderBaseOnError(name, error) && shouldRender) {\r\n reRender();\r\n }\r\n };\r\n const validateSchemaOrResolver = useCallback((values = {}) => {\r\n const fieldValues = isEmptyObject(defaultValuesRef.current)\r\n ? getFieldsValues(fieldsRef.current)\r\n : defaultValuesRef.current;\r\n validateWithSchema(validationSchema, validateAllFieldCriteria, transformToNestObject(Object.assign(Object.assign({}, fieldValues), values)), validationResolver, validationContextRef.current).then(({ errors }) => {\r\n const previousFormIsValid = isValidRef.current;\r\n isValidRef.current = isEmptyObject(errors);\r\n if (previousFormIsValid !== isValidRef.current) {\r\n reRender();\r\n }\r\n });\r\n }, \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n [reRender, validateAllFieldCriteria, validationResolver]);\r\n const removeFieldEventListener = useCallback((field, forceDelete) => {\r\n if (handleChangeRef.current && field) {\r\n findRemovedFieldAndRemoveListener(fieldsRef.current, handleChangeRef.current, field, forceDelete);\r\n }\r\n }, []);\r\n const removeFieldEventListenerAndRef = useCallback((field, forceDelete) => {\r\n if (!field ||\r\n (field &&\r\n isNameInFieldArray(fieldArrayNamesRef.current, field.ref.name) &&\r\n !forceDelete)) {\r\n return;\r\n }\r\n removeFieldEventListener(field, forceDelete);\r\n const { name } = field.ref;\r\n errorsRef.current = unset(errorsRef.current, [name]);\r\n touchedFieldsRef.current = unset(touchedFieldsRef.current, [name]);\r\n defaultValuesAtRenderRef.current = unset(defaultValuesAtRenderRef.current, [name]);\r\n [\r\n dirtyFieldsRef,\r\n fieldsWithValidationRef,\r\n validFieldsRef,\r\n watchFieldsRef,\r\n ].forEach((data) => data.current.delete(name));\r\n if (readFormStateRef.current.isValid ||\r\n readFormStateRef.current.touched) {\r\n reRender();\r\n if (shouldValidateSchemaOrResolver) {\r\n validateSchemaOrResolver();\r\n }\r\n }\r\n }, [\r\n reRender,\r\n shouldValidateSchemaOrResolver,\r\n validateSchemaOrResolver,\r\n removeFieldEventListener,\r\n ]);\r\n function clearError(name) {\r\n if (name) {\r\n unset(errorsRef.current, isArray(name) ? name : [name]);\r\n }\r\n else {\r\n errorsRef.current = {};\r\n }\r\n reRender();\r\n }\r\n const setInternalError = ({ name, type, types, message, shouldRender, }) => {\r\n const field = fieldsRef.current[name];\r\n if (!isSameError(get(errorsRef.current, name), {\r\n type,\r\n message,\r\n types,\r\n })) {\r\n set(errorsRef.current, name, {\r\n type,\r\n types,\r\n message,\r\n ref: field ? field.ref : {},\r\n isManual: true,\r\n });\r\n if (shouldRender) {\r\n reRender();\r\n }\r\n }\r\n };\r\n function setError(name, type = '', message) {\r\n if (isString(name)) {\r\n setInternalError(Object.assign(Object.assign({ name }, (isObject(type)\r\n ? {\r\n types: type,\r\n type: '',\r\n }\r\n : {\r\n type,\r\n message,\r\n })), { shouldRender: true }));\r\n }\r\n else if (isArray(name)) {\r\n name.forEach((error) => setInternalError(Object.assign({}, error)));\r\n reRender();\r\n }\r\n }\r\n function watch(fieldNames, defaultValue) {\r\n const watchFields = watchFieldsRef.current;\r\n const isDefaultValueUndefined = isUndefined(defaultValue);\r\n const combinedDefaultValues = isDefaultValueUndefined\r\n ? defaultValuesRef.current\r\n : defaultValue;\r\n const fieldValues = getFieldsValues(fieldsRef.current, fieldNames);\r\n if (isString(fieldNames)) {\r\n return assignWatchFields(fieldValues, fieldNames, watchFields, isDefaultValueUndefined\r\n ? get(combinedDefaultValues, fieldNames)\r\n : defaultValue, true);\r\n }\r\n if (isArray(fieldNames)) {\r\n return fieldNames.reduce((previous, name) => (Object.assign(Object.assign({}, previous), { [name]: assignWatchFields(fieldValues, name, watchFields, combinedDefaultValues) })), {});\r\n }\r\n isWatchAllRef.current = true;\r\n const result = (!isEmptyObject(fieldValues) && fieldValues) || combinedDefaultValues;\r\n return fieldNames && fieldNames.nest\r\n ? transformToNestObject(result)\r\n : result;\r\n }\r\n function unregister(name) {\r\n if (fieldsRef.current) {\r\n (isArray(name) ? name : [name]).forEach((fieldName) => removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true));\r\n }\r\n }\r\n function registerFieldsRef(ref, validateOptions = {}) {\r\n if (!ref.name) {\r\n // eslint-disable-next-line no-console\r\n return console.warn('Missing name @', ref);\r\n }\r\n const { name, type, value } = ref;\r\n const fieldRefAndValidationOptions = Object.assign({ ref }, validateOptions);\r\n const fields = fieldsRef.current;\r\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\r\n let field = fields[name];\r\n let isEmptyDefaultValue = true;\r\n let isFieldArray;\r\n let defaultValue;\r\n if (isRadioOrCheckbox\r\n ? field &&\r\n isArray(field.options) &&\r\n field.options.filter(Boolean).find((option) => {\r\n return value === option.ref.value && option.ref === ref;\r\n })\r\n : field && ref === field.ref) {\r\n fields[name] = Object.assign(Object.assign({}, field), validateOptions);\r\n return;\r\n }\r\n if (type) {\r\n const mutationWatcher = onDomRemove(ref, () => removeFieldEventListenerAndRef(field));\r\n field = isRadioOrCheckbox\r\n ? Object.assign({ options: [\r\n ...((field && field.options) || []),\r\n {\r\n ref,\r\n mutationWatcher,\r\n },\r\n ], ref: { type, name } }, validateOptions) : Object.assign(Object.assign({}, fieldRefAndValidationOptions), { mutationWatcher });\r\n }\r\n else {\r\n field = fieldRefAndValidationOptions;\r\n }\r\n fields[name] = field;\r\n if (!isEmptyObject(defaultValuesRef.current)) {\r\n defaultValue = get(defaultValuesRef.current, name);\r\n isEmptyDefaultValue = isUndefined(defaultValue);\r\n isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n if (!isEmptyDefaultValue && !isFieldArray) {\r\n setFieldValue(field, defaultValue);\r\n }\r\n }\r\n if (shouldValidateSchemaOrResolver &&\r\n !isFieldArray &&\r\n readFormStateRef.current.isValid) {\r\n validateSchemaOrResolver();\r\n }\r\n else if (!isEmptyObject(validateOptions)) {\r\n fieldsWithValidationRef.current.add(name);\r\n if (!isOnSubmit && readFormStateRef.current.isValid) {\r\n validateField(fieldsRef, validateAllFieldCriteria, field).then((error) => {\r\n const previousFormIsValid = isValidRef.current;\r\n isEmptyObject(error)\r\n ? validFieldsRef.current.add(name)\r\n : (isValidRef.current = false);\r\n if (previousFormIsValid !== isValidRef.current) {\r\n reRender();\r\n }\r\n });\r\n }\r\n }\r\n if (!defaultValuesAtRenderRef.current[name] &&\r\n !(isFieldArray && isEmptyDefaultValue)) {\r\n defaultValuesAtRenderRef.current[name] = isEmptyDefaultValue ? getFieldValue(fields, field.ref) : defaultValue;\r\n }\r\n if (type) {\r\n attachEventListeners({\r\n field: isRadioOrCheckbox && field.options\r\n ? field.options[field.options.length - 1]\r\n : field,\r\n isRadioOrCheckbox: isRadioOrCheckbox || isSelectInput(ref),\r\n handleChange: handleChangeRef.current,\r\n });\r\n }\r\n }\r\n function register(refOrValidationOptions, validationOptions) {\r\n if (isWindowUndefined) {\r\n return;\r\n }\r\n if (isString(refOrValidationOptions)) {\r\n registerFieldsRef({ name: refOrValidationOptions }, validationOptions);\r\n return;\r\n }\r\n if (isObject(refOrValidationOptions) && 'name' in refOrValidationOptions) {\r\n registerFieldsRef(refOrValidationOptions, validationOptions);\r\n return;\r\n }\r\n return (ref) => ref && registerFieldsRef(ref, refOrValidationOptions);\r\n }\r\n const handleSubmit = useCallback((callback) => async (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n e.persist();\r\n }\r\n let fieldErrors = {};\r\n const fields = fieldsRef.current;\r\n let fieldValues = getFieldsValues(fields);\r\n if (readFormStateRef.current.isSubmitting) {\r\n isSubmittingRef.current = true;\r\n reRender();\r\n }\r\n try {\r\n if (shouldValidateSchemaOrResolver) {\r\n const { errors, values } = await validateWithSchema(validationSchema, validateAllFieldCriteria, transformToNestObject(fieldValues), validationResolver, validationContextRef.current);\r\n errorsRef.current = errors;\r\n fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n for (const field of Object.values(fields)) {\r\n if (field) {\r\n const { ref: { name }, } = field;\r\n const fieldError = await validateField(fieldsRef, validateAllFieldCriteria, field);\r\n if (fieldError[name]) {\r\n set(fieldErrors, name, fieldError[name]);\r\n validFieldsRef.current.delete(name);\r\n }\r\n else {\r\n if (fieldsWithValidationRef.current.has(name)) {\r\n validFieldsRef.current.add(name);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (isEmptyObject(fieldErrors)) {\r\n errorsRef.current = {};\r\n reRender();\r\n await callback(transformToNestObject(fieldValues), e);\r\n }\r\n else {\r\n errorsRef.current = fieldErrors;\r\n if (submitFocusError && isWeb) {\r\n focusOnErrorField(fields, fieldErrors);\r\n }\r\n }\r\n }\r\n finally {\r\n isSubmittedRef.current = true;\r\n isSubmittingRef.current = false;\r\n submitCountRef.current = submitCountRef.current + 1;\r\n reRender();\r\n }\r\n }, [\r\n isWeb,\r\n reRender,\r\n shouldValidateSchemaOrResolver,\r\n submitFocusError,\r\n validateAllFieldCriteria,\r\n validationResolver,\r\n validationSchema,\r\n ]);\r\n const resetRefs = ({ errors, dirty, isSubmitted, touched, isValid, submitCount, dirtyFields, }) => {\r\n fieldsRef.current = {};\r\n if (!errors) {\r\n errorsRef.current = {};\r\n }\r\n if (!touched) {\r\n touchedFieldsRef.current = {};\r\n }\r\n if (!isValid) {\r\n validFieldsRef.current = new Set();\r\n fieldsWithValidationRef.current = new Set();\r\n isValidRef.current = true;\r\n }\r\n if (!dirty) {\r\n isDirtyRef.current = false;\r\n }\r\n if (!dirtyFields) {\r\n dirtyFieldsRef.current = new Set();\r\n }\r\n if (!isSubmitted) {\r\n isSubmittedRef.current = false;\r\n }\r\n if (!submitCount) {\r\n submitCountRef.current = 0;\r\n }\r\n defaultValuesAtRenderRef.current = {};\r\n fieldArrayDefaultValues.current = {};\r\n watchFieldsRef.current = new Set();\r\n isWatchAllRef.current = false;\r\n };\r\n const reset = (values, omitResetState = {}) => {\r\n if (isWeb) {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { ref, options } = field;\r\n const inputRef = isRadioOrCheckboxFunction(ref) && isArray(options)\r\n ? options[0].ref\r\n : ref;\r\n if (isHTMLElement(inputRef)) {\r\n try {\r\n inputRef.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n }\r\n if (values) {\r\n defaultValuesRef.current = values;\r\n }\r\n Object.values(resetFieldArrayFunctionRef.current).forEach((resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray());\r\n resetRefs(omitResetState);\r\n reRender();\r\n };\r\n function getValues(payload) {\r\n if (isString(payload)) {\r\n return fieldsRef.current[payload]\r\n ? getFieldValue(fieldsRef.current, fieldsRef.current[payload].ref)\r\n : get(defaultValuesRef.current, payload);\r\n }\r\n const fieldValues = getFieldsValues(fieldsRef.current);\r\n const outputValues = isEmptyObject(fieldValues)\r\n ? defaultValuesRef.current\r\n : fieldValues;\r\n return payload && payload.nest\r\n ? transformToNestObject(outputValues)\r\n : outputValues;\r\n }\r\n useEffect(() => () => {\r\n isUnMount.current = true;\r\n fieldsRef.current &&\r\n process.env.NODE_ENV === 'production' &&\r\n Object.values(fieldsRef.current).forEach((field) => removeFieldEventListenerAndRef(field, true));\r\n }, [removeFieldEventListenerAndRef]);\r\n if (!shouldValidateSchemaOrResolver) {\r\n isValidRef.current =\r\n validFieldsRef.current.size >= fieldsWithValidationRef.current.size &&\r\n isEmptyObject(errorsRef.current);\r\n }\r\n const formState = {\r\n dirty: isDirtyRef.current,\r\n dirtyFields: dirtyFieldsRef.current,\r\n isSubmitted: isSubmittedRef.current,\r\n submitCount: submitCountRef.current,\r\n touched: touchedFieldsRef.current,\r\n isSubmitting: isSubmittingRef.current,\r\n isValid: isOnSubmit\r\n ? isSubmittedRef.current && isEmptyObject(errorsRef.current)\r\n : isValidRef.current,\r\n };\r\n const commonProps = {\r\n triggerValidation,\r\n setValue: useCallback(setValue, [\r\n reRender,\r\n setInternalValue,\r\n triggerValidation,\r\n ]),\r\n register: useCallback(register, [\r\n defaultValuesRef.current,\r\n defaultValuesAtRenderRef.current,\r\n ]),\r\n unregister: useCallback(unregister, []),\r\n getValues: useCallback(getValues, []),\r\n formState: isProxyEnabled\r\n ? new Proxy(formState, {\r\n get: (obj, prop) => {\r\n if (prop in obj) {\r\n readFormStateRef.current[prop] = true;\r\n return obj[prop];\r\n }\r\n return undefined;\r\n },\r\n })\r\n : formState,\r\n };\r\n const control = Object.assign(Object.assign(Object.assign({ removeFieldEventListener,\r\n reRender }, (shouldValidateSchemaOrResolver\r\n ? { validateSchemaIsValid: validateSchemaOrResolver }\r\n : {})), { mode: {\r\n isOnBlur,\r\n isOnSubmit,\r\n isOnChange,\r\n }, reValidateMode: {\r\n isReValidateOnBlur,\r\n isReValidateOnSubmit,\r\n }, errorsRef,\r\n touchedFieldsRef,\r\n fieldsRef,\r\n isWatchAllRef,\r\n watchFieldsRef,\r\n resetFieldArrayFunctionRef,\r\n fieldArrayDefaultValues,\r\n validFieldsRef,\r\n dirtyFieldsRef,\r\n fieldsWithValidationRef,\r\n fieldArrayNamesRef,\r\n isDirtyRef,\r\n readFormStateRef,\r\n defaultValuesRef }), commonProps);\r\n return Object.assign({ watch,\r\n control,\r\n handleSubmit, reset: useCallback(reset, []), clearError: useCallback(clearError, []), setError: useCallback(setError, []), errors: errorsRef.current }, commonProps);\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __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}\n\nconst FormGlobalContext = createContext(null);\r\nfunction useFormContext() {\r\n return useContext(FormGlobalContext);\r\n}\r\nfunction FormContext(_a) {\r\n var { children, formState, errors } = _a, restMethods = __rest(_a, [\"children\", \"formState\", \"errors\"]);\r\n return (createElement(FormGlobalContext.Provider, { value: Object.assign(Object.assign({}, restMethods), { formState, errors }) }, children));\r\n}\n\nvar generateId = () => {\r\n const d = typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nconst appendId = (value, keyName) => (Object.assign({ [keyName]: generateId() }, (isObject(value) ? value : { value })));\r\nconst mapIds = (data, keyName) => (isArray(data) ? data : []).map((value) => appendId(value, keyName));\n\nvar getSortRemovedItems = (indexes, removeIndexes, updatedIndexes = [], count = 0, notFoundIndexes = []) => {\r\n for (const removeIndex of removeIndexes) {\r\n if (indexes.indexOf(removeIndex) < 0) {\r\n notFoundIndexes.push(removeIndex);\r\n }\r\n }\r\n for (const index of indexes.sort()) {\r\n if (removeIndexes.indexOf(index) > -1) {\r\n updatedIndexes.push(-1);\r\n count++;\r\n }\r\n else {\r\n updatedIndexes.push(index -\r\n count -\r\n (notFoundIndexes.length\r\n ? notFoundIndexes\r\n .map((notFoundIndex) => notFoundIndex < index)\r\n .filter(Boolean).length\r\n : 0));\r\n }\r\n }\r\n return updatedIndexes;\r\n};\n\nconst removeAt = (data, index) => [\r\n ...data.slice(0, index),\r\n ...data.slice(index + 1),\r\n];\r\nfunction removeAtIndexes(data, index) {\r\n let k = -1;\r\n while (++k < data.length) {\r\n if (index.indexOf(k) >= 0) {\r\n delete data[k];\r\n }\r\n }\r\n return data.filter(Boolean);\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : isArray(index)\r\n ? removeAtIndexes(data, index)\r\n : removeAt(data, index);\n\nvar moveArrayAt = (data, from, to) => isArray(data) ? data.splice(to, 0, data.splice(from, 1)[0]) : [];\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n const temp = [data[indexB], data[indexA]];\r\n data[indexA] = temp[0];\r\n data[indexB] = temp[1];\r\n};\n\nfunction prepend(data, value) {\r\n return [...(isArray(value) ? value : [value || null]), ...data];\r\n}\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...(isArray(value) ? value : [value || null]),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar fillEmptyArray = (value) => isArray(value) ? Array(value.length).fill(null) : null;\n\nconst useFieldArray = ({ control, name, keyName = 'id', }) => {\r\n const methods = useFormContext();\r\n const { isWatchAllRef, resetFieldArrayFunctionRef, fieldArrayNamesRef, reRender, fieldsRef, getValues, defaultValuesRef, removeFieldEventListener, errorsRef, dirtyFieldsRef, isDirtyRef, touchedFieldsRef, readFormStateRef, watchFieldsRef, validFieldsRef, fieldsWithValidationRef, fieldArrayDefaultValues, validateSchemaIsValid, } = control || methods.control;\r\n const getDefaultValues = () => [\r\n ...get(fieldArrayDefaultValues.current[getFieldArrayParentName(name)]\r\n ? fieldArrayDefaultValues.current\r\n : defaultValuesRef.current, name, []),\r\n ];\r\n const memoizedDefaultValues = useRef(getDefaultValues());\r\n const [fields, setField] = useState(mapIds(memoizedDefaultValues.current, keyName));\r\n const [isDeleted, setIsDeleted] = useState(false);\r\n const allFields = useRef(fields);\r\n const isNameKey = isKey(name);\r\n allFields.current = fields;\r\n if (isNameKey) {\r\n fieldArrayDefaultValues.current[name] = memoizedDefaultValues.current;\r\n }\r\n const appendValueWithKey = (values) => values.map((value) => appendId(value, keyName));\r\n const setFieldAndValidState = (fieldsValues) => {\r\n setField(fieldsValues);\r\n if (readFormStateRef.current.isValid && validateSchemaIsValid) {\r\n validateSchemaIsValid({\r\n [name]: fieldsValues,\r\n });\r\n }\r\n };\r\n const modifyDirtyFields = ({ shouldRender, isRemove, isPrePend, index, value = {}, } = {}) => {\r\n let render = shouldRender;\r\n const values = isArray(value) ? value : [value];\r\n if (readFormStateRef.current.dirty) {\r\n const dirtyFieldIndexesAndValues = {};\r\n if (isPrePend || isRemove) {\r\n for (const dirtyField of [...dirtyFieldsRef.current].sort()) {\r\n if (isMatchFieldArrayName(dirtyField, name)) {\r\n const matchedIndexes = dirtyField.match(REGEX_ARRAY_FIELD_INDEX);\r\n if (matchedIndexes) {\r\n const matchIndex = +matchedIndexes[matchedIndexes.length - 1];\r\n if (dirtyFieldIndexesAndValues[matchIndex]) {\r\n dirtyFieldIndexesAndValues[matchIndex].push(dirtyField);\r\n }\r\n else {\r\n dirtyFieldIndexesAndValues[matchIndex] = [dirtyField];\r\n }\r\n }\r\n dirtyFieldsRef.current.delete(dirtyField);\r\n }\r\n }\r\n }\r\n if (!isUndefined(index) || isPrePend) {\r\n const updatedDirtyFieldIndexes = isUndefined(index)\r\n ? []\r\n : getSortRemovedItems(Object.keys(dirtyFieldIndexesAndValues).map((i) => +i), isArray(index) ? index : [index]);\r\n Object.values(dirtyFieldIndexesAndValues).forEach((values, index) => {\r\n const updateIndex = isPrePend ? 0 : updatedDirtyFieldIndexes[index];\r\n if (updateIndex > -1) {\r\n for (const value of values) {\r\n const matchedIndexes = value.match(REGEX_ARRAY_FIELD_INDEX);\r\n if (matchedIndexes) {\r\n dirtyFieldsRef.current.add(value.replace(/[\\d+]([^[\\d+]+)$/, `${isPrePend\r\n ? +matchedIndexes[matchedIndexes.length - 1] +\r\n values.length\r\n : updateIndex}$1`));\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (!isRemove) {\r\n values.forEach((fieldValue, index) => Object.keys(fieldValue).forEach((key) => dirtyFieldsRef.current.add(`${name}[${isPrePend ? index : allFields.current.length + index}].${key}`)));\r\n isDirtyRef.current = true;\r\n }\r\n render = true;\r\n }\r\n if (render && !isWatchAllRef.current) {\r\n reRender();\r\n }\r\n };\r\n const resetFields = (flagOrFields) => {\r\n if (readFormStateRef.current.dirty) {\r\n isDirtyRef.current = isUndefined(flagOrFields)\r\n ? true\r\n : getIsFieldsDifferent(flagOrFields, defaultValuesRef.current[name] || []);\r\n }\r\n for (const key in fieldsRef.current) {\r\n if (isMatchFieldArrayName(key, name) && fieldsRef.current[key]) {\r\n removeFieldEventListener(fieldsRef.current[key], true);\r\n }\r\n }\r\n };\r\n const mapCurrentFieldsValueWithState = () => {\r\n const currentFieldsValue = get(getValues({ nest: true }), name);\r\n if (isArray(currentFieldsValue)) {\r\n for (let i = 0; i < currentFieldsValue.length; i++) {\r\n allFields.current[i] = Object.assign(Object.assign({}, allFields.current[i]), currentFieldsValue[i]);\r\n }\r\n }\r\n };\r\n const append = (value) => {\r\n setFieldAndValidState([\r\n ...allFields.current,\r\n ...(isArray(value)\r\n ? appendValueWithKey(value)\r\n : [appendId(value, keyName)]),\r\n ]);\r\n modifyDirtyFields({ value });\r\n };\r\n const prepend$1 = (value) => {\r\n let shouldRender = false;\r\n resetFields();\r\n setFieldAndValidState(prepend(allFields.current, isArray(value) ? appendValueWithKey(value) : [appendId(value, keyName)]));\r\n if (errorsRef.current[name]) {\r\n errorsRef.current[name] = prepend(errorsRef.current[name], fillEmptyArray(value));\r\n }\r\n if (readFormStateRef.current.touched && touchedFieldsRef.current[name]) {\r\n touchedFieldsRef.current[name] = prepend(touchedFieldsRef.current[name], fillEmptyArray(value));\r\n shouldRender = true;\r\n }\r\n modifyDirtyFields({\r\n shouldRender,\r\n isPrePend: true,\r\n value,\r\n });\r\n };\r\n const remove = (index) => {\r\n let shouldRender = false;\r\n const isIndexUndefined = isUndefined(index);\r\n if (!isIndexUndefined) {\r\n mapCurrentFieldsValueWithState();\r\n }\r\n resetFields(removeArrayAt(getFieldValueByName(fieldsRef.current, name), index));\r\n setFieldAndValidState(removeArrayAt(allFields.current, index));\r\n setIsDeleted(true);\r\n if (errorsRef.current[name]) {\r\n errorsRef.current[name] = removeArrayAt(errorsRef.current[name], index);\r\n if (!errorsRef.current[name].filter(Boolean).length) {\r\n delete errorsRef.current[name];\r\n }\r\n }\r\n if (readFormStateRef.current.touched && touchedFieldsRef.current[name]) {\r\n touchedFieldsRef.current[name] = removeArrayAt(touchedFieldsRef.current[name], index);\r\n shouldRender = true;\r\n }\r\n if (readFormStateRef.current.isValid && !validateSchemaIsValid) {\r\n let fieldIndex = -1;\r\n let isFound = false;\r\n const isIndexUndefined = isUndefined(index);\r\n while (fieldIndex++ < fields.length) {\r\n const isLast = fieldIndex === fields.length - 1;\r\n const isCurrentIndex = (isArray(index) ? index : [index]).indexOf(fieldIndex) >= 0;\r\n if (isCurrentIndex || isIndexUndefined) {\r\n isFound = true;\r\n }\r\n if (!isFound) {\r\n continue;\r\n }\r\n for (const key in fields[fieldIndex]) {\r\n const currentFieldName = `${name}[${fieldIndex}].${key}`;\r\n if (isCurrentIndex || isLast || isIndexUndefined) {\r\n validFieldsRef.current.delete(currentFieldName);\r\n fieldsWithValidationRef.current.delete(currentFieldName);\r\n }\r\n else {\r\n const previousFieldName = `${name}[${fieldIndex - 1}].${key}`;\r\n if (validFieldsRef.current.has(currentFieldName)) {\r\n validFieldsRef.current.add(previousFieldName);\r\n }\r\n if (fieldsWithValidationRef.current.has(currentFieldName)) {\r\n fieldsWithValidationRef.current.add(previousFieldName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n modifyDirtyFields({\r\n shouldRender,\r\n isRemove: true,\r\n index,\r\n });\r\n };\r\n const insert$1 = (index, value) => {\r\n mapCurrentFieldsValueWithState();\r\n resetFields(insert(getFieldValueByName(fieldsRef.current, name), index));\r\n setFieldAndValidState(insert(allFields.current, index, isArray(value) ? appendValueWithKey(value) : [appendId(value, keyName)]));\r\n if (errorsRef.current[name]) {\r\n errorsRef.current[name] = insert(errorsRef.current[name], index, fillEmptyArray(value));\r\n }\r\n if (readFormStateRef.current.touched && touchedFieldsRef.current[name]) {\r\n touchedFieldsRef.current[name] = insert(touchedFieldsRef.current[name], index, fillEmptyArray(value));\r\n reRender();\r\n }\r\n };\r\n const swap = (indexA, indexB) => {\r\n mapCurrentFieldsValueWithState();\r\n const fieldValues = getFieldValueByName(fieldsRef.current, name);\r\n swapArrayAt(fieldValues, indexA, indexB);\r\n resetFields(fieldValues);\r\n swapArrayAt(allFields.current, indexA, indexB);\r\n setFieldAndValidState([...allFields.current]);\r\n if (errorsRef.current[name]) {\r\n swapArrayAt(errorsRef.current[name], indexA, indexB);\r\n }\r\n if (readFormStateRef.current.touched && touchedFieldsRef.current[name]) {\r\n swapArrayAt(touchedFieldsRef.current[name], indexA, indexB);\r\n reRender();\r\n }\r\n };\r\n const move = (from, to) => {\r\n mapCurrentFieldsValueWithState();\r\n const fieldValues = getFieldValueByName(fieldsRef.current, name);\r\n moveArrayAt(fieldValues, from, to);\r\n resetFields(fieldValues);\r\n moveArrayAt(allFields.current, from, to);\r\n setFieldAndValidState([...allFields.current]);\r\n if (errorsRef.current[name]) {\r\n moveArrayAt(errorsRef.current[name], from, to);\r\n }\r\n if (readFormStateRef.current.touched && touchedFieldsRef.current[name]) {\r\n moveArrayAt(touchedFieldsRef.current[name], from, to);\r\n reRender();\r\n }\r\n };\r\n const reset = () => {\r\n resetFields();\r\n memoizedDefaultValues.current = getDefaultValues();\r\n setField(mapIds(memoizedDefaultValues.current, keyName));\r\n };\r\n useEffect(() => {\r\n if (isNameKey &&\r\n isDeleted &&\r\n fieldArrayDefaultValues.current[name] &&\r\n fields.length < fieldArrayDefaultValues.current[name].length) {\r\n fieldArrayDefaultValues.current[name].pop();\r\n }\r\n }, [fields, name, fieldArrayDefaultValues, isDeleted, isNameKey]);\r\n useEffect(() => {\r\n if (isWatchAllRef && isWatchAllRef.current) {\r\n reRender();\r\n }\r\n else if (watchFieldsRef) {\r\n for (const watchField of watchFieldsRef.current) {\r\n if (watchField.startsWith(name)) {\r\n reRender();\r\n break;\r\n }\r\n }\r\n }\r\n }, [fields, name, reRender, watchFieldsRef, isWatchAllRef]);\r\n useEffect(() => {\r\n const resetFunctions = resetFieldArrayFunctionRef.current;\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n fieldArrayNames.add(name);\r\n resetFunctions[name] = reset;\r\n return () => {\r\n resetFields();\r\n delete resetFunctions[name];\r\n fieldArrayNames.delete(name);\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n return {\r\n swap: useCallback(swap, [name]),\r\n move: useCallback(move, [name]),\r\n prepend: useCallback(prepend$1, [name]),\r\n append: useCallback(append, [name]),\r\n remove: useCallback(remove, [fields, name]),\r\n insert: useCallback(insert$1, [name]),\r\n fields,\r\n };\r\n};\n\nvar getInputValue = (event, isCheckboxInput) => isPrimitive(event) ||\r\n !isObject(event.target) ||\r\n (isObject(event.target) && !event.type)\r\n ? event\r\n : isCheckboxInput || isUndefined(event.target.value)\r\n ? event.target.checked\r\n : event.target.value;\n\nconst Controller = (_a) => {\r\n var { name, rules, as: InnerComponent, onBlur, onChange, onChangeName = VALIDATION_MODE.onChange, onBlurName = VALIDATION_MODE.onBlur, valueName, defaultValue, control, onFocus } = _a, rest = __rest(_a, [\"name\", \"rules\", \"as\", \"onBlur\", \"onChange\", \"onChangeName\", \"onBlurName\", \"valueName\", \"defaultValue\", \"control\", \"onFocus\"]);\r\n const methods = useFormContext();\r\n const { defaultValuesRef, setValue, register, unregister, errorsRef, removeFieldEventListener, triggerValidation, mode: { isOnSubmit, isOnBlur, isOnChange }, reValidateMode: { isReValidateOnBlur, isReValidateOnSubmit }, formState: { isSubmitted }, touchedFieldsRef, readFormStateRef, reRender, fieldsRef, fieldArrayNamesRef, } = control || methods.control;\r\n const [value, setInputStateValue] = useState(isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue);\r\n const valueRef = useRef(value);\r\n const isCheckboxInput = isBoolean(value);\r\n const shouldReValidateOnBlur = isOnBlur || isReValidateOnBlur;\r\n const rulesRef = useRef(rules);\r\n const onFocusRef = useRef(onFocus);\r\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n rulesRef.current = rules;\r\n const shouldValidate = () => !skipValidation({\r\n hasError: !!get(errorsRef.current, name),\r\n isOnBlur,\r\n isOnSubmit,\r\n isOnChange,\r\n isReValidateOnBlur,\r\n isReValidateOnSubmit,\r\n isSubmitted,\r\n });\r\n const commonTask = (event) => {\r\n const data = getInputValue(event, isCheckboxInput);\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n return data;\r\n };\r\n const eventWrapper = (event) => (...arg) => setValue(name, commonTask(event(arg)), shouldValidate());\r\n const handleChange = (event) => {\r\n const data = commonTask(event);\r\n setValue(name, data, shouldValidate());\r\n };\r\n const registerField = useCallback(() => {\r\n if (!isNotFieldArray) {\r\n removeFieldEventListener(fieldsRef.current[name], true);\r\n }\r\n register(Object.defineProperty({ name, focus: onFocusRef.current }, VALUE, {\r\n set(data) {\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n },\r\n get() {\r\n return valueRef.current;\r\n },\r\n }), rulesRef.current);\r\n }, [\r\n isNotFieldArray,\r\n fieldsRef,\r\n rulesRef,\r\n name,\r\n onFocusRef,\r\n register,\r\n removeFieldEventListener,\r\n ]);\r\n useEffect(() => () => {\r\n !isNameInFieldArray(fieldArrayNamesRef.current, name) && unregister(name);\r\n }, [unregister, name, fieldArrayNamesRef]);\r\n useEffect(() => {\r\n registerField();\r\n }, [registerField]);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (!fieldsRef.current[name]) {\r\n registerField();\r\n if (isNotFieldArray) {\r\n setInputStateValue(isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue);\r\n }\r\n }\r\n });\r\n const props = Object.assign(Object.assign(Object.assign(Object.assign({ name }, rest), (onChange\r\n ? { [onChangeName]: eventWrapper(onChange) }\r\n : { [onChangeName]: handleChange })), { [onBlurName]: (...args) => {\r\n if (onBlur) {\r\n onBlur(args);\r\n }\r\n if (readFormStateRef.current.touched &&\r\n !get(touchedFieldsRef.current, name)) {\r\n set(touchedFieldsRef.current, name, true);\r\n reRender();\r\n }\r\n if (shouldReValidateOnBlur) {\r\n triggerValidation(name);\r\n }\r\n } }), { [valueName || (isCheckboxInput ? 'checked' : VALUE)]: value });\r\n return isValidElement(InnerComponent)\r\n ? cloneElement(InnerComponent, props)\r\n : createElement(InnerComponent, props);\r\n};\n\nconst ErrorMessage = (_a) => {\r\n var { as: InnerComponent, errors, name, message, children } = _a, rest = __rest(_a, [\"as\", \"errors\", \"name\", \"message\", \"children\"]);\r\n const methods = useFormContext();\r\n const error = get(errors || methods.errors, name);\r\n if (!error) {\r\n return null;\r\n }\r\n const { message: messageFromRegister, types } = error;\r\n const props = Object.assign(Object.assign({}, (InnerComponent ? rest : {})), { children: children\r\n ? children({ message: messageFromRegister || message, messages: types })\r\n : messageFromRegister || message });\r\n return InnerComponent ? (isValidElement(InnerComponent) ? (cloneElement(InnerComponent, props)) : (createElement(InnerComponent, props))) : (createElement(Fragment, Object.assign({}, props)));\r\n};\n\nexport { Controller, ErrorMessage, FormContext, useFieldArray, useForm, useFormContext };\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\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'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; return arr2; } else { return Array.from(arr); } }\n\nvar _objectAssign = require('object-assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar truthy = function truthy(x) {\n return x;\n};\n\nexports['default'] = function (input) {\n var _ref = Array.isArray(input) && input.length === 2 ? input : [input, null];\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var theme = _ref2[0];\n var classNameDecorator = _ref2[1];\n\n return function (key) {\n for (var _len = arguments.length, names = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n names[_key - 1] = arguments[_key];\n }\n\n var styles = names.map(function (name) {\n return theme[name];\n }).filter(truthy);\n\n return typeof styles[0] === 'string' || typeof classNameDecorator === 'function' ? { key: key, className: classNameDecorator ? classNameDecorator.apply(undefined, _toConsumableArray(styles)) : styles.join(' ') } : { key: key, style: _objectAssign2['default'].apply(undefined, [{}].concat(_toConsumableArray(styles))) };\n };\n};\n\nmodule.exports = exports['default'];","'use strict';\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction ToObject(val) {\n\tif (val == null) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction ownEnumerableKeys(obj) {\n\tvar keys = Object.getOwnPropertyNames(obj);\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tkeys = keys.concat(Object.getOwnPropertySymbols(obj));\n\t}\n\n\treturn keys.filter(function (key) {\n\t\treturn propIsEnumerable.call(obj, key);\n\t});\n}\n\nmodule.exports = Object.assign || function (target, source) {\n\tvar from;\n\tvar keys;\n\tvar to = ToObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = arguments[s];\n\t\tkeys = ownEnumerableKeys(Object(from));\n\n\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\tto[keys[i]] = from[keys[i]];\n\t\t}\n\t}\n\n\treturn to;\n};\n","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\nimport { forceReflow } from './utils/reflow';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n if (node) forceReflow(node);\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export function isFunction(x: any): x is Function {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined as PromiseConstructorLike,\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value: boolean) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n setTimeout(() => { throw err; }, 0);\n}","import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","export interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n new(errors: any[]): UnsubscriptionError;\n}\n\nconst UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(this: any, errors: any[]) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n\n return UnsubscriptionErrorImpl;\n})();\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY: Subscription = (function(empty: any) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n /** @internal */\n protected _parentOrParents: Subscription | Subscription[] = null;\n /** @internal */\n private _subscriptions: SubscriptionLike[] = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n (this as any)._ctorUnsubscribe = true;\n (this as any)._unsubscribe = unsubscribe;\n }\n }\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[];\n\n if (this.closed) {\n return;\n }\n\n let { _parentOrParents, _ctorUnsubscribe, _unsubscribe, _subscriptions } = (this as any);\n\n this.closed = true;\n this._parentOrParents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n\n if (isFunction(_unsubscribe)) {\n // It's only possible to null _unsubscribe - to release the reference to\n // any teardown function passed in the constructor - if the property was\n // actually assigned in the constructor, as there are some classes that\n // are derived from Subscriber (which derives from Subscription) that\n // implement an _unsubscribe method as a mechanism for obtaining\n // unsubscription notifications and some of those subscribers are\n // recycled. Also, in some of those subscribers, _unsubscribe switches\n // from a prototype method to an instance property - see notifyNext in\n // RetryWhenSubscriber.\n if (_ctorUnsubscribe) {\n (this as any)._unsubscribe = undefined;\n }\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription. Can also be used to add a child subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n let subscription = (teardown);\n\n if (!teardown) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void)>teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n // Add `this` as parent of `subscription` if that's not already the case.\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n // If we don't have a parent, then set `subscription._parents` to\n // the `this`, which is the common case that we optimize for.\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n // If there's already one parent, but not multiple, allocate an\n // Array to store the rest of the parent Subscriptions.\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n // Only add `this` to the _parentOrParents list if it's not already there.\n _parentOrParents.push(this);\n } else {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n\n // Optimize for the common case when adding the first subscription.\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export function isObject(x: any): x is Object {\n return x !== null && typeof x === 'object';\n}\n","/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport const rxSubscriber = (() =>\n typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver, TeardownLogic } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n /** @internal */ syncErrorValue: any = null;\n /** @internal */ syncErrorThrown: boolean = false;\n /** @internal */ syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: PartialObserver | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n } else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, > destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete);\n break;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (e?: any) => void,\n complete?: () => void) {\n super();\n\n let next: ((value: T) => void);\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\n } else if (observerOrNext) {\n next = (> observerOrNext).next;\n error = (> observerOrNext).error;\n complete = (> observerOrNext).complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","export function identity(x: T): T {\n return x;\n}\n","import { noop } from './noop';\nimport { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe(): UnaryFunction;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n","import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n\n /** Internal implementation detail, do not use directly. */\n public _isScalar: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n source: Observable;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n operator: Operator;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n * @nocollapse\n * @deprecated use new Observable() instead\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n /** @deprecated Use an observer instead of an error callback */\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * ## Example\n * ### Subscribe with an Observer\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Subscribe with functions\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Cancel a subscription\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * );\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(\n this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink)\n );\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n /**\n * @method forEach\n * @param {Function} next a handler for each value emitted by the observable\n * @param {PromiseConstructor} [promiseCtor] a constructor function used to instantiate the Promise\n * @return {Promise} a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a ReferenceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n }) as Promise;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): TeardownLogic {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n // favor of iif and throwError functions.\n /**\n * @nocollapse\n * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n */\n static if: typeof iif;\n /**\n * @nocollapse\n * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n */\n static throw: typeof throwError;\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe
(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable<{}>;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ### Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: any;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber(\n nextOrObserver?: PartialObserver | ((value: T) => void),\n error?: (error: any) => void,\n complete?: () => void): Subscriber {\n\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return (> nextOrObserver);\n }\n\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport function canReportError(observer: Subscriber | Subject): boolean {\n while (observer) {\n const { closed, destination, isStopped } = observer as any;\n if (closed || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber) {\n observer = destination;\n } else {\n observer = null;\n }\n }\n return true;\n}\n","export interface ObjectUnsubscribedError extends Error {\n}\n\nexport interface ObjectUnsubscribedErrorCtor {\n new(): ObjectUnsubscribedError;\n}\n\nconst ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl(this: any) {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n\n return ObjectUnsubscribedErrorImpl;\n})();\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;","import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject\n */\nexport class Subject extends Observable implements SubscriptionLike {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n /**@nocollapse\n * @deprecated use new Subject() instead\n */\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value?: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create customize Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { SubscriptionLike } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n *\n * @class BehaviorSubject\n */\nexport class BehaviorSubject extends Subject {\n\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n if (subscription && !(subscription).closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n\n getValue(): T {\n if (this.hasError) {\n throw this.thrownError;\n } else if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return this._value;\n }\n }\n\n next(value: T): void {\n super.next(this._value = value);\n }\n}\n","\"use strict\";\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nmodule.exports = function (_ref) {\n var data = _ref.data;\n var multiSection = _ref.multiSection;\n\n function nextNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = 0;\n } else {\n sectionIndex++;\n }\n\n while (sectionIndex < data.length && data[sectionIndex] === 0) {\n sectionIndex++;\n }\n\n return sectionIndex === data.length ? null : sectionIndex;\n }\n\n function prevNonEmptySectionIndex(sectionIndex) {\n if (sectionIndex === null) {\n sectionIndex = data.length - 1;\n } else {\n sectionIndex--;\n }\n\n while (sectionIndex >= 0 && data[sectionIndex] === 0) {\n sectionIndex--;\n }\n\n return sectionIndex === -1 ? null : sectionIndex;\n }\n\n function next(position) {\n var _position = _slicedToArray(position, 2);\n\n var sectionIndex = _position[0];\n var itemIndex = _position[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === data[sectionIndex] - 1) {\n sectionIndex = nextNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, 0];\n }\n\n return [sectionIndex, itemIndex + 1];\n }\n\n if (data === 0 || itemIndex === data - 1) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, 0];\n }\n\n return [null, itemIndex + 1];\n }\n\n function prev(position) {\n var _position2 = _slicedToArray(position, 2);\n\n var sectionIndex = _position2[0];\n var itemIndex = _position2[1];\n\n\n if (multiSection) {\n if (itemIndex === null || itemIndex === 0) {\n sectionIndex = prevNonEmptySectionIndex(sectionIndex);\n\n if (sectionIndex === null) {\n return [null, null];\n }\n\n return [sectionIndex, data[sectionIndex] - 1];\n }\n\n return [sectionIndex, itemIndex - 1];\n }\n\n if (data === 0 || itemIndex === 0) {\n return [null, null];\n }\n\n if (itemIndex === null) {\n return [null, data - 1];\n }\n\n return [null, itemIndex - 1];\n }\n\n function isLast(position) {\n return next(position)[1] === null;\n }\n\n return {\n next: next,\n prev: prev,\n isLast: isLast\n };\n};\n","'use strict';\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = shallowEqualArrays;\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Normalize = exports.normalize = void 0;\n\nvar _styledComponents = require(\"styled-components\");\n\nvar normalize = (0, _styledComponents.css)([\"html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0;}main{display:block;}h1{font-size:2em;margin:0.67em 0;}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace,monospace;font-size:1em;}a{background-color:transparent;}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted;}b,strong{font-weight:bolder;}code,kbd,samp{font-family:monospace,monospace;font-size:1em;}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sub{bottom:-0.25em;}sup{top:-0.5em;}img{border-style:none;}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible;}button,select{text-transform:none;}button,[type=\\\"button\\\"],[type=\\\"reset\\\"],[type=\\\"submit\\\"]{-webkit-appearance:button;}button::-moz-focus-inner,[type=\\\"button\\\"]::-moz-focus-inner,[type=\\\"reset\\\"]::-moz-focus-inner,[type=\\\"submit\\\"]::-moz-focus-inner{border-style:none;padding:0;}button:-moz-focusring,[type=\\\"button\\\"]:-moz-focusring,[type=\\\"reset\\\"]:-moz-focusring,[type=\\\"submit\\\"]:-moz-focusring{outline:1px dotted ButtonText;}fieldset{padding:0.35em 0.75em 0.625em;}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline;}textarea{overflow:auto;}[type=\\\"checkbox\\\"],[type=\\\"radio\\\"]{box-sizing:border-box;padding:0;}[type=\\\"number\\\"]::-webkit-inner-spin-button,[type=\\\"number\\\"]::-webkit-outer-spin-button{height:auto;}[type=\\\"search\\\"]{-webkit-appearance:textfield;outline-offset:-2px;}[type=\\\"search\\\"]::-webkit-search-decoration{-webkit-appearance:none;}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block;}summary{display:list-item;}template{display:none;}[hidden]{display:none;}\"]);\nexports.normalize = normalize;\nvar Normalize = (0, _styledComponents.createGlobalStyle)(normalize);\nexports.Normalize = Normalize;\nNormalize.displayName = 'Normalize';\nvar _default = normalize;\nexports.default = _default;","/*! *****************************************************************************\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","/* UAParser.js v0.7.39\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.39\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=500;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\",SUFFIX_BROWSER=\" Browser\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjIiIGhlaWdodD0iNjIiIHZpZXdCb3g9IjAgMCA2MiA2MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNi41MjQ0IDQ0LjM0OTNMMTguNDA1NyAzOS42NjJDMTYuNjY0NSAzOC42NTY2IDE2LjEzNzcgMzguMTEwOCAxNS42OTc3IDM3LjQwMjhDMTUuMjU3NyAzNi42OTQ4IDE1LjA0NjUgMzUuOTA2OCAxNS4wNzM2IDM1LjA3MzdDMTUuMTAwNyAzNC4yNDA1IDE1LjI4MzkgMzMuNTA0NCAxNi4yODkzIDMxLjc2MzJMMjIuMjA2MyAyMS41MTQ2QzIzLjIxMTYgMTkuNzczMyAyMy43NTc0IDE5LjI0NjYgMjQuNDY1NCAxOC44MDY2QzI1LjE3MzQgMTguMzY2NiAyNS45NjE0IDE4LjE1NTQgMjYuNzk0NiAxOC4xODI1QzI3LjYyNzcgMTguMjA5NiAyOC4zNjM4IDE4LjM5MjggMzAuMTA1IDE5LjM5ODFMNTUuNzM0NiAzNC4xOTU0QzU3LjQ3NTggMzUuMjAwNyA1OC4wMDI2IDM1Ljc0NjUgNTguNDQyNiAzNi40NTQ1QzU4Ljg4MjYgMzcuMTYyNSA1OS4wOTM4IDM3Ljk1MDUgNTkuMDY2NyAzOC43ODM2QzU5LjAzOTYgMzkuNjE2OCA1OC44NTY0IDQwLjM1MjkgNTcuODUxMSA0Mi4wOTQxTDUxLjkzNCA1Mi4zNDI3QzUwLjkyODcgNTQuMDg0IDUwLjM4MjkgNTQuNjEwNyA0OS42NzQ5IDU1LjA1MDdDNDguOTY2OSA1NS40OTA4IDQ4LjE3ODkgNTUuNzAxOSA0Ny4zNDU4IDU1LjY3NDhDNDYuNTEyNiA1NS42NDc4IDQ1Ljc3NjUgNTUuNDY0NSA0NC4wMzUzIDU0LjQ1OTJMNDEuMDUyNSA1Mi43MzcxQzM5LjY1NTMgNTEuOTMwNCAzNy45MzM1IDUxLjkzMTQgMzYuNTM3MyA1Mi43Mzk4TDMwLjc0NDkgNTYuMDkzM0MyOS4zOTc0IDU2Ljg3MzMgMjcuNjcyNyA1Ni40MTM0IDI2Ljg5MjYgNTUuMDY2QzI2LjY0MzYgNTQuNjM1NyAyNi41MTI3IDU0LjE0NzMgMjYuNTEzMyA1My42NTAyTDI2LjUyNDQgNDQuMzQ5M1oiIGZpbGw9IiNGRjMzNUIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy44ODYyIDQ0LjY1OTlMMTIuOTgzMyA0MS43Mzg1QzExLjA0MTIgNDEuMjE4MSAxMC4zOTExIDQwLjgyNzIgOS43ODI4NSA0MC4yNTcyQzkuMTc0NTkgMzkuNjg3MyA4Ljc2NjY3IDM4Ljk4MDggOC41NzcyIDM4LjE2OUM4LjM4NzczIDM3LjM1NzIgOC4zNzQyMiAzNi41OTg4IDguODk0NjEgMzQuNjU2N0wxNC4wNzM0IDE1LjMyOUMxNC41OTM4IDEzLjM4NjkgMTQuOTg0OCAxMi43MzY4IDE1LjU1NDcgMTIuMTI4NkMxNi4xMjQ3IDExLjUyMDMgMTYuODMxMiAxMS4xMTI0IDE3LjY0MyAxMC45MjI5QzE4LjQ1NDcgMTAuNzMzNCAxOS4yMTMyIDEwLjcxOTkgMjEuMTU1MyAxMS4yNDAzTDU0LjY0MjggMjAuMjEzM0M1Ni41ODUgMjAuNzMzNyA1Ny4yMzUgMjEuMTI0NiA1Ny44NDMzIDIxLjY5NDVDNTguNDUxNiAyMi4yNjQ1IDU4Ljg1OTUgMjIuOTcxIDU5LjA0OSAyMy43ODI4QzU5LjIzODQgMjQuNTk0NiA1OS4yNTE5IDI1LjM1MyA1OC43MzE1IDI3LjI5NTFMNTMuNTUyNyA0Ni42MjI4QzUzLjAzMjMgNDguNTY0OSA1Mi42NDE0IDQ5LjIxNSA1Mi4wNzE0IDQ5LjgyMzJDNTEuNTAxNSA1MC40MzE1IDUwLjc5NDkgNTAuODM5NCA0OS45ODMyIDUxLjAyODlDNDkuMTcxNCA1MS4yMTg0IDQ4LjQxMyA1MS4yMzE5IDQ2LjQ3MDkgNTAuNzExNUw0MC44MSA0OS4xOTQ3QzM5LjI1MTUgNDguNzc3MSAzNy41ODg3IDQ5LjIyMzcgMzYuNDQ5MyA1MC4zNjU5TDMxLjE5NDggNTUuNjMyOUMzMC4wOTUyIDU2LjczNTIgMjguMzEwMiA1Ni43MzczIDI3LjIwOCA1NS42Mzc3QzI2Ljg1NiA1NS4yODY2IDI2LjYwMzIgNTQuODQ4NiAyNi40NzUxIDU0LjM2ODNMMjMuODg2MiA0NC42NTk5WiIgZmlsbD0iIzAwMUU1MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguODgxOTIgNDUuNjY3OEM2Ljg3MTI4IDQ1LjY2NzggNi4xNDIxOCA0NS40NTg0IDUuNDA3MTIgNDUuMDY1M0M0LjY3MjA2IDQ0LjY3MjIgNC4wOTUxOCA0NC4wOTUzIDMuNzAyMDcgNDMuMzYwM0MzLjMwODk2IDQyLjYyNTIgMy4wOTk2MSA0MS44OTYxIDMuMDk5NjEgMzkuODg1NUwzLjA5OTYxIDExLjk4MjVDMy4wOTk2MSA5Ljk3MTg3IDMuMzA4OTYgOS4yNDI3NiAzLjcwMjA3IDguNTA3NzFDNC4wOTUxOCA3Ljc3MjY1IDQuNjcyMDYgNy4xOTU3NyA1LjQwNzEyIDYuODAyNjZDNi4xNDIxOCA2LjQwOTU0IDYuODcxMjggNi4yMDAyIDguODgxOTIgNi4yMDAySDQ4LjA2MTNDNTAuMDcyIDYuMjAwMiA1MC44MDExIDYuNDA5NTQgNTEuNTM2MSA2LjgwMjY2QzUyLjI3MTIgNy4xOTU3NyA1Mi44NDgxIDcuNzcyNjUgNTMuMjQxMiA4LjUwNzcxQzUzLjYzNDMgOS4yNDI3NiA1My44NDM3IDkuOTcxODcgNTMuODQzNyAxMS45ODI1VjM5Ljg4NTVDNTMuODQzNyA0MS44OTYxIDUzLjYzNDMgNDIuNjI1MiA1My4yNDEyIDQzLjM2MDNDNTIuODQ4MSA0NC4wOTUzIDUyLjI3MTIgNDQuNjcyMiA1MS41MzYxIDQ1LjA2NTNDNTAuODAxMSA0NS40NTg0IDUwLjA3MiA0NS42Njc4IDQ4LjA2MTMgNDUuNjY3OEgzOS4zMDQ4QzM3LjY5MTQgNDUuNjY3OCAzNi4yMDA4IDQ2LjUyOTUgMzUuMzk1OCA0Ny45Mjc3TDMxLjE5NjcgNTUuMjIxQzMwLjQxOTggNTYuNTcwMyAyOC42OTYyIDU3LjAzNDMgMjcuMzQ2OSA1Ni4yNTc1QzI2LjkxNjEgNTYuMDA5NCAyNi41NTg1IDU1LjY1MTggMjYuMzEwNCA1NS4yMjFMMjIuMTExMyA0Ny45Mjc3QzIxLjMwNjMgNDYuNTI5NSAxOS44MTU3IDQ1LjY2NzggMTguMjAyMyA0NS42Njc4SDguODgxOTJaIiBmaWxsPSIjRkZEMTAwIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTkuNjYzOSAzMC45OTI3TDE1LjM0MzEgMzMuOTk5M0MxNS4wNjU1IDM0LjE5MjQgMTQuNjgzNCAzNC4xMjQ3IDE0LjQ4OTcgMzMuODQ4QzE0LjM4MjEgMzMuNjk0MyAxNC4zNTEyIDMzLjQ5OTggMTQuNDA1OSAzMy4zMjA1TDE1LjkzODggMjguMjk0NUMxNi4wMTM2IDI4LjA0OTQgMTUuOTI3IDI3Ljc4MzggMTUuNzIyIDI3LjYyOTNMMTEuNTE4NyAyNC40NjE1QzExLjI0ODcgMjQuMjU4IDExLjE5NTMgMjMuODc0OCAxMS4zOTk0IDIzLjYwNTZDMTEuNTEyOCAyMy40NTYxIDExLjY4ODcgMjMuMzY2NyAxMS44NzY3IDIzLjM2MzFMMTcuMTQ0OSAyMy4yNjM1QzE3LjQwMTggMjMuMjU4NiAxNy42Mjg0IDIzLjA5NDUgMTcuNzEyNCAyMi44NTI0TDE5LjQzNTUgMTcuODg3OUMxOS41NDYyIDE3LjU2OSAxOS44OTUyIDE3LjQgMjAuMjE1MSAxNy41MTAzQzIwLjM5MjcgMTcuNTcxNiAyMC41MzI0IDE3LjcxMDggMjAuNTkzOCAxNy44ODc5TDIyLjMxNjkgMjIuODUyNEMyMi40MDA5IDIzLjA5NDUgMjIuNjI3NSAyMy4yNTg2IDIyLjg4NDQgMjMuMjYzNUwyOC4xNTI3IDIzLjM2MzFDMjguNDkxMSAyMy4zNjk1IDI4Ljc2MDIgMjMuNjQ4MiAyOC43NTM4IDIzLjk4NTZDMjguNzUwMiAyNC4xNzMgMjguNjYwNiAyNC4zNDg0IDI4LjUxMDYgMjQuNDYxNUwyNC4zMDczIDI3LjYyOTNDMjQuMTAyMyAyNy43ODM4IDI0LjAxNTcgMjguMDQ5NCAyNC4wOTA1IDI4LjI5NDVMMjUuNjIzNCAzMy4zMjA1QzI1LjcyMTkgMzMuNjQzNCAyNS41MzkyIDMzLjk4NDcgMjUuMjE1MyAzNC4wODI5QzI1LjAzNTUgMzQuMTM3NCAyNC44NDA0IDM0LjEwNjYgMjQuNjg2MyAzMy45OTkzTDIwLjM2NTQgMzAuOTkyN0MyMC4xNTQ3IDMwLjg0NjEgMTkuODc0NiAzMC44NDYxIDE5LjY2MzkgMzAuOTkyN1oiIGZpbGw9IiMwMDFFNTAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy41NDYzIDIxLjcwNTFINDQuODIyN0M0NS42MDEyIDIxLjcwNTEgNDYuMjMyMyAyMi4zMzYyIDQ2LjIzMjMgMjMuMTE0NkM0Ni4yMzIzIDIzLjg5MzEgNDUuNjAxMiAyNC41MjQyIDQ0LjgyMjcgMjQuNTI0MkgzMy41NDYzQzMyLjc2NzggMjQuNTI0MiAzMi4xMzY3IDIzLjg5MzEgMzIuMTM2NyAyMy4xMTQ2QzMyLjEzNjcgMjIuMzM2MiAzMi43Njc4IDIxLjcwNTEgMzMuNTQ2MyAyMS43MDUxWk0zMy41NDYzIDI3LjM0MzNINDIuODQ5NEM0My42Mjc4IDI3LjM0MzMgNDQuMjU4OSAyNy45NzQ0IDQ0LjI1ODkgMjguNzUyOUM0NC4yNTg5IDI5LjUzMTMgNDMuNjI3OCAzMC4xNjI0IDQyLjg0OTQgMzAuMTYyNEgzMy41NDYzQzMyLjc2NzggMzAuMTYyNCAzMi4xMzY3IDI5LjUzMTMgMzIuMTM2NyAyOC43NTI5QzMyLjEzNjcgMjcuOTc0NCAzMi43Njc4IDI3LjM0MzMgMzMuNTQ2MyAyNy4zNDMzWiIgZmlsbD0iIzAwMUU1MCIvPgo8L3N2Zz4K\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjIiIGhlaWdodD0iNjIiIHZpZXdCb3g9IjAgMCA2MiA2MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNi41MjQ0IDQ0LjM0OTNMMTguNDA1NyAzOS42NjJDMTYuNjY0NSAzOC42NTY2IDE2LjEzNzcgMzguMTEwOCAxNS42OTc3IDM3LjQwMjhDMTUuMjU3NyAzNi42OTQ4IDE1LjA0NjUgMzUuOTA2OCAxNS4wNzM2IDM1LjA3MzdDMTUuMTAwNyAzNC4yNDA1IDE1LjI4MzkgMzMuNTA0NCAxNi4yODkzIDMxLjc2MzJMMjIuMjA2MyAyMS41MTQ2QzIzLjIxMTYgMTkuNzczMyAyMy43NTc0IDE5LjI0NjYgMjQuNDY1NCAxOC44MDY2QzI1LjE3MzQgMTguMzY2NiAyNS45NjE0IDE4LjE1NTQgMjYuNzk0NiAxOC4xODI1QzI3LjYyNzcgMTguMjA5NiAyOC4zNjM4IDE4LjM5MjggMzAuMTA1IDE5LjM5ODFMNTUuNzM0NiAzNC4xOTU0QzU3LjQ3NTggMzUuMjAwNyA1OC4wMDI2IDM1Ljc0NjUgNTguNDQyNiAzNi40NTQ1QzU4Ljg4MjYgMzcuMTYyNSA1OS4wOTM4IDM3Ljk1MDUgNTkuMDY2NyAzOC43ODM2QzU5LjAzOTYgMzkuNjE2OCA1OC44NTY0IDQwLjM1MjkgNTcuODUxMSA0Mi4wOTQxTDUxLjkzNCA1Mi4zNDI3QzUwLjkyODcgNTQuMDg0IDUwLjM4MjkgNTQuNjEwNyA0OS42NzQ5IDU1LjA1MDdDNDguOTY2OSA1NS40OTA4IDQ4LjE3ODkgNTUuNzAxOSA0Ny4zNDU4IDU1LjY3NDhDNDYuNTEyNiA1NS42NDc4IDQ1Ljc3NjUgNTUuNDY0NSA0NC4wMzUzIDU0LjQ1OTJMNDEuMDUyNSA1Mi43MzcxQzM5LjY1NTMgNTEuOTMwNCAzNy45MzM1IDUxLjkzMTQgMzYuNTM3MyA1Mi43Mzk4TDMwLjc0NDkgNTYuMDkzM0MyOS4zOTc0IDU2Ljg3MzMgMjcuNjcyNyA1Ni40MTM0IDI2Ljg5MjYgNTUuMDY2QzI2LjY0MzYgNTQuNjM1NyAyNi41MTI3IDU0LjE0NzMgMjYuNTEzMyA1My42NTAyTDI2LjUyNDQgNDQuMzQ5M1oiIGZpbGw9IiNGRjMzNUIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy44ODYyIDQ0LjY1OTlMMTIuOTgzMyA0MS43Mzg1QzExLjA0MTIgNDEuMjE4MSAxMC4zOTExIDQwLjgyNzIgOS43ODI4NSA0MC4yNTcyQzkuMTc0NTkgMzkuNjg3MyA4Ljc2NjY3IDM4Ljk4MDggOC41NzcyIDM4LjE2OUM4LjM4NzczIDM3LjM1NzIgOC4zNzQyMiAzNi41OTg4IDguODk0NjEgMzQuNjU2N0wxNC4wNzM0IDE1LjMyOUMxNC41OTM4IDEzLjM4NjkgMTQuOTg0OCAxMi43MzY4IDE1LjU1NDcgMTIuMTI4NkMxNi4xMjQ3IDExLjUyMDMgMTYuODMxMiAxMS4xMTI0IDE3LjY0MyAxMC45MjI5QzE4LjQ1NDcgMTAuNzMzNCAxOS4yMTMyIDEwLjcxOTkgMjEuMTU1MyAxMS4yNDAzTDU0LjY0MjggMjAuMjEzM0M1Ni41ODUgMjAuNzMzNyA1Ny4yMzUgMjEuMTI0NiA1Ny44NDMzIDIxLjY5NDVDNTguNDUxNiAyMi4yNjQ1IDU4Ljg1OTUgMjIuOTcxIDU5LjA0OSAyMy43ODI4QzU5LjIzODQgMjQuNTk0NiA1OS4yNTE5IDI1LjM1MyA1OC43MzE1IDI3LjI5NTFMNTMuNTUyNyA0Ni42MjI4QzUzLjAzMjMgNDguNTY0OSA1Mi42NDE0IDQ5LjIxNSA1Mi4wNzE0IDQ5LjgyMzJDNTEuNTAxNSA1MC40MzE1IDUwLjc5NDkgNTAuODM5NCA0OS45ODMyIDUxLjAyODlDNDkuMTcxNCA1MS4yMTg0IDQ4LjQxMyA1MS4yMzE5IDQ2LjQ3MDkgNTAuNzExNUw0MC44MSA0OS4xOTQ3QzM5LjI1MTUgNDguNzc3MSAzNy41ODg3IDQ5LjIyMzcgMzYuNDQ5MyA1MC4zNjU5TDMxLjE5NDggNTUuNjMyOUMzMC4wOTUyIDU2LjczNTIgMjguMzEwMiA1Ni43MzczIDI3LjIwOCA1NS42Mzc3QzI2Ljg1NiA1NS4yODY2IDI2LjYwMzIgNTQuODQ4NiAyNi40NzUxIDU0LjM2ODNMMjMuODg2MiA0NC42NTk5WiIgZmlsbD0iIzAwMUU1MCIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTguODgxOTIgNDUuNjY3OEM2Ljg3MTI4IDQ1LjY2NzggNi4xNDIxOCA0NS40NTg0IDUuNDA3MTIgNDUuMDY1M0M0LjY3MjA2IDQ0LjY3MjIgNC4wOTUxOCA0NC4wOTUzIDMuNzAyMDcgNDMuMzYwM0MzLjMwODk2IDQyLjYyNTIgMy4wOTk2MSA0MS44OTYxIDMuMDk5NjEgMzkuODg1NUwzLjA5OTYxIDExLjk4MjVDMy4wOTk2MSA5Ljk3MTg3IDMuMzA4OTYgOS4yNDI3NiAzLjcwMjA3IDguNTA3NzFDNC4wOTUxOCA3Ljc3MjY1IDQuNjcyMDYgNy4xOTU3NyA1LjQwNzEyIDYuODAyNjZDNi4xNDIxOCA2LjQwOTU0IDYuODcxMjggNi4yMDAyIDguODgxOTIgNi4yMDAySDQ4LjA2MTNDNTAuMDcyIDYuMjAwMiA1MC44MDExIDYuNDA5NTQgNTEuNTM2MSA2LjgwMjY2QzUyLjI3MTIgNy4xOTU3NyA1Mi44NDgxIDcuNzcyNjUgNTMuMjQxMiA4LjUwNzcxQzUzLjYzNDMgOS4yNDI3NiA1My44NDM3IDkuOTcxODcgNTMuODQzNyAxMS45ODI1VjM5Ljg4NTVDNTMuODQzNyA0MS44OTYxIDUzLjYzNDMgNDIuNjI1MiA1My4yNDEyIDQzLjM2MDNDNTIuODQ4MSA0NC4wOTUzIDUyLjI3MTIgNDQuNjcyMiA1MS41MzYxIDQ1LjA2NTNDNTAuODAxMSA0NS40NTg0IDUwLjA3MiA0NS42Njc4IDQ4LjA2MTMgNDUuNjY3OEgzOS4zMDQ4QzM3LjY5MTQgNDUuNjY3OCAzNi4yMDA4IDQ2LjUyOTUgMzUuMzk1OCA0Ny45Mjc3TDMxLjE5NjcgNTUuMjIxQzMwLjQxOTggNTYuNTcwMyAyOC42OTYyIDU3LjAzNDMgMjcuMzQ2OSA1Ni4yNTc1QzI2LjkxNjEgNTYuMDA5NCAyNi41NTg1IDU1LjY1MTggMjYuMzEwNCA1NS4yMjFMMjIuMTExMyA0Ny45Mjc3QzIxLjMwNjMgNDYuNTI5NSAxOS44MTU3IDQ1LjY2NzggMTguMjAyMyA0NS42Njc4SDguODgxOTJaIiBmaWxsPSIjMDBCMEYwIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTkuNjYzOSAzMC45OTI3TDE1LjM0MzEgMzMuOTk5M0MxNS4wNjU1IDM0LjE5MjQgMTQuNjgzNCAzNC4xMjQ3IDE0LjQ4OTcgMzMuODQ4QzE0LjM4MjEgMzMuNjk0MyAxNC4zNTEyIDMzLjQ5OTggMTQuNDA1OSAzMy4zMjA1TDE1LjkzODggMjguMjk0NUMxNi4wMTM2IDI4LjA0OTQgMTUuOTI3IDI3Ljc4MzggMTUuNzIyIDI3LjYyOTNMMTEuNTE4NyAyNC40NjE1QzExLjI0ODcgMjQuMjU4IDExLjE5NTMgMjMuODc0OCAxMS4zOTk0IDIzLjYwNTZDMTEuNTEyOCAyMy40NTYxIDExLjY4ODcgMjMuMzY2NyAxMS44NzY3IDIzLjM2MzFMMTcuMTQ0OSAyMy4yNjM1QzE3LjQwMTggMjMuMjU4NiAxNy42Mjg0IDIzLjA5NDUgMTcuNzEyNCAyMi44NTI0TDE5LjQzNTUgMTcuODg3OUMxOS41NDYyIDE3LjU2OSAxOS44OTUyIDE3LjQgMjAuMjE1MSAxNy41MTAzQzIwLjM5MjcgMTcuNTcxNiAyMC41MzI0IDE3LjcxMDggMjAuNTkzOCAxNy44ODc5TDIyLjMxNjkgMjIuODUyNEMyMi40MDA5IDIzLjA5NDUgMjIuNjI3NSAyMy4yNTg2IDIyLjg4NDQgMjMuMjYzNUwyOC4xNTI3IDIzLjM2MzFDMjguNDkxMSAyMy4zNjk1IDI4Ljc2MDIgMjMuNjQ4MiAyOC43NTM4IDIzLjk4NTZDMjguNzUwMiAyNC4xNzMgMjguNjYwNiAyNC4zNDg0IDI4LjUxMDYgMjQuNDYxNUwyNC4zMDczIDI3LjYyOTNDMjQuMTAyMyAyNy43ODM4IDI0LjAxNTcgMjguMDQ5NCAyNC4wOTA1IDI4LjI5NDVMMjUuNjIzNCAzMy4zMjA1QzI1LjcyMTkgMzMuNjQzNCAyNS41MzkyIDMzLjk4NDcgMjUuMjE1MyAzNC4wODI5QzI1LjAzNTUgMzQuMTM3NCAyNC44NDA0IDM0LjEwNjYgMjQuNjg2MyAzMy45OTkzTDIwLjM2NTQgMzAuOTkyN0MyMC4xNTQ3IDMwLjg0NjEgMTkuODc0NiAzMC44NDYxIDE5LjY2MzkgMzAuOTkyN1oiIGZpbGw9IiMwMDFFNTAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy41NDYzIDIxLjcwNTFINDQuODIyN0M0NS42MDEyIDIxLjcwNTEgNDYuMjMyMyAyMi4zMzYyIDQ2LjIzMjMgMjMuMTE0NkM0Ni4yMzIzIDIzLjg5MzEgNDUuNjAxMiAyNC41MjQyIDQ0LjgyMjcgMjQuNTI0MkgzMy41NDYzQzMyLjc2NzggMjQuNTI0MiAzMi4xMzY3IDIzLjg5MzEgMzIuMTM2NyAyMy4xMTQ2QzMyLjEzNjcgMjIuMzM2MiAzMi43Njc4IDIxLjcwNTEgMzMuNTQ2MyAyMS43MDUxWk0zMy41NDYzIDI3LjM0MzNINDIuODQ5NEM0My42Mjc4IDI3LjM0MzMgNDQuMjU4OSAyNy45NzQ0IDQ0LjI1ODkgMjguNzUyOUM0NC4yNTg5IDI5LjUzMTMgNDMuNjI3OCAzMC4xNjI0IDQyLjg0OTQgMzAuMTYyNEgzMy41NDYzQzMyLjc2NzggMzAuMTYyNCAzMi4xMzY3IDI5LjUzMTMgMzIuMTM2NyAyOC43NTI5QzMyLjEzNjcgMjcuOTc0NCAzMi43Njc4IDI3LjM0MzMgMzMuNTQ2MyAyNy4zNDMzWiIgZmlsbD0iIzAwMUU1MCIvPgo8L3N2Zz4K\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTNweCIgaGVpZ2h0PSIxMnB4IiB2aWV3Qm94PSIwIDAgMTMgMTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogc2tldGNodG9vbCA2MC4xICgxMDEwMTApIC0gaHR0cHM6Ly9za2V0Y2guY29tIC0tPgogICAgPHRpdGxlPjQ1NkRFMjY3LTIxREUtNDg3Qi1CNjUyLTdBMjZGMkMxRjNFNjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+CiAgICA8ZyBpZD0iQXNzZXQtQXJ0Ym9hcmQtUGFnZSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IjEycHgvZmlsdGVyLWljX2xpc3QiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuNzg2ODgxLCAwLjAwMDAwMCkiIGZpbGw9IiMwMDFFNTAiIGZpbGwtcnVsZT0ibm9uemVybyI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIgTDEyLDIgTDEyLDMuNSBMMywzLjUgTDMsMiBaIE0wLDIgTDEuNSwyIEwxLjUsMy41IEwwLDMuNSBMMCwyIFogTTAsNS41IEwxLjUsNS41IEwxLjUsNyBMMCw3IEwwLDUuNSBaIE0zLDUuNSBMMTIsNS41IEwxMiw3IEwzLDcgTDMsNS41IFogTTMsOSBMMTIsOSBMMTIsMTAuNSBMMywxMC41IEwzLDkgWiBNMCw5IEwxLjUsOSBMMS41LDEwLjUgTDAsMTAuNSBMMCw5IFoiIGlkPSJTaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAABLCAYAAAA7+XTCAAAEcklEQVRogd2ba4hVVRTHf10yzYYisKAGJTErB7P5EhiKfhAUMkHyixYUlIKaFKn5GAgd/eADBB1Q8kGo0DiN04feWIRvdDRJLAWNpCYtdJQch/HB+Igl6w7Hs8+99zz2OXPO+X2aWfvOuec/e5+1115rnQcYcwRLFIDHgKeBV4BhwFDgKeBRoD9wF+gCrgB/A6eBk8BRoB24autmHjQs4ZkAvAqMAAYCTwBVZa42EvgPuAi0AceAL4HDxidDEHXGqoEZwOvAIJ2xKMisnQW2A9t0dhMVJsvrA+AdnRnb3AL+BBpUZEfQ6xcMS3n6AW8AB4GFMYlCH5FnVdgeXeKBCCJMltoW4DNgsDEaH7XAt8CKIEvdr7DRwPfAm8ZIciwCPgeG2BI2EfgKqDFGkkc873fA8KjCJgEtwOPGSO/xnC7N2nJ3UE7YOGCHOoy0MUj3vBdK3Vc5YeJmHzGs6UHEbQae9LojL2HieXZpaJR2xKnV3duPfQibC4w3rOlFAoUp7rvzijyuAQ9nSBgaTI8CLhcN7hn7JoOihOeBj5wGp7CxumdllXedjsQpbEGGRQkDnBqKwl7UfSvrTNJDbY+wqUDfHAgbXDwJFIVl+dly0gd4DRU2XE/CeUFyLf0LuntHPdKnCTnWvCzCXtIpzAsySTUFvwe3jPFMIca8RW9SLcIeyqGwqkLOnq8ifQsegXAe6COibudQ2E0RdtMwZ58uEdaZQ2HtIuyMYc4+vxe0bNOdI1FSY/tFhB0JU81IMVKGOi7CTgCXciRMyk8dRXe/3xjOJlIK3o1jc27RYlvW+Ufz+j3C9muxO+v8BvzhFHYd+CIHwpqKPzjjxO0ZD6/EG+4s/uIU9quWZrJKo7PLwB3Zb8ioKOkX2eQ0uIXJZr3P+LP00+x2fm5hndqCkCVuAOvd9+t1yPwR+MmwphdZgqf8CLuq/4G7xkj6EGex0cubewlDezp2Gdb00eA1W+WEybqtj9KklQB/AWtLfU0pYeg5rdGwpoeV2hLoSTlhwpKUxpAHgK2G1UElYf8C61LmSGRLWq6PS0n85BTXamtdWpDuux8q3YsfYeJKF6ckmyVtD8sMqwd+s8CtKYlIlurjUZEg6e1Vkv0xrMkhS7DJ77cFESZLcValhzYmZM+aF+TSQQsSrdrCmjTSL3UhTmGosCSD5PVhDsBhhHVrh1ybMWKfAxokBCZsbUySrB8bVrt06jZzOcxVoxT9JPmzxrDaY67OWCiiVjNl1vYa1uh8oj3+oYkqTPKR7+k7KbY4ru2wkbBRfz6p4mwg57+3NevU68LQROVqwxqc2eqYImOzY6DOmYkNwUp1SFawKUxOAR8CPxsjlWnWVIQ1bPd4nAfeD7j3HNM40GoMGkfzyiFgps+6docG1ueMkYjE1ZUjhcT5hvV+pL9kmr54ap04240ayqXHgDmav4yFuPuo5unsuamPGllUIm5hd4DprgrOp3rEjxWb70GXQhzEW8DXWvyeU+JzVklCmCBH+8n6QpDEl/EC/A/Ojcz4UKie/QAAAABJRU5ErkJggg==\"","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjIiIGhlaWdodD0iNjIiIHZpZXdCb3g9IjAgMCA2MiA2MiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02LjE3NzIgMjAuMjEwOUwyOC40NzcyIDE0LjIzNTdDMzAuMjMxOCAxMy43NjU1IDMwLjkxNzEgMTMuNzc3NyAzMS42NTA1IDEzLjk0ODlDMzIuMzgzOCAxNC4xMjAxIDMzLjAyMjIgMTQuNDg4NiAzMy41MzcxIDE1LjAzODJDMzQuMDUyIDE1LjU4NzcgMzQuNDA1MiAxNi4xNzUgMzQuODc1NCAxNy45Mjk2TDM5LjczIDM2LjA0NzRDNDAuMjAwMiAzNy44MDIgNDAuMTg4IDM4LjQ4NzIgNDAuMDE2OCAzOS4yMjA2QzM5Ljg0NTYgMzkuOTU0IDM5LjQ3NzEgNDAuNTkyMyAzOC45Mjc1IDQxLjEwNzNDMzguMzc4IDQxLjYyMjIgMzcuNzkwNyA0MS45NzU0IDM2LjAzNiA0Mi40NDU1TDEzLjczNiA0OC40MjA4QzExLjk4MTQgNDguODkxIDExLjI5NjIgNDguODc4OCAxMC41NjI4IDQ4LjcwNzZDOS44MjkzOSA0OC41MzY0IDkuMTkxMDcgNDguMTY3OSA4LjY3NjEzIDQ3LjYxODNDOC4xNjExOSA0Ny4wNjg4IDcuODA4MDEgNDYuNDgxNSA3LjMzNzg2IDQ0LjcyNjhMMi40ODMyMiAyNi42MDkxQzIuMDEzMDcgMjQuODU0NSAyLjAyNTI4IDI0LjE2OTIgMi4xOTY0NiAyMy40MzU5QzIuMzY3NjQgMjIuNzAyNSAyLjczNjE3IDIyLjA2NDIgMy4yODU3MSAyMS41NDkyQzMuODM1MjYgMjEuMDM0MyA0LjQyMjU3IDIwLjY4MTEgNi4xNzcyIDIwLjIxMDlaIiBmaWxsPSIjMDAxRTUwIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzYuOTQ5NSA0LjU0Mjc5TDU1LjA2NzIgOS4zOTc0M0M1Ni44MjE4IDkuODY3NTggNTcuNDA5MSAxMC4yMjA4IDU3Ljk1ODcgMTAuNzM1N0M1OC41MDgyIDExLjI1MDYgNTguODc2OCAxMS44ODkgNTkuMDQ3OSAxMi42MjIzQzU5LjIxOTEgMTMuMzU1NyA1OS4yMzEzIDE0LjA0MSA1OC43NjEyIDE1Ljc5NTZMNTEuNDIzNiA0My4xNzk5QzUwLjk1MzQgNDQuOTM0NiA1MC42MDAyIDQ1LjUyMTkgNTAuMDg1MyA0Ni4wNzE0QzQ5LjU3MDQgNDYuNjIxIDQ4LjkzMiA0Ni45ODk1IDQ4LjE5ODYgNDcuMTYwN0M0Ny40NjUzIDQ3LjMzMTkgNDYuNzggNDcuMzQ0MSA0NS4wMjU0IDQ2Ljg3MzlMMjYuOTA3NyA0Mi4wMTkzQzI1LjE1MyA0MS41NDkxIDI0LjU2NTcgNDEuMTk1OSAyNC4wMTYyIDQwLjY4MUMyMy40NjY2IDQwLjE2NjEgMjMuMDk4MSAzOS41Mjc4IDIyLjkyNjkgMzguNzk0NEMyMi43NTU3IDM4LjA2MSAyMi43NDM1IDM3LjM3NTggMjMuMjEzNyAzNS42MjExTDMwLjU1MTMgOC4yMzY3N0MzMS4wMjE1IDYuNDgyMTQgMzEuMzc0NiA1Ljg5NDgzIDMxLjg4OTYgNS4zNDUyOEMzMi40MDQ1IDQuNzk1NzQgMzMuMDQyOCA0LjQyNzIxIDMzLjc3NjIgNC4yNTYwM0MzNC41MDk2IDQuMDg0ODUgMzUuMTk0OCA0LjA3MjY0IDM2Ljk0OTUgNC41NDI3OVoiIGZpbGw9IiNGRkQxMDAiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xOC42MzYyIDkuNzY0MTZINDEuNzIyOUM0My41Mzk0IDkuNzY0MTYgNDQuMTk4MSA5Ljk1MzMgNDQuODYyMiAxMC4zMDg1QzQ1LjUyNjMgMTAuNjYzNiA0Ni4wNDc1IDExLjE4NDggNDYuNDAyNiAxMS44NDg5QzQ2Ljc1NzggMTIuNTEzIDQ2Ljk0NjkgMTMuMTcxNyA0Ni45NDY5IDE0Ljk4ODJWNTAuMzg1MkM0Ni45NDY5IDUyLjIwMTcgNDYuNzU3OCA1Mi44NjA0IDQ2LjQwMjYgNTMuNTI0NUM0Ni4wNDc1IDU0LjE4ODYgNDUuNTI2MyA1NC43MDk4IDQ0Ljg2MjIgNTUuMDY0OUM0NC4xOTgxIDU1LjQyMDEgNDMuNTM5NCA1NS42MDkyIDQxLjcyMjkgNTUuNjA5MkgxOC42MzYyQzE2LjgxOTcgNTUuNjA5MiAxNi4xNjA5IDU1LjQyMDEgMTUuNDk2OCA1NS4wNjQ5QzE0LjgzMjggNTQuNzA5OCAxNC4zMTE2IDU0LjE4ODYgMTMuOTU2NCA1My41MjQ1QzEzLjYwMTIgNTIuODYwNCAxMy40MTIxIDUyLjIwMTcgMTMuNDEyMSA1MC4zODUyVjE0Ljk4ODJDMTMuNDEyMSAxMy4xNzE3IDEzLjYwMTIgMTIuNTEzIDEzLjk1NjQgMTEuODQ4OUMxNC4zMTE2IDExLjE4NDggMTQuODMyOCAxMC42NjM2IDE1LjQ5NjggMTAuMzA4NUMxNi4xNjA5IDkuOTUzMyAxNi44MTk3IDkuNzY0MTYgMTguNjM2MiA5Ljc2NDE2WiIgZmlsbD0iIzAwQjBGMCIvPgo8cGF0aCBkPSJNMjMuODQ2OSAyNC4xMTE1QzIzLjMzMDkgMjMuNTk5OCAyMi40OTc3IDIzLjYwMzQgMjEuOTg2IDI0LjExOTRDMjEuNDc0MyAyNC42MzU1IDIxLjQ3NzggMjUuNDY4NyAyMS45OTM5IDI1Ljk4MDRMMjcuMDAyOSAzMC45NDdDMjcuNTE3NCAzMS40NTcxIDI4LjM0NzYgMzEuNDU1NCAyOC44NTk5IDMwLjk0M0wzOC4zNjg1IDIxLjQzNDRDMzguODgyNCAyMC45MjA1IDM4Ljg4MjQgMjAuMDg3MyAzOC4zNjg1IDE5LjU3MzRDMzcuODU0NiAxOS4wNTk1IDM3LjAyMTQgMTkuMDU5NSAzNi41MDc1IDE5LjU3MzRMMjcuOTI1NSAyOC4xNTU1TDIzLjg0NjkgMjQuMTExNVoiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuMDUwNCA0MC4wNTMxQzIzLjA1MDQgMzkuMzM3MiAyMi40NzAxIDM4Ljc1NjggMjEuNzU0MiAzOC43NTY4QzIxLjAzODMgMzguNzU2OCAyMC40NTggMzkuMzM3MiAyMC40NTggNDAuMDUzMUMyMC40NTggNDAuNzY4OSAyMS4wMzgzIDQxLjM0OTMgMjEuNzU0MiA0MS4zNDkzQzIyLjQ3MDEgNDEuMzQ5MyAyMy4wNTA0IDQwLjc2ODkgMjMuMDUwNCA0MC4wNTMxWk0zOC42MDUgMzguNzU2OEgyNS42NDI5QzI0LjkyNyAzOC43NTY4IDI0LjM0NjcgMzkuMzM3MiAyNC4zNDY3IDQwLjA1MzFDMjQuMzQ2NyA0MC43Njg5IDI0LjkyNyA0MS4zNDkzIDI1LjY0MjkgNDEuMzQ5M0gzOC42MDVDMzkuMzIwOSA0MS4zNDkzIDM5LjkwMTIgNDAuNzY4OSAzOS45MDEyIDQwLjA1MzFDMzkuOTAxMiAzOS4zMzcyIDM5LjMyMDkgMzguNzU2OCAzOC42MDUgMzguNzU2OFpNMjUuNjQyOSA0My45NDE3SDM0LjE5NzlDMzQuOTEzOCA0My45NDE3IDM1LjQ5NDEgNDQuNTIyIDM1LjQ5NDEgNDUuMjM3OUMzNS40OTQxIDQ1Ljk1MzggMzQuOTEzOCA0Ni41MzQxIDM0LjE5NzkgNDYuNTM0MUgyNS42NDI5QzI0LjkyNyA0Ni41MzQxIDI0LjM0NjcgNDUuOTUzOCAyNC4zNDY3IDQ1LjIzNzlDMjQuMzQ2NyA0NC41MjIgMjQuOTI3IDQzLjk0MTcgMjUuNjQyOSA0My45NDE3Wk0yMy4wNTA0IDQ1LjIzNzlDMjMuMDUwNCA0NC41MjIgMjIuNDcwMSA0My45NDE3IDIxLjc1NDIgNDMuOTQxN0MyMS4wMzgzIDQzLjk0MTcgMjAuNDU4IDQ0LjUyMiAyMC40NTggNDUuMjM3OUMyMC40NTggNDUuOTUzOCAyMS4wMzgzIDQ2LjUzNDEgMjEuNzU0MiA0Ni41MzQxQzIyLjQ3MDEgNDYuNTM0MSAyMy4wNTA0IDQ1Ljk1MzggMjMuMDUwNCA0NS4yMzc5WiIgZmlsbD0iI0E5RTNGRiIvPgo8L3N2Zz4K\"","module.exports = \"data:image/png;base64,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8b7r2i4AJ9049eNRTReAq2XQbw15WK7pAnAbyRuXXMcF4HEyah+w5f4lfgvAK2WuvXDP7WSzXgsAM1nqnvgrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/NiDAwEAAAAAIP/XRlBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVFfbgQAAAAAAAyP+1EVRVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVhT04EAAAAAAA8n9tBFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVYQ8OBAAAAACA/F8bQVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV2IMDAQAAAAAg/9dGUFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWV9uCABAAAAEDQ/9f9CBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4CaNJxgiAcpV8AAAAASUVORK5CYII=\"","module.exports = __WEBPACK_EXTERNAL_MODULE__9155__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9514__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8694__;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/******************************************************************************\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, SuppressedError, Symbol */\r\n\r\n\r\nfunction __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\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = 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\nvar isEqual = /*@__PURE__*/getDefaultExportFromCjs(fastDeepEqual);\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!isEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n * @deprecated\n */\n createUrl() {\n let url = this.url;\n url += `?callback=__googleMapsCallback&loading=async`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n * @deprecated, use importLibrary() instead.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n * @deprecated, use importLibrary() instead.\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n importLibrary(name) {\n this.execute();\n return google.maps.importLibrary(name);\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n * @deprecated, use importLibrary() instead.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n var _a, _b;\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const params = {\n key: this.apiKey,\n channel: this.channel,\n client: this.client,\n libraries: this.libraries.length && this.libraries,\n v: this.version,\n mapIds: this.mapIds,\n language: this.language,\n region: this.region,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n // keep the URL minimal:\n Object.keys(params).forEach(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (key) => !params[key] && delete params[key]);\n if (!((_b = (_a = window === null || window === void 0 ? void 0 : window.google) === null || _a === void 0 ? void 0 : _a.maps) === null || _b === void 0 ? void 0 : _b.importLibrary)) {\n // tweaked copy of https://developers.google.com/maps/documentation/javascript/load-maps-js-api#dynamic-library-import\n // which also sets the base url, the id, and the nonce\n /* eslint-disable */\n ((g) => {\n // @ts-ignore\n let h, a, k, p = \"The Google Maps JavaScript API\", c = \"google\", l = \"importLibrary\", q = \"__ib__\", m = document, b = window;\n // @ts-ignore\n b = b[c] || (b[c] = {});\n // @ts-ignore\n const d = b.maps || (b.maps = {}), r = new Set(), e = new URLSearchParams(), u = () => \n // @ts-ignore\n h || (h = new Promise((f, n) => __awaiter(this, void 0, void 0, function* () {\n var _a;\n yield (a = m.createElement(\"script\"));\n a.id = this.id;\n e.set(\"libraries\", [...r] + \"\");\n // @ts-ignore\n for (k in g)\n e.set(k.replace(/[A-Z]/g, (t) => \"_\" + t[0].toLowerCase()), g[k]);\n e.set(\"callback\", c + \".maps.\" + q);\n a.src = this.url + `?` + e;\n d[q] = f;\n a.onerror = () => (h = n(Error(p + \" could not load.\")));\n // @ts-ignore\n a.nonce = this.nonce || ((_a = m.querySelector(\"script[nonce]\")) === null || _a === void 0 ? void 0 : _a.nonce) || \"\";\n m.head.append(a);\n })));\n // @ts-ignore\n d[l] ? console.warn(p + \" only loads once. Ignoring:\", g) : (d[l] = (f, ...n) => r.add(f) && u().then(() => d[l](f, ...n)));\n })(params);\n /* eslint-enable */\n }\n // While most libraries populate the global namespace when loaded via bootstrap params,\n // this is not the case for \"marker\" when used with the inline bootstrap loader\n // (and maybe others in the future). So ensure there is an importLibrary for each:\n const libraryPromises = this.libraries.map((library) => this.importLibrary(library));\n // ensure at least one library, to kick off loading...\n if (!libraryPromises.length) {\n libraryPromises.push(this.importLibrary(\"core\"));\n }\n Promise.all(libraryPromises).then(() => this.callback(), (error) => {\n const event = new ErrorEvent(\"error\", { error }); // for backwards compat\n this.loadErrorCallback(event);\n });\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.error(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.loading) {\n // do nothing but wait\n return;\n }\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader. \" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n this.loading = true;\n this.setScript();\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.mjs.map\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","// 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}","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 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\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}","// 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 + ']+')","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 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 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 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 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}","/**\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 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 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}","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\t// const 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 both the `defaultCountry` and the \"main\" one match the phone number,\r\n\t\t\t// don't prefer the `defaultCountry` over the \"main\" one.\r\n\t\t\t// https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\r\n\t\t\treturn country\r\n\t\t\t// // If the `defaultCountry` is among the `matchingCountries` then return it.\r\n\t\t\t// if (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\t// if (matchingCountries.length > 0) {\r\n\t// \treturn matchingCountries[0]\r\n\t// }\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()` returns an empty object — `{}` —\r\n\t// that means that the phone number is malformed,\r\n\t// so it can't possibly be valid.\r\n\tif (!input.country && !input.countryCallingCode) {\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}","const objectConstructor = {}.constructor;\r\n\r\nexport default function isObject(object) {\r\n return object !== undefined && object !== null && object.constructor === objectConstructor;\r\n}\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}","// 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 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}","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}","// 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\nimport isObject from './helpers/isObject.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 (!isObject(metadata) || !isObject(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 ${isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(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 typeOf = _ => 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 isObject from './helpers/isObject.js'\r\n\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}","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}","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 {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\r\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\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\t// `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\r\n\t\t\t// Any 3rd-party code that used to `import` and call this function before that\r\n\t\t\t// won't be passing any `emitEvent` argument.\r\n\t\t\t//\r\n\t\t\t// The addition of the `emitEvent` argument was to fix the slightly-weird behavior\r\n\t\t\t// of parsing an input string when the user inputs something like `\"2+7\"\r\n\t\t\t// https://github.com/catamphetamine/react-phone-number-input/issues/437\r\n\t\t\t//\r\n\t\t\t// If the parser encounters an unexpected `+` in a string being parsed\r\n\t\t\t// then it simply discards that out-of-place `+` and any following characters.\r\n\t\t\t//\r\n\t\t\tif (typeof emitEvent === 'function') {\r\n\t\t\t\temitEvent('end')\r\n\t\t\t}\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}","// 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 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","// 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])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|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])|3\\\\d\\\\d)|(?: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[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-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]|2[23]\"],\"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])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|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)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|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|7[39])|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[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-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]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\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{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"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\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"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,12],[[\"(\\\\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[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|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(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|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(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"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{8}|(?:1\\\\d|[39])\\\\d{9}\",[10,11],[[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($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([3579]|4(?:[14]4|56))?\"],\"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\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[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[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-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,10,11,12],[[\"(\\\\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{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"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{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:1[49]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"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[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?: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-3]))|(?: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])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|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\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-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\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[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\",[\"6|7[245]\"],\"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-57]\"],\"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]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\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})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\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]|43\"]],[\"(\\\\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}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[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]],[\"3[2-8]\\\\d{9,10}\",[11,12]],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\\\\d))\\\\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\",[\"[36]0|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[0135-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\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"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]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",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{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"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,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\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])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|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\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"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]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,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[0467]\"]]]],\"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\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"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\",\"(?:[4-7]|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-7])\"],\"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-6]))\\\\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-37]|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[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\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\",[\"[236-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]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\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,12],[[\"(\\\\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-9]|[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}|(?:80\\\\d|900)\\\\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|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],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[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\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|71)\\\\d{6}\",[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\",[\"[67]\"],\"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]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"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,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|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]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|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}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"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{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"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,12],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\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\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\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"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]|15|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,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[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,[\"348[57]\\\\d{7}\",[11]],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[0-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}\"]]]}}","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 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\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}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(252);\n"],"names":["root","factory","exports","module","require","define","amd","a","i","self","this","__WEBPACK_EXTERNAL_MODULE__9155__","__WEBPACK_EXTERNAL_MODULE__9514__","__WEBPACK_EXTERNAL_MODULE__8694__","getDealerKvps","async","dataUrl","getDataUrl","dealerResponse","axios","get","kvps","_a","data","dealer","reportErrorSentry","console","error","getInstallations","token","domain","isComerciales","useIsComerciales","requestToken","testToken","requestDomain","oneformCdn","getOneformBFFCdnUrl","oneformBFFApiKey","getOneformBFFCdnApiKey","timeout","headers","content","urlParams","URLSearchParams","window","location","search","includes","getInstallationsEntregaIdeal","url","getVwEventosEntregaIdealUrl","instalaciones","getHorariosInstallation","year","month","marketingCodeHistory","getMarketingCode","offerInHistory","find","offer","marketingCode","marketingCodeConfig","response","receiveMarketingCode","history","push","getWheelsParams","features","COD_VEH_WHEELS","DESC_VEH_WHEELS","wheel","feature","code","startsWith","undefined","name","getOption","category","options","option","getModelFilter","type","modelFilters","modelFilter","ErrorLoadStorageDataset","Error","constructor","message","super","fetchMarketingCode","salesgroup","consolidatedData","modelyear","baseType","equipmentLine","meta","CarlineId","model_code","split","CarlineName","model_description","SalesgroupId","replace","SalesgroupName","description","EquipmentlineName","text","ModelId","ModelName","ModelYear","errorMkc","oneformBFFNdpsSend","formData","isPresubmit","isTest","status","oneformBFFUrl","getOneformBFFUrl","getOneformBFFApiKey","post","oneformBFFYumiwiSend","dpsSend","MOLECULAR_URL","getMolecularUrl","raceSend","fields","entry","entries","log","fetchProvince","Axios","err","fetchTreatment","fetchProvinceLegacy","molecularCdn","getMolecularCdnUrl","oneformBFFCdnUrl","oneformBFFCdnApiKey","fetch","then","json","catch","getCarlines","carlines","getColors","getDataUrlWithoutTenant","getDealers","dealers","getPincode","pincode","useBff","getPincodeToken","pincodeData","pincodeUsed","pincodeError","dataResponse","pincodeDecoded","atob","length","getSalesgroups","getVehiculosModelo","vehiculos","fetchMarcas","fetchModelos","getVilmaAssets","frame","getOfertasSUV","dataRes","carlinesWithOffers","res","filter","carline","toLowerCase","getEapiCarlines","groupBrand","apiKey","getEapiAvailability","codInstalacion","timestampFrom","timestampTo","createEapiAppointment","deleteEapiAppointment","getEapiAppointmentIcs","handleErrorInRetrievingExternalConfig","isCommercial","dataService","customConfig","brand","isPrivate","checkTenant","tenant","tenantPrivate","tenantCommercial","getTenant","getDataServiceConfig","urlOrigin","urlPath","service","getVwEventosConfig","getGoogleApiKey","googleApiKeyService","getGoogleApiKeyServiceConfig","getMolecularCdnServiceConfig","testProduction","molecular","getMolecularServiceConfig","oneformBFF","getOneformBFFServiceConfig","getOneformBFFCdnServiceConfig","oneformBFFCdn","getSentryHub","run","currentHub","withScope","scope","captureException","AnteriorCTA","handlePreviousStep","useOneFormContext","trackingManager","useTrackingManager","React","CTA","onClick","e","trackFormStepButtonClick","contentId","tag","emphasis","size","icon","ArrowUp","variant","AvisoIslasCanarias","_ref","close","href","setHref","useState","copy","setCopy","store","useStore","getState","useEffect","formName","Container","stretchContent","padding","top","ContainerPadding","grid002","grid001","bottom","left","right","wrap","gutter","ContainerGutter","static200","static350","Text","bold","appearance","TokenTextAppearance","headline300","copy200","static300","preventDefault","renderAvisoIslasCanariasLayer","env","layerManager","openFocusLayer","render","state","LayerManagerWrapper","FocusLayerSizeV2","B","userCloseable","CanalDeContacto","register","errors","useFormContext","errorContacto","setErrorContacto","contacto","setContacto","useSelector","setError","MultipleCTASelection","ctaValues","contactoOptionsComerciales","contactoOptionsTurismos","nextOnClick","styled","div","button","props","translateY","CloseButton","handleAreYouSureLayer","screenIndex","formInfo","trackFormCloseClick","FormStart","Close","Wrapper","CodigoPostal","setFieldValue","inputValuePostalCode","setInputValuePostalCode","pristinePostalCode","setPristinePostalCode","errorPostalCode","setErrorPostalCode","regExpPostalCode","dispatch","useDispatch","match","TextInputExtended","label","isFloating","innerRef","required","value","pattern","onChange","payload","target","handleChangePostalCode","maxLength","InputError","className","Content","CTAWrapper","InvalidForm","notSavedField","closeLayerCallback","textAlign","TextAlignment","static500","horizontalAlign","dynamic0100","LoadingScreen","Spinner","KoScreen","retrySubmit","title","bodyCopy","isLEM","hideSecondCTA","style","Alert","BreakpointWrapper","max","Breakpoints","b560","min","marginLeft","IntermitenciaDMSKo","dmsFailed","setDmsFailed","config","useFeatureAppConfig","day","setDay","franjaHoraria","setFranjaHoraria","setName","selectedPoint","setSelectedPoint","horario","sendDmsFailed","slot","getFranjaAndDayFrom","from","weekDay_DayNumber_De_Month","handleShowSlots","useCallback","finalSlot","getFinalSlot","momentSlot","weekDay_Day_Hour","charAt","toUpperCase","slice","concat","textTransform","dmsInfo","dmsAvailable","newSlot","assessor","createNoDmsSlotAndAssessor","createNoDmsSlot","trigger","PaddingWrapper","LegalFullScreenSinConsentmientos","color","TokenTextColor","secondary","copy100","linkBasesLegales","staticSize","CTAsWrapper","QuestionWrapper","ItemWrapper","InfoWrapper","themeColor","LegalItem","currentValue","setCurrentValue","setValue","isSelected","setIsSelected","getValue","Info","CTAsSiNo","map","cta","index","ref","checkCurrentValue","CustomSwitch","setSelected","primary","Legales","LegalesComerciales","Object","assign","LegalesTurismos","hideLegal","customLegal","WhiteLinkWrapper","span","noPadding","LegalesFormatoLayer","LegalesFormatoLayerComerciales","LegalesFormatoLayerTurismos","showTitle","LegalesMontmelo","LssiTkmQuestions","LssiTkmQuestionsComerciales","LssiTkmQuestionsTurismos","getLssiText","isOfertas","getTmkTitle","whiteSpace","fontSize","idPerson","useGetIdPerson","lssiPermite","LSSI__c","quieroContacto","useFeatureServices","useFeatureAppEnvironment","isOfertasForm","handleInfoLayer","key","renderFn","body","A","renderInfo","static450","dangerouslySetInnerHTML","__html","paddingTop","paddingBottom","b1600","infoLayerCopies","lssi","tmk","legalItemTitles","isLead","getLegalItemTitle","CTAsWrapperMobile","navPosition","formType","questions","subtitle","iconlssi","icontmk","ConsentQuestion","ConsentQuestionProps","questionType","handleNextStep","setNavPosition","viewportHeight","useWindowHeight","setShowPreviousStep","bottomContent","getAndUpdateState","getAndUpdateStateContent","useGetBoundingClientRect","topNavigation","getAndUpdateStateNavigation","handlePosition","document","addEventListener","removeEventListener","renderCTAs","ariaLabel","Layout","allowOverflowingContent","default","columns","b1920","static515","width","src","alt","center","headline200","b960","DetalleMotivo","hideCTA","CTALabel","limitedCharacters","numberOfMaxLength","showRecomendation","showButton","setShowButton","getElementsByTagName","setAttribute","static400","TextAreaExtended","aux","currentTarget","handleChange","alternateCTAText","InputButton","height","KilContentWrapper","Kilometros","isCommerciales","jumpRange","maxValue","numberOfSteps","millageValue","setMillageValue","rangoKilometros","setRangoKilometros","formatNumber","num","toString","lowValue","highValue","stringRange","trackFormFilterSelect","lowerbound","String","upperbound","values","FormFieldName","kilometros","CustomSlider","handleInputChange","event","trackFormButtonClick","PositionWrapper","LastNavigation","KoTitle","KoBody","loadingCopy","setCompartirError","ContentID","checkNotSavedFields","ActivarCheckNotSavedFields","handleShowFinalScreen","handleSubmit","triggerValidation","layerVisible","setLayerVisible","setNotSavedField","koLayer","setKoLayer","koScreen","setKoScreen","intermitenciaLayerLayer","setIntermitenciaLayerLayer","handleKoLayer","layer","renderKoLayer","handleLoadingScreenLayer","renderLoadingScreen","isleads","renderIntermitenciaDMSKoLayer","renderInvalidFormLayer","handleConfirmar","compartir","trackFormCTAClick","loadingLayer","isValid","someNotSavedField","handleIntermitenciaDMSKoLayer","LocateWrapper","LocationDisabledWrapper","paddingTopLocation","LocateUserFullScreen","isFiltrosSuggest","onSuggestionSelectedFnAlternative","theme","autoWidth","nextStep","suggestion","setSuggestion","locationSuccess","setLocationSuccess","handleLocate","loading","locationDisabled","isLocating","onSuggestionSelectedFn","useLocateUser","formTheme","position","overflow","Suggest","disabled","noTengoDudasButton","isGooglePlace","isDealerData","VGED_CommercialName__c","getSuggestionValue","arrCountries","regex","errorMessage","ContentWrapper","paginaConfirmacion","MatriculaAndCountriesWrapper","MatriculaWrapper","CoutryWrapper","InputErrorWrapper","AnoMatriculacionWrapper","InputWidthWrapper","noPaddingTop","ConnectedComponent","connect","inputValueAno","setInputValueAno","pristineMatricula","setPristineMatricula","pristineAno","setPristineAno","inputValueMatricula","setInputValueMatricula","errorMatricula","setErrorMatricula","errorAno","setErrorAno","errorCountry","setErrorCountry","country","setCountry","countryObject","setCountryObject","regExpAno","regExCounty","setRegExCounty","countryPlate","c","matricula","anoMatriculacion","SelectExtended","updateFields","setOption","isRequired","validate","input","some","regEx","test","validateMatricula","handleChangeMatricula","handleChangeAno","CarlineSelect","NoCliente","closeLayer","selectedValue","setSelectedValue","PantallaIntroduccionStars","b1280","b2560","dynamic0050","ChevronDown","forwardRef","ariaHidden","role","tabIndex","xmlns","viewBox","fill","d","displayName","StyledIconWrapper","withConfig","componentId","parseInt","static250","animation","timingFunction","cubicOut","duration","StyledLabelText","fonts","colors","active","StyledSelect","select","direction","fontFamily","StyledLabelTextWithFloating","hasValue","static100","StyledLabel","border","light","static150","heavy","focus","main","static0","hover","isFloatingLabel","StyledSelectWrapper","Select","labelRef","children","defaultValue","onFocus","onBlur","autoComplete","autoFocus","setHasValue","labelHeight","setLabelHeight","isFocused","setIsFocused","current","selectedIndex","querySelector","clientHeight","handleResize","commonProps","hideIcon","SelectWrapper","SelectOption","selItem","setSelItem","showOptions","setShowOptions","keyValuePair","setKeyValuePair","wrapperRef","useRef","handleClickOutside","contains","setItem","dealerName","setFormValue","setTimeout","trackFormFieldClick","Trato","setOptions","att","indx","attributes","trato","getTreatment","PantallaNombreApellido","notALayer","LabelInputWidthWrapper","Nombre","Apellido","PoliticaPrivacidad","clearError","display","flexDirection","gap","politicaPrivacidad","maxWidth","marginTop","alternatCTA","SelectsWrapper","MarginDiv","ButtonWidth","ModeloInteresWrapper","SelectMarcaModelo","stepName","brandName","modelName","formToken","vehiclesInfo","isAnswered","setIsAnswered","setBrand","model","setModel","brands","setBrands","models","setModels","convertToOption","arr","obj","fillModelsCombo","brandCode","brandSelected","result","namesSort","forEach","fillBrandsCombo","modelSelected","sort","b","nameA","attr","nameB","lineKeyframe","keyframes","YaTienesVolkswagen","ctaWidth","formatCEMVenta","localeCompare","sensitivity","findIndex","t","formatCarlineSelectExtendedList","nuevo","formatAllCarlines","alphabetical","formatAlphabetical","formatAllSalesgroups","formatSalesgroupsSelectExtendedList","filterCarlineFlag","formularioFlag","formularios","getSalesgroupsFromCarlines","salesGroups","flat","getFormattedSalesgroups","salesgroups","filterPreselectedFaContent","faContentCarlines","carlineCode","filterPreselectedFaContentSalesgroups","faContentSalesgroups","salesgroupCode","findCarlineFromSalesgroup","findCarline","salesgroupId","Number","thereIsKeyInFaContent","faContent","thereIsCarlinesInFaContent","thereIsSalesgroupsInFaContent","isCarlineMode","mode","isSalesGroupMode","isMixedMode","isConfiguratorMode","useCarline","isCEMVenta","nextOnSelect","errorModelo","setErrorModelo","dealersInfo","list","setList","modelo","setModelo","useFaContent","screenIndexRef","dispatchSalesgroup","id","dispatchSetSalesgroup","salesGroupId","salesGroupName","updateCarlineCode","salesgroupName","handleUpdateList","modeloInList","listValue","changeModeloFields","initializeSelectWithCarline","filteredCarlines","carlinesFromFaContent","allCarlines","carlinesFormatted","newCarlines","newfilteredCarlines","salesgroupsFromFaContent","formatedSalesgroups","initializeSelectWithSalesgroup","initializeSelectWithMixed","initializeSelectWithCEMVenta","isNull","modeloList","element","GeneralInputWidthWrapper","idBuzzExclusive","IDBuzzFakeInput","changeModel","newModelo","hidden","CenterContent","LoadingEncuestas","setHeight","innerHeight","viewportWidth","innerWidth","ThankYouTitle","regularCopyFirst","boldCopyFirst","regularCopySecond","boldCopySecond","CtasWrapper","CTAThankYouPage","firstCTA","secondCTA","secondCTACopies","ThankYouFields","copyBook","CTAFields","copyBookSecond","CTAAction","ctaFunction","ctaUrl","CTAThankYouPageAction","ctaInfo","LeadsCTAs","cx","cy","r","SVGSize","CloseDiv","renderIDBuzzInfo","TextInput","SectionWrapper","ImageWrapper","noMargins","ImageCarNoColorBG","image","ignoreHandleClick","control","apparence","setApparence","Controller","as","oneFormFeatureService","setField","scrollIntoView","block","inputValue","setInputValue","pristine","setPristine","regExp","useOnlyLettersControl","Email","ignoreValidation","setEmail","setShowError","setEmailField","emailError","setEmailError","checkEmailError","email","p","Metadata","call","prototype","create","AsYouTypeState","onCountryChange","onCallingCodeChange","callingCode","international","missingPlus","IDDPrefix","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberMatchesInput","nationalPrefix","carrierCode","complexPrefixBeforeNationalSignificantNumber","properties","keys","setCallingCode","nextDigits","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","RegExp","repeat","string","times","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","pop","start","cleared_string","stripNonPairedParens","formatCompleteNumber","format","metadata","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","formattedNationalNumber","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","parseDigits","isValidFormattedNationalNumber","PatternParser","context","or","instructions","parsePattern","branches","op","args","expandSingleElementArray","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","prevValue","charCodeAt","nextValue","fromCharCode","array","PatternMatcher","matchTree","parse","allowOverflow","matchedChars","characters","tree","last","characterString","join","indexOf","partialMatch","Array","isArray","restCharacters","JSON","stringify","char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","VALID_PUNCTUATION","AsYouTypeFormatter","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","numberingPlan","isNANP","matchingFormats","formats","narrowDownMatchingFormats","checkNumberLength","formattedCompleteNumber","setNationalNumberTemplate","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","leadingDigits","leadingDigitsPatternIndex","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","Math","leadingDigitsPattern","internationalFormat","getFormatFormat","createTemplateForFormat","_","getTemplateForFormat","nationalPrefixFormattingRule","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","FIRST_GROUP_PATTERN","applyInternationalSeparatorStyle","digit","populateTemplateWithDigits","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_DIGITS","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","PLUS_CHARS","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","defaultCountry","defaultCallingCode","onNationalSignificantNumberChange","justLeadingPlus","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","formattedDigits","extractFormattedDigitsAndPlus","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","countryCallingCode","number","hasSelectedNumberingPlan","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumber","onExtractedNationalNumber","prevNationalSignificantNumber","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","stripIddPrefix","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","newCallingCode","AsYouType","optionsOrDefaultCountry","getCountryAndCallingCode","reset","isObject","hasCountry","parser","formattedOutput","determineTheCountryIfNeeded","formatter","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","selectNumberingPlan","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","getNonFormattedNationalNumberWithPrefix","countryCodes","getCountryCodesForCallingCode","getCountryByCallingCode","ambiguousCountries","exactCountry","getCountryByNationalNumber","countries","phoneNumber","PhoneNumber","getNumber","isPossible","getTemplate","getNonFormattedTemplate","validatePhoneNumberLength","normalizeArguments","arguments","extract","parsePhoneNumberWithError","ParseError","withMetadataArgument","DisplayWrapper","PrefWrapper","TelfWrapper","hidePrefijo","TelefonoFlex","regExpNonDigit","cellphoneIsInvalid","TelefonoInput","onFocusHandler","onChangeHandler","cellphone","raceCellphone","telefonoError","setTelefonoError","telephone","setTelephone","minLength","setMinLength","setMaxLength","setErrorForm","inputName","setInputName","isValidPhoneNumber","asYouType","possibleLengths","PrefijoInput","_ref2","prefixFromData","racePrefix","racePrefixFromData","setPrefix","prefixData","setPrefixData","callingCountriesOwn","elem","newPrefix","TelefonoPrefijo","Telefono","background","tertiary","StyledTextArea","textarea","lineHeight","StyledLabelInner","StyledAdditionalInfo","TextArea","placeholder","rows","inputMode","characterCountLimit","customId","characterCount","setCharacterCount","currentValueLenght","isNotificationAppearance","ariaInvalid","ariaDescribedBy","readOnly","iconVariant","limit","Mark","itemWidth","ul","selectY","atTheBottom","li","isActive","wrapperWidth","MultipleOptionCTAs","maxSelected","minSelected","exclusiveCTA","exclusiveCTAValues","selectedLabel","setSelectedLabel","disabledAll","setDisabledAll","disabledExclusiveCTA","setDisabledExclusiveCTA","setAux","ctaRefs","selectedVal","auxDos","handleOnClick","blur","auxTwo","marginRight","preSelectedValue","selectedCtaValue","StarText","TextMini","valuesSinRespuesta","valueSinRespuesta","labelSinRespuesta","RatingStars","stars","noRequired","isPrevStep","preSelectedRate","textBad","textGood","textUnderStars","starsText","CTASinRespuesta","rateValue","setRateValue","numberOfStars","handleField","handleClick","renderStarsText","onMouseMove","onMouseOut","onMouseEnter","RatingStarWrapper","StarFilled","StarOutline","renderStars","CustomInputRange","MarksPosition","SliderPosition","SlideLabelsPosition","SliderAndMarksPosition","sliderMarks","documentElement","classList","add","step","toggle","setToggle","Switch","checked","AvailabilityErrorLayer","AvailabilityError","removeConfigurationHash","pushState","pathname","copys","pregunta","AreYouSureLayer","layerName","closeOneForm","onClickProp","layerInfo","setLayerInfo","done","GenericErrorLayer","bodycopy","ctaLayer","notShowCTA","ctaType","urlHref","ctaTextAlign","secondCta","formHeight","setFormHeight","minHeight","contentHeight","pointer","ContactInfoWrapper","GeneralConfirmacionLayerWrapper","renderBolds","htmlString","doc","DOMParser","parseFromString","childNodes","node","nodeType","Node","ELEMENT_NODE","nodeName","textContent","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","_len","funcs","_key","__REDUX_DEVTOOLS_EXTENSION__","createStore","oneFormReducer","initialState","App","setLoading","oneFormService","isDevStage","useIsDevStage","encuesta","initializeService","getLoadedState","subscribe","next","complete","person","userIsAuthenticated","process","Provider","OneFormTrigger","Background","calendarIsStep","AllContentWrapper","DealerInfoWrapper","GoBackWrapper","GreyText","CalendarHandlerWrapper","AllDaysWrapper","TabsWitdh","DividerC","DayPositionWrapper","DayWrapper","presentDay","Capitalize","isDisabled","hasTitle","checkDmsAvailableInAvailability","availability","_b","delerHasError","hasOwnProperty","CalendarioCita","paramAvailability","getAvailability","selectedSlot","setSelectedSlot","handleDmsMapExit","handleNoDmsMapExit","handleHideCalendarOnClick","userIsGeoLocated","address","city","zipCode","distanceFromCenter","_c","markerInfo","dealerInfo","preselectedDealerForm","setPreselectedDealerForm","isCalculadoraFirstStep","setIsCalculadoraFirstStep","setMonth","getActualMonth","nextMonth","setNextMonth","getNextActualMonth","previousMonth","setPreviousMonth","getPreviousActualMonth","monthNumber","setMonthNumber","getActualMonthNumber","monthOffset","setMonthOffset","monthDays","setMonthDays","yearNumber","setYearNumber","getActualYearNumber","selectedDay","setSelectedDay","selectedFranjaHoraria","setSelectedFranjaHoraria","pastMonthBlocked","setPastMonthBlocked","calendar","setCalendar","horarios","setHorarios","tabsRef","availabilityRef","setDmsAvailable","trackFormStepLoad","StepName","handleChangeOfMonth","currentMonthNumber","currentMonth","getDates","newMonthOffset","firstDayOfMonth","lastDayOfMonth","getFirstAndLastDayOfMonth","calendarHasNoProblems","updatedMonthDays","buildCalendar","setVariables","days","createMonthDays","updatedDays","getDisabledDays","firstAvailableDay","getFirstAvailableDay","handleChangeActiveDay","handleChangeInSelectedDay","dayjs","date","daysInMonth","firstDayInweek","getYYYYMMDD","newDay","dayNumber","dayOfTheWeek","availableDates","calendarDay","foundDate","checkIfDayIsDisabled","actualDay","year_MonthNumber_DayNumber","isSameOrBefore","msForReference","locale","utc","dateInMs","firstDay","dayCalendar","sortSlotsByHour","manana","setFirstDay","mediodia","tarde","slots","checkIfMorning","getNormalizedDate","hour","checkIfMidDay","checkIfEvening","monthDay","isClick","calendarDate","getSelectedSlot","selectedCalendar","handleNextMonthYear","handlePreviousMonthYear","CloseInDealerCalendar","backgroundColor","ThemeProvider","justifyContent","ArrowLeft","dynamic0250","getDistanceFromLatLngCenter","ChevronLeft","ChevronRight","rowGap","LayoutRowGap","behavior","inherit","TabsHorario","handleSelectedSlot","FranjaHoraria","handleFranjaHoraria","static550","HourWrapper","selected","SlotsHorario","avaiableHours","checkIfHourIsSelected","label150","TabsWrapper","defaultIndex","setDefaultIndex","handleDefaultTabIndex","slotHour","Date","Tabs","idPrefix","CTAsHorario","CTAsMotivo","detalles","detallesPrevStep","CTAsDudas","contactoOptionsSAC","ctaTestDrive","ctaAlternativaTransporte","ctaContactoSatisfaccion","ctaTrabajosAdicionales","ctaMotivoVisita","ctaEnvioCEM","ctaPruebaTCross","CTAsMotivoRenovador","CTAsMotivoRenovadorProblemas","CTAsMotivoRenovadorNoTengoExclusivo","CTAsUsadoNuevo","CTAsLugarCompra","CTAsNuevoOcasión","CTAsFormasMovilidad","CTAsFormasMovilidadExclusive","CTAsRazones","CTAsDisfrutarID4","CTAsDesplazamientoTaigo","CTAsMotivacionCompraTaigo","kilometrosValues","kilometrosComercialesValues","millageValues","millageComercialesValues","getKilometrosInfo","getDynamicTokens","tokens","path","reduce","newPath","currentToken","dynamic","breakpoint","subtree","subtreeResults","GlobalStyle","createGlobalStyle","_fontFamilyStyles","StyledIntegratorRoot","optionsOverride","dynamicTokens","styles","cssVars","getMediaQueryVars","IntegratorRoot","language","lang","sentryHub","ErrorBoundary","hub","FeatureAppEnvironmentContext","OneFormProvider","LoadScriptInstance","isLoaded","setIsLoaded","loader","Loader","libraries","load","onMapLoad","useLoader","MapGeneralControllerContext","useMapGeneralController","markerDimensions","MapGeneralController","points","geometry","userSuggestion","userGeolocation","skipMapMovementOnClick","boundsRef","zoomRef","centerRef","geoLocatedCenterRef","centerToCalculateDistance","mapRef","mapsRef","hoverPoint","setHoverPoint","clusters","setClusters","superClusterRef","cardsTimeRef","cardsDistanceRef","mapHasMoved","setMapHasMoved","searchIsDealer","setSearchIsDealer","setUserIsGeoLocated","zoomListenerRef","moreDealersSearched","setMoreDealersSearched","mounted","setMounted","selectedCluster","cluster","KVPSCode__c","handleSelectedPoint","initializeMapWithBounds","viewport","initalizeMapWithCenter","lat","lng","bounds","north","east","south","west","getCardinalPoints","sw","createLatLng","ne","newBounds","LatLngBounds","getCenter","latlng","setCenter","fitBounds","clusterBounds","transformGoogleBoundsToClusterBounds","isGeoLocated","panTo","setMapClusters","getZoom","setZoom","getBounds","setZoomListener","maps","listener","addListener","zoom","removeZoomListener","removeListener","param","supercluster","generateClusters","pointCount","getPointCount","zoomOutMapForSearch","changeMapVariables","drawRectangle","point","acc","point_count","searchMoreDealers","googleBounds","transformClusterBoundsToGoogleBounds","getNorthEast","getSouthWest","getLatLngFromPoint","coordinates","LatLng","handlePointClickAndCarouselMove","scroll","preSelectedOrderValue","card","el","checkIfPointIsInsideBounds","moveMapIfIsSlightlyOutBounds","handleHoverPoint","resetCardReferences","pointLatLng","northPoint","eastPoint","southPoint","westPoint","northDistance","distanceInPx","eastDistance","southDistance","westDistance","y","calculateY","x","calculateEastDistance","panBy","calculateSouthDistance","calculateNorthDistance","position1","position2","p1","getProjection","fromLatLngToPoint","p2","pixelSize","pow","sqrt","Rectangle","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","centerInGeoLocatedCenter","centerMap","newCenter","handleMapMovement","getNewClusters","handleApiLoaded","getLocationOfDealerWithoutLoadInstance","handleChangeInMapZoom","zoomIn","newZoom","handleClusterClick","isCluster","recalculateClusters","parentCluster","parent_cluster_id","expansionZoom","mapMaxZoom","getClusterExpansionZoom","resetMap","getPoints","getGeometry","getUserSuggestion","getUserGeolocation","sortKD","ids","coords","nodeSize","depth","m","k","inc","n","z","s","exp","sd","floor","j","swapItem","swap","tmp","sqDist","ax","ay","bx","by","dx","dy","defaultGetX","defaultGetY","KDBush","getX","getY","ArrayType","Float64Array","IndexArrayType","Uint16Array","Uint32Array","range","minX","minY","maxX","maxY","stack","axis","nextAxis","within","qx","qy","r2","defaultOptions","minZoom","maxZoom","minPoints","radius","extent","generateId","fround","Float32Array","Supercluster","extend","trees","time","timerId","createPointCluster","timeEnd","now","_cluster","getClusters","bbox","minLng","minLat","maxLng","maxLat","easternHem","westernHem","_limitZoom","lngX","latY","numPoints","getClusterJSON","getChildren","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","origin","parentId","getLeaves","offset","leaves","_appendLeaves","getTile","z2","tile","_addTileFeatures","cluster_id","skipped","child","tags","px","py","getClusterProperties","f","round","neighborIds","numPointsOrigin","neighborId","wx","wy","clusterProperties","_map","numPoints2","createCluster","clone","original","Infinity","yLat","count","abbrev","point_count_abbreviated","sin","PI","y2","atan","dest","zoomInt","handleLocation","Promise","resolve","reject","navigator","geolocation","getCurrentPosition","latitude","longitude","getReverseGeocode","usePinState","setIsActive","isHover","setIsHover","sameClusterId","sameKvps","useAddressPredictions","predictions","setPredictions","autocomplete","google","places","AutocompleteService","debouncedGetPlacePredictions","debounce","getPlacePredictions","types","componentRestrictions","prediction","getYYYYMMDDx","hourAndMinute","normalizdedDate","to","replacementCarServiceAvailable","dayMoment","assessorCode","BoxCard","isCarousel","isFirstDesktop","iDBuzzExclusive","greyCard","CTAVerMasHorasWrapper","EllipsisTextWrapper","CustomCTA","CustomTerciayCTA","ExclusiveIDBuzz","NewDealerCard","isCitaPosventa","carPickupSelected","replacementCarSelected","suggestionIsAddress","dealerCompletAdress","setGreyCard","pickupCarServiceAvailabe","onMouseLeave","maxHeight","marginBottom","verticalAlign","FleetServicePrivate","CarPickupService","CitaPosventaCTAs","handleSeleccionarOnClick","handleShowCalendarOnClick","Calendar","paddingLeft","MagnifierLabel","StyledWrapper","inputFocus","goUp","css","isModeloSuggest","isFullScreen","SuggestionWrapper","margin","GoogleMapMap","_Component","apply","_inheritsLoose","_proto","shouldComponentUpdate","createElement","registerChild","Component","MarkerDispatcher","_EventEmitter","gmapInstance","_this","getMousePosition","mouse_","getUpdateCounter","updateCounter_","dispose","removeAllListeners","EventEmitter","omit","rest","_extends","is","shallowEqual","objA","objB","keysA","keysB","mainStyle","GoogleMapMarkers","_getState","dispatcher","updateCounter","_onChangeHandler","dimensionsCache_","prevChildCount","_onMouseChangeHandler","_onChildClick","onChildClick","hoverChildProps_","hoverKey_","_onChildMouseDown","onChildMouseDown","_onChildMouseEnter","hoverKey","childProps","onChildMouseEnter","_onChildMouseLeave","onChildMouseLeave","_onMouseAllow","allowMouse_","_onMouseChangeHandlerRaf","mp","distances","hoverDistance","getHoverDistance","childIndex","latLng","childKey","dist","distanceToMouse","_getDimensions","componentDidMount","on","nextProps","nextState","experimental","componentWillUnmount","_this2","mainElementStyle","markers","$geoService","geoService","$onMouseAllow","$prerender","prerender","pt","insideMapPanes","fromLatLngToDivPixel","fromLatLngToCenterPixel","stylePtPos","seLatLng","seLat","seLng","sePt","containerPt","fromLatLngToContainerPixel","$markerHolderClassName","$hover","$getDimensions","$dimensionKey","propTypes","PropTypes","defaultProps","loader_","loadPromise_","resolveCustomPromise_","_customPromise","bootstrapURLKeys","heatmapLibrary","warn","restKeys","_excluded","isNaN","convert","Transform","tileSize","_minZoom","_maxZoom","latRange","angle","zoomScale","scaleZoom","scale","LN2","project","worldSize","Point","unproject","xLng","lon","tan","locationPoint","centerPoint","_sub","_rotate","pointLocation","sub","set","bearing","_zoom","zoomV","tileZoom","zoomFraction","Geo","hasSize_","hasView_","transform_","setView","setViewSize","setMapCanvasProjection","mapCanvasProjection","maps_","mapCanvasProjection_","canProject","hasSize","ptLatLng","fromContainerPixelToLatLng","ptXY","ptxy","ptRes","getWidth","getHeight","margins","roundFactor","bndT","bndR","bndB","bndL","topLeftCorner","bottomRightCorner","raf","callback","requestAnimationFrame","nativeRaf","webkitRequestAnimationFrame","mozRequestAnimationFrame","log2","pick","fn","isEmpty","val","objectToString","isNumber","detectBrowserResult_","detectBrowser","isExplorer","userAgent","isFirefox","isOpera","isChrome","isSafari","fnToString","Function","isPlainObject","proto","getPrototypeOf","addPassiveEventListener","eventName","func","capture","passiveSupported","defineProperty","passive","_window","canUseDOM","cancel","attachEvent","stylesCreated","requestFrame","cancelFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","resetTriggers","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","offsetWidth","offsetHeight","scrollListener","__resizeRAF__","__resizeLast__","__resizeListeners__","keyframeprefix","animationstartevent","domPrefixes","startEvents","elm","animationName","animationstring","animationKeyframes","animationStyle","IS_REACT_16","ReactDOM","createPortal","latLng2Obj","_checkMinZoom","GoogleMap","_getMinZoom","geoService_","tilesPerWidth","ceil","tilesPerHeight","maxTilesPerDim","_computeMinZoom","_mapDomResizeCallback","resetSizeOnIdle_","originalCenter","defaultCenter","currentCenter","map_","resetBoundsOnResize","_setLayers","layerTypes","layerType","layers_","setMap","_renderPortal","_getHoverDistance","markersDispatcher_","_initMap","initialized_","propsCenter","defaultZoom","_onBoundsChanged","googleMapLoader","mounted_","instance","centerLatLng","propsOptions","heatmap","positions","_assertThisInitialized","visualization","HeatmapLayer","_ref2$weight","weight","_ref3","_ref3$options","mapPlainObjects","draggableOptions","draggable","minZoom_","preMapOptions","overviewMapControl","streetViewControl","rotateControl","mapTypeControl","featureType","elementType","stylers","visibility","defaultDraggableOption_","mapOptions","Map","googleMapDom_","versionMatch","version","mapsVersion","this_","overlay","OverlayView","onAdd","K_MAX_WIDTH","screen","K_MAX_HEIGHT","overlayViewDivStyle","property","getPanes","overlayMouseTarget","appendChild","onRemove","renderedOverlay","draw","debounced","googleApiLoadedCalled_","_onGoogleApiLoaded","_onChildMouseMove","emit","fireMouseEventOnIdle_","overlay_","onTilesLoaded","_onTilesLoaded","zoomAnimationInProgress_","_onZoomAnimationStart","getTime","zoomControlClickTime_","_setViewSize","currMinZoom","_onZoomAnimationEnd","dragTime_","mouseInMap_","_onDrag","idleListener","_onDragEnd","_onMapTypeIdChange","getMapTypeId","_this$props","onGoogleApiLoaded","_this$props2","onDrag","_this$props3","onDragEnd","_this$props4","onMapTypeIdChange","_this$props5","onZoomAnimationStart","_this$props6","onZoomAnimationEnd","_this$props7","childMouseDownArgs_","_onChildMouseUp","_this$props8","onChildMouseUp","childMouseUpTime_","_this$props9","onChildMouseMove","_this$props10","_this$props11","fullscreen","webkitIsFullScreen","mozFullScreen","msFullscreenElement","mapDom","clientWidth","_onWindowResize","_onMapMouseMove","currTime","mouseMoveTime_","boundingRect_","getBoundingClientRect","mousePosX","clientX","mousePosY","clientY","_onClick","_this$props12","_onMapClick","_onMapMouseDownNative","_onMapMouseDown","_onMapMouseDownCapture","_onKeyDownCapture","_isCenterDefined","callExtBoundsChange","gmC","onBoundsChange","arrayA","arrayB","abs","prevBounds_","marginBounds","centerIsObject_","nw","se","_registerChild","parentNode","tempParentDiv","getComputedStyle","head","styleSheet","cssText","createTextNode","innerHTML","componentDidUpdate","prevProps","_this3","prevCenter","layerKey","setData","detachEvent","splice","removeChild","shouldUnregisterMapOnUnmount","scrollwheel","clearInstanceListeners","mapMarkerPrerender","GoogleMapMarkersPrerender","onMouseDownCapture","yesIWantToUseGoogleMapApiInternals","mousePos","beatKeyframe","onTop","TextWrapper","Img","img","CenterMarker","ClusterMarker","mouseEntered","setMouseEntered","Dot","isDealerGrey","pickupSelectedAndDealerHasIt","replacementCarSelectedAndDealerHasIt","isDealerActive","_d","isDealerFavourite","favouriteDealer","isDealerHovered","DealerMarker","isGrey","isFavouriteDealer","RecalcularWrapper","isPosventa","GoogleMaps","MapHeigthWrapper","isWidget","isTrigger","NewMap","dealersOrInstallationsMode","setTranslateCarousel","gelocalizationActive","setGelocalizationActive","GoogleMapReact","mapStyles","clickableIcons","fullscreenControl","Controllers","stopPropagation","ContactDealer","Reload","ControllerBackground","ControllersWrapper","ZoomWrapper","Locate","Add","Remove","CSSDiv","BackgroundCard","Carousel","pointsToList","sliderRef","childrenRef","firstPoint","handleCarouselMovement","handleSelectedCard","slickGoTo","settings","infinite","centerMode","centerPadding","slidesToShow","swipe","speed","arrows","beforeChange","Slider","FiltrosWrapper","showOverflow","onlySuggest","ActionButtonsWrapper","Filtros","FiltrosComponent","closeFiltros","showFiltros","setShowFiltros","setPreSelectedOrderValue","concesionario","citaPosventa","useShowOverflow","aplicarDisabled","setAplicarDisabled","tabsOrder","setTabsOrder","currentHorario","setCurrentHorario","selectedSuggestion","setSelectedSuggestion","filtrosRef","userSuggest","suggestionIsInCanaryIslands","handleLocateFilters","validateSubmission","handleFiltrosSubmit","selectedSuggestionFromClick","updateMapVariables","TXT_V_Installation_Data_Name__c","TXT_V_Address__c","getGeocode","checkGeocode","getSelectedSuggestion","getSuggestions","escapedValue","trim","installation","renderSuggestion","Route","province","ShippingStreet","ShippingPostalCode","ShippingCity","Province","getValueFormatted","suggestions","setSuggestions","inputPlaceholder","setInputPlaceHolder","suggestRef","inputRef","installations","setInputFocus","setDisableIntroNextStep","useDropdowPosition","placeHolder","setPlaceHolder","inputProps","newValue","predictionsFormatted","Magnifier","Autosuggest","onSuggestionsFetchRequested","dealerSuggestions","onSuggestionsClearRequested","onSuggestionSelected","provinces","MapAndTabsWrapper","showFilters","FilterButton","FiltrosWrapperLayer","ListWrapper","SmallerSVG","FilterMobileNavbar","CTAsNavigationWrapper","services","VerMasYCarouselPosition","SoloCardWrapper","CTASwrapper","VerMasTalleresCTA","CloseButtonWrapper","isTabsClose","isFiltrosClose","MoblieListWrapper","LayerDesktopView","renderPoints","renderCalendar","showCalendar","paddingBottomList","sustitucionRef","recogidaRef","handleShowFiltros","setCarPickupSelected","setReplacementCarSelected","CloseComponent","closeInMap","handleClickReplacementCar","handleClickCarPickup","CSSTransition","in","classNames","listIcon","LayerMobileView","paddingTopList","showTalleres","setShowTalleres","showMap","setShowMap","translateCarousel","setTranselateCarousel","sustitucionMapRef","recogidaMapRef","handleShowTalleres","getLayers","onTouchStart","static520","sortPoints","pointsByTime","sortByTime","pointsByDistance","pointsWithDms","pointsWithoutDms","pointsWithoutDmsSorted","pointsWithSlots","pointsWithDmsAndAvailableSlots","pointsWithDmsAndWithoutAvailableSlots","pointsWithoutSlots","pointsWithAtLeastOneSlot","morning","evening","afternon","slotsFiltered","earliestSlot","sortPointsByDistance","getEarliestSlot","filteredSlots","svcLocation","ShippingLatitude","ShippingLongitude","latlngBounds","getGeometryFromGoogleResult","geocode","Geocoder","getCanaryBounds","isAddress","isCanaryIslands","resultType","resultIsAddress","formatted_address","distance","getDistance","toFixed","geometryData","isDealer","getLocationOfGooglePlace","getLocationOfDealer","removeWhiteSpace","formatPrefix","morningHour","eveningHour","Form","form","ErrorMessage","OneFormContext","sendFormCallback","formEnded","steps","stepsHistory","nextStepCallback","numberOfScreens","lastStep","formSubmitted","methods","useForm","waitForPreviousStep","setWaitForPreviousStep","nextMultiStep","setNextMultiStep","setIsFullScreen","previousMultiStep","setPreviousMultiStep","showPreviousStep","nextScreenIndex","setNextScreenIndex","nextMultiStepScreenIndex","setNextMultiStepScreenIndex","distanceToMove","setDistanceToMove","moveForward","setMoveForward","debug","setDebug","disableIntroNextStep","isValueSelected","setIsValueSelected","closed","setClosed","nextStepEventEmitter","BehaviorSubject","OneForm","toggleDebugMode","setObjectValues","handleMapFullScreenLayer","isNext","previousStep","isLastStep","getValues","waitForNextStep","errorFields","trackFormErrorMessageLoad","nextStepNumber","handleStepChange","indexActualScreen","newScreenIndex","indexInSteps","isMovingForward","handleScreenChange","fullScreen","TIME_FOR_TRANSFORM","newNumber","sendForm","FormContext","initializeForm","initialFormInfo","initialFormData","skipLayerInit","formInfoInitialState","trackFormLayerLoad","onSubmit","onKeyDown","keyCode","OneElementTemplate","TwoElementsTemplate","firstElement","secondElement","colorTheme","TIME_FOR_OPACITY_MS","TIME_FOR_TRANSFORM_MS","formMin","multiStepScreenIndex","isFirstScreen","setIsFirstScreen","loaded","useLoaded","closeThankYou","AnimatedCheckmark","ContentCotroller","alingItemsCenter","FakePreviousStep","FakeClose","PrevStepWrapper","TitleWrapper","distanceToTop","MobileTitleWrapper","FieldsWrapper","opacity","defaultLayout","FullScreen","avoidTrackFormStepLoad","thankYouPage","triggerExitAnimation","showFinalScreen","deleteCloseAndPrevious","setLinkBasesLegales","isConfirmacionPage","setIsConfirmacionPage","initialHeight","setInitialHeight","setIsTrigger","useWindowWidth","prevStep","currentRef","setCurrentRef","showFields","setShowFields","setShowTitle","setOpacity","setDistanceToTop","titleRef","contentRef","formClicked","setFormClicked","titleLength","innerText","matchMedia","matches","extraHeight","offsetTop","arrDistances","isFirstStep","scrollTo","stopAnimation","setStopAnimation","hideCloseAndPrevious","setHideCloseAndPrevious","alingContentCenter","setAlingContentCenter","PreviousStep","Checkmark","onEntered","onExited","isDealerCalendar","LayerScreen","setIsDealerCalendar","useLayoutEffect","NavigationWrapper","isLastScreen","ProgressWrapper","BarWrapper","UpperBar","LowerBar","BackgroundPositionWrapper","BackgroundColorNotALayer","SVGColorWrapper","NextButtonWrapper","NextButton","InnerNavigation","soloProgreso","setIsValid","checkIfValid","valid","checkValidity","currentStep","multiStep","hidePreviousStep","multiSteps","getPercentage","percentage","parseFloat","ArrowDown","Navigation","setIsLastScreen","getRatingStarsOutput","rating","changeValueForLabel","ctas","field","formatMultipleOptionText","item","getUpdatedField","selectedInstallation","selectedMotivo","motivo","weekDay_DayNumber_Month_Hour","formatedSlot","weekDay_DayNumber_Month","horarioTranslate","h","getOutputSlotFrom","strTitlelize","TXT_V_Postal_Code__c","TXT_V_Location__c","getLocationOutput","getUnknowOutput","PreviousStepWrapper","TextPreviousAnswerWrapper","PreviousStepComponent","setTitle","setText","hideText","setHideText","textAppear","setTextAppear","outputs","setOutputs","outputsHistory","setOutputsHistory","getTitleAndOutputs","stepsToIterate","screenIndexToGet","alternateTitle","camelCaseName","stepsLiteralFields","theValue","outputsIsStars","outputsText","updatedOutputsTexts","output","handleStep","indexInHistory","isSeleccionDealer","hasError","getDerivedStateFromError","componentDidCatch","errorInfo","RenderController","screenType","ThankYouWrapper","ScreenController","selectedJourney","setTheme","formStarted","setFormStarted","isMap","setIsMap","setSoloProgreso","isConfirmacion","setIsConfirmacion","navPositon","ThankYouComponent","OneElementTemplateFullScreen","thankYouComponent","parsePhoneNumber","parsePhoneNumber_","getTestPincode","noPermite","isElectrico","getTestPerson","getDate","getPersonAttributes","getTestLead","getLeadAttributes","getTestVehicle","getVehicleAttributes","getTestOrder","orderAttributes","getTestDealer","dealerAttributes","timestamp","params","subtract","noPermiteLssi","oneformCoreServiceDefinition","dependencies","featureServices","optionalDependencies","oneFormData","dpsData","oneFormCoreDpsIsLoaded","serviceConfig","provider","getDpsData","v1","featureService","updatedData","setDpsData","useAuth","checkData","checkLogin","authService","endpoint","configs","profileService","ProfileServiceV2Impl","isAuthenticated","userService","UserService","profile","getUserProfile","getCurrentUserEmail","parsedPhone","firstName","lastName","identitykitId","getCurrentUserId","personResponse","authServiceInstance","onehubConfig","getOneHubConfig","resourceHostId","ok","existPerson","userStatus","climaproId","checkPincode","isRetry","getUrlParams","checkIfIsTestPincode","pincodeResponse","noPincodeFound","checkUrl","dealerKvps","contactado","estado","waid","cem","mgm","adviser","dat","fe","campaign","interes","retryPincodeLoad","updatedPerson","updatedOneFormData","subscribeToFields","tracking","ownFeatureServiceDefinitions","oneFormState","asyncSsrManager","serializedStateManager","saveFeatureServices","saveEnvironment","initSentry","scheduleRerender","serializedState","getSerializedState","getParamsForm","tc","persCmp","device","isMobileOnly","isTablet","referalUrl","referrer","substring","today","toISOString","identifier","windowHeight","windowWidth","boundingObject","setBoundingObject","setBottom","setTop","setLeft","setRight","setGoUp","getBoundingObject","setY","useGetDealer","setDealerName","selectedDealer","setSelectedDealer","concesionId","useGetDealers","setDealers","handleDealer","requestDealers","useGetBrand","useGetInstalaciones","installationsDomainAtt","inst","selectedCarlineCode","selectedCarline","excludedInstallationCodes","newInstallation","Id","VGED_DealerCode__c","ShippingStateCode","provinceName","provinceCode","getProvince","requestInstallations","useInitiateMatchTriggers","setSelectedJourney","matchMarketingCodeData","argumentatives","useInitiateBonosTriggers","stageCustomConfig","stage","setLoaded","setIcon","setIsLocating","setLocationDisabled","skipSearch","citaPreviaKey","useNavigate","navigationService","navigateToCita","navigateTo","navigateToThankyouNewsletter","action","resultsPage","useOnScreen","isIntersecting","setIntersecting","observer","IntersectionObserver","observe","disconnect","isLayerScreen","selectedStep","setShowOverflow","handleShowOverflow","actualStep","useTransformToHtml","getTrackingForm","formResponse","LeadID","leadField","header","FormFields","createPincodeEntity","useGetIdVehicle","featureAppEnvironment","useGetAuthService","getAuthService","authServiceProvider","useGetWaidLitera","defaultTrackingEvent","personalization","emptyPersonalization","track","trackingIsDisabled","eventInfo","FormType","FormName","PrefContactChannels","FormVersion","NewsletterType","Questionnaire","getMarketingConsent","getBaseEventInfo","configuration","emptyConfig","PriceType","PriceTypeParameter","getCarlineConfiguration","partner","createPartner","ownership","emptyOwnership","link","createTrackingLink","environment","featureAppIdAppVersion","pageCategory","emptyConfigStep","PriceTotalTotal","WheelsAdditionalExternalRollingNoise","Name","createTrackingProcess","processInfo","baseEventInfoForLoad","sectionName","emptyConfigLoad","contentLabels","user","emptyLatLongZip","trackButtonClick","emptyCarlineConfig","questionnaire","QuestionAnswerSet","SC","ResultsRecommendationPosition","ResultsRecommendationFirst","ResultsRecommendationSecond","trackFormSubmissionSuccessMessageLoad","vicciData","ErrorFormFields","SourceID","OpportunityUID","CycleID","getFormAppointments","getCompleteConfigurationFromVicci","createPartnerWithSearch","trackFormLoad","trackFormLoadRace","FieldNameandID","ErrorAdressValidationFields","referringUrl","baseEventInfoCloseClick","templateType","informationDepartment","BlueBackground","CitaPreviaTile","dynamic0130","NuevaCitaPosventaFormController","Grid","CitaPreviaTileGrid","FormControllerWrapper","FormController","setSelectedStep","newStep","newstep","component","timezone","customParseFormat","advancedFormat","isBetween","ms","TestIDTrigger","TestIDController","getTrigger","setCTALabel","setSelectedFocusJourney","selectedFocusJourney","triggerLoaded","CitaPosventaTrigger","CitaPosventaEmbeddedTrigger","ProspectPosventaEmbedded","CitaPosventaDealerTrigger","LeadTrigger","LeadEmbededTrigger","CallMeEmbeddedTrigger","LeadDealerTrigger","RaceTrigger","NewsletterTrigger","EmpresasTrigger","MGMTrigger","SACTrigger","DiaDeLaMadreTrigger","EurocopaTrigger","NavidadTrigger","FidelizacionTrigger","ConcursoRodajeTrigger","PlanIdealTrigger","SuvperheroesTrigger","ProspectsTrigger","ProspectEmbeddedTrigger","WidgetTrigger","BajaComunicacionesTrigger","EncuestasTrigger","LeadInPageTrigger","AutosubmitTrigger","FeedbackTrigger","isObjectLike","getTag","freeGlobal","global","freeGlobalThis","globalThis","freeSelf","wait","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","useRAF","TypeError","invokeFunc","thisArg","startTimer","pendingFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeSinceLastInvoke","timeWaiting","remainingWait","isInvoking","leadingEdge","cancelTimer","flush","pending","isLowRating","isHighRating","isNoRating","allHighRatings","ratings","allLowRatings","allNoRatings","allHighOrNoRatings","SET_DEALERS","SET_POINTS","SET_SELECTED_DEALER","SET_FAVOURITE_DEALER","SET_SELECTED_INSTALLATION","SET_INSTALLATIONS","DEALERS_OR_INSTALLATIONS_MODE","SET_CARLINES","SET_SELECTED_CARLINE","SET_OFERTA","SET_SALESGROUP","SET_URL_DEALER","SET_MATCH","SET_CITA_CARLINES","dealersReducer","citaCarlines","urlDealer","oferta","salesGroup","RESET_STATE","UPDATE_VEHICLES","vehiclesReducer","UPDATE_FORM","UPDATE_FIELDS","formDataReducer","flags","SET_FORM_INFO","SET_FORM_RESPONSE","HIDE_LEGAL","SET_CUSTOM_LEGAL","SET_SHOW_CALENDAR_ON_LOAD","SET_DELETE_CLOSE_AND_PREVIOUS","SET_FORM_SUBMITTED","UPDATE_LITERAL_FIELDS_STEPS","SET_INITIAL_STEPS","SET_NUMBER_OF_SCREENS","SET_SEND_DMS_FAILED","SET_STEPS_HISTORY","SET_NAVIGATION_MOVING_FORWARD","SHOW_FINAL_SCREEN","SUGGESTION_IS_DEALER","SUGGESTION_IS_ADDRESS","SUGGESTION_IS_IN_CANARY_ISLANDS","TRIGGER_EXIT_ANIMATION","UPDATE_FIRST_MAP_LOAD","UPDATE_FORM_ENDED","UPDATE_FULLSCREEN","UPDATE_GENERIC_ERROR","UPDATE_GEOMETRY","DISABLE_TRACKING","UPDATE_INITIAL_ZOOM","UPDATE_LAST_STEP","UPDATE_MULTISTEP_SCREENINDEX","UPDATE_MULTISTEPS","UPDATE_NEXT_STEP","UPDATE_SCREEN","UPDATE_SEND_FORM","UPDATE_STEP","UPDATE_STEPS","UPDATE_STEPS_HISTORY","UPDATE_SUGGESTION","UPDATE_USER_CENTER","UPDATE_USER_GEOLOCATION","UPDATE_WAIT_FOR_NEXT_STEP","formInfoReducer","navigationMovingForward","previousSteps","initialSteps","showCalendarOnLoad","genericError","firstMapLoad","userCenter","suggestionIsDealer","userGeoLocation","initialZoom","combineReducers","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","equals","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","maxSize","resultEqualityCheck","comparator","prev","createCacheKeyComparator","cache","put","getEntries","clear","cacheIndex","unshift","createLruCache","memoized","matchingEntry","clearCache","createSelectorCreator","memoize","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption2","finalMemoizeOptions","every","dep","dependencyTypes","getDependencies","memoizedResultFunc","selector","lastResult","recomputations","resetRecomputations","createSelector","getPoint","getGeometryProperty","getUserSuggestionProperty","getUserGeolocationProperty","featureServicesMirror","featureEnvironmentMirror","eventId","setExtras","originalFunctionToString","isError","wat","isInstanceOf","isBuiltin","ty","isErrorEvent","isDOMError","isString","isEvent","Event","isThenable","Boolean","base","_e","htmlTreeAsString","keyAttrs","currentElem","out","len","nextStr","_htmlElementAsString","separator","reverse","_oO","classes","tagName","keyAttrPairs","keyAttr","getAttribute","keyAttrPair","allowedAttrs","truncate","str","substr","safeJoin","delimiter","isMatchingPattern","source","replacementFactory","wrapped","markFunctionWrapped","_Oo","addNonEnumerableProperty","writable","configurable","getOriginalFunction","__sentry_original__","convertToPlainObject","newObj","getOwnProperties","serializeEventTarget","CustomEvent","detail","Element","extractedProps","extractExceptionKeysForMessage","exception","includedKeys","serialized","dropUndefinedKeys","rv","FunctionToString","setupOnce","__SENTRY_DEBUG__","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","level","originalWrappedFunc","makeLogger","enabled","logger","enable","disable","PREFIX","uuid4","crypto","msCrypto","getRandomValues","pad","v","random","parseUrl","query","fragment","host","protocol","relative","getFirstException","getEventDescription","event_id","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mechanism","handled","mergedData","checkOrSetAlreadyCaught","__sentry_captured__","DEFAULT_IGNORE_ERRORS","_options","InboundFilters","addGlobalEventProcessor","getCurrentHub","getIntegration","client","getClient","clientOptions","getOptions","internalOptions","allowUrls","whitelistUrls","denyUrls","blacklistUrls","ignoreErrors","ignoreInternal","_mergeOptions","_isSentryError","oO","_getPossibleEventMessages","_isIgnoredError","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_shouldDropEvent","_getLastValidUrl","frames","filename","stacktrace","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","reason","executor","_state","_handlers","_resolve","_setResult","_reject","_value","_executeHandlers","cachedHandlers","handler","onfulfilled","onrejected","finally","onfinally","isRejected","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","Scope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","setUser","_notifyScopeListeners","getUser","getRequestSession","setRequestSession","requestSession","setTags","setTag","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","setContext","setSpan","getSpan","getTransaction","transaction","setSession","session","getSession","captureContext","updatedScope","contexts","addBreadcrumb","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","clearBreadcrumbs","applyToEvent","hint","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","sdkProcessingMetadata","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","processor","final","Severity","sid","init","ignoreDuration","startingTime","started","ipAddress","ip_address","did","username","release","toJSON","attrs","user_agent","_version","_stack","getStackTop","bindClient","isOlderThan","setupIntegrations","pushScope","getScope","getStack","popScope","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","captureMessage","captureEvent","lastEventId","beforeBreadcrumb","finalBreadcrumb","configureScope","oldHub","makeMain","integration","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","captureSession","endSession","_sendSessionUpdate","startSession","Session","currentSession","method","sentry","getMainCarrier","__SENTRY__","extensions","carrier","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","Hub","activeDomain","registryHubTopStack","getHubFromActiveDomain","createStackParser","sortedParsers","parsers","skipFirst","line","localStack","firstFrameFunction","function","lastFrameFunction","stripSentryFramesAndReverse","defaultFunctionName","getFunctionName","supportsFetch","Headers","Request","Response","isNativeFetch","supportsReferrerPolicy","referrerPolicy","lastHref","handlers","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","bind","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","instrumentDOM","xhrproto","XMLHttpRequest","originalOpen","xhr","xhrInfo","__sentry_xhr__","__sentry_own_request__","onreadystatechangeHandler","readyState","status_code","endTimestamp","startTimestamp","onreadystatechange","readyStateArgs","originalSend","instrumentXHR","sandbox","contentWindow","supportsNativeFetch","originalFetch","handlerData","fetchData","getFetchMethod","getFetchUrl","instrumentFetch","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","replaceState","supportsHistory","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","onerror","msg","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","addInstrumentationHandler","fetchArgs","debounceTimerID","lastCapturedEvent","debounceDuration","globalListener","isContentEditable","shouldSkipDOMEvent","previous","shouldShortcircuitPreviousDebounce","normalize","maxProperties","visit","ERROR","normalizeToSize","object","normalized","encodeURI","utf8Length","memo","hasWeakSet","inner","WeakSet","has","delete","unmemoize","valueWithToJSON","stringified","_events","g","isSyntheticEvent","stringifyValue","numAdded","visitable","visitKey","visitValue","UNKNOWN_FUNCTION","createFrame","lineno","colno","in_app","chromeRegex","chromeEvalRegex","chromeStackParser","parts","exec","subMatch","geckoREgex","geckoEvalRegex","geckoStackParser","winjsRegex","winjsStackParser","opera10Regex","opera10StackParser","opera11Regex","opera11StackParser","extractSafariExtensionDetails","isSafariExtension","isSafariWebExtension","exceptionFromError","ex","parseStackFrames","extractMessage","eventFromError","popSize","framesToPop","reactMinifiedRegexp","getPopSize","eventFromUnknownInput","attachStacktrace","isUnhandledRejection","domException","eventFromString","__serialized__","eventFromPlainObject","synthetic","callOnHub","setPrototypeOf","__proto__","prop","DSN_REGEX","dsnToString","dsn","withPassword","pass","port","projectId","publicKey","dsnFromComponents","components","makeDsn","SentryError","projectMatch","dsnFromString","isValidProtocol","validateDsn","tunnel","_dsnObject","_tunnel","getDsn","forceEnvelope","getBaseApiEndpoint","getStoreEndpoint","getStoreEndpointWithUrlEncodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","initAPIDetails","initDsn","_getIngestEndpoint","_encodedAuth","sentry_key","sentry_version","encodeURIComponent","_getEnvelopeEndpoint","ignoreOnError","shouldIgnoreOnError","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","getOwnPropertyDescriptor","injectReportDialog","script","dsnLike","dialogOptions","encodedOptions","getReportDialogEndpoint","onLoad","onload","injectionPoint","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","ERROR_TYPES_RE","groups","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","ev","ev0","ev0s","ev0sf","getLocationHref","getHubAndAttachStacktrace","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","setInterval","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","originalCallback","wrapOptions","originalFunction","handleEvent","wrappedEventHandler","originalEventHandler","Breadcrumbs","dom","addSentryBreadcrumb","_consoleBreadcrumb","_innerDomBreadcrumb","serializeAttribute","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","severityFromString","parsedLoc","parsedFrom","parsedTo","LinkedErrors","_limit","linkedErrors","_walkErrorTree","_handler","UserAgent","request","Referer","Dedupe","currentEvent","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","previousFingerprint","windowIntegrations","Sentry","Integrations","INTEGRATIONS","SDK_VERSION","installedIntegrations","filterDuplicates","integrations","accIntegration","defaultIntegrations","userIntegrations","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","setupIntegration","ALREADY_SEEN_ERROR","backendClass","_integrations","_numProcessing","_backend","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_isEnabled","_sendSession","getTransport","_isClientDoneProcessing","clientFinished","transportFlushed","initialized","_updateSessionFromEvent","crashed","errored","exceptions","sessionNonTerminal","sendSession","ticked","interval","clearInterval","_prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","evt","_normalizeEvent","maxBreadth","baseClientNormalized","maxValueLength","integrationsArray","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","sampleRate","transport","recordLostEvent","outcome","isTransaction","__sentry__","nullErr","_ensureBeforeSendRv","processedEvent","promise","createEnvelope","items","serializeEnvelope","envelope","serializedHeaders","itemHeaders","serializedPayload","getSdkMetadataForEnvelopeHeader","api","enhanceEventWithSdkInfo","sdkInfo","packages","createSessionEnvelope","sent_at","_transport","_setupTransport","_exception","_hint","_message","_newTransport","_experiments","newTransport","eventType","transactionSampling","rate","skippedNormalization","sample_rates","samplingMethod","createEventEnvelope","_metadata","send","NoopTransport","makePromiseBuffer","buffer","remove","task","$","taskProducer","drain","counter","capturedSetTimeout","disabledUntil","limits","all","isRateLimited","updateRateLimits","updatedRateLimits","rateLimitHeader","retryAfterHeader","parameters","headerDelay","delay","headerDate","parseRetryAfterHeader","eventStatusFromHttpCode","createTransport","makeRequest","bufferSize","rateLimits","envCategory","getEnvelopeType","getRateLimitReason","statusCode","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","sendReport","sendBeacon","credentials","keepalive","requestTypeToCategory","_buffer","_rateLimits","_outcomes","_api","sendClientReports","visibilityState","_flushOutcomes","_sendRequest","useEnvelope","JSONStringifyError","newErr","innerErr","req","eventToSentryRequest","sessionToSentryRequest","outcomes","discarded_events","discardedEvents","quantity","_handleResponse","requestType","_isRateLimited","_disabledUntil","_fetch","sentryRequest","originalPayload","fetchParameters","BaseTransport","getResponseHeader","open","setRequestHeader","nativeFetch","transportOptions","requestOptions","statusText","FetchTransport","makeNewXHRTransport","XHRTransport","BaseBackend","BrowserBackend","showReportDialog","platform","BaseClient","tracesSampleRate","setSentryHub","setSentryTag","newHub","dealerData","dealerToUse","informationBnr","informationZIP","informationName","basePartner","SearchType","SearchSearchTerm","SearchNumberOfResults","getStepName","StepNumber","getStepNumber","Appointments","NumberOfAppointments","MarketingConsent","comunicaciones","perfilado","emptyConfigurationFromVicci","vehicleConfiguration","featuresData","vehicleCatalogue","modelKey","ModelModelVersion","modelVersion","modelYear","ExteriorColorCode","exterior","ExteriorColorName","InteriorColorCode","interior","InteriorColorName","WheelsBasicId","WheelsBasicName","marketingCodeResponse","getCarlineConfigurationFromMkc","moduleId","placeholderId","activityId","personalizable","activityName","experienceId","experienceName","offerId","offerName","locationLatitude","locationLongitude","locationZIP","PriceRateCurrency","PriceRateBasic","PriceRateAdditional","PriceRateTotal","PriceRateType","PriceTotalCurrency","PriceTotalBasic","PriceTotalAdditional","vehicle","CarlineIsRecommendation","SalesgroupIsRecommendation","BodyTypeName","ModelTrimFeatures","ModelIsRecommendation","ModelDriveType","ModelGearType","EnginePowerHPKW","EngineFuelTypePrimary","EngineFuelTypeNonPrimary","ConsumptionCombinedPrimary","ConsumptionCombinedNonPrimary","EmissionConsumptionEfficiencyClass","EmissionConsumptionTestingMethod","ExteriorColorIsRecommendation","InteriorColorIsRecommendation","WheelsBasicIsRecommendation","PriceCurrency","PriceBasis","PriceExterior","PriceOptions","PriceTotalConfiguration","PriceCampaignID","PriceCampaignDescription","PriceCampaignValue","PriceCustomerType","OptionsNumber","OptionsList","AutosubmitController","renderTestID","setRenderTestID","renderPlanIdeal","setRenderPlanIdeal","dpsDataRef","idPersonRef","initialData","DESC_BRAND","DESC_GDPR_ADAPTED","DESC_TOKEN","DESC_FORMOBJECTIVE","COD_FORM_ID","formatHeaders","FirstName","LastName","TXT_Email__c","dataStringified","dataParsed","formDataBuilder","handleError","handleComplete","TestIDForm","PlanIdealForm","BajaComunicacionesForm","BajaComunicacionesFields","NuevoFormData","DPS_TOKEN","FORM_OBJECTIVE","FORM_NAME","PersonEmail","motivoBaja","masInformacion","surname","MiddleName","secondSurname","firstStep","newSteps","NuevoFormInfo","ThankYouBaja","screenIndexThankyou","TextAreaWrapper","NameLastNameWrapper","MotivoBaja","motivoError","setMotivoError","masInfoValue","setMasInfoValue","nameError","setNameError","dynamic0150","Field","question","handleConfirmarCita","BajaComunicacionesController","GeneralconfirmacionWrapper","setTmkError","setLssiError","handleConfirmarCallMe","setLssi","setTmk","lssiError","tmkError","CallMeOfertaSteps","CallMeOfertaForm","NombreTelefono","ConfirmacionCallMeOferta","Confirmacion","DESC_VN_VO","dataPro","phone","DESC_LSSI","DESC_LOPD_GDPR_PERFILADO","modalidad","cuotaText","financiacionText","motorizacion","modelo_code","dataPre","PRE","hostname","success","ThankYouCallMeOferta","comercialesScreen","LabelInfoWrapper","ctasCheckEnvio","isProducto","extraInfo","ChecksEnvio","firstCta","thirdCta","firstOpen","setFirstOpen","secondOpen","setSecondOpen","checkedOne","setCheckedOne","checkedTwo","setCheckedTwo","checkedThree","setCheckedThree","RadioButton","ConfirmacionCem","lssiPincode","setLssiPincode","tkm","noCompra","LegalesSinConsentimientosCEM","LegalesCEM","valueWrongMarca","valueWrongModelo","valueWrongConcesion","valueWrongPersona","stepNameToFieldName","sanitizeKvps","formatSinRespuestaValue","answer","CEMDataError","checkUndefinedsInData","getCemDate","cemDate1","transformDate","cemDate2","cemDate3","getInstallation","idDealer","installationsRaw","instal","arrayToObject","getSfAddressRest","addressSf","pair","CemController","usado","setUsado","setIsPosventa","caducado","setCaducado","idVehicleRef","idDealerRef","idOrderRef","setInstallation","idVehicle","idOrder","fechaEnvio","diff","CemFormPosventa","CemFormVenta","ThankYouCEM","dev","datosCorrectos","datosIncorrectos","satisfaccionTrato","satisfaccionOrganizacion","satisfaccionTrabajoRealizado","satisfaccionConcesion","enviarConcesion","masPreguntas","modeloRef","FORM_DETAILS","FORM_ID","getData","PersonMobilePhone","PersonMailingAddress","formatToTwoChars","VGED_RegistrationPlate__c","VGED_ModelGroup__c","publicarRespuestas","sendSurvey","satisfaccionTratoMotivo","satisfaccionOrganizacionMotivo","satisfaccionTrabajoRealizadoMotivo","satisfaccionConcesionMotivo","aspectoSatisfaccionMotivo","informado","alternativaTransporte","tiempoSatisfaccion","motivoVisita","satisfaccionVehiculo","satisfaccionVehiculoMotivo","addingStepsLogic","stepsToAdd","alternativeSteps","actualSteps","stepsToUse","indexesInSteps","getIndexInSteps","addRemovedStep","stepsPosventa","resetStepsScreenIndex","addSteps","finalSteps","updateSteps","removeSteps","stepsToDelete","removeMultipleStepsAndResetScreenIndex","replaceWithLeadInfo","RCY_BrandList__c","replaceModelo","modifyTitleSteps","replaceCallback","getOrderStep","order","sc4","sc5","sc6","randomizeSteps","sc4Motivo","sc5Motivo","sc6Motivo","first","second","third","secondStep","thirdStep","pastSteps","newsteps","stepNames","getArrayOfStepsNames","removeAndAddStepAtTheSameTime","stepToRemove","stepToAdd","removedSteps","addedSteps","handleShowMotivo","nameOfMotivoStep","mostrarQlast1","mostrarQlast2","LastQuestionFlow","randomizedSteps","getFormInfo","ChecksPublicacion","LayoutWrapper","FirstStepCEM","imageSrc","setImageSrc","dataVilma","setDataVilma","idVehicleModel","modelUrl","Front_Left","view","dataVilmaRequest","BodyCopy","CemSteps","getStepsVenta","ctaDatosIncorrectos","DatosCorrectos","trueOrFalseQuestion","DatosIncorrectos","ConfirmacionConcesion","Modelo","Explicacion","SatisfaccionTrato","SatisfaccionTratoMotivo","SatisfaccionOrganizacion","SatisfaccionOrganizacionMotivo","SatisfaccionAsesor","SatisfaccionAsesorMotivo","SatisfaccionConcesion","SatisfaccionConcesionMotivo","AspectoSatisfaccionMotivo","TestDrive","ContactoSatisfaccion","EnviarConcesion","DatosPersonales","PublicarRespuestas","SatisfaccionTrabajoRealizado","SatisfaccionTrabajoRealizadoMotivo","Informado","AlternativaTransporte","TiempoSatisfaccion","MotivoVisita","SatisfaccionVehiculo","SatisfaccionVehiculoMotivo","agency","confirmacionConcesion","satisfaccionAsesor","VGED_ClimaproOrderID__c","testDrive","contactoSatisfaccion","satisfaccionAsesorMotivo","VGED_CEMDeliveryDate__c","sspectoSatisfaccionMotivo","lastQuestion","goodRating","badRating","emptyRating","goodOrEmptyRating","CitaPosventaCalculadoraForm","CitaPosventaBonosForm","renderForm","isCitaPosventaEmbeddedBonos","updatedFormData","bono","desc","deepLink","getAppointmentVehicle","millage","localKM","climaProKM","commercialDenominationSli","plate","license","plateDate","transformTimestampToDate","licenseDate","tmaimg","familyModelCode","familyModelDesc","isOnlyYear","formattedDate","toLocaleDateString","CitaPosventaMaintenanceForm","isCitaPosventaEmbeddedMaintenance","vehicleForMaintenance","CitaPosventaPortalForm","isCitaPosventaEmbeddedPortal","JourneyCitaPosventaController","setShowCalendar","pointsByDistanceRef","firstAvailability","setFirstAvailability","availabilityHistory","setPointsToList","end","skipHandleAvailability","cachedAvailability","checkIfAvailabilityIsInCache","showLoadingLayer","handleAvailabilityErrorLayer","saveAvailabilityInCache","hideLoadingLayer","dealerHistory","dealerkvps","availabiliyDealer","dealerAv","getAvailabilityFromDealer","dealerInAvailability","availabilityHistoryDealer","dealerHistoryIndex","dealerAvailability","dealerFromDms","assessors","getRandomInt","findAssessor","handleDealerFlags","cocheSustitucion","cocheAlTaller","pastDealer","tallerIndex","sustitucionIndex","newStepsWithIndex","newIndex","newCocheAlTaller","newCocheSustitucion","handleReservaCitaLayer","renderReservaCita","ReservaCitaLayer","renderAvailabilityErrorLayer","renderLoadingLayer","LoadingLayer","JourneyCitaPosventaDealerController","loadingPoint","setLoadingPoint","appointmentDealer","createAppointmentDealer","dealerId","mail","overhaulingServiceAvialable","reference","JourneyCitaPosventaDealerWrapper","JourneyCitaPosventaWrapper","MapaCitaSteps","SaltoDeLinea","NewMapaCita","showHorario","LocateUser","Dealer","SeleccionCita","multiStepLastScreen","handleFirstLoad","initializeMultiStep","newWaitForNextStep","newWaitForPreviousStep","updateWaitForNextAndPreviousStep","updateScreenChangeVariables","timeoutPreviousStep","nextMapaCita","previousMapaCita","newMultiStepScreenIndex","MapaCitaDealer","navigateMultiStep","ChevronUp","AllWrapper","TopInfoBox","boxItem","showOperacionesMantenimiento","showEdit","MotivoCalculadora","isCalculadoraForm","ConfirmacionCita","tmkData","lssiData","userVehicles","fechaHora","setFechaHora","setCocheAlTaller","setCocheSustitucion","showEditServicios","setShowEditServicios","showEditSobreVW","setShowEditSobreVW","showEditSobreTi","setShowEditSobreTi","irConOtroCoche","setIrConOtroCoche","useLoggedJourney","showMontmeloLegales","renderAreYouSureLayer","stepNumber","handleEdit","showLegales","setKilometros","getKmInitialValue","indexOfMillage","updateValues","fromFormatted","MotivoCita","_f","_g","_j","_h","defaultChecked","_k","_m","_l","_o","_q","_p","_r","_t","_s","showCTAEditVW","MatriculaYModelo","newMillVal","newValues","updateKilometros","showKMVW","paddingRight","OperacionDiv","isLast","OperacionesDiv","setShowOperacionesMantenimiento","formatPvp","pvp","quotePvp","getMotivo","motivoLabel","quoteOperations","operation","LoadingComponent","CitaPosventaSteps","spliceSteps","getFormName","isCitaPosventaDealer","isCitaPosventaEmbeddedCalculadora","isCitaPosventaEmbeddedBeneficios","setSteps","setFirstStep","setStepsHistory","wa","CitaPosventaData","DESC_CAMPAIGNBLOCK","DESC_ID_CAMPAIGN","citaPosventaData","setCitaPosventaData","isMotivoSoftware","ctaMotivo","removeStep","defaultSteps","formSteps","masInformacionIndex","Motivo","getMotivoTitle","MasInformacion","Mapa","NombreApellido","Matricula","CocheSustitucion","CocheAlTaller","getLssiTmk","getInstallationAdress","getModelo","appointmentDate","ctaLabel","appointmentNode","appointment","comments","customer","contactPhone","customerType","documentNumber","documentType","gender","owner","surname2","intervention","lopd","pickupServiceRequired","replacementCarServiceRequired","sms","eapiData","group_brand","cod_instalacion","eapiDataToSend","FormData","append","eapiResponse","ndpsData","budget","ndpsDataToSend","ndpsResponse","eapiDelete","getFirstStepAndStepsHistory","observaciones","stepsWithoutMap","CTAmotivo","newSelectedDealer","repeatKvpsRequest","getFinalSteps","defaultFirstStep","motivoData","masInformacionData","handleStepsOfCitaDealer","getSteps","NuevaCitaPosventaFormDefault","Fields","FileDownload","handleGuardar","setCopyBook","formattedSlot","contentNDPS","CitaPosventaInfo","ThankYouNuevaCita","NuevaCitaPosventaFormLogged","getLoggedSteps","userHasFavouriteDealer","personalDataSteps","userHasPersonalData","vehicleDataSteps","mainVehicle","isMainVehicle","userHasVehicleData","ReservaCita","assessorName","setAssessorName","DMSError","setDMSError","slotNotAvailable","setSlotNotAvailable","slotHorarioRef","checkSlot","getAssessorName","handleCitaNoDisponible","checkCita","citaTo","handleCitaDisponible","wordBreak","continueWithoutDms","oneCard","ConfirmacionEmpresas","WidthWrapper","EmpresaInfoComponent","inputValueName","setInputValueName","pristineName","setPristineName","errorName","setErrorName","regExpName","inputValueCIF","setInputValueCIF","pristineCIF","setPristineCIF","errorCIF","setErrorCIF","regExpCIF","handleChangeName","handleChangeCIF","fleetOptions","Fleet","EmpresasFormSteps","EmpresasForm","MapaEmpresas","EmailTelefono","Empresa","EmpresasFormData","PERSON_RGPD_ADAPTED","FLAG_IS_MYSTERY_LEAD","FLAG_RELACION_MARCA_SIN_IC","FLAG_SF_INTEGRATION","FLAG_ALLOWS_DATA_ENRICHMENT","formatFlags","postalCode","businessName","CIF","fleet","padStart","getDpsFields","useInitializeLeadForm","EmpresasFormInfo","ThankYouEmpresas","JourneyEmpresasController","isTime","isCarouselCard","prov","FRML_TXT_codVentaProvincia__c","handleLoadingLayer","JourneyEmpresasWrapper","MapaEmpresasSteps","nextMapaEmpresas","previousMapaEmpresas","PlanIdealController","pincodeAvailable","setPincodeAvailable","Checks","questionName","answers","skippable","checkedIndex","setCheckedIndex","Video","video","isMediumScreen","QuestionWithImage","videoSrc","intro","setIsMediumScreen","preload","autoPlay","loop","muted","playsInline","headline400","PlanIdealSteps","PlanIDeal1","PlanIDeal2","PlanIDeal3","PlanIDeal3Otros","ConfirmationPlanIdeal","generateSubmitData","ID_Person_DIM_IMP__c","telefono","NUM_Phone_mobile__c","generateData","ThankYouPlanIdeal","handlePlanIDeal3Otros","GridWrapper","GridItem","row","InputErrorLegales","legalesPlanIdeal","setCompartir","compartirError","DESC_NAME","MarginWrapper","CajaCTATrigger","getCtaLabel","DiaDeLaMadreForm","BackgroundBlue","ImageOneAndTextWrapper","ImageTwoWrapper","ImageThreeWrapper","BottomImagesWrapper","RelativeWrapper","MovileImageWrapper","DisplayImagenesYCTATrigger","Mensaje","CardsWrapper","Card","article","bgColor","mensajes","mensajesPosition","b1188","b654","b420","MensajesCards","showMessages","showCard1","setShowCard1","showCard2","setShowCard2","showCard3","setShowCard3","showCard4","setShowCard4","showCard5","setShowCard5","positionsArray","setPositionsArray","activateTriggers","changeCardsPosition","bp","mediaQueryListObject1188","mediaQueryListObject959","mediaQueryListObject654","mediaQueryListObject420","mensaje","spinnerKeyframe","animateNumber","increment","stepTime","getElementById","timer","SectionMensajes","setShowMessages","madres","setMadres","porcentaje","setPorcentaje","intersectionRatio","threshold","strokeDasharray","Svg","svg","SvgWrapper","FacebookSvg","stroke","strokeWidth","fillRule","TwitterSvg","WhatsappSvg","Anchor","shrinkContent","cliente","CTAsTipoVehiculo","getContactoTitle","DiaDeLaMadreSteps","notAClient","setNotAClient","Cliente","MotherEmail","TipoVehiculo","ConfirmacionDiaDeLaMadre","messageText","otherEmail","tipoVehiculo","ThankYouDiaDeLaMadre","handleNotAClient","HeaderContentPosition","Portada","WhiteSpace","nowrap","Experiencia","CTAsSiNoNsNc","CTASCarga","CTAsConduccion","CTAsGusta","getExperienciaTitle","entregado","getExperienciaAlternateTitle","EurocopaSteps","EurocopaForm","formError","setFormError","formCaducado","setFormCaducado","setIdOrder","carga","multipleChoice","updateExperienciaStep","conCoche","auxSteps","experienciIndex","handleDetalle","fieldName","detalleStepIndex","detalleIndex","Trigger","Carga","Coduccion","MultipleChoice","MultipleChoiceDetalle","Recomendacion","ConfirmacionEurocopa","idClimapro","experiencia","enCurso","conduccion","multipleChoiceDetalle","recomendacion","enCursoAux","SLI_State__c","indexFinalCorte","ThankYouEurocopa","DESC_WAID_LITERA","DESC_FORM_DETAIL","TXT_2_Surname__c","LastNavigationFidelizacion","handleConfirmarEnvio","otrosServicios","refProps","showError","enviarInformacion","FidelizacionLastScreenFields","getLastItemOfSteps","propertyHasValue","checkIdLeadHasCarline","idLead","NUM_COD_INTEREST_CARLINE__c","DESC_Model__c","useInitializeFidelizacionForm","setLastStep","updatedSteps","indexOfModelo","updatedStepsWithIndex","removeModelFromSteps","requestCarlines","CTAsListadoVentajas","FidelizacionSteps","FidelizacionForm","obtenerNuevas","stepsForm","QuieroTener","MasConoces","dynamic0020","ListadoVentajas","Valoracion","ServicioPosventa","ProcesoCompra","OpcionesFinanciacion","VentajasBeneficions","InformacionExclusiva","InformacionTecnologia","OtrosServicios","FidelizacionFormData","quieroTener","masConoces","listadoVentajas","servicioPosventa","procesoCompra","opcionesFinanciacion","ventajasBeneficions","informacionExclusiva","informacionTecnologia","FidelizacionFormInfo","ThankYouFidelizacion","FidelizacionController","presubmit","setPresubmit","showPantallaModelo","setShowPantallaModelo","Loading","avoidNextStep","correctAnswer","currentCorrectAnswers","Image","objectFit","ConfirmationTestID","contact","ThankYouTestID","TextBlue","legalesTestID2023","InputWrapper","ConcursoRodajeConfirmacion","ConcursoRodajeController","ConcursoRodajeForm","ThankYouConcursoRodaje","TXT_Postal_Code__c","VGED_CodeOfInterestCarline__c","useInitializeForm","LEMContactadoSteps","getPeriodoContactoTitle","modeloPrecargado","LEMContactadoForm","loadingPresubmit","setLoadingPresubmit","stepsWithModel","PeriodoContacto","ProximoContacto","Comentario","ConfirmacionLEM","LEMContactadoData","modifySteps","sendPresubmit","MobilePhone","Dealership__c","periodoContacto","proximoContacto","comentario","generatePresubmitData","LEMContactadoInfo","ThanKYouLEM","LEMNoContactadoSteps","LEMNoContactadoForm","Horario","LEMNoContactadoData","LEMNoContactadoInfo","LEMController","setContactado","idLeadRef","setInstallations","leadCreatedDate","CreatedDate","onTime","setAllInstallations","found","ele","customDealer","TXT_DESC_DEALER_CODE__c","DESC_Dealer_Code__c","getMapaFields","inPage","MapaLeadsInPage","MapaLeads","CitaVentaSteps","CitaVentaForm","isConfigurador","isLeadDealer","partialData","setPartialData","leadsCitaVentaDealerData","leadsCitaVentaData","filteredSteps","Contacto","ConfirmacionLeadsNoQuestions","citaVentaInfo","LeadGenericoForm","leadData","partialDataCitaConfigurador","leadInfo","formFields","COMMENTS_BRAND","PoliticaWrapper","isLayer","removePTags","legal","getDescFormObjective","dfo","ofertas","getSfCampaignName","salesforce","sfCampaignName","stepHorario","LeadGenericoComercialesForm","indexOfContacto","leadGenericoData","FK_SYSTEM","FLAG_IS_COMPANY","leadGenericoInfo","formatFields","horarioContacto","getDescInterestCarline","getOfertasComercialesData","getConfiguradorComercialesData","formDataInfo","ThankYouLeads","LeadGenericoController","LeadGenerico","getFormDetails","callCenterCampaign","formDetails","getHorario","horarioField","formObjective","commentsCC","getOfertasData","getMatchData","getConfiguradorData","JourneyLeadsController","JourneyLeadsWrapper","MapaLeadsSteps","renderTitle","stepsHorario","stepsWithoutHorario","nextMapaLeads","previousMapaLeads","MasInformacionSteps","MasInformacionForm","leadsMasInformacionDealerPartialData","leadsMasInformacionPartialData","Comentarios","PartialDataMasInformacionConfigurador","OfertaSteps","OfertaForm","confirmSteps","citaVentaData","PresupuestoSteps","PresupuestoForm","isOfertasOrMatch","leadsPresupuestoDealerPartialData","leadsPresupuestoPartialData","PresupuestoPartialDataConfigurador","StockForm","leadsStockPartialData","leadsStockInPagePartialData","TestDriveSteps","TestDriveForm","leadsTestDriveDealerPartialData","leadsTestDrivePartialData","PartialDataTestDriveConfigurador","copysThankYou","titleCopyRegular","titleCopyBold","nombre","completeInfo","setCompletInfo","completarBold","setCompletarBold","setbodyCopy","setCtaUrl","appendJsonKey","getCalculadoraData","getAddress","getCodInterestCarline","marketingCodeData","trimline","configuradorData","marketingCodeFields","affinity","precio","etiquetaDGT","getMatchOptions","matchOptions","getMatchHash","getPassengers","passengers","getUsage","usage","getLuggage","luggage","getHighlights","highlights","fuel","adult","kids","kid","lugagge","unaMaleta","escapada","unaSemana","unMes","mascota","bici","surf","snow","urban","interurban","long","allterrain","atrevido","comodo","deportivo","sostenible","elegante","seguro","sonido","tecnologico","ofertaFields","createOfferPrice","getObservationBrand","cuota","cuotaTipo","plazos","cuotaEntrada","cuotaFinal","tin","tae","promociones","promo","carlineInFaContent","salesgroupInFaContent","findSalesgroup","reducer","createSalesgroup","isEmbedded","isInPage","carConfigurationService","dispatchLead","useReducer","getAsset","mediaAssets","assetName","asset","findAsset","mpsId","assetUrl","setInitialProductData","carlineId","offerOrPreconfiguration","salesgroupCarline","removeStepAndReset","useLeadsWithModel","getCarlineInfo","D6MOFASideview","D6Explore1","salesGroupData","colorCode","colores","hexadecimal","setDataNoSalesGroup","D6MainStageExterior","carlineData","carlineResponse","useLeadsWithMarketingCode","getModelFromUrl","htmlIndex","carlineName","splittedPath","hasSalesGroup","M_OBSERVATION_BRAND","CarlineColorCard","showColorCard","ImageCar","setShowColorCard","loadingImage","setLoadingImage","car34","LocateUserLeadsInPage","colorInfo","setColorInfo","getColorInfo","hex","JourneyLeadInPageController","JourneyLeadsInPageWrapper","getTitle","getLocatePage","MapaLeadsInPageSteps","mapStep","layerRef","nextMapaNoCompra","renderLayer","previousMapaNoCompra","renderElement","onCloseMap","openInteractionLayer","InteractionLayerSizeV2","D","shimBackgroundType","ShimBackgroundTypeV2","OPAQUE","onClose","TitleTextWrapper","MGMLayout","mgmImgSrc","MGMTitle","BonoClienteFields","LegalMGM","isFriendForm","bonoClienteCopies","BonoClienteForm","BonoClienteData","Robinson__c","BonoClienteInfo","ThankYouMGM","BonoRegaloFields","bonoRegaloCopies","BonoRegaloForm","BonoRegaloData","BonoRegaloInfo","EnvioRegaloFields","envioRegaloCopies","EnvioRegaloForm","EnvioRegaloData","EnvioRegaloInfo","friend","MGMController","bonoCliente","setBonoCliente","envioRegalo","setEnvioRegalo","bonoRegalo","setBonoRegalo","ConfirmacionNewsletter","NewsletterSteps","NewsletterForm","ThankYouNewsletter","checkHasCarline","useInitializeNoCompraForm","NoCompraController","setEstado","yaTengo","setYaTengo","noTengo","setNoTengo","noQuiero","setNoQuiero","NoCompraYaTengo","NoCompraNoTengo","NoCompraNoQuiero","NoCompraYaTengoSteps","modelos","TipoCompra","RatingSteps","ConfirmacionNoCompra","submitData","tipoCompra","marca","visita","equipamiento","consumo","garantia","financiacion","getCommonFormData","ThankYouNoCompra","ctasNoCompra","JourneyNoCompraController","MapSearch","JourneyNoCompraWrapper","MapaNoCompraSteps","MapaNoCompra","NoCompraNoTengoSteps","contactoConcesionario","quieroVolkswagen","ContactoConcesionario","QuieroVolkswagen","QuieroContacto","conditional","personData","installationData","gestion","NoCompraNoQuieroSteps","decision","Decision","MotivoDetalle","motivoDetalle","startIndex","prevSteps","checkHasCarlineNoRenovacion","useInitializeNoRenovacionForm","NoRenovacionController","NoRenovacionYaTengo","NoRenovacionNoTengo","NoRenovacionNoQuiero","surveyAnswer01","NoRenovacionNewCar","selectMotivos","FakeTriggerCTA","Introduccion","UsadoNuevo","LugarCompra","ProblemasVehiculo","ConfirmacionNoRenovacion","addOnNextStepName","orderString","orderMotivos","deleteProblema","motivosProblema","numero","motivos","selectMotivosProblems","usadoNuevo","lugarCompra","ThankYouNoRenovacion","lssiPermited","JourneyNoRenovacionController","JourneyNoRenovacionWrapper","MapaNoRenovacionSteps","MapaNoRenovacion","nextMapaNoRenovacion","previousMapaNoRenovacion","getModeloInteresTitle","getModeloInteresFields","getModeloInteresOutputs","getModeloInteresOutputsText","getDudasTitle","getDudasAlternatTitle","getDudasFields","NoRenovacionSigueBuscando","NoRenovacionNoBuscaSteps","TipoCoche","OtraMarca","tipoCoche","otraMarca","modeloIndex","mapaIndex","updateModeloInteresStep","handleStepsNoVolkswagen","loadingForm","setLoadingForm","razones","formasMovilidad","FormasMovilidad","Razones","MasInformacionRazones","masInformacionRazones","removeMultipleSteps","handleSteps","handleDetalleFormasMovilidad","handleDetalleRazones","ConfirmacionProspects","ProspectsSteps","ProspectsVentaForm","customSteps","DESC_LOPD","DESC_TRANF_DATA_THIRD","ThankYouProspects","getFormDataAndInfo","carlineFromFaContent","COD_INTEREST_CARLINE","DESC_INTEREST_CARLINE","getFormDataWithCarline","MatchProspectForm","ProspectsPosventaSteps","ProspectsPosventaForm","copiesThankYou","titleBold","setTitleBold","titleRegular","setTitleRegular","copybook","setCoopybook","moveLeft","RaceFormWrapper","showFullWidth","isSending","isSent","PrefijoWrapper","isPristine","successful","CTAWrapperFullScreen","showFullCta","RaceForm","disabledButton","copyWidth","setIsPristine","initialSizeRef","containerWidth","setContainerWidth","Phone","ArrowRight","useRaceFormController","setIsSent","setIsSending","setSuccessful","setDisabledButton","canal","retry","motivoSac","contactoSAC","SACOneShopForm","SACOneShopFields","info","splittedParams","DESC_ID_CLIMAPRO","ThankYouOneShop","LogoCenter","HeaderImage","imageSmall","imageLogo","imageBig","SACOneShopController","imagesUrl","SACFormSteps","SACForm","PantallaMotivoSAC","ConfirmacionSAC","SACFormData","SACFormInfo","ThankYouSAC","InputsWrapper","motivoOptions","setMotivo","getMotivoByCode","stringToFind","atts","formatFormData","accum","dpsFields","initialValue","addedStep","indexToSplice","indexesToSplice","indexOfFirstStep","indexOfLastStep","transformMillage","kmCalculadora","word","outputFormat","inputFormat","startOf","endOf","dynamic0350","ConfirmacionNavidad","FriendsInfo","nameNombre","labelMail","labelNombre","nameMail","setBodyCopy","NavidadSteps","NavidadForm","EnviarA","NoClienteContacto","ImaginarExperiencia","noClienteName","wishlist","friendName","friendMail","imaginarExperiencia","ThankYouNavidad","handleStepsCliente","handleMasInformacion","SobreMobile","xmlnsXlink","fx","fy","gradientTransform","stopColor","filterUnits","stdDeviation","transform","xlinkHref","SobreDesktop","Sobre2560Desktop","CircleCheck","strokeLinecap","BorderSection","backColor","DisplayBorder","CenterCTA","SobrePosition","FakeInputWrapper","CheckWrapper","TipoDos","ContainerTitle","InputTitleWrapper","BulletLine","ListItemWrapper","formatListElement","listUno","setListUno","listDos","setListDos","listTres","setListTres","navidadImgSrc","Border","Inputs","InputTextWrapper","InputText","IconWrapper","Edit","overflowX","UlWrapper","isVertical","BackgroundImage","liSection","idLi","backgroundUrl","AcordionHorizontal","setActive","setVertical","carlineWithOffers","LiSection","CTAOfertaSuv","CarImage","transformedNumber","decimals","numerals","shift","MobileCard","imageUrl","setImageUrl","label200","myWay","activo","LiWrapper","shadowSide","Divider","fadeInImage","small","taigo","CTAanimation","CTAPostion","shadowAnimation","Shadow","NoMarginWrapper","BottomContentWrapper","activeTab","setActiveTab","TabsNavigation","offers","ColorBarWrapper","greyAnimate","GreyBar","ColorBar","ProgressBar","Nav","LiButton","TextStyles","resetProgressBar","setCarlinesWithOffers","setAction","CallMeOfertasTrigger","renderTrigger","featureApp","StyledDivider","hr","divider","setDealerInfo","dealerDmsInfo","setDealerDmsInfo","pointsLodaded","setPointsLoaded","renderErrorScreen","initializeState","Mail","alignItems","RaceDiv","RaceTriggerFullScreen","RaceTriggerPopUp","Box","StyledImage","ImageAndContentWrapper","containerRef","isVisible","setCopyWidth","firstView","handleErrorLayer","Legal","ctaDisabled","setCtaDisabled","RacePopUp","TitleDiv","TitleInside","ErrorPage","gradient","radial","CitaPosventaDefaultTrigger","getBodyCopy","getCtaRegister","race","CitaPosventaBenfitsForms","MediaWrapper","scrollY","ContentStage","ContainerNew","CitaPosventaStageTrigger","getIntro","setScrollY","useScrollPosition","prevPos","currPos","stageCitaImgSrc","gridArea","userInteractionService","headline","textAlignment","login","modo","userInteraction","isCitaPosventaStageOrDefault","CEMOneShopSteps","CEMOneShopForm","Atencion","Planificacion","Organizacion","ExplicacionConfiguracion","VehiculoProbado","ConfirmacionCEMOneShop","CEMOneShopData","IDClimapro__c","atencion","planificacion","organizacion","explicacionConfiguracion","vehiculoProbado","useInitializeLEMForm","CEMOneShopInfo","ThankYouCEMOneShop","CEMOneShopController","formDate","FirstStepCEMVentaProducto","getStepsVentaProducto","confirmacionDatos","compraVehiculo","modeloCorrecto","inicio","preguntaMotivo","recomendacionMotivo","Q1","SatisfaccionDiseno","C1","SatisfaccionDisenoMotivo","Q2","SatisfaccionUso","C2","SatisfaccionUsoMotivo","Q3","SatisfaccionTecnologia","C3","SatisfaccionTecnologiaMotivo","Q4","SatisfaccionCalidad","C4","SatisfaccionCalidadMotivo","Q5","SatisfaccionConduccion","C5","SatisfaccionConduccionMotivo","Q6","SatisfaccionElectrico","C6","SatisfaccionElectricoMotivo","SatisfaccionGeneral","SatisfaccionGeneralMotivo","SatisfaccionExperiencia","SatisfaccionEntrega","ThankYouCEMVentaProducto","CEMVentaProductoForm","satisfaccionDiseno","satisfaccionUso","satisfaccionTecnologia","satisfaccionCalidad","satisfaccionConduccion","satisfaccionGeneral","satisfaccionElectrico","satisfaccionDisenoMotivo","satisfaccionUsoMotivo","satisfaccionTecnologiaMotivo","satisfaccionCalidadMotivo","satisfaccionConduccionMotivo","satisfaccionElectricoMotivo","satisfaccionGeneralMotivo","satisfaccionExperiencia","satisfaccionEntrega","random1","random2","random3","random4","random5","randomStep1","randomStep2","randomStep3","randomStep4","randomStep5","CEMVentaProductoController","CEMSegundaEntregaController","setIdPerson","setIdVehicle","setIdDealer","setInteres","whiteList","myInstallations","VGED_ConcessionDealerCode__c","CEMSegundaEntregaForm","CEMSegundaEntregaNoInteres","CEMSegundaEntregaSteps","CTAsTipoConsulta","CTAsTipoContacto","TipoConsulta","DetalleConsulta","TipoContacto","ConfirmacionTelefono","DealerCEMSegundaEntrega","SeleccionDealer","CitaCEMSegundaEntrega","fechaName","horaName","Calendario","ConfirmacionCEMSegundaEntrega","tipoConsulta","tipoContacto","CEMSegundaEntregaData","detalleConsulta","fechaCita","horaCita","seleccionDealer","CEMSegundaEntregaInfo","ThankYouCEMSegundaEntrega","setDealer","TXT_V_KVPS_code__c","Fieldset","handleSelectDealer","CalendarioContainer","FranjaContainer","HorasContainer","monthObjDays","setMonthObjDays","previousMonthBtn","setPreviousMonthBtn","nextMonthBtn","setNextMonthBtn","startDay","setStartDay","endDay","setEndDay","availableDays","setAvailableDays","showMonth","setShowMonth","franjasManana","setFranjasManana","franjasTarde","setFranjasTarde","infoFranjasManana","setInfoFranjasManana","infoFranjasTarde","setInfoFranjasTarde","showFranja","setShowFranja","resetFranjas","setResetFranjas","getHorarios","handleBuildCalendar","thisMonth","dayJs","createDay","anotherMonth","objDays","isSame","createObjDay","isDayDisabled","isAfter","isBefore","getOffsetMonth","handleNextMonth","handlePreviousMonth","handleBuildFranjas","turnos","createFranjas","turno","generateTimeSlots","handleResetFranjas","handleSelectDay","tabBarVerticalPosition","handleChangeFranja","setSend","sent","setSent","copyTitle","CEMSegundaEntregaValoracionController","CEMSegundaEntregaValoracionForm","CEMSegundaEntregaValoracionSteps","Detalles","CEMSegundaEntregaValoracionData","RCY_ActualDeliveryDate__c","CEMSegundaEntregaValoracionInfo","ThankYouCEMSegundaEntregaValoracion","ThankYouFeedback","ConfirmacionFeedback","FeedbackSteps","FeedbackForm","hideStars","Opinion","Mejora","feedback","opinion","mejora","FeedbackWrapper","RatingStarsWrapper","formSent","setFormSent","idkit","climapro","climaproUserStatus","showStars","leadBonoPartialData","LeadBonoTrigger","filteredInstallation","useGetInstalacion","handleLayerOpen","journey","thereIsOnlyOneForm","forms","mobile","strechContent","Calc","renderPidePresupuestoCta","renderMasInformacionCta","Interior","renderTestDriveCta","renderPideCitaCta","leadMatchPartialData","LeadMatchTrigger","LeadOfertasTrigger","LeadStockTrigger","CallCenterSteps","CallCenterForm","ctaFormObjective","ctaCallCenterCampaign","leadsCallCenterPartialData","CallCenterCampaign","FormObjective","lead_type","centerGradient","setFirstCta","setSecondCta","setThirdCta","fourthCta","setFourthCta","fiveCta","setFiveCta","openTestDriveLayer","openPresupuestoLayer","openMasInformacionLayer","openCitaVentaLayer","openStockLayer","handleFaContent","renderOrder","renderStockCta","BackgroundOneForm","getConfigFormattedName","oneFormLayer","oneFormLayerFocus","genericErrorLayer","selectedJourneyElement","setSelectedJourneyElement","skipTrackButtonClick","setSkipTrackButtonClick","handleOneFormLayer","handleOneFormFocusLayer","handleGenericErrorLayer","renderOneForm","renderOneFormFocus","renderGenericErrorLayer","ProspectPosventaCalculadora","familyDesc","operations","taigoImage","triggerCase","CTAMapa","handleSearchArea","handleSearchAgain","CTAServices","CarouselWidget","DealerCardWidget","isInverted","MapaScreen","calculadoraFeatureService","ViewMobileWidgetMapa","CTAServicesProps","CTAMapaProps","ViewDesktopWidgetMapa","SuggestionScreen","searchDisabled","setSearchDisabled","WrapperCTAMapa","WidgetMapa","closeLoadingLayer","getCalculatorData","openLoadingLayer","widget","_add","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","_mult","_div","rotate","rotateAround","_rotateAround","matMult","_matMult","unit","_unit","perp","_perp","_round","mag","other","distSqr","atan2","angleTo","angleWith","angleWithSep","cos","useScrollPosition_1","enumerable","useIsomorphicLayoutEffect","react_1","useIsomorphicLayoutEffect_1","isBrowser","zeroPosition","getClientRect","getScrollPosition","useWindow","boundingElement","scrollX","targetPosition","containerPosition","effect","deps","throttleTimeout","callBack","handleScroll","storedValue","useDebounceCallback","storedCallback","cleanup","storedListener","storedCleanup","targetEl","didUnsubscribe","emptyObj","win","wv","visualViewport","getSize","useWindowSize","initialWidth","setDebouncedSize","useDebounce","setSize","fallbackGlobalObject","getGlobalObject","getGlobalSingleton","creator","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","dynamicRequire","mod","dateTimestampSource","nowSeconds","platformPerformance","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","_browserPerformanceTimeOriginMode","SSRContext","combinedMediaQuery","minQuery","minSize","maxQuery","isFinite","StyledBreakpointWrapper","never","ssrViewportWidth","contextSsrViewportWidth","isRenderedInClient","setIsRenderedInClient","useIsRenderedInClient","notHydrating","breakpointMatches","mql","setMatches","handleMediaQueryListener","useMediaQueryListener","breakpointMatchesForSsr","isBreakpointRangeReached","__rest","getOwnPropertySymbols","propertyIsEnumerable","isLink","isAccentButton","getTokenColors","isIconOnly","inverted","invertedOnSurface","accent","nbab","StyledLinkIcon","iconPosition","StyledButtonIcon","StyledLinkText","StyledButtonWrapper","templateColumns","StyledLinkWrapper","createStretchContentForBreakpoints","StyledButton","circular","StyledLink","CTALink","hasChildren","additionalProps","CTAButton","StyledCharacterCounter","CharacterCounter","label100","directions","isDirectionalConfig","createCSSVariablesForSizes","configOrSize","cssVar","createSpacing","createWrapStyles","wrapStyles","createPaddings","createSpacingAroundElementsStyles","directionalPadding","createDirectionalSpacings","ANIMATION_FUNCTION","DEFAULT_ANIMATION_DURATION","createTransitionForProperty","transition","normalizeTransitionProps","StyledChildWrapper","spacingBetweenElementsStyles","StyledOverflowWrapper","wrapChildren","StyledContainer","animateChange","transitions","createElectricTransition","ContainerInner","mappedChildren","childElements","toArray","StyledNotificationMessage","NotificationMessage","StyledFieldset","fieldset","legend","errorShouldBeVisible","createA11yOutlineStyles","breakpoints","isBreakpointConfig","compareBreakpoints","createStylesForBreakpoints","mediaQueryTemplate","getCommonProps","getUncommonProps","commonPropKeys","propKey","accumulator","Discount","clipRule","Bookmark","CheckmarkCircle","getBackgroundColorByAppearance","signal","new","alert","neutral","StyledDisplayTag","DisplayTag","getIconByAppearance","StyledInputNotification","InputNotification","getMainColor","getLabelColor","getAuxillaryColor","getAuxillaryTextColor","getNotificationColor","warnWithTrace","messages","reduceBrightness","others","LazyImage","srcPlaceholder","srcSet","sizes","_disableNoScript","LayoutConfigurations","full","half","areaConfigIsPlaceholder","areaConfig","StyledLayout","fullConfig","configWithoutEmptySpaces","_ignore","createFullLayoutConfiguration","configLines","area","newAreas","createLayoutConfigurationLines","rule","configForBreakpoint","getGridAreaForConfigAndChild","filteredChildren","wrappedChildren","RadioButtonSelected","noop","StyledRadioWrapper","StyledFocusWrapper","controllers","off","StyledInput","handleBlur","handleFocus","textAppearance","results","circumference","spin","growth","StyledSpinner","static510","static625","BackgroundPath","ForegroundPath","progress","circlePathData","StyledDescription","StyledIndicator","static530","statusIndicator","StyledInteractionIndicator","tab","isContainer","stepnav","StyledTab","ariaDisabled","StyledTabAnchor","Tab","forwardKey","handleMouseEnter","handleMouseLeave","textContextValue","titleTextElement","perf","useThrottleCallback","fps","trailingTimeout","clearTrailing","rightNow","StyledTabsWrapper","static535","StyledChevronLeft","StyledChevronRight","BackgroundGradientLeft","scrolling","BackgroundGradientRight","StyledScrollButton","scrollDirection","StyledTabPanel","tabsIndicatorBackground","isCurrentActiveTabDisabled","StyledTabBar","tabIndicator","scrollable","tabBarRef","activeIndex","setActiveIndex","disabledTabIndex","updateIndicatorPosition","updateIndicatorColor","setProperty","tabs","activeTabObserver","ResizeObserver","_observer","contentRect","unobserve","useAnimatedIndicator","isPreviousButtonDisabled","isNextButtonDisabled","setIsPreviousButtonDisabled","setIsNextButtonDisabled","firstTab","lastTab","rootMargin","firstTabIntersectionObserver","usePreviousNextButtonsDisabledState","scrollToTab","tabBarLeft","tabBarRight","targetTabLeft","targetTabRight","navigationShadowWidth","arrowButtonWidth","setFocusToActiveTab","activeTabDOMNode","isDisabledTab","currentlyHoveredTab","currentlyHoveredTabWidth","currentlySelectedTab","activeElement","handleKeyUp","dirPrevKey","change","targetIndex","handleChevronBackwardClick","previousIndex","findLastIndex","tabLeft","tabRight","handleChevronForwardClick","nextTabIndex","onKeyUp","onScroll","anchorProps","InputShow","InputHide","CloseCircle","iconTransitionDuration","inputClearPadding","hasClearButton","hasIcon","StyledSmallLabelText","hasMessage","isSpacer","StyledFloatingLabelText","StyledIcon","StyledClearButton","StyledClearButtonWrapper","StyledInputLineWrapper","SpinnerWrapper","TextInputInner","additionalFeedback","clearIconLabel","isClearButtonVisible","onClear","togglePasswordVisibilityIconLabel","currentInputType","setCurrentInputType","isPasswordInput","labelText","isReadOnly","validateInputField","TextTag","StyledTextComponent","sup","hyphens","textColor","colorPath","colorsObj","fontKey","fontSizeKey","fontProperties","w","fontWeight","letterSpacing","reducedFontSize","static","strikethrough","TextContext","innerContextValue","createCSSVarName","DesignTokenSizeEnum","DesignTokenFontSizes","assertCountGridColumn","getGridColumn","getColumnsWidthForBreakpoint","static370","static565","static575","static600","static650","static750","static800","static900","static1000","static1100","static1200","grid003","grid004","grid005","grid006","grid007","grid008","grid009","grid010","grid011","grid012","grid013","grid014","grid015","grid016","grid017","grid018","grid019","grid020","grid021","grid022","grid023","grid024","dynamic0040","dynamic0120","dynamic0140","dynamic0200","dynamic0270","dynamic0300","dynamic0450","line100","line200","designTokens","duration300","duration400","duration500","duration600","duration2000","timing100","timing200","timing300","timing400","shadows","variant1","variant2","variant3","variant4","useTheme","deprecations","linear","navigation","collapsible","scrollIndicator","nba","appearances","addProxy","targetObject","getFallbackTheme","Proxy","deprecation","condition","warnIfDeprecated","fallbackTheme","recursivelyAddProxies","resolveDesignTokenValues","themeSubTree","tokensOverride","resolvedTheme","propertyPath","designTokenValue","getDesignTokenValue","getTheme","currentTheme","newTheme","themeSet","parentTheme","themeWithLanguageAndDirection","addLanguageAndDirectionToTheme","ThemeProviderContext","InnerThemeProvider","themeContextOptions","memoizedValue","validChildren","Consumer","rx","ry","DisclaimerLayerAppearanceV2","TextAppearance","bigcopy","super100","super200","headline100","headline500","headline600","bigcopy100","bigcopy200","globalColors","blue100","blue200","blue300","blue500","blue600","blue700","blue800","blue900","black100","white000","grey050","grey100","grey200","grey300","grey400","grey500","green100","green200","red100","red200","mint100","purple100","yellow100","yellow200","pink100","purple050","mainThemeColors","visited","onsurface","enhanced","sticky","bookmark","contrast","badge","hoverIndicator","shadow","switcher","invertedThemeColors","authServiceWeConnect","localeService","getGdcType","isWcar","countryCode","getDocumentConsentVehicle","userId","createConsent","ttdsgConsentClient","loggingFacade","checkIsConsentDue","documentsForVehicles","isConsentDue","consentDecisionRequired","getFilteredDocumentsGroupedByVehicles","documents","consentDocumentDecisionRequired","getDocumentsConsentDecisionRequiredGroupedByVehicle","getDocumentsGroupedByVehicles","vehicles","vin","getAllDocuments","versionDetails","consent","getVinsByDocumentId","documentId","documentVin","getVehiclesByDocumentId","vins","getUniqueDocuments","allDocuments","createConsents","createDecisions","existingDecisions","newDecision","existingItem","versionDetailsId","createConsentPayload","decisions","decisionType","consents","DecisionType","ACCEPT_ALL","DECLINE_ALL","versionId","getArticleInformation","shopCountry","shopLocale","carNetShopClient","hasAppArticles","getArticlesForCategory","hasFodArticles","available","articles","consentConfiguration","resourceProxyId","getVehicleSpecificConsent","storeVehicleSpecificConsent","storeConsentForMajorVersion","majorVersion","appName","termsAndConditionsTextId","getLatestVersion","latestVersion","serviceConfigProvider","getConfiguration","consentCustomConfig","privacyStatementTextId","consentEndpoint","getTermsAndConditionsTextPdfUrl","minorVersion","getPrivacyStatementTextPdfUrl","acceptTermsAndConditions","setVehicleSpecificConsentIfNeeded","consentsGiven","getContracts","LicenseCategory","LicenseType","LicenseOrigin","getDocumentConsentRequired","documentConsentClient","DevicePlatform","EnrollmentStatus","ModGeneration","Role","SoftwareVersion","TimeoutError","UnknownSimStatusError","VcfUpdateCapabilityError","getRequestOptions","Accept","redirect","fetchGupis","fetchInvitations","gdcType","sendInvitation","invitationBody","fmToken","guSsoId","inviteeID","invitationAction","invitationID","requestMethod","rejectInvitation","acceptInvitation","revokeInvitation","revokeSURights","reactivationBody","getGvfData","vehicleId","baseUrl","GvfNetworkError","UserNotAuthorizedError","UnknownVehicleError","getGvfDetails","gvfClient","gvfCustomServiceConfig","validBids","vehicleCommissionDataHelper","VehicleCommissionDataHelper","specificationFilter","SpecificationFilter","prNumberOrigins","getGvfEnrichedVehicle","modelNameFallback","getGvfEnrichedVinVehicle","commissionNumber","commissionVehicleCombinations","getAllCommissionVehicleCombinations","getGvfEnrichedCommissionDataVehicle","getCustomConfig","useFallbackForModelName","gvfDataResponse","gvfDetailsResponse","specifications","getVehicleWithGvfDataForPossibleCombinations","bid","commissionNumberYear","lastException","allowedPrNumberOrigins","defaultPrNumberOrigins","filteredSpecifications","specification","codeText","bids","currentYear","getFullYear","possibleYears","authServiceWeConnectFag","getIdentityData","identityDataClient","EXPIRATION_DELTA_MS","reloginIfNecessary","redirectUrl","loginIsRequired","relogin","currentTimestampMs","lastAuthenticationDate","useNewUserDataService","getUserData","pictures","roles","userDataClient","getPrimaryUser","primaryUser","devicePlatform","WCAR","nickname","picture","PRIMARY_USER","getAllUsers","adjustUserRole","sortByRoleAndUserId","userDataResponse","UNKNOWN","user1","user2","SECONDARY_USER","GUEST_USER","getUserImage","getUserRoleTranslationKey","providers","getMapPackages","getVehicleOilNorm","PermissionGroup","hasPermission","permissionData","permissionGroups","group","hasSinglePermission","permissionGroup","PU_COMPLETED","enrollmentStatus","COMPLETED","PU_COMPLETED_MBB","hasAllPermissions","MBB","PU","SU","GU","GU_WCAR","MBB_ODP","VIN","COMMISSION","weProfileFacade","WeProfileFacade","isUserProfileComplete","userProfile","isNotBlank","salutation","personalDataResponse","convertPersonalDataResponse","getMBBStatusData","updateUserProfile","patchOperations","patch","responseData","addresses","phoneNumbers","primaryPhoneNumber","etagVersions","weProfileFolder","eTag","jsonPatch","etag","getUrlOrigin","getFeatureToggle","toggleName","SpinNotificationType","twoFactorManagementClient","isFirstVehicleWCar","enrolledVehicles","getSpinAvailability","spinStateResponse","getSpinState","isAvailable","spinState","spinChangeLockTime","spinLockedWaitingTime","remainingTries","hasMissingScopeError","MissingScopeSpinError","changeSpin","currentSpin","newSpin","resetSpin","verifySpin","spinResponse","spinChangeBody","existingSPin","newSPin","InvalidSpinError","spinResetBody","verifySpinBody","TrackingEventAction","trackingService","applicationId","pushEvent","trackingEvent","trackingData","createTrackingData","pageName","loginStatus","VWBasic_Button_Click","VWBasic_Link_Click","VWBasic_Download_Click","getPageId","VWBasic_ErrorMessage_Load","getCurrentUser","userClient","UserClient","userData","VehicleIdentifierValidator","isValidVin","isValidCommissionNumber","isValidCommissionNumberWithYear","isValidInventoryNumber","REGEX_VIN","REGEX_COMMISSION_NUMBER","REGEX_COMMISSION_NUMBER_WITH_YEAR","isCommercialVehicleVin","COMMERCIAL_VEHICLES_WMI","authServiceV2","getEnrollmentUrl","successUrl","requestedSteps","cancelUrl","getUrlFor","getProfileEnrichmentUrl","postDataObj","postData","getUserStatus","getUserIdentStatus","errorCode","errorDetail","MessageCategory","MessageAction","vcfTransactionHistoryClient","getMessages","transactionHistoryResponse","getTransactionHistory","filterAndTransformAndSort","deleteMessage","ANTITHEFTALARM","GEOFENCE","SPEEDALERT","deleteTransactionHistory","transformVcfTransactionHistoryMessageToMessage","sortMessagesByTimestamp","message1","message2","firstDate","actionSuccess","alertName","keyName","keyUserName","getSubscriptionsSettings","NoSubscriptionSettingsFoundError","saveSubscriptionsSettings","topics","vcfSubscriptionsSettingsClient","retainTheftAlarmCapableVehicles","vehiclesWithoutGuestUsers","getTheftAlarmSettings","primaryCar","requestFailed","saveTheftAlarmSettings","eMail","settingsWithTheftAlarmTopic","topic","NoMessagesFoundError","transactionCategory","resultToEvaluate","functionToCall","evaluationFunction","retryIntervalMs","timeoutInMs","throwTimeout","getResult","resolveRetry","ApplicationVersion","getUserVehicleCapabilities","V3","setUserVehicleCapabilityEnabled","capabilityId","V2","capabilities","getCapabilityUpdateStatus","requestId","vcfCapabilityClient","isWCar","isCapabilityEnabled","capability","isAtLeastOneCapabilityEnabled","isCapabilityDisabledByUser","foundCapability","allowedStatusCodes","statusCodes","updateUserVehicleCapability","requestIdResponse","requestID","updateStatus","poll","evaluate","checkUpdateStatus","getMobileKeysStatus","getMobileKeysList","deleteTrustedDevice","teeId","deleteMobileKeyPermission","putMobileKeyPermission","frontendAlias","DigitalKeyState","DigitalKeyRemovalState","InstallationState","VcfDigitalKeyService","vcfDigitalKeyClient","getDigitalKeys","permissionList","transformPermissionToDigitalKey","filterKeysWithValidStates","getDigitalKeyStatus","trustedDevices","filterTrustedDevices","trusteddevice","freeMobileKeys","serviceStatus","keyVoucherFreeCount","userRole","deleteDigitalKey","renameDigitalKey","alias","validState1","CONFIRMED","ACCEPTED","validState2","USED","installationState","SUCCEEDED","validState3","ENDED","removalState","INREMOVAL","REMOVALFAILED","trustedDeviceIsRegistered","transformVcfTrustedDevice","permission","permissionId","mkUserUserName","expirationTimestamp","mkAdministratorUserName","userName","isOwnKey","equalsIgnoreCase","vcfTrustedDevice","primaryUserID","imei","primaryUserId","str1","str2","NoReportAvailableError","VcfMeasurementsError","getFuelStatus","vcfFuelStatusClient","getCruisingRange","fuelStatusResponse","lastUpdate","carCapturedTimestamp","getMeasurementsStatus","vcfMeasurementsClient","getMeasurementsRange","ranges","measurementsStatusResponse","getMeasurementsOdometerRange","getNewsFeeds","getRequest","deleteNewsFeed","deleteRequest","postNewsfeeds","feedUrl","postRequest","prepareGetResponse","pepareDeleteResponse","contentType","isJsonContentType","preparePostResponse","gdcTokenQueryString","getUserCapabilities","getGeofenceNotifications","maxDefinitions","maxActiveDefinitions","geofences","createGeofenceNotification","updateGeofenceNotification","deleteGeofenceNotification","getSpeedAlertNotifications","speedAlerts","createSpeedAlertNotification","updateSpeedAlertNotification","deleteSpeedAlertNotification","getSubscriptionSettings","updateSubscriptionSettings","getNotificationConfigRequestStatus","allNavigationItems","Category","TRANSACTION_HISTORY_ANTITHEFT_ALERT","limitMessages","vcfNotificationClient","calcTime","getTimezoneOffset","hours","minutes","setHours","setMinutes","toLocaleString","minute","hour12","fromUtc","toUtc","shiftDays","recurringOn","startTime","dayShift","offsetMinutes","offsetHours","unshiftDays","getEditableCategories","errorStatus","getEditTabNavigationItems","lowerCasedArr","showNotificationCardEditBtn","schedule","endTime","payloadCalculatedToUtc","geofence","responseDataCalculatedFromUtc","speedAlert","TransactionHistoryErrorStatus","vhrLanguage","getMaintenanceStatus","getHealthReports","deleteHealthReport","getLatestHealthReport","getHealthReportSettings","saveHealthReportSettings","healthReportSettings","triggerWarningLightsUpdate","getHealthReportById","WarningLightsCategory","vcfHealthClient","maintenanceStatusResponse","inspectionDueDays","inspectionDue_days","inspectionDueKm","inspectionDue_km","oilServiceDueDays","oilServiceDue_days","oilServiceDueKm","oilServiceDue_km","getHealthReportArchives","healthReportsResponse","sortHealthReportsByTimestampDesc","mileageKm","mileage_km","latestHealthReportResponse","warningLights","warningLight","customerRelevance","groupedWarningLights","groupWarningLightsByCategory","healthReportResponse","healthReportSettingsResponse","VcfHealthSettingsConverter","convertVcfResponseToHealthReportSettings","convertHealthReportSettingsToVcfData","healthReports","firstReport","secondReport","transformedWarningLight","priority","categoryInResult","groupedWarningLight","vcfResponse","timeBased","supported","timeBasedSupported","collectionPeriod","fallbackToFirstElementIfNotInRange","monthsBetweenReports","dayOfMonth","distanceBased","distanceBasedSupported","distance_km","maintenanceBased","maintenanceBasedSupported","numberOf","callVdbsDevicePlatformEndpoint","softwareVersion","modGeneration","getDevicePlatform","callDevicePlatformEndpoint","getDevicePlatformWithOnlineDevices","getModGeneration","includeOnlineDevices","vdbsClient","getPlatformDetails","vdbsResponse","acronym","getWcarSoftwareVersion","getSoftwareVersionEnum","getSoftwareVersion","ME0","ME1","ME2","vehicleImageUrlBuilder","getImages","imageServiceUrl","getUrlForImageRequestWithDefaultView","VehicleImageService","vehicleImageClient","getVehicleImages","images","vilmaDefaultProvider","fallbackViewDirection","fallbackAngle","volkswagenIdentifier","commercialVehiclesIdentifier","vehicleImageEndpoint","viewDirection","defaultViews","getVehicleUrlParams","convertCommissionDataToId","convertCommissionIdToData","commissionId","splits","defaultBodyRequestHeaders","getUserVehicleRelations","traceId","VumProfileBrokenError","getUserVehicleRelation","patchVinVehicle","dataToUpdate","patchCommissionVehicle","commissionData","updateUserVehicleRelation","relation","addVinToUserVehicle","resetPrimaryUser","resetNonPrimaryUser","addUserVehicleRelation","userVehicleRelation","deleteUserVehicleRelation","deleteUserVehicleRelationUrl","deleteUser","removeUserFromVehicle","convertUserVehicleRelationToFlattenedVehicle","CommissionIdConverter","vehicleNickname","licensePlateNumber","licensePlate","dealerBrandCode","allocatedDealerCountry","preferredContact","modBackend","convertUserVehicleRelationsToFlattenedVehicles","relations","convertFlattenedVehicleToUserVehicleRelation","vumClient","vdbsService","permissionService","getVehicles","vumResponse","enrichedVehicles","loadDevicePlatformIfMissing","VumFlattenedVehicleConverter","getVehicle","updateNicknameAndLicensePlateForVehicle","updatePrimaryVehicle","isPrimaryCar","addVinToCommissionDataVehicle","addVehicle","hasVehicleIdentifier","getAddedVehicleOrFallback","deleteVehicle","disenrollUser","NotEnrolledVehicleError","getMbbUserId","mbbUserId","fallbackVehicle","findMatchingCommissionDataVehicle","addedVehicle","getUserRoleStatus","VumUserRoleStatus","vumUserRoleClient","ENABLED","DISABLED_HMI","DISABLED_SPIN","DISABLED_PU_SPIN_RESET","_nil","_parse","_stringify","_v","_v2","_v3","_v4","_validate","_interopRequireDefault","__esModule","getOutputLength","inputLength8","safeAdd","lsw","md5cmn","q","cnt","md5ff","md5gg","md5hh","md5ii","_default","bytes","unescape","Uint8Array","length32","hexTab","md5ToHexEncodedArray","olda","oldb","oldc","oldd","wordsToMd5","length8","bytesToWords","randomUUID","uuid","rnds8","ROTL","K","H","l","N","M","W","T","unsafeStringify","byteToHex","_rng","_nodeId","_clockseq","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","rng","msecs","nsecs","dt","tl","tmh","_md","URL","DNS","hashfunc","generateUUID","namespace","_namespace","stringToBytes","_native","rnds","_sha","_regex","__self__","F","DOMException","support","Symbol","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","iterator","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","byteLength","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","_bodyFormData","DataView","_bodyArrayBuffer","rejected","arrayBuffer","readAsText","chars","readArrayBufferAsText","decode","oldValue","upcased","decodeURIComponent","bodyInit","redirectStatuses","RangeError","aborted","abortXhr","abort","rawHeaders","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","withCredentials","responseType","polyfill","ponyfill","ctx","u","o","weekdays","months","ordinal","utcOffset","Q","S","O","$L","$u","$x","$offset","$d","NaN","UTC","$y","$M","getMonth","$D","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","$g","unix","valueOf","toDate","$locale","weekStart","$set","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","toUTCString","$i","isDayjs","en","Ls","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","mm","hh","dd","MM","yy","weekYear","isoWeekYear","week","isoWeek","offsetName","zone","afternoon","milliseconds","SS","SSS","ss","HH","DD","Do","ww","MMM","MMMM","Y","YY","YYYY","Z","ZZ","parseTwoDigitYear","seconds","timeZoneName","Intl","DateTimeFormat","timeZone","formatToParts","tz","$timezone","guess","resolvedOptions","setDefault","local","getUTCFullYear","getUTCMonth","getUTCDate","getUTCDay","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","$localOffset","isUTC","QueryHandler","each","MediaQuery","isUnconditional","assess","constuctor","addHandler","qh","removeHandler","destroy","Util","isFunction","MediaQueryDispatch","queries","browserIsIncapable","shouldDegrade","unregister","deferSetup","setup","initialised","unmatch","collection","Events","EE","once","emitter","_eventsCount","clearEvent","eventNames","events","names","listeners","ee","listenerCount","a1","a2","a3","a4","a5","prefixed","areaConversion","timeConversion","distanceConversion","altitudeKeys","latitudeKeys","longitudeKeys","MAXLON","MINLON","MAXLAT","MINLAT","earthRadius","sexagesimalPattern","km","cm","mi","sm","ft","yd","m2","km2","ha","ft2","yd2","in2","sqm","sqkm","sqft","sqyd","sqin","keysToLookup","foundKey","_constants","_getCoordinateKey","ownKeys","enumerableOnly","symbols","sym","_defineProperty","altitude","getOwnPropertyDescriptors","defineProperties","_objectSpread","_getLatitude","_getLongitude","_toRad","_robustAcos","accuracy","fromLat","fromLon","toLat","toLon","acos","_toDecimal","raw","latKey","checkedValue","_getCoordinateKeys2","_isValidLatitude","_isValidLongitude","_getCoordinateKeys","_isDecimal","_isSexagesimal","_sexagesimalToDecimal","isValidLatitude","isValidLongitude","sexagesimal","sec","decimal","_isValidCoordinate","toDecimal","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","mime","bom","msSaveBlob","blobURL","createObjectURL","webkitURL","tempLink","download","click","revokeObjectURL","camel2hyphen","obj2mq","mq","isDimension","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","toNumber","isSymbol","isBinary","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","symbol","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","_react","_typeof","_getRequireWildcardCache","hasPropertyDescriptor","_interopRequireWildcard","_propTypes","_arrays","_Autowhatever","_theme","WeakMap","_defineProperties","_createSuper","Derived","Super","_getPrototypeOf","Reflect","construct","sham","_isNativeReflectConstruct","NewTarget","_possibleConstructorReturn","ReferenceError","_setPrototypeOf","alwaysTrue","REASON_SUGGESTIONS_REVEALED","REASON_INPUT_FOCUSED","REASON_INPUT_CHANGED","REASON_ESCAPE_PRESSED","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_alwaysRenderSuggestions","alwaysRenderSuggestions","_classCallCheck","justClickedOnSuggestionsContainer","suggestionsContainer","autowhatever","sectionIndex","itemIndex","updateHighlightedSuggestion","pressedSuggestion","justSelectedSuggestion","justMouseEntered","multiSection","keepSuggestionsOnSelect","shouldKeepSuggestionsOnSelect","suggestionValue","resetHighlightedSuggestion","focusInputOnSuggestionClick","_this$getSuggestionIn","getSuggestionIndices","findSuggestionElement","suggestionIndex","clickedSuggestion","getSuggestion","clickedSuggestionValue","maybeCallOnChange","closeSuggestions","shouldRenderSuggestions","highlightedSuggestion","getHighlightedSuggestion","shouldRender","highlightedSectionIndex","highlightedSuggestionIndex","valueBeforeUpDown","isCollapsed","blurEvent","_ref4","onSuggestionMouseEnter","onSuggestionMouseLeave","onMouseDown","onSuggestionMouseDown","onSuggestionTouchStart","onTouchMove","onSuggestionTouchMove","onSuggestionClick","_ref5","containerProps","renderSuggestionsContainer","getQuery","justPressedUpDown","onDocumentMouseDown","onDocumentMouseUp","itemsContainer","shouldResetHighlighting","highlightFirstSuggestion","willRenderSuggestions","revealSuggestions","prevState","onSuggestionHighlighted","shouldResetValueBeforeUpDown","getSectionSuggestions","_this$state","suggestionElement","startNode","_this$props$inputProp","renderInputComponent","renderSectionTitle","_this$state2","_onFocus","_onKeyDown","isOpen","autowhateverInputProps","newHighlightedSectionIndex","newHighlightedItemIndex","getSuggestionValueByIndex","_newValue","willCloseSuggestions","renderSuggestionData","renderItemsContainer","renderItem","renderItemData","getSectionItems","highlightedItemIndex","itemProps","mapToAutowhateverTheme","storeAutowhateverRef","defaultTheme","_sectionIterator","_reactThemeable","_SectionTitle","_ItemList","_slicedToArray","_arrayWithHoles","_arr","_n","_i","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","arr2","emptyObject","Autowhatever","userRef","highlightedItem","section","isInputFocused","nextPrev","_this$sectionIterator2","sectionIterator","setSectionsItems","setSectionIterator","ensureHighlightedItemIsVisible","sectionsItems","sectionsLengths","allSectionsAreEmpty","itemsCount","keyPrefix","sectionKeyPrefix","isFirstSection","onHighlightedItemChange","getItemId","storeItemsListReference","itemOffsetRelativeToContainer","offsetParent","renderedItems","renderSections","renderItems","ariaActivedescendant","itemsContainerId","inputComponent","storeInputReference","storeItemsContainerReference","container","containerOpen","inputOpen","inputFocused","itemsContainerOpen","itemsList","itemFirst","itemHighlighted","sectionContainer","sectionContainerFirst","sectionTitle","_compareObjects","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Item","isHighlighted","restProps","storeItemReference","_Item","ItemsList","sectionPrefix","isItemPropsFunction","isFirst","itemKey","itemPropsObj","allItemProps","storeHighlightedItemReference","SectionTitle","aKeys","bKeys","keysMap","aValue","bValue","aValueKeys","bValueKeys","aValueKey","suggestionsContainerOpen","suggestionsList","suggestionFirst","suggestionHighlighted","React__default","UA","browser","getBrowser","getCPU","getDevice","engine","getEngine","os","getOS","ua","getUA","setDefaults","getNavigatorInstance","isIOS13Check","nav","maxTouchPoints","MSStream","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","isMobile","isSmartTV","isConsole","isWearable","mobilePayload","_objectSpread2","vendor","osVersion","checkType","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isDesktop","isAndroid","isWinPhone","isIOS","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","isIPad13","isIPhone13","isIPod13","isElectron","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","isNullOrUndefined","isObjectType","isHTMLElement","VALIDATION_MODE","VALUE","UNDEFINED","EVENTS","BLUR","CHANGE","INPUT","SELECT","INPUT_VALIDATION_RULES","REGEX_IS_DEEP_PROP","REGEX_IS_PLAIN_PROP","REGEX_PROP_NAME","REGEX_ESCAPE_CHAR","isKey","stringToPath","quote","tempPath","lastIndex","objValue","transformToNestObject","isUndefined","focusOnErrorField","fieldErrors","removeAllEventListeners","validateWithStateUpdate","isRadioInput","isCheckBoxInput","isDetached","HTMLElement","DOCUMENT_NODE","isEmptyObject","castPath","parent","updatePath","baseGet","baseSlice","unset","paths","childObject","previousObjRef","objectRef","currentPaths","currentPathsLength","baseUnset","isSameRef","fieldValue","defaultReturn","getRadioValue","getMultipleSelectValue","isFileInput","isMultipleSelect","isEmptyString","defaultResult","validResult","getCheckboxValue","getFieldValue","files","getFieldsValues","nest","isSameError","objectA","objectB","objectAKeys","objectBKeys","compareObject","isRegex","getValueAndMessage","validationData","isBoolean","isMessage","isValidElement","getValidateError","appendErrors","validateAllFieldCriteria","validateField","fieldsRef","isRadio","isCheckBox","isRadioOrCheckbox","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","requiredValue","requiredMessage","exceedMin","maxMessage","minValue","minMessage","valueNumber","valueAsNumber","valueDate","valueAsDate","maxLengthValue","minLengthValue","inputLength","patternValue","patternMessage","validateRef","validateError","validationResult","validateFunction","parseErrorSchema","validateWithSchema","validationSchema","validationResolver","abortEarly","isPrimitive","getPath","getInnerPath","pathWithIndex","assignWatchFields","fieldValues","watchFields","isSingleField","parentPath","getPath$1","skipValidation","isOnChange","isBlurEvent","isOnSubmit","isReValidateOnSubmit","isOnBlur","isReValidateOnBlur","isSubmitted","getFieldArrayParentName","getFieldValueByName","getIsFieldsDifferent","referenceArray","differenceArray","isMatch","dataA","dataB","isMatchFieldArrayName","searchName","isNameInFieldArray","isSelectInput","modeChecker","isRadioOrCheckboxFunction","reValidateMode","validationContext","defaultValues","submitFocusError","validateCriteriaMode","errorsRef","touchedFieldsRef","fieldArrayDefaultValues","watchFieldsRef","Set","dirtyFieldsRef","fieldsWithValidationRef","validFieldsRef","isValidRef","defaultValuesRef","defaultValuesAtRenderRef","isUnMount","isWatchAllRef","isSubmittedRef","isDirtyRef","submitCountRef","isSubmittingRef","handleChangeRef","resetFieldArrayFunctionRef","validationContextRef","fieldArrayNamesRef","isWindowUndefined","shouldValidateSchemaOrResolver","isWeb","isProxyEnabled","readFormStateRef","dirty","dirtyFields","submitCount","touched","isSubmitting","reRender","shouldRenderBaseOnError","shouldReRender","validFields","fieldsWithValidation","isFieldValid","isFormValid","currentFieldError","existFieldError","isManual","shouldRenderBasedOnError","previousError","rawValue","radioRef","selectRef","checkboxRef","setDirty","isFieldDirty","isFieldArray","previousDirtyFieldsLength","fieldArrayName","isDirtyChanged","setInternalValues","parentFieldName","isValueArray","setInternalValue","executeValidation","skipReRender","executeSchemaOrResolverValidation","previousFormIsValid","isFieldWatched","currentError","shouldSkipValidation","shouldUpdateDirty","validateSchemaOrResolver","removeFieldEventListener","forceDelete","mutationWatcher","findRemovedFieldAndRemoveListener","removeFieldEventListenerAndRef","setInternalError","registerFieldsRef","validateOptions","fieldRefAndValidationOptions","isEmptyDefaultValue","onDetachCallback","MutationObserver","childList","onDomRemove","attachEventListeners","persist","fieldError","formState","valueOrShouldValidate","shouldValidate","isArrayValue","isStringFieldName","refOrValidationOptions","validationOptions","outputValues","validateSchemaIsValid","watch","fieldNames","isDefaultValueUndefined","combinedDefaultValues","omitResetState","closest","resetFieldArray","resetRefs","FormGlobalContext","createContext","useContext","restMethods","rules","InnerComponent","onChangeName","onBlurName","valueName","setInputStateValue","valueRef","isCheckboxInput","shouldReValidateOnBlur","rulesRef","onFocusRef","isNotFieldArray","commonTask","getInputValue","registerField","cloneElement","for","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ReactReduxContext","batch","getBatch","nullListeners","notify","createSubscription","parentSub","unsubscribe","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","isSubscribed","createListenerCollection","notifyNestedSubs","tryUnsubscribe","getListeners","contextValue","useMemo","previousState","Context","_excluded2","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","forceComponentUpdateDispatch","lastThrownError","checkForUpdates","newChildProps","latestStoreState","initStateUpdates","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$forwardRef","withRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","didStoreComeFromProps","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","previousStateUpdateResult","renderedWrappedComponent","Connect","forwarded","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","actionCreators","boundActionCreators","_loop","actionCreator","bindActionCreators","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","nextStateProps","statePropsChanged","propsChanged","stateChanged","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","createStoreHook","useReduxContext","createDispatchHook","refEquality","createSelectorHook","equalityFn","_useReduxContext","selectedState","contextSub","forceRender","latestSubscriptionCallbackError","latestSelector","latestSelectedState","storeState","newSelectedState","newStoreState","_newSelectedState","useSelectorWithStoreAndSubscription","useDebugValue","newBatch","NextArrow","PrevArrow","_classnames","_innerSliderUtils","_createClass","hasNativeReflectConstruct","_React$PureComponent","clickHandler","prevClasses","prevHandler","currentSlide","slideCount","prevArrowProps","customProps","prevArrow","PureComponent","_React$PureComponent2","_super2","nextClasses","nextHandler","canGoNext","nextArrowProps","nextArrow","accessibility","adaptiveHeight","afterChange","appendDots","dots","autoplay","autoplaySpeed","cssEase","customPaging","dotsClass","easing","edgeFriction","fade","focusOnSelect","initialSlide","lazyLoad","onEdge","onInit","onLazyLoadError","onReInit","pauseOnDotsHover","pauseOnFocus","pauseOnHover","responsive","rtl","slide","slidesPerRow","slidesToScroll","swipeEvent","swipeToSlide","touchMove","touchThreshold","useCSS","useTransform","variableWidth","vertical","waitForAnimate","Dots","spec","onMouseOver","dotCount","mouseEvents","_rightBound","rightBound","clamp","_leftBound","leftBound","dotOptions","animating","autoplaying","currentDirection","currentLeft","dragging","edgeDragged","lazyLoadedList","listHeight","listWidth","slideHeight","slideWidth","swipeLeft","swiped","swiping","touchObject","startX","startY","curX","curY","trackStyle","trackWidth","targetSlide","InnerSlider","_initialState","_lodash","_track","_dots","_arrows","_resizeObserverPolyfill","_React$Component","slidesToLoad","getOnDemandLazySlides","onLazyLoad","listRef","trackRef","updateState","adaptHeight","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","querySelectorAll","onfocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","autoplayTimer","checkImagesLoad","setTrackStyle","didPropsChange","Children","changeSlide","pause","debouncedResize","resizeWindow","updatedState","initializedState","slideIndex","targetLeft","getTrackLeft","getTrackCSS","_trackWidth","_trackLeft","childrenWidths","preClones","getPreClones","postClones","getPostClones","_i2","_trackStyle","currentWidth","childrenCount","trackLeft","imagesCount","loadedCount","onclick","prevClickHandler","_index","dontAnimate","asNavFor","_slideHandler","slideHandler","asNavForIndex","innerSlider","firstBatch","nodes","clickable","dir","keyHandler","ontouchmove","returnValue","verticalSwiping","disableBodyScroll","swipeStart","swipeMove","swipeEnd","triggerSlideHandler","enableBodyScroll","nextIndex","playType","play","pauseType","trackProps","extractObject","onTrackOver","onTrackLeave","selectHandler","dotProps","onDotsLeave","onDotsOver","arrowProps","verticalHeightStyle","centerPaddingStyle","listStyle","listProps","onMouseUp","onTouchEnd","touchEnd","onTouchCancel","innerSliderProps","unslick","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","_innerSlider","_json2mq","_defaultProps","enquire","slickPrev","slickNext","_responsiveMediaHandlers","breakpt","bQuery","minWidth","media","newProps","resp","newChildren","newSlide","innerSliderRefHandler","getSlideClasses","slickActive","slickCenter","slickCloned","centerOffset","getKey","fallbackKey","renderSlides","slides","preCloneSlides","postCloneSlides","lazyStartIndex","endIndex","lazyEndIndex","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","handleRef","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getTrackAnimateCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","getSwipeDirection","lazySlidesOnRight","lazySlidesOnLeft","getRequiredLazySlides","lowerBound","upperBound","onDemandSlides","requiredSlides","xDist","yDist","swipeAngle","canGo","newObject","listNode","trackNode","centerPaddingAdj","finalSlide","animationLeft","finalLeft","animationSlide","indexOffset","previousInt","slideOffset","previousTargetSlide","touches","pageX","pageY","curLeft","swipeLength","verticalSwipeLength","positionOffset","swipeDirection","touchSwipeLength","onSwipe","minSwipe","activeSlide","indexes","navigables","prevNavigable","swipedSlide","slickList","offsetLeft","currentIndex","dataset","keysArray","trackHeight","trackChildren","WebkitTransition","WebkitTransform","msTransform","slidesToOffset","targetSlideIndex","trackElem","sliceIterator","_toConsumableArray","_objectAssign","_objectAssign2","truthy","classNameDecorator","propIsEnumerable","ownEnumerableKeys","ToObject","replaceClassName","origClass","classToRemove","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","nextCallback","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","nodeRef","performEnter","performExit","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEnter","onEntering","onTransitionEnd","onExit","onExiting","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","TransitionGroupContext","only","removeClass","baseVal","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","MapShim","getIndex","class_1","__entries__","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","timeoutCallback","timeStamp","throttle","addObserver","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","characterData","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","getHTMLElementContentRect","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","clearActive","observation","_parentOrParents","subscriptions","subscriptionIndex","destinationOrNext","destination","subscriber","isStopped","observerOrNext","_parentSubscriber","sink","syncErrorThrowable","promiseCtor","subject","subscriberIndex","_position","nextNonEmptySectionIndex","_position2","prevNonEmptySectionIndex","arrA","arrB","_styledComponents","Normalize","extendStatics","__extends","__","__assign","__values","__read","ar","__spread","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","SUFFIX_BROWSER","enumerize","enums","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","cpu","tablet","EDGE","UAParser","_navigator","_ua","_uach","userAgentData","_rgxmap","mergedRegexes","_isSelfNav","_browser","brave","isBrave","_cpu","_device","standalone","_engine","_os","setUA","CPU","DEVICE","ENGINE","OS","jQuery","Zepto","hasOwn","appendClass","parseValue","newClass","__awaiter","_arguments","P","generator","fulfilled","getDefaultExportFromCjs","SuppressedError","isEqual","equal","DEFAULT_ID","LoaderStatus","authReferrerPolicy","channel","mapIds","nonce","region","retries","callbacks","FAILURE","SUCCESS","LOADING","INITIALIZED","failed","createUrl","deleteScript","loadPromise","loadCallback","importLibrary","execute","setScript","libraryPromises","library","ErrorEvent","loadErrorCallback","onerrorEvent","resetIfRetryingFailed","cb","kindOf","thing","kindOfTest","typeOfTest","isArrayBuffer","toStringTag","isDate","isFile","isBlob","isFileList","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","allOwnKeys","findKey","_global","isContextDefined","isTypedArray","TypedArray","isHTMLForm","isRegExp","reduceDescriptors","descriptors","reducedDescriptors","ret","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","_setImmediate","setImmediateSupported","setImmediate","postMessageSupported","postMessage","asap","queueMicrotask","nextTick","isBuffer","isFormData","kind","isStream","pipe","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","forEachEntry","matchAll","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","AxiosError","captureStackTrace","utils","fileName","lineNumber","columnNumber","axiosError","cause","isVisitable","removeBrackets","renderKey","predicates","metaTokens","visitor","defaultVisitor","useBlob","convertValue","Buffer","isFlatArray","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","use","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","protocols","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","buildPath","isNumericKey","parsePropPath","defaults","transitional","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","parsed","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","formatHeader","targets","asStrings","computed","accessor","accessors","defineAccessor","accessorName","arg1","arg2","arg3","buildAccessors","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","ERR_BAD_REQUEST","samplesCount","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","freq","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","total","lengthComputable","progressBytes","estimated","progressEventDecorator","throttled","asyncDecorator","msie","urlParsingNode","originURL","resolveURL","hash","requestURL","write","expires","secure","cookie","toGMTString","read","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","paramsSerializer","timeoutMessage","withXSRFToken","onUploadProgress","onDownloadProgress","decompress","beforeRedirect","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding","configValue","newConfig","auth","btoa","password","isURLSameOrigin","xsrfValue","cookies","_config","resolveConfig","requestData","requestHeaders","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","ECONNABORTED","ERR_NETWORK","timeoutErrorMessage","ETIMEDOUT","upload","parseProtocol","signals","AbortController","streamChunk","chunk","chunkSize","pos","readStream","stream","asyncIterator","getReader","trackStream","onProgress","onFinish","iterable","readBytes","_onFinish","ReadableStream","pull","loadedBytes","enqueue","return","highWaterMark","isFetchSupported","isReadableStreamSupported","encodeText","TextEncoder","supportsRequestStream","duplexAccessed","hasContentType","duplex","supportsResponseStream","resolvers","ERR_NOT_SUPPORT","resolveBodyLength","getContentLength","_request","getBodyLength","knownAdapters","http","fetchOptions","composedSignal","toAbortSignal","requestContentLength","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","validators","deprecatedWarnings","validator","formatMessage","opt","opts","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","instanceConfig","interceptors","configOrUrl","dummy","boolean","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","resolvePromise","_listeners","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","createInstance","defaultConfig","toFormData","Cancel","promises","spread","isAxiosError","formToJSON","getAdapter","getPossibleCountriesForNumber","possibleCountries","couldNationalNumberBelongToCountry","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","extension","ext","v2","addExtension","formatRFC3966","fromCountry","fromCountryCallingCode","getCountryCallingCode","iddPrefix","countryMetadata","defaultIDDPrefix","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","lastLeadingDigitsPattern","matchesEntirely","chooseFormatForNumber","countryOrCountryCallingCode","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","isPossibleNumber","hasTypes","getNumberType","nationalNumberPattern","isValidNumber","isNonGeographicCallingCode","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","checkNumberLengthForType","type_info","possible_lengths","mobile_type","mergeArrays","actual_length","minimum_length","isNumberWithIddPrefix","shorterNumber","countryCallingCodeSource","hasCallingCode","possibleShorterNumber","possibleShorterNationalNumber","extractNationalNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","nationalPrefixTransformRule","possiblePositionOfTheFirstCapturedGroup","USE_NON_GEOGRAPHIC_COUNTRY_CODE","nationalPhoneNumber","NON_FIXED_LINE_PHONE_TYPES","isNumberTypeEqualTo","objectConstructor","regular_expression","DIGITS","parseDigit","character","CAPTURING_DIGIT_PATTERN","IDDPrefixPattern","matchedGroups","isPossiblePhoneNumber","pa","pb","na","nb","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","validateMetadata","setVersion","v3","nonGeographic","nonGeographical","getCountryMetadata","countryCallingCodes","NumberingPlan","getNumberingPlanMetadata","getCountryCodeForCallingCode","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_getNationalPrefixIsOptionalWhenFormatting","getType","Type","_format","FIRST_GROUP_ONLY_PREFIX_PATTERN","isSupportedCountry","v4","arg_1","arg_2","arg_3","arg_4","getExtensionDigitsPattern","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","ALPHANUM_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","throwOnError","isViablePhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","__countryCallingCodeSource","extended","possible","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","amdO","getter","definition","hmd"],"sourceRoot":""}