{"version":3,"sources":["assets/images/login/SimulatorImage-min.jpg","pages/Login/components/simulator/quota/components/header.tsx","hooks/useFadeInFromAvobe.tsx","pages/Login/components/simulator/quota/components/buttonQuota.tsx","components/box/index.tsx","constants/destinoPrestamo/index.ts","components/destination/index.tsx","pages/Login/components/simulator/quota/components/terms/mobile/summary/index.tsx","pages/Login/components/simulator/quota/components/credit-detail/detail-header/index.tsx","components/tooltip/index.tsx","pages/Login/components/simulator/quota/components/credit-detail/detail-item/index.tsx","pages/Login/components/simulator/quota/components/credit-detail/features/index.tsx","pages/Login/components/simulator/quota/components/credit-detail/condition/index.tsx","pages/Login/components/simulator/quota/components/credit-detail/index.tsx","constants/credit/index.ts","utils/quotaFormula.ts","pages/Login/components/simulator/quota/components/term-input/index.tsx","pages/Login/components/simulator/quota/components/terms/mobile/details-accordion/index.tsx","pages/Login/components/simulator/quota/components/terms/mobile/index.tsx","pages/Login/components/simulator/quota/components/terms/desktop/index.tsx","pages/Login/components/simulator/quota/components/terms/index.tsx","pages/Login/components/simulator/quota/index.tsx","pages/Login/components/simulator/amountDestination/components/button.tsx","pages/Login/components/simulator/amountDestination/components/header.tsx","pages/Login/components/simulator/amountDestination/components/inputAmount.tsx","pages/Login/components/simulator/amountDestination/index.tsx","pages/Login/components/simulator/index.tsx"],"names":["module","exports","Header","props","useSpring","delay","from","y","opacity","config","duration","loop","div","style","className","align","variant","color","weight_color","useFadeInFromAvobe","ButtonQuota","dispatch","useDispatch","class","href","onClick","fetchLog","Box","mobile","title","subtitle","icon","selected","handleOnClick","isMobile","alignText","alignContent","borderBox","square","id","getWidth","getHeight","classes","makeStyles","_","createStyles","root","width","border","paper","textAlign","height","boxSizing","borderRadius","padding","display","flexDirection","justifyContent","pointer","cursor","data-testid","Grid","Paper","container","direction","item","alignItems","weight","destinations","code","Destination","useState","options","setOptions","icons","AttachMoney","HomeWorkOutlined","DirectionsCarOutlined","BusinessCenterOutlined","AirplanemodeActiveOutlined","BeenhereOutlined","handleSelected","useCallback","finded","filter","option","map","setDestinationState","spacing","index","key","MuiAccordionSummary","withStyles","borderRightWidth","borderLeftWidth","margin","marginTop","expanded","minHeight","content","expandIcon","marginRight","paddingTop","AccordionSummary","Summary","open","term","ExpandMore","aria-controls","DetailHeader","headerText","CustomTooltip","tooltipText","useSelector","state","app","React","openTooltip","setOpenTooltip","handleTooltipClick","ClickAwayListener","onClickAway","Tooltip","PopperProps","disablePortal","onClose","disableFocusListener","disableHoverListener","disableTouchListener","arrow","DetailItem","mainText","secontaryText","weightColor","weightColorSecondary","xs","Features","Condition","CreditDetail","quotaText","capital","interes","seguro","total","credit","rate","terms","paymentPeriod","quotaSingleFormula","efectiveRate","quota","Math","pow","queotaWithInsurance","totalInterest","calcTotalInterest","insurance","totalAPagar","parseFloat","toFixed","numberFormater","Intl","NumberFormat","minimumFractionDigits","toLocaleString","format","Number","balance","quotasRate","i","quotaRate","push","reduce","a","b","TermInput","amount","inputError","setinputError","termValue","setTermValue","setTerm","calcQuota","setCalcQouta","useEffect","debouncer","setTimeout","parseInt","replaceAll","termHandler","DEBOUNCE_TIMER","clearTimeout","setTermState","setInitialQuota","type","value","onChange","event","currentValue","target","isSpaceBar","charCodeAt","length","isNaN","val","MuiAccordionDetails","paddingBottom","AccordionDetails","DetailsAccordion","isCalculated","MobileTerms","doubt","propsArray","Accordion","DesktopTerms","setOpen","currentTerm","idx","isOpen","Terms","quotas","Quota","Button","confirmButtonConfig","disabled","action","background","input$","Subject","InputAmount","amountValue","setAmountValue","subscription","pipe","trim","toString","replace","tap","debounceTime","subscribe","setAmount","unsubscribe","placeholder","autoComplete","next","Amount","data","quotaFormula","amountRaw","amountConverted","calculateAmount","setQuotas","DrawSimulator","toggle","QuotaMemo","useMemo","onRest","md","Simulator","src","simulatorImage","alt","Container","maxWidth"],"mappings":"gKAAAA,EAAOC,QAAU,IAA0B,gD,8GCG9BC,EAAmB,WAC5B,IAAMC,EAAQC,oBAAU,CACpBC,MAAO,IACPC,KAAM,CAAEC,GAAI,GAAIC,QAAS,GACzBC,OAAQ,CAAEC,SAAU,KACpBC,KAAM,CACFJ,EAAG,EACHC,QAAS,KAIjB,OACI,kBAAC,WAASI,IAAV,CAAcC,MAAOV,GACjB,yBAAKW,UAAU,YACX,0CAAsBC,MAAM,OAAOC,QAAQ,KAAKC,MAAM,YAAYC,aAAa,OAA/E,uCCHDC,EAZY,SAACd,GAC1B,OAAOD,oBAAU,CACfC,MAAOA,EACPC,KAAM,CAAEC,GAAI,GAAIC,QAAS,GACzBC,OAAQ,CAAEC,SAAU,KACpBC,KAAM,CACJJ,EAAG,EACHC,QAAS,MCHFY,EAAwB,WAEnC,IAAMjB,EAAQgB,EAAmB,KAC3BE,EAAWC,cAKjB,OACE,kBAAC,WAASV,IAAV,CAAcC,MAAOV,GACnB,yBAAKW,UAAU,sBACb,sCAAkBS,MAAM,kBAAkBN,MAAM,UAAUO,KAAK,cAAcC,QAP7D,WACpBJ,EAASK,iBAML,gB,2CCCKC,EAAuB,SAAC,GAY9B,IAccC,EAzBnBC,EAWI,EAXJA,MACAC,EAUI,EAVJA,SACAC,EASI,EATJA,KACAC,EAQI,EARJA,SACAC,EAOI,EAPJA,cAOI,IANJC,gBAMI,aALJC,iBAKI,MALQ,SAKR,MAJJC,oBAII,MAJW,SAIX,MAHJC,iBAGI,aAFJC,cAEI,aADJC,UACI,MADC,GACD,EACEC,EAAW,SAACZ,GAChB,OAAKA,EAGEU,EAAS,oBAAsB,OAF7B,SAILG,EAAY,SAACb,GACjB,OAAKA,EAGEU,EAAS,oBAAsB,OAF7B,QA6BLI,GAxBad,EAwBOM,EAvBxBS,aAAW,SAACC,GAAD,OACTC,YAAa,CACXC,KAAM,CACJC,MAAOP,EAASZ,GAChBoB,OAAQ,OAEVC,MAAO,CACLC,UAAW,SACXC,OAAQV,EAAUb,GAClBmB,MAAOP,EAASZ,GAChBoB,OAAQ,oBACRI,UAAWf,EAAY,aAAe,cACtCgB,aAAc,MACdC,QAAS,MACTC,QAAS,OACTC,cAAe,SACfC,eAAgB,UAElBC,QAAS,CACPC,OAAQ,mBAKhB,OACE,6BACE,yBACElC,QAASQ,EACTnB,UAAS,UAAK4B,EAAQgB,SACtBnB,GAAIA,EACJqB,cAAY,mBAEZ,kBAACC,EAAA,EAAD,CAAM/C,UAAS,UAAK4B,EAAQI,OAC1B,kBAACgB,EAAA,EAAD,CAAOhD,UAAS,UAAK4B,EAAQO,MAAb,YAAsBjB,GAAY,aAChD,kBAAC6B,EAAA,EAAD,CAAME,WAAS,EAACC,UAAU,SAAS5B,aAAcA,GAC9CL,GACC,kBAAC8B,EAAA,EAAD,CACEI,MAAI,EACJF,WAAS,EACT3B,aAAa,SACbqB,eAAe,SACfS,WAAW,UAEVnC,GAGL,kBAAC8B,EAAA,EAAD,CAAMI,MAAI,GACR,0CACElD,MAAOoB,EACPnB,QAAQ,WACRmD,OAAO,OACPjD,aAAa,MACbK,MAAM,WAELM,IAGJC,GACC,kBAAC+B,EAAA,EAAD,CAAMI,MAAI,GACR,0CACElD,MAAOoB,EACPnB,QAAQ,WACRE,aAAa,MACbK,MAAM,WAELO,UC9GRsC,EAAe,CACxB,CACE7B,GAAI,EACJ8B,KAAM,YACNxC,MAAO,eACPC,SAAU,GACVC,KAAM,cACNC,UAAU,GAEZ,CACEO,GAAI,EACJ8B,KAAM,mBACNxC,MAAO,mBACPC,SAAU,GACVC,KAAM,WACNC,UAAU,GAEZ,CACEO,GAAI,EACJ8B,KAAM,kBACNxC,MAAO,kBACPC,SAAU,GACVC,KAAM,gBACNC,UAAU,GAEZ,CACEO,GAAI,EACJ8B,KAAM,wBACNxC,MAAO,0BACPC,SAAU,GACVC,KAAM,qBACNC,UAAU,GAEZ,CACEO,GAAI,EACJ8B,KAAM,sBACNxC,MAAO,mBACPC,SAAU,GACVC,KAAM,eACNC,UAAU,GAEZ,CACEO,GAAI,EACJ8B,KAAM,iBACNxC,MAAO,cACPC,SAAU,GACVC,KAAM,WACNC,UAAU,I,sDC/BHsC,EAA6C,SAAC,GAAgB,IAAfpC,EAAc,EAAdA,SAAc,EAC1CqC,mBAASH,GADiC,mBACjEI,EADiE,KACxDC,EADwD,KAElEpD,EAAWC,cAEXoD,EAAQ,CACZ,kBAACC,EAAA,EAAD,MACA,kBAACC,EAAA,EAAD,MACA,kBAACC,EAAA,EAAD,MACA,kBAACC,EAAA,EAAD,MACA,kBAACC,EAAA,EAAD,MACA,kBAACC,EAAA,EAAD,OAGIC,EAAiBC,uBACrB,SAACjB,GAAD,OAAU,WACRO,EAAQP,EAAK1B,IAAIP,UAAYiC,EAAKjC,SAClCyC,EAAW,YAAID,IACf,IAAMW,EAASX,EAAQY,QAAO,SAACC,GAAD,OAAYA,EAAOrD,YAAUsD,KAAI,SAACD,GAAD,OAAYA,EAAOhB,QAClFhD,EAASkE,YAAoBJ,OAE/B,CAACX,EAASC,EAAYpD,IAGxB,OACE,yBAAKP,UAAU,YACb,0CACEE,QAAQ,WACRC,MAAM,WACNC,aAAa,OAHf,gDAOA,kBAAC2C,EAAA,EAAD,CACEE,WAAS,EACTC,UAAU,MACVP,eAAe,aACf+B,QAAS,EACT1E,UAAU,WAET0D,EAAQc,KAAI,SAACrB,EAAWwB,GAAZ,OACX,kBAAC5B,EAAA,EAAD,CAAMI,MAAI,EAACyB,IAAKzB,EAAK1B,IACnB,kBAAC,EAAD,CACED,OAAQJ,EACRL,MAAOoC,EAAKpC,MACZK,SAAUA,EACVJ,SAAUmC,EAAKnC,SACfC,KAAM2C,EAAMe,GACZzD,SAAUiC,EAAKjC,SACfC,cAAegD,EAAe,eAAKhB,a,2BC1D3C0B,EAAsBC,YAAW,CACrC9C,KAAM,CACJ+C,iBAAkB,EAClBC,gBAAiB,EACjBC,OAAQ,EACRC,UAAW,QAEbC,SAAU,CACRC,UAAW,mBAEbC,QAAS,CACPJ,OAAQ,EACR,aAAc,CACZA,OAAQ,IACRzC,QAAS,MAGb8C,WAAY,CACVC,YAAa,EACbC,WAAY,IAnBYV,CAqBzBW,KAEUC,EAAgE,SAAC,GAIvE,IAHLC,EAGI,EAHJA,KACAhB,EAEI,EAFJA,MACAiB,EACI,EADJA,KAEA,OACE,kBAACf,EAAD,CACES,WACE,kBAACO,EAAA,EAAD,CACE7F,UAAW2F,IAAShB,EAAQ,aAAe,cAG/CmB,gBAAc,kBACdhD,cAAA,gBAAsB8C,EAAKA,MAC3BnE,GAAE,gBAAWmE,EAAKA,OAElB,kBAAC7C,EAAA,EAAD,CAAME,WAAS,GACb,kBAACF,EAAA,EAAD,CAAMI,MAAI,EAACnD,UAAU,YACnB,0CAAsBG,MAAM,QAAQD,QAAQ,aACzC0F,EAAK7E,OAER,0CACEZ,MAAM,QACND,QAAQ,YACRO,MAAM,WAELmF,EAAK5E,c,kBCjDL+E,EAAsC,SAAC,GAAoB,IAAlBC,EAAiB,EAAjBA,WACpD,OACE,yBAAKhG,UAAU,qBACb,0CAAsBqD,OAAO,OAAOnD,QAAQ,WAAWC,MAAM,WAAWC,aAAa,OAClF4F,K,oCCGIC,G,OAAwC,SAAC,GAAqB,IAAnBC,EAAkB,EAAlBA,YAC9C9E,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SADgE,EAElCkF,IAAM7C,UAAS,GAFmB,mBAEjE8C,EAFiE,KAEpDC,EAFoD,KAGlEC,EAAqB,WACzBD,GAAgBD,IAwClB,OACE,oCArCKL,EAIH,oCACG9E,EACC,kBAACsF,EAAA,EAAD,CACEC,YAAa,WACXH,GAAe,KAGjB,kBAACI,EAAA,EAAD,CACEC,YAAa,CAAEC,eAAe,GAC9B9G,UAAU,UACVe,MAAOmF,EACPa,QAASN,EACTd,KAAMY,EACNS,sBAAoB,EACpBC,sBAAoB,EACpBC,sBAAoB,GAEpB,kBAAC,IAAD,CACEvG,QAAS8F,EACTzG,UAAW,8BAKjB,kBAAC4G,EAAA,EAAD,CAAS5G,UAAU,UAAUe,MAAOmF,EAAaiB,OAAK,GACpD,kBAAC,IAAD,CAAMnH,UAAU,+BA5Bf,yBAAKA,UAAU,qBCRfoH,EAAkC,SAAC,GAAgI,IAA9HC,EAA6H,EAA7HA,SAAUC,EAAmH,EAAnHA,cAAepB,EAAoG,EAApGA,YAAoG,IAAvFhG,eAAuF,MAA7E,WAA6E,MAAjEqH,mBAAiE,MAAnD,MAAmD,MAA5CC,4BAA4C,MAArB,MAAqB,MAAd/F,UAAc,MAAT,GAAS,EAC7K,OACE,kBAACsB,EAAA,EAAD,CAAME,WAAS,EAACN,eAAe,gBAAgBS,WAAW,WAAWpD,UAAU,WAC7E,kBAAC+C,EAAA,EAAD,CAAMI,MAAI,EAACsE,GAAI,GACb,0CAAsBvH,QAASA,EAASC,MAAM,WAAWC,aAAcmH,GACpEF,IAGL,kBAACtE,EAAA,EAAD,CAAMI,MAAI,EAACsE,GAAI,GACb,kBAAC1E,EAAA,EAAD,CAAME,WAAS,EAACN,eAAe,YAC7B,0CAAsBlB,GAAIA,EAAIvB,QAASA,EAASC,MAAM,WAAWM,MAAM,aAAaL,aAAcoH,GAC/FF,GAEH,kBAAC,EAAD,CAAepB,YAAaA,QCtBzBwB,EAAe,WAE3B,OACC,kBAAC3E,EAAA,EAAD,CAAME,WAAS,GACd,kBAAC,EAAD,CAAc+C,WAAW,uBACzB,kBAAC,EAAD,CACCqB,SAAS,yBACTnB,YAAY,sHACZhG,QAAQ,WACRsH,qBAAqB,MACrBF,cAAc,WAEf,wBAAItH,UAAU,cACd,kBAAC,EAAD,CACCqH,SAAS,6BACTnB,YAAY,sLACZhG,QAAQ,WACRsH,qBAAqB,MACrBF,cAAc,eCrBLK,EAAsB,WACjC,OACE,yBAAK3H,UAAU,YACb,0CACEE,QAAQ,WACRC,MAAM,WACNC,aAAa,OAHf,qFAOE,6BACA,6BARF,2HCGOwH,EAAwC,SAAC,GAAc,IAAZhC,EAAW,EAAXA,KAChDvG,EAAQgB,EAAmB,GAEjC,OACE,yBAAKL,UAAU,YACZ4F,EAAKiC,WACJ,kBAAC,WAAS/H,IAAV,CAAcC,MAAOV,GACnB,kBAAC,EAAD,CAAc2G,WAAY,+BAC1B,kBAAC,EAAD,CACEuB,YAAY,MACZC,qBAAqB,MACrBtH,QAAQ,WACRmH,SAAS,SACTnB,YAAY,oEACZoB,cAAa,YAAO1B,EAAKiC,UAAZ,KACbpG,GAAG,gBAEL,wBAAIzB,UAAU,cACd,kBAAC,EAAD,CACEqH,SAAS,WACTnH,QAAQ,WACRoH,cAAa,YAAO1B,EAAKkC,QAAZ,KACbrG,GAAG,kBAEL,kBAAC,EAAD,CACE4F,SAAS,oBACTnH,QAAQ,WACRoH,cAAa,YAAO1B,EAAKmC,QAAZ,KACbtG,GAAG,mBAEL,kBAAC,EAAD,CACE4F,SAAS,kCACTnB,YAAY,0GACZhG,QAAQ,WACRuB,GAAG,eACH6F,cAAa,YAAO1B,EAAKoC,OAAZ,OAEf,kBAAC,EAAD,CACET,YAAY,MACZC,qBAAqB,MACrBH,SAAS,iBACTnH,QAAQ,WACRuB,GAAG,cACH6F,cAAa,YAAO1B,EAAKqC,MAAZ,OAEf,wBAAIjI,UAAU,cACd,kBAAC,EAAD,MACA,kBAAC,EAAD,SCvDGkI,EAAS,CAClBC,KAAM,KACNC,MAAO,CAAE,GAAI,GAAI,GAAI,GAAI,IACzBC,cAAe,ICUNC,EAAqB,SAACR,EAAiBlC,GAClD,IAAM2C,EAAeL,EAAOC,KAAOD,EAAOG,cAGpCG,EAAQV,GAFIS,EAAeE,KAAKC,IAAI,EAAIH,EAAc3C,IACxC6C,KAAKC,IAAI,EAAIH,EAAc3C,GAAQ,IAEjD+C,EAAsBH,EAAU,OAAS,IAAOV,EAAU,GAAM,IAChEc,EAAgBC,EAAkBjD,EAAMkC,EAASU,GACjDM,EAAYF,GAAiB,MAAQ,KACrCG,EACJjB,EACAkB,WAAWJ,EAAcK,QAAQ,IACjCD,WAAWF,EAAUG,QAAQ,IACzBC,EAAiB,IAAIC,KAAKC,aAAa,QAAS,CACpDC,sBAAuB,IAEzB,MAAO,CACLvB,QAASA,EAAQwB,eAAe,SAChC1D,KAAMA,EACN4C,MAAOU,EAAeK,OAAOC,OAAOb,EAAoBM,QAAQ,KAChEL,cAAeM,EAAeK,OAAOC,OAAOZ,EAAcK,QAAQ,KAClEjB,OAAQkB,EAAeK,OAAOC,OAAOV,EAAUG,QAAQ,KACvDhB,MAAOiB,EAAeK,OAAOC,OAAOT,EAAYE,QAAQ,OAItDJ,EAAoB,SAACjD,EAAckC,EAAiBU,GAGxD,IAFA,IAAIiB,EAAU3B,EACR4B,EAAuB,GACpBC,EAAI,EAAGA,EAAI/D,EAAM+D,IAAK,CAC7B,IAAMC,EAAaH,EAAUvB,EAAOC,KAAQD,EAAOG,cACnDoB,GAAqBjB,EAAQoB,EAC7BF,EAAWG,KAAKD,GAElB,OAAOF,EAAWI,QAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,IAAG,I,QCjC/BC,G,OAAY,WACvB,IAAM1J,EAAWC,cACXnB,EAAQgB,EAAmB,GAEzB6J,EAAW/D,aAAmC,SAACC,GAAD,OAAWA,EAAMoC,SAA/D0B,OAJqB,EAKOzG,oBAAkB,GALzB,mBAKtB0G,EALsB,KAKVC,EALU,OAMK3G,mBAAS,IANd,mBAMtB4G,EANsB,KAMXC,EANW,OAOL7G,mBAAqB,MAPhB,mBAOtBmC,EAPsB,KAOhB2E,EAPgB,OAQK9G,oBAAkB,GARvB,mBAQtB+G,EARsB,KAQXC,EARW,KA0D7B,OA5BAC,qBAAU,WACR,IAYMC,EAAYC,YAAW,YAZT,WAClB,IAAKJ,IAAcH,EACjB,OAAOE,EAAQ,MAEjB,IAAMzC,EAAU+C,SAASX,EAAOY,WAAW,IAAK,IAAI,IAC9CtC,EAAQF,EAAmBR,EAAS+C,SAASR,EAAU,KAC7DE,EAAQ,2BACH/B,GADE,IAELX,UAAWW,EAAMA,MACjBT,QAASS,EAAMI,iBAIjBmC,KACCC,KAEH,OAAO,WACLC,aAAaN,MAEd,CAACN,EAAWH,EAAQM,IAEvBE,qBAAU,WACRnK,EAAS2K,YAAa,GAAD,cAAItF,QAAJ,IAAIA,OAAJ,EAAIA,EAAMA,QAE/BrF,EAAS4K,YAAe,OAACvF,QAAD,IAACA,OAAD,EAACA,EAAM4C,UAC9B,CAAC5C,EAAMrF,IAGR,6BACE,kBAAC,WAAST,IAAV,CAAcC,MAAOV,GACnB,yBAAKW,UAAU,qBACb,0CACEC,MAAM,SACNC,QAAS,YACTmD,OAAO,OACPlD,MAAM,YACNC,aAAa,OALf,4CAUF,kBAAC2C,EAAA,EAAD,CACEE,WAAS,EACTN,eAAe,UAEf,kBAACI,EAAA,EAAD,CACEE,WAAS,EACTN,eAAe,SACf3C,UAAS,mCAA8BmK,GAAc,wBACrD,kBAACpH,EAAA,EAAD,CAAMI,MAAI,EAACsE,GAAI,GACb,2BACEzH,UAAU,aACVoL,KAAK,MACLC,MAAOhB,EACPiB,SA3ES,SAACC,GACtB,IAAMC,EAAeD,EAAME,OAAOJ,MAC5BK,EAAkE,KAArDF,EAAaG,WAAWH,EAAaI,OAAS,GAC7DJ,EAAaI,QAAU,IAAMC,MAAML,KAAkBE,GACvDtB,GAAc,IAEXoB,EAAe,KACdA,EAAe,GAAKA,EAAaI,OAAS,GAE5CxB,GAAc,GACdK,GAAa,IAEbA,GAAa,GAEfH,EAAakB,IAEblB,GAAa,SAACwB,GAAD,OAASA,SA8DhB,kBAAC/I,EAAA,EAAD,CAAMI,MAAI,EAACsE,GAAI,GACb,yBACEzH,UAAS,kCAA6BmK,EAAa,wBAA0B,yBAD/E,YASLA,GACC,yBAAKnK,UAAU,eAAf,gEAID4F,GAAQ,kBAAC,EAAD,CAAcA,KAAMA,QC7G/BmG,EAAsBjH,YAAW,CACrC9C,KAAM,CACJwD,WAAY,EACZwG,cAAe,EACfvJ,QAAS,OACTC,cAAe,WALSoC,CAOzBmH,KAEUC,EAA4C,SAAC,GAAc,IAAZtG,EAAW,EAAXA,KAC1D,OACE,oCACE,kBAACmG,EAAD,KACGnG,EAAKuG,aACJ,kBAAC,EAAD,CAAcvG,KAAMA,IAEpB,kBAAC,EAAD,SCoBKwG,EAnC2B,SAAC,GAIpC,IAHLzL,EAGI,EAHJA,QACAgF,EAEI,EAFJA,KACA0G,EACI,EADJA,MAUMC,EAAa,CAPJjM,EAAmB,KACnBA,EAAmB,KACnBA,EAAmB,KACnBA,EAAmB,KACnBA,EAAmB,MACnBA,EAAmB,OAIlC,OACE,kBAAC0C,EAAA,EAAD,CAAME,WAAS,GACZoJ,EAAM7H,KAAI,SAACoB,EAAMjB,GAAP,OACT,kBAAC5B,EAAA,EAAD,CAAM6B,IAAKD,EAAOxB,MAAI,EAACsE,GAAI,IACzB,kBAAC,WAAS3H,IAAV,CAAcC,MAAOuM,EAAW3H,IAC9B,kBAAC4H,EAAA,EAAD,CACEvM,UAAU,uBACVmF,SAAUQ,IAAShB,EACnB2G,SAAU,kBAAM3K,EAAQgE,EAAOgB,IAAShB,KAExC,kBAAC,EAAD,CAASgB,KAAMA,EAAMhB,MAAOA,EAAOiB,KAAMA,IACzC,kBAAC,EAAD,CAAkBA,KAAMA,YC1BzB4G,EAAmC,SAAC,GAE1C,IADLH,EACI,EADJA,MAGM9L,EAAWC,cAFb,EAGoBiD,mBAAS,GAH7B,mBAGGkC,EAHH,KAGS8G,EAHT,KAIJ/B,qBAAU,WACR,IAAMgC,EAAcL,EAAM1G,IACZ,IAAVA,GAAeA,EAAO0G,EAAMT,SAC9BrL,EAAS4K,YAAe,OAACuB,QAAD,IAACA,OAAD,EAACA,EAAa7E,YACtCtH,EAAS2K,YAAa,GAAD,cAAIwB,QAAJ,IAAIA,OAAJ,EAAIA,EAAa9G,WAEvC,CAACD,EAAM0G,EAAO9L,IAWjB,OACE,oCACE,kBAACwC,EAAA,EAAD,CAAME,WAAS,EAACN,eAAe,aAAa+B,QAAS,GAClD2H,EAAM7H,KAAI,SAACrB,EAAMwJ,GAAP,OACT,kBAAC5J,EAAA,EAAD,CAAMI,MAAI,EAACyB,IAAK+H,GACd,kBAAC,EAAD,CACElL,GAAE,gBAAW0B,EAAKyC,MAClB7E,MAAOoC,EAAKpC,MACZC,SAAUmC,EAAKnC,SACfK,UAAU,OACVC,aAAa,aACbJ,SAAUyE,IAASgH,EACnBxL,cAAe,kBArBEyL,EAqBiBjH,IAASgH,EApBrDF,EAoBuCE,QAnBnCC,GACFH,GAAS,IAHG,IAAaG,WA2Bd,IAAVjH,GACC,kBAAC5C,EAAA,EAAD,CAAME,WAAS,EAACN,eAAe,UAC7B,kBAACI,EAAA,EAAD,CAAMI,MAAI,EAACsE,GAAI,GACZ4E,EAAM1G,GAAMwG,aACX,kBAAC,EAAD,CAAcvG,KAAMyG,EAAM1G,KAE1B,kBAAC,EAAD,UC2CCkH,GAzF8B,SAAC,GAAgB,IAAfzL,EAAc,EAAdA,SACrC0L,EAAW3G,aAAmC,SAACC,GAAD,OAAWA,EAAMoC,SAA/DsE,OACFvM,EAAWC,cACX6L,EAAK,sBACNS,EAAOtI,KAAI,SAACgE,GACb,MAAO,CACLzH,MACE,oCACGK,EACC,yBAAKpB,UAAU,YAAW,gCAAUwI,EAAM5C,KAAhB,UAA1B,kBAA6E,qCAAW4C,EAAMA,MAAjB,KAA7E,KAEA,4BAAQxI,UAAU,oBAAoBwI,EAAM5C,KAA5C,WAIN5E,SACE,oCACGI,EACC,8CACiB,IACf,4BAAQpB,UAAU,YAAlB,KAAgCwI,EAAMP,MAAtC,KAAuD,KAEzD,+CACU,4BAAQjI,UAAU,YAAlB,KAAgCwI,EAAMA,OADhD,IACgE,6BADhE,UAES,4BAAQxI,UAAU,YAAlB,KAAgCwI,EAAMP,OAAgB,MAKrEkE,cAAc,EACdtE,UAAWW,EAAMA,MACjBV,QAASU,EAAMV,QACfC,QAASS,EAAMI,cACfZ,OAAQQ,EAAMR,OACdC,MAAOO,EAAMP,MACbrC,KAAM4C,EAAM5C,UAhCP,CAmCT,CACE7E,MACE,oCACE,4BAAQf,UAAU,oBAAlB,SAGJgB,SACE,oCACE,yBAAKhB,UAAU,YAAf,yBAGJ4F,KAAM,UAjDiD,EAqDnCnC,mBAAS,GArD0B,mBAqDpDkC,EArDoD,KAqD9C8G,EArD8C,KAsD3D/B,qBAAU,WACR,IAAMgC,EAAcI,EAAOnH,IACb,IAAVA,GAAeA,EAAOmH,EAAOlB,SAC/BrL,EAAS4K,YAAe,OAACuB,QAAD,IAACA,OAAD,EAACA,EAAalE,QACtCjI,EAAS2K,YAAa,GAAD,cAAIwB,QAAJ,IAAIA,OAAJ,EAAIA,EAAa9G,WAEvC,CAACD,EAAMmH,EAAQvM,IASlB,OACE,kBAACwC,EAAA,EAAD,CACEE,WAAS,EACTjD,UAAU,UACVkD,UAAU,MACVP,eAAe,iBAEdvB,EACC,kBAAC,EAAD,CACET,QAhBQ,SAAC0K,EAAYuB,GAC3BH,EAAQpB,GACJuB,GACFH,GAAS,IAcL9G,KAAMA,EACN0G,MAAOA,IAGT,kBAAC,EAAD,CAAcA,MAAOA,MCnFhBU,GAAkB,WAAO,IAC1B3L,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SACR,OACI,yBAAKpB,UAAU,4BACX,kBAAC,EAAD,MACA,kBAAC,GAAD,CAAOoB,SAAUA,IACjB,kBAAC,EAAD,CAAaA,SAAUA,IACvB,kBAAC,EAAD,QCRC4L,GAA0B,SAAC,GAA6B,IAA3BC,EAA0B,EAA1BA,oBAStC,OACI,yBAAKjN,UAAU,wBACX,4BACIA,UAAU,mCACVyB,GAAG,iBACHd,QAZiB,WACrBsM,EAAoBC,UAGxBD,EAAoBE,UASZD,SAAUD,EAAoBC,SAC9BnN,MAAO,CAACqN,WAAWH,EAAoBC,SAAS,UAAU,YAEzDD,EAAoB5B,SCrBxBjM,GAAmB,WAAO,IAE3BgC,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SAER,OACI,yBAAKpB,UAAS,UAAMoB,GAAY,YAC5B,0CAAsBnB,MAAM,SAASC,QAAQ,KAAKC,MAAM,OAAOC,aAAa,OAA5E,qC,wCCHNiN,GAAS,I,OAAIC,GAENC,GAAwB,WAAO,IAClCnM,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SACFb,EAAWC,cAFwB,EAGHiD,mBAAS,IAHN,mBAGlC+J,EAHkC,KAGrBC,EAHqB,KAKzC/C,qBAAU,WACR,IAAMgD,EAAeL,GAAOM,KACxBrJ,cAAO,SAAC+G,GAAD,MAA+C,UAA7BA,EAAMuC,QAAQC,cACvCrJ,cAAI,SAAC6G,GAAD,OAAgBA,EAAMyC,QAAQ,IAAK,OACvCtJ,cAAI,SAAC6G,GAAD,OAAgBA,EAAMyC,QAAQ,IAAK,OACvCC,cAAI,SAAC1C,GACHoC,EACY,QAAVpC,GAA6B,KAAVA,EACf,GACAR,SAASQ,EAAM,IAAI/B,eAAe,aAG1C0E,aAAahD,KACbxG,cAAI,SAAC6G,GAAD,MAA2B,MAAVA,GAA2B,QAAVA,EAAkB,GAAKA,KAC7D7G,cAAI,SAAC6G,GAAD,OAAiBR,SAASQ,EAAM,IAAM,IAAM,MAAQA,KACxD7G,cAAI,SAAC6G,GAAD,OAAiBR,SAASQ,EAAM,IAAM,IAAQ,QAAUA,MAE7D4C,WAAU,SAAC5C,GACV9K,EAAS2N,YAAU7C,IACnBoC,EACY,QAAVpC,GAA6B,KAAVA,EACf,GACAR,SAASQ,EAAMyC,QAAQ,IAAK,IAAI,IAAIxE,eAAe,aAG7D,OAAO,kBAAMoE,EAAaS,iBACzB,CAAC5N,IAMJ,OACE,yBAAKP,UAAS,sBAAiBoB,EAAW,UAAY,aACpD,0CACEnB,MAAM,SACNC,QAAQ,WACRC,MAAM,WACNC,aAAa,OAJf,8DAQA,yBAAKJ,UAAU,YACb,2BAAOA,UAAU,cACf,2BAAQD,MAAO,CAACI,MAAMqN,EAAY,UAAU,YAA5C,KACA,2BACE/L,GAAG,eACHzB,UAAU,cACVoL,KAAK,MACLgD,YAAY,SACZC,aAAa,MACbhD,MAAOmC,EACPlC,SAxBiB,SAACC,GAC1B8B,GAAOiB,KAAK/C,EAAME,OAAOJ,cCjChBkD,GAAmB,WAAO,IAE3BrE,EAAW/D,aAAmC,SAACC,GAAD,OAAWA,EAAMoC,SAA/D0B,OACA9I,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SAEFb,EAAWC,cAiBXyM,EAAoC,CACtC9M,MAAO,gBACPkL,MAAO,UACP6B,SAVsC,KAAXhD,GAA4B,QAAXA,IAAqBA,EAWjEiD,OAT0B,WAC1B,IAAMqB,EVxBc,SAACtE,GAC3B,IACMpC,EAAU+C,SAASX,EAAO4D,QADlB,MACiC,IAAI,IACnD,OAAO5F,EAAOE,MAAM5D,KAAI,SAACoB,GACvB,OAAO0C,EAAmBR,EAASlC,MUoBlB6I,CAXO,SAACC,GACrB,IAAMC,EAAkBD,EACxB,MAAwB,MAApBC,EAAgC,GAChC9D,SAAS8D,EAAgBb,QAAQ,IAAK,IAAI,IAAM,EAAU,MAC1DjD,SAAS8D,EAAgBb,QAAQ,IAAK,IAAI,IAAM,IAAc,QAC1Da,EAMkBC,CAAgB1E,IAC1C3J,EAASsO,YAAUL,MAUvB,OACI,yBAAKxO,UAAS,UAAMoB,EAAsC,UAA3B,2BAC3B,kBAAC,GAAD,MACA,kBAAC,GAAD,MACA,kBAAC,GAAD,CAAQ6L,oBAAqBA,M,qBC1BnC6B,GAA8C,SAAC,GAAwB,IAAtBhC,EAAqB,EAArBA,OAAQ5C,EAAa,EAAbA,OAAa,EAElDzG,oBAAS,GAFyC,mBAEnEkC,EAFmE,KAE7D8G,EAF6D,KAGpElM,EAAWC,cACXuO,EAASjC,EAAOlB,OAAS,IAAiB,KAAX1B,GAA4B,QAAXA,GAEhD8E,EAAYC,mBAAQ,kBAAM,kBAAC,GAAD,QAAiB,IAE3C5P,EAAQC,oBAAU,CACtBK,OAAQ,CAAEC,SAAU,KACpBF,QAASqP,EAAS,EAAI,EACtBtP,EAAGsP,EAAS,GAAK,IACjBG,OAAQ,CACNxP,QAAS,WACFqP,IACHtC,GAAQ,GACRlM,EAASsO,YAAU,UAY3B,OANAnE,qBAAU,WACJqE,GACFtC,GAAQ,KAET,CAACsC,IAGF,kBAAChM,EAAA,EAAD,CAAME,WAAS,EAACN,eAAe,UAC7B,kBAACI,EAAA,EAAD,CAAMI,MAAI,EAACgM,GAAI,EAAGnP,UAAU,mBAC1B,kBAAC+C,EAAA,EAAD,CAAME,WAAS,EAACC,UAAU,SAASP,eAAe,UAChD,kBAACI,EAAA,EAAD,CAAMI,MAAI,GACR,kBAAC,GAAD,OAEDwC,GACC,kBAAC5C,EAAA,EAAD,CAAMI,MAAI,GACR,kBAAC,WAASrD,IAAV,CAAcC,MAAOV,GAClB2P,QA2BFI,UAhBa,WAAO,IAAD,EACLjJ,aAAmC,SAACC,GAAD,OAAWA,EAAMoC,SAAvEsE,EADwB,EACxBA,OAAQ5C,EADgB,EAChBA,OACR9I,EAAa+E,aAAiC,SAACC,GAAD,OAAWA,EAAMC,OAA/DjF,SACR,OACE,yBAAKpB,UAAU,oBAAoByB,GAAG,aACpC,yBAAK4N,IAAKC,KAAgBrN,MAAM,OAAOsN,IAAI,KAC1CnO,EAEC,kBAAC,GAAD,CAAe0L,OAAQA,EAAQ5C,OAAQA,IACrC,kBAACsF,EAAA,EAAD,CAAWC,SAAS,MACpB,kBAAC,GAAD,CAAe3C,OAAQA,EAAQ5C,OAAQA","file":"static/js/16.fe6f7760.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/SimulatorImage-min.e2d71f87.jpg\";","import React from 'react'\nimport { useSpring, animated } from 'react-spring'\n\nexport const Header: React.FC = () => {\n const props = useSpring({\n delay: 500,\n from: { y: -50, opacity: 0 },\n config: { duration: 500 },\n loop: {\n y: 0,\n opacity: 1\n },\n })\n\n return (\n \n
\n \n Cuotas de acuerdo a tu necesidad\n \n
\n
\n )\n}\n\n","import { useSpring } from 'react-spring'\n\nconst useFadeInFromAvobe = (delay: number) => {\n return useSpring({\n delay: delay,\n from: { y: -50, opacity: 0 },\n config: { duration: 400 },\n loop: {\n y: 0,\n opacity: 1,\n },\n })\n}\n\nexport default useFadeInFromAvobe\n","import React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { animated } from 'react-spring'\nimport useFadeInFromAvobe from 'hooks/useFadeInFromAvobe'\nimport { fetchLog } from 'context/reducer/quota'\n\nexport const ButtonQuota: React.FC = () => {\n \n const props = useFadeInFromAvobe(500)\n const dispatch = useDispatch()\n const handelOnClick = () => {\n dispatch(fetchLog())\n }\n\n return (\n \n
\n \n Lo quiero\n \n
\n
\n )\n}\n","import { Grid, Paper, Theme } from '@mui/material'\nimport { createStyles, makeStyles } from '@mui/styles'\nimport React, { FC } from 'react'\n\nexport interface OptionModel {\n title: string | JSX.Element\n isMobile?: boolean\n subtitle?: string | JSX.Element\n icon?: JSX.Element\n selected?: boolean\n handleOnClick?: any\n alignText?: string\n alignContent?: string\n borderBox?: boolean\n square?: boolean\n id?: string\n}\n\nexport const Box: FC = ({\n title,\n subtitle,\n icon,\n selected,\n handleOnClick,\n isMobile = false,\n alignText = 'center',\n alignContent = 'center',\n borderBox = true,\n square = false,\n id = '',\n}) => {\n const getWidth = (mobile: boolean) => {\n if (!mobile) {\n return '136px'\n }\n return square ? 'calc(50vw - 32px)' : '90px'\n }\n const getHeight = (mobile: boolean) => {\n if (!mobile) {\n return '92px'\n }\n return square ? 'calc(50vw - 32px)' : '75px'\n }\n\n const useStyles = (mobile: boolean) =>\n makeStyles((_: Theme) =>\n createStyles({\n root: {\n width: getWidth(mobile),\n border: '0px',\n },\n paper: {\n textAlign: 'center',\n height: getHeight(mobile),\n width: getWidth(mobile),\n border: '1px solid #B7B7B9',\n boxSizing: borderBox ? 'border-box' : 'content-box',\n borderRadius: '4px',\n padding: '8px',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n pointer: {\n cursor: 'pointer',\n },\n })\n )\n const classes = useStyles(isMobile)()\n return (\n
\n \n \n \n \n {icon && (\n \n {icon}\n \n )}\n \n \n {title}\n \n \n {subtitle && (\n \n \n {subtitle}\n \n \n )}\n \n \n \n
\n \n )\n}\n","export const destinations = [\n {\n id: 0,\n code: 'PAY_DEBTS',\n title: 'Pagar deudas',\n subtitle: '',\n icon: 'AttachMoney',\n selected: false,\n },\n {\n id: 1,\n code: 'EXPAND_YOUR_HOME',\n title: 'Ampliar tu hogar',\n subtitle: '',\n icon: 'HomeWork',\n selected: false,\n },\n {\n id: 2,\n code: 'REPAIR_YOUR_CAR',\n title: 'Reparar tu auto',\n subtitle: '',\n icon: 'DirectionsCar',\n selected: false,\n },\n {\n id: 3,\n code: 'CAPITAL_YOUR_BUSINESS',\n title: 'Capital para tu negocio',\n subtitle: '',\n icon: 'BusinessCenterIcon',\n selected: false,\n },\n {\n id: 4,\n code: 'TRAVELS_AND_TOURISM',\n title: 'Viajes y turismo',\n subtitle: '',\n icon: 'Airplanemode',\n selected: false,\n },\n {\n id: 5,\n code: 'OTHER_PURPOSES',\n title: 'Otros fines',\n subtitle: '',\n icon: 'Beenhere',\n selected: false,\n }\n ]","import React, { useCallback, useState } from 'react'\nimport Grid from '@mui/material/Grid'\nimport { Box } from '../box'\nimport { destinations } from '../../constants/destinoPrestamo/index'\nimport { useDispatch } from 'react-redux'\nimport { setDestinationState } from 'context/reducer/quota'\n\nimport {\n AttachMoney,\n BusinessCenterOutlined,\n HomeWorkOutlined,\n DirectionsCarOutlined,\n BeenhereOutlined,\n AirplanemodeActiveOutlined,\n} from '@mui/icons-material'\n\nexport const Destination: React.FC<{isMobile: boolean}> = ({isMobile}) => {\n const [options, setOptions] = useState(destinations)\n const dispatch = useDispatch()\n\n const icons = [\n ,\n ,\n ,\n ,\n ,\n ,\n ]\n\n const handleSelected = useCallback(\n (item) => () => {\n options[item.id].selected = !item.selected\n setOptions([...options])\n const finded = options.filter((option) => option.selected).map((option) => option.code)\n dispatch(setDestinationState(finded))\n },\n [options, setOptions, dispatch]\n )\n\n return (\n
\n \n ¿Qué destino tendrá el préstamo?\n \n \n {options.map((item: any, index) => (\n \n \n \n ))}\n \n
\n )\n}\n","import React from 'react'\nimport { ExpandMore } from '@mui/icons-material'\nimport { AccordionSummary, Grid } from '@mui/material'\n\nimport { withStyles } from '@mui/styles';\n\nconst MuiAccordionSummary = withStyles({\n root: {\n borderRightWidth: 0,\n borderLeftWidth: 0,\n margin: 0,\n marginTop: '16px',\n },\n expanded: {\n minHeight: '30px !important',\n },\n content: {\n margin: 0,\n '&$expanded': {\n margin: '0',\n padding: '0',\n },\n },\n expandIcon: {\n marginRight: 0,\n paddingTop: 0,\n },\n})(AccordionSummary)\n\nexport const Summary: React.FC<{ open: number; index: number; term: any }> = ({\n open,\n index,\n term,\n}) => {\n return (\n \n }\n aria-controls=\"panel1a-content\"\n data-testid={`quota-${term.term}`}\n id={`quota-${term.term}`}\n >\n \n \n \n {term.title}\n \n \n {term.subtitle}\n \n \n \n \n )\n}\n","import React, { FC } from \"react\"\n\ninterface DetailHeaderProps {\n headerText: string;\n}\n\nexport const DetailHeader: FC = ( {headerText} ) => {\n return (\n
\n \n {headerText}\n \n
\n )\n}","import React, { FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from 'context'\nimport { AppState } from 'interfaces/app'\nimport Info from '@mui/icons-material/Info'\nimport ClickAwayListener from '@mui/material/ClickAwayListener'\nimport Tooltip from '@mui/material/Tooltip'\nimport './index.css'\n\nexport interface CustomTooltipProps {\n tooltipText?: string\n}\n\nexport const CustomTooltip: FC = ({ tooltipText }) => {\n const { isMobile } = useSelector((state) => state.app)\n const [openTooltip, setOpenTooltip] = React.useState(false)\n const handleTooltipClick = () => {\n setOpenTooltip(!openTooltip)\n }\n\n const getComponent = () => {\n if (!tooltipText) {\n return
\n }\n return (\n <>\n {isMobile ? (\n {\n setOpenTooltip(false)\n }}\n >\n \n \n \n \n ) : (\n \n \n \n )}\n \n )\n }\n\n return (\n <>\n {getComponent()}\n \n )\n}\n","import Grid from \"@mui/material/Grid\"\nimport React, { FC } from \"react\"\nimport { CustomTooltip } from \"../../../../../../../../components/tooltip\"\n\nexport interface DetailItemProps {\n mainText: string\n secontaryText: string\n tooltipText?: string\n variant?: string\n weightColor?: string\n weightColorSecondary?: string\n id?: string;\n}\n\nexport const DetailItem: FC = ({ mainText, secontaryText, tooltipText, variant = 'tinyText', weightColor = '400', weightColorSecondary = '400', id = '' }) => {\n return (\n \n \n \n {mainText}\n \n \n \n \n \n {secontaryText}\n \n \n \n \n \n )\n}\n\n","import React, { FC } from 'react'\nimport { Grid } from '@mui/material'\nimport { DetailHeader } from '../detail-header'\nimport { DetailItem } from '../detail-item'\n\nexport const Features: FC = () => {\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t);\n\n\n}\n","import React from 'react'\n\nexport const Condition: React.FC = () => {\n return (\n
\n \n *Valores referenciales, no son considerados como una oferta formal de\n préstamo.\n
\n
\n La oferta definitiva está sujeta al cumplimiento de las condiciones y\n políticas referentes a capacidad de pago.\n \n
\n )\n}\n","import React from 'react'\nimport { Features } from './features'\nimport { DetailHeader } from './detail-header'\nimport { DetailItem } from './detail-item'\nimport { Condition } from './condition'\nimport { animated } from 'react-spring'\nimport useFadeInFromAvobe from 'hooks/useFadeInFromAvobe'\n\nexport const CreditDetail: React.FC<{ term: any }> = ({ term }) => {\n const props = useFadeInFromAvobe(0)\n\n return (\n
\n {term.quotaText && (\n \n \n \n
\n \n \n \n \n
\n \n \n
\n )}\n
\n )\n}\n","export const credit = {\n rate: 15.60/100,\n terms: [ 12, 24, 36, 48, 60 ],\n paymentPeriod: 12,\n} ","import { credit } from 'constants/credit'\n\n/* Fornula para el calculo de la cuota en base a un plazo, capital inicial y tasa de interes\n A = VP ((i(1 + i)^n) / ((1 + i)^n – 1))\n*/\nexport const quotaFormula = (amount: string) => {\n const regex = /\\./g\n const capital = parseInt(amount.replace(regex, ''),10)\n return credit.terms.map((term) => {\n return quotaSingleFormula(capital, term)\n })\n}\n\nexport const quotaSingleFormula = (capital: number, term: number) => {\n const efectiveRate = credit.rate / credit.paymentPeriod\n const numerator = efectiveRate * Math.pow(1 + efectiveRate, term)\n const denominator = Math.pow(1 + efectiveRate, term) - 1\n const quota = capital * (numerator / denominator)\n const queotaWithInsurance = quota + ((1.1232 / 100) * capital * 30) / 360\n const totalInterest = calcTotalInterest(term, capital, quota)\n const insurance = totalInterest * (10.83 / 100) \n const totalAPagar =\n capital +\n parseFloat(totalInterest.toFixed(2)) +\n parseFloat(insurance.toFixed(2))\n const numberFormater = new Intl.NumberFormat('de-DE', {\n minimumFractionDigits: 2,\n })\n return {\n capital: capital.toLocaleString('de-DE'),\n term: term,\n quota: numberFormater.format(Number(queotaWithInsurance.toFixed(2))),\n totalInterest: numberFormater.format(Number(totalInterest.toFixed(2))),\n seguro: numberFormater.format(Number(insurance.toFixed(2))),\n total: numberFormater.format(Number(totalAPagar.toFixed(2))),\n }\n}\n\nconst calcTotalInterest = (term: number, capital: number, quota: number) => {\n let balance = capital\n const quotasRate: number[] = []\n for (let i = 0; i < term; i++) {\n const quotaRate = (balance * credit.rate) / credit.paymentPeriod\n balance = balance - (quota - quotaRate)\n quotasRate.push(quotaRate)\n }\n return quotasRate.reduce((a, b) => a + b, 0)\n}\n\n","import React, { useEffect, useState } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { animated } from 'react-spring'\nimport { setTermState, setInitialQuota } from 'context/reducer/quota'\nimport { Grid } from '@mui/material'\nimport { RootState } from 'context'\nimport { quotaSingleFormula } from 'utils/quotaFormula'\nimport { QuotaState } from 'interfaces/quota'\nimport { CreditDetail } from '../credit-detail'\nimport { DEBOUNCE_TIMER } from 'constants/index'\nimport './index.css'\nimport useFadeInFromAvobe from 'hooks/useFadeInFromAvobe'\n\nexport const TermInput = () => {\n const dispatch = useDispatch()\n const props = useFadeInFromAvobe(0)\n\n const { amount } = useSelector((state) => state.quota)\n const [inputError, setinputError] = useState(false)\n const [termValue, setTermValue] = useState('')\n const [term, setTerm] = useState(null)\n const [calcQuota, setCalcQouta] = useState(false)\n\n const handleOnChange = (event: any) => {\n const currentValue = event.target.value\n const isSpaceBar = currentValue.charCodeAt(currentValue.length - 1) === 32\n if (currentValue.length <= 2 && !isNaN(currentValue) && !isSpaceBar) {\n setinputError(false)\n if (\n +currentValue > 60 ||\n (+currentValue < 3 && currentValue.length > 0)\n ) {\n setinputError(true)\n setCalcQouta(false)\n } else {\n setCalcQouta(true)\n }\n setTermValue(currentValue)\n } else {\n setTermValue((val) => val)\n }\n }\n\n useEffect(() => {\n const termHandler = () => {\n if (!calcQuota || !termValue) {\n return setTerm(null)\n }\n const capital = parseInt(amount.replaceAll('.', ''),10)\n const quota = quotaSingleFormula(capital, parseInt(termValue,10))\n setTerm({\n ...quota,\n quotaText: quota.quota,\n interes: quota.totalInterest,\n })\n }\n const debouncer = setTimeout(() => {\n termHandler()\n }, DEBOUNCE_TIMER)\n\n return () => {\n clearTimeout(debouncer)\n }\n }, [termValue, amount, calcQuota])\n\n useEffect(() => {\n dispatch(setTermState(`${term?.term}`))\n\n dispatch(setInitialQuota(term?.quota))\n }, [term, dispatch])\n\n return (\n
\n \n
\n \n Escribe entre 3 y 60 meses para simular\n \n
\n \n \n \n \n \n \n \n Meses\n
\n \n\n \n \n {inputError && (\n
\n Valor no permitido, ingresa un número entre 3 y 60 meses.\n
\n )}\n {term && }\n \n \n )\n}\n","import React from 'react'\nimport { AccordionDetails } from '@mui/material';\nimport { withStyles } from '@mui/styles';\nimport { CreditDetail } from '../../../credit-detail';\nimport { TermInput } from '../../../term-input';\n\n\nconst MuiAccordionDetails = withStyles({\n root: {\n paddingTop: 0,\n paddingBottom: 0,\n display: 'flex',\n flexDirection: 'column'\n },\n})(AccordionDetails)\n\nexport const DetailsAccordion: React.FC<{ term: any }> = ({ term }) => {\n return (\n <>\n \n {term.isCalculated ?\n \n :\n \n }\n \n \n )\n}\n","import React, { FC } from 'react'\nimport { animated } from 'react-spring'\nimport { Summary } from './summary'\nimport { Accordion, Grid } from '@mui/material'\nimport { DeviceTermsProps } from 'interfaces/quota'\nimport { DetailsAccordion } from './details-accordion'\nimport useFadeInFromAvobe from 'hooks/useFadeInFromAvobe'\n\nconst MobileTerms: FC = ({\n onClick,\n open,\n doubt,\n}) => {\n\n const props1 = useFadeInFromAvobe(250)\n const props2 = useFadeInFromAvobe(500)\n const props3 = useFadeInFromAvobe(750)\n const props4 = useFadeInFromAvobe(1000)\n const props5 = useFadeInFromAvobe(1250)\n const props6 = useFadeInFromAvobe(1500)\n\n const propsArray = [props1, props2, props3, props4, props5, props6]\n\n return (\n \n {doubt.map((term, index) => (\n \n \n onClick(index, open === index)}\n >\n \n \n \n \n \n ))}\n \n )\n}\n\nexport default MobileTerms\n","import React, { FC, useEffect, useState } from 'react'\nimport { Grid } from '@mui/material'\nimport { Box } from 'components/box'\nimport { CreditDetail } from '../../credit-detail'\nimport { TermInput } from '../../term-input'\nimport { setInitialQuota, setTermState } from 'context/reducer/quota'\nimport { useDispatch } from 'react-redux'\n\nexport const DesktopTerms: FC<{doubt: any[]}> = ({\n doubt\n}) => {\n\n const dispatch = useDispatch()\n const [open, setOpen] = useState(3)\n useEffect(() => {\n const currentTerm = doubt[open]\n if (open !== -1 && open < doubt.length) {\n dispatch(setInitialQuota(currentTerm?.quotaText))\n dispatch(setTermState(`${currentTerm?.term}`))\n }\n }, [open, doubt, dispatch])\n\n const onClick = (value: any, isOpen: boolean) => {\n setOpen(value)\n if (isOpen) {\n setOpen(-1)\n }\n }\n\n\n\n return (\n <>\n \n {doubt.map((item, idx) => (\n \n onClick(idx, open === idx)}\n />\n \n ))}\n \n\n {open !== -1 && (\n \n \n {doubt[open].isCalculated ? (\n \n ) : (\n \n )}\n \n \n )}\n \n )\n}\n","import React, { useState, useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { setInitialQuota, setTermState } from 'context/reducer/quota'\nimport { RootState } from 'context'\nimport { QuotaState } from '../../../../../../../interfaces/quota/index'\nimport MobileTermsProps from './mobile'\nimport { DesktopTerms } from './desktop'\nimport Grid from '@mui/material/Grid'\n\nconst Terms: React.FC<{isMobile: boolean}> = ({isMobile}) => {\n const { quotas } = useSelector((state) => state.quota)\n const dispatch = useDispatch()\n const doubt = [\n ...quotas.map((quota) => {\n return {\n title: (\n <>\n {isMobile ?\n
{quota.term} meses con cuotas de $ {quota.quota}*
\n :\n {quota.term} meses\n }\n \n ),\n subtitle: (\n <>\n {isMobile ?\n
\n Total a pagar:{' '}\n $ {quota.total}*{' '}\n
:\n <>\n Cuotas: $ {quota.quota}
\n Total: $ {quota.total}{' '}\n \n }\n \n ),\n isCalculated: true,\n quotaText: quota.quota,\n capital: quota.capital,\n interes: quota.totalInterest,\n seguro: quota.seguro,\n total: quota.total,\n term: quota.term,\n }\n }),\n {\n title: (\n <>\n Otro\n \n ),\n subtitle: (\n <>\n
Personaliza tu plazo
\n \n ),\n term: 'otro',\n },\n ]\n\n const [open, setOpen] = useState(3)\n useEffect(() => {\n const currentTerm = quotas[open]\n if (open !== -1 && open < quotas.length) {\n dispatch(setInitialQuota(currentTerm?.quota))\n dispatch(setTermState(`${currentTerm?.term}`))\n }\n }, [open, quotas, dispatch])\n\n const onClick = (value: any, isOpen: boolean) => {\n setOpen(value)\n if (isOpen) {\n setOpen(-1)\n }\n }\n\n return (\n \n {isMobile ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default Terms","import React from 'react'\nimport { Header } from './components/header'\nimport { ButtonQuota } from './components/buttonQuota'\nimport { Destination } from '../../../../../components/destination'\nimport Terms from './components/terms'\nimport { useSelector } from 'react-redux'\nimport { AppState } from 'interfaces/app'\nimport { RootState } from 'context'\n\nexport const Quota: React.FC = () => {\n const { isMobile } = useSelector((state) => state.app)\n return (\n
\n
\n \n \n \n
\n )\n}\n","import React from 'react'\nimport { ButtonConfig } from 'interfaces/quota/';\n\n\ninterface Props {\n confirmButtonConfig: ButtonConfig\n}\n\nexport const Button: React.FC = ({ confirmButtonConfig }) => {\n\n const handleOnclickSimular = () => {\n if (confirmButtonConfig.disabled) {\n return\n }\n confirmButtonConfig.action()\n }\n\n return (\n
\n \n {confirmButtonConfig.value}\n \n
\n );\n}\n","import { RootState } from 'context';\nimport { AppState } from 'interfaces/app';\nimport React from 'react'\nimport { useSelector } from 'react-redux';\n\nexport const Header: React.FC = () => {\n\n const { isMobile } = useSelector((state) => state.app)\n\n return (\n
\n \n ¿Cuánto dinero necesitas?\n \n
\n );\n}\n","import { RootState } from 'context'\nimport { setAmount } from 'context/reducer/quota'\nimport React, { useState, useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { AppState } from 'interfaces/app'\nimport { debounceTime, filter, tap, map } from 'rxjs/operators'\nimport { Subject } from 'rxjs'\nimport { DEBOUNCE_TIMER } from 'constants/index'\nconst input$ = new Subject()\n\nexport const InputAmount: React.FC = () => {\n const { isMobile } = useSelector((state) => state.app)\n const dispatch = useDispatch()\n const [amountValue, setAmountValue] = useState('')\n\n useEffect(() => {\n const subscription = input$.pipe(\n filter((value: any) => (+value.trim()).toString() !== 'NaN'),\n map((value: any) => value.replace('.', '')),\n map((value: any) => value.replace(' ', '')),\n tap((value: any) => {\n setAmountValue(\n value === 'NaN' || value === ''\n ? ''\n : parseInt(value,10).toLocaleString('de-DE')\n )\n }),\n debounceTime(DEBOUNCE_TIMER),\n map((value: any) => (value === '0' || value === 'NaN' ? '' : value)),\n map((value: any) => (parseInt(value,10) < 300 ? '300' : value)),\n map((value: any) => (parseInt(value,10) > 40000 ? '40000' : value))\n )\n .subscribe((value) => {\n dispatch(setAmount(value))\n setAmountValue(\n value === 'NaN' || value === ''\n ? ''\n : parseInt(value.replace('.', ''),10).toLocaleString('de-DE')\n )\n })\n return () => subscription.unsubscribe()\n }, [dispatch])\n\n const handleChangeAmount = (event: any) => {\n input$.next(event.target.value)\n }\n\n return (\n
\n \n Escribe un valor entre mínimo $300 y máximo $40.000.\n \n
\n \n
\n\n
\n )\n}\n","import React from 'react'\nimport { Button } from './components/button';\nimport { Header } from './components/header';\nimport { InputAmount } from './components/inputAmount';\nimport { ButtonConfig, QuotaState } from 'interfaces/quota';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { RootState } from 'context';\nimport { quotaFormula } from 'utils/quotaFormula';\nimport { setQuotas } from 'context/reducer/quota';\nimport { AppState } from '../../../../../interfaces/app/index';\n\nexport const Amount: React.FC = () => {\n\n const { amount } = useSelector((state) => state.quota)\n const { isMobile } = useSelector((state) => state.app)\n\n const dispatch = useDispatch()\n\n const calculateAmount = (amountRaw: string) => {\n const amountConverted = amountRaw\n if (amountConverted === '0') return '';\n if (parseInt(amountConverted.replace('.', ''),10) < 0) return '300'\n if (parseInt(amountConverted.replace('.', ''),10) > 40000) return '40000'\n return (amountConverted)\n }\n \n const disableSimulatorButton = amount === '' || amount === 'NaN' || !amount\n\n const handleOnClickSimulate = () => {\n const data = quotaFormula(calculateAmount(amount))\n dispatch(setQuotas(data))\n }\n\n const confirmButtonConfig: ButtonConfig = {\n color: 'complementary',\n value: 'Simular',\n disabled: disableSimulatorButton,\n action: handleOnClickSimulate\n }\n\n return (\n
\n
\n \n
\n );\n\n}\n","import React, { useEffect, useMemo, useState } from 'react'\nimport Container from '@mui/material/Container'\nimport Grid from '@mui/material/Grid'\nimport { animated, useSpring } from 'react-spring'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { IQuota, QuotaState } from 'interfaces/quota'\nimport { AppState } from 'interfaces/app'\nimport { setQuotas } from 'context/reducer/quota'\nimport { RootState } from 'context'\nimport { Quota } from './quota'\nimport { Amount } from './amountDestination'\nimport simulatorImage from 'assets/images/login/SimulatorImage-min.jpg'\n\ninterface DrawSimulatorProps {\n quotas: IQuota[]\n amount: string\n}\n\nconst DrawSimulator: React.FC = ({ quotas, amount }) => {\n\n const [open, setOpen] = useState(false)\n const dispatch = useDispatch()\n const toggle = quotas.length > 0 && (amount === '' || amount !== 'NaN')\n\n const QuotaMemo = useMemo(() => , [])\n\n const props = useSpring({\n config: { duration: 1000 },\n opacity: toggle ? 1 : 0,\n y: toggle ? 0 : -300,\n onRest: {\n opacity: () => {\n if (!toggle) {\n setOpen(false)\n dispatch(setQuotas([]))\n }\n }\n }\n })\n\n useEffect(() => {\n if (toggle) {\n setOpen(true)\n }\n }, [toggle])\n\n return (\n \n \n \n \n \n \n {open && (\n \n \n {QuotaMemo}\n \n \n )}\n \n \n \n )\n}\n\n\nconst Simulator: React.FC = () => {\n const { quotas, amount } = useSelector((state) => state.quota)\n const { isMobile } = useSelector((state) => state.app)\n return (\n
\n \"\"\n {isMobile\n ?\n \n : \n \n }\n
\n )\n}\n\nexport default Simulator\n"],"sourceRoot":""}