{"version":3,"sources":["aws-exports.js","graphql/queries.ts","helpers/errors-aws.ts","helpers/country.ts","helpers/sentry.ts","helpers/tracker.ts","services/auth.ts","graphql/mutations.ts","hooks/auth-context.tsx","components/public-layout.tsx","components/disclaimer.tsx","images/error-icon.svg","components/ui/images/error-icon.tsx","components/ui/custom-form-input.tsx","images/spinner.svg","components/ui/images/spinner-icon.tsx","components/ui/custom-button.tsx","images/isotype-bg.png","images/logo-capitaria-black.svg","components/ui/images/capitaria-logo-black.tsx","components/login/login-content.tsx","components/ui/custom-button-v2.tsx","images/gmail.svg","components/ui/images/gmail-logo.tsx","components/ui/otp-input.tsx","components/validate-email/resend-code.tsx","images/footer-background.svg","images/back-arrow.svg","components/ui/images/back-arrow-icon.tsx","components/validate-email/validate-email-layout.tsx","components/validate-email/validate-code.tsx","components/validate-email/validate-email-content.tsx","images/sidebar.png","components/ui/images/login-fox.tsx","components/login/login.tsx","images/login-sidebar-bg.png","components/ui/images/daily-logo.tsx","images/daily-logo.png","components/ui/images/weekly-logo.tsx","images/weekly-logo.png","components/forgot-password/forgot-password-sidebar.tsx","components/forgot-password/forgot-password-layout.tsx","components/forgot-password/send-code.tsx","components/forgot-password/change-password.tsx","components/forgot-password/forgot-password-content.tsx","components/forgot-password/forgot-password.tsx","components/login/logout.tsx","helpers/scroll-top.tsx","images/logo-capitaria-white.svg","components/ui/images/capitaria-logo-white.tsx","components/ui/header-item.tsx","helpers/index-path-user.tsx","components/ui/progressbar.tsx","helpers/list-steps.ts","components/ui/header.tsx","images/icn-welcome-on.svg","components/ui/images/welcome-icon-on.tsx","images/icn-welcome-off.svg","components/ui/images/welcome-icon-off.tsx","images/icn-deposit-on.svg","components/ui/images/deposit-icon-on.tsx","images/icn-deposit-off.svg","components/ui/images/deposit-icon-off.tsx","images/icn-verify-documents-on.svg","components/ui/images/verify-documents-icon-on.tsx","images/icn-verify-documents-off.svg","components/ui/images/verify-documents-icon-off.tsx","images/icn-operatives-aspects-on.svg","components/ui/images/operatives-aspects-icon-on.tsx","images/icn-operatives-aspects-off.svg","components/ui/images/operatives-aspects-icon-off.tsx","images/icn-calculator-on.svg","components/ui/images/calculator-icon-on.tsx","images/icn-calculator-off.svg","components/ui/images/calculator-icon-off.tsx","images/icn-help-on.svg","components/ui/images/help-icon-on.tsx","images/icn-help-off.svg","components/ui/images/help-icon-off.tsx","images/green-arrow.svg","components/ui/images/green-arrow-icon.tsx","components/ui/sidebar-item.tsx","components/ui/mobile-navbar-item.tsx","components/ui/sidebar.tsx","components/layout.tsx","services/kyc.ts","images/help-popover-icon.svg","components/ui/images/help-popover-icon.tsx","components/ui/help-popover.tsx","components/kyc/check-kyc-step.tsx","components/page-layout.tsx","components/kyc/kyc-layout.tsx","components/kyc/schemas/personal-info.ts","components/kyc/personal-info/styles.ts","helpers/jobs-category.ts","components/kyc/personal-info/fields.ts","helpers/occupation.ts","components/ui/custom-date-picker.tsx","components/ui/custom-country-picker.tsx","components/ui/custom-checkbox.tsx","components/ui/custom-select.tsx","components/kyc/personal-info/mapComponents.tsx","images/pin-map-icon.svg","components/ui/images/map-pin-icon.tsx","components/kyc/personal-info/helpers/results-found.tsx","components/kyc/personal-info/loadAddressInformation.ts","components/kyc/personal-info/helpers/finding-results.tsx","components/kyc/personal-info/loadPredictions.ts","components/kyc/personal-info/modal.tsx","components/kyc/personal-info/index.tsx","images/loading-screen.svg","components/ui/images/loading-screen.tsx","components/kyc/answer-checkbox.tsx","helpers/break-line-from-text.tsx","images/dropdown-indicator-icon.svg","components/ui/images/dropdown-indicator-icon.tsx","components/kyc/dropdown-checkbox.tsx","components/kyc/question.tsx","components/kyc/questions.tsx","components/kyc/risk-profile.tsx","components/kyc/knowledge-profile.tsx","components/kyc/terms-details.tsx","components/kyc/terms-full.tsx","components/kyc/terms.tsx","services/executives-team.ts","components/help/help.tsx","components/help/help-page.tsx","services/verify-documents.ts","images/verify-card-icon.svg","components/ui/images/verify-card-icon.tsx","images/success-card-upload.png","components/ui/images/success-card-upload-img.tsx","images/upload-arrow.svg","components/ui/images/upload-arrow-icon.tsx","images/upload-check.svg","components/ui/images/upload-check-icon.tsx","components/ui/images/upload-failed-icon.tsx","components/ui/progress-circle.tsx","components/ui/upload-progress-circle.tsx","components/verify-documents/upload-file.tsx","components/verify-documents/verify-card.tsx","components/verify-documents/validate-bank-card.tsx","helpers/clean-pathname.ts","images/loader.gif","components/ui/images/loader.tsx","components/typ/typ.tsx","components/disclaimer-v2.tsx","components/sign-up/sign-up-content/fields-v2.ts","components/sign-up/sign-up-content/signup-schema.ts","components/sign-up/sign-up-content/declarations.tsx","components/sign-up/sign-up-content/index-v2.tsx","components/ui/images/sign-up-fox.tsx","components/sign-up/sign-up-v2.tsx","components/sign-up/validate-email-v2.tsx","components/ui/images/curso_intermedio_cover.png","components/ui/images/curso_avanzado_cover.png","components/ui/images/curso_basico_cover.png","components/course-selection/courses.tsx","components/course-selection/course-selection.tsx","services/brokers.ts","images/banco-estado.png","components/ui/images/banco-estado-logo.tsx","components/ui/images/copy-icon.tsx","images/copy-icon.png","components/ui/images/check-icon.tsx","images/check-icon.png","components/deposit/bank-modal.tsx","components/ui/images/x-icon.tsx","images/x.png","components/ui/custom-modal.tsx","components/ui/alert-banner.tsx","components/deposit/webpay-box.tsx","images/webpay.png","components/ui/images/webpay-logo.tsx","images/mercadopago-logo.svg","components/deposit/pay-online.tsx","components/ui/images/banco-bci-logo.tsx","images/bci.png","components/deposit/bank-box.tsx","components/deposit/carousel-options-banks.tsx","components/ui/images/icon-to-hide.tsx","components/ui/images/icon-to-display.tsx","components/ui/images/global66.tsx","components/ui/images/global66-without-text.tsx","components/deposit/chile-deposit-onboarding.tsx","components/ui/images/bbva-logo.tsx","images/bbva.png","images/bcp.png","components/ui/images/bcp-logo.tsx","components/ui/images/scotiabank-logo.tsx","images/scotiabank.png","images/success.gif","components/nuvei/success-page.tsx","components/nuvei/mexico-credit-card.tsx","images/mastercard.png","images/visa.png","components/ui/images/flag-peru.tsx","components/ui/images/flag-usa.tsx","components/nuvei/peru/input-currency.tsx","components/nuvei/peru/credit-card.tsx","components/deposit/peru-deposit.tsx","components/ui/images/santander-logo.tsx","images/santander.png","components/deposit/uruguay-deposit.tsx","components/ui/images/cfsb-logo.tsx","components/ui/images/currency-cloud-logo.tsx","components/deposit/other-country-deposit.tsx","components/shared/modal-plans/plans-list.ts","components/shared/modal-plans/plan-details.tsx","components/shared/modal-plans/index.tsx","components/ui/util-dropdown.tsx","components/ui/images/flag-chile.tsx","components/ui/images/flag-uruguay.tsx","components/ui/images/flag-mexico.tsx","components/ui/images/global-simbol.tsx","components/nuvei/mexico-bank-transfer.tsx","images/credit-card.tsx","images/bank-transfer.tsx","components/nuvei/type-payment.tsx","components/nuvei/mexico-page.tsx","components/nuvei/mexico-deposit.tsx","components/deposit/user-country-deposit-onboarding.tsx","components/sign-up/deposit.tsx","images/icon-standby-validation.svg","components/ui/images/icon-standby-validation.tsx","components/verify-documents/validation-on-hold.tsx","images/mt5-logo.png","components/ui/images/mt5-logo.tsx","components/sign-up/download-mt5.tsx","images/warning-icon-color.svg","components/ui/images/warning-icon-color.tsx","components/home/bad-trader-profile-v2.tsx","components/shared/home/opportunities/Skeleton.tsx","components/shared/home/opportunities/Graph.tsx","images/loader-opportunities.svg","components/shared/home/opportunities/MarketInfo.tsx","components/shared/home/opportunities/DisplayOpportunities.tsx","components/shared/home/opportunities/Disclaimer.tsx","components/shared/home/opportunities/index.tsx","components/shared/home/simulator/context.tsx","images/icon-question.svg","components/ui/tooltip.tsx","components/shared/home/simulator/Parameter.tsx","components/shared/home/simulator/fields/instruments.ts","components/shared/home/simulator/fields/operations.ts","components/shared/home/simulator/fields/timeframes.ts","components/shared/home/simulator/fields/index.tsx","components/shared/home/simulator/ResultPrediction.tsx","images/loader-simulator.svg","components/ui/button-simulator.tsx","components/shared/home/simulator/index.tsx","components/home/discover-opportunities/source.tsx","components/home/discover-opportunities/sources-list.ts","images/img-webinars.png","images/img-economic-calendar.png","images/img-youtube.png","components/home/discover-opportunities/display-sources.tsx","components/home/discover-opportunities/index.tsx","components/home/slider/steps/styles.tsx","components/home/slider/steps/helper.tsx","components/home/slider/trackEventPq.tsx","components/home/slider/steps/discover-plataform.tsx","components/home/slider/steps/first-trade.tsx","components/home/slider/steps/concepts.tsx","components/home/slider/steps/trading-vs-investing.tsx","components/home/slider/steps/index.ts","components/home/slider/steps/modal.tsx","components/home/slider/index.tsx","components/home/home-view.tsx","images/warning-icon.svg","components/ui/images/warning-icon.tsx","components/verify-documents-v2/images/complete.tsx","components/verify-documents-v2/phone/styles.tsx","components/verify-documents-v2/phone/state-validate-phone.tsx","components/ui/custom-phone-input.tsx","components/verify-documents-v2/phone/reason.tsx","components/verify-documents-v2/phone/edit-phone.tsx","components/verify-documents-v2/phone/confirm-code.tsx","components/verify-documents-v2/validate-phone.tsx","components/verify-documents-v2/validate-phone-kyc.tsx","components/verify-documents-v2/validate-phone-without-kyc.tsx","components/verify-documents/images/complete.tsx","components/metamap/images/qr-onboarding.png","components/verify-documents/validate-documents.tsx","components/verify-documents/validate-documents-kyc.tsx","components/verify-documents/validate-documents-without-kyc.tsx","components/verify-documents/images/liveness.tsx","helpers/get-message-from-error.ts","components/metamap/validate-liveness.tsx","components/metamap/validate-liveness-without-kyc.tsx","components/metamap/validate-liveness-kyc.tsx","helpers/currency.ts","components/deposit/subaccounts.tsx","components/deposit/transactions-list.tsx","components/deposit/transactions.tsx","images/withdraw.svg","components/ui/images/withdraw-icon.tsx","components/deposit/withdraw.tsx","components/deposit/deposit-page.tsx","services/mercadopago.ts","components/mercadopago/mercadopago.tsx","components/mercadopago/mercado-pago-with-kyc.tsx","components/mercadopago/mercado-pago-without-kyc.tsx","components/mercadopago/mercado-pago-back.tsx","app.tsx","serviceWorker.js","index.tsx"],"names":["awsmobile","getInstrumentsPrice","getTokenNuvei","errorAws","LimitExceededException","CodeMismatchException","NotAuthorizedException","ExpiredCodeException","NetworkError","COUNTRIES","CL","PE","UY","MX","setTagsSentry","params","Sentry","scope","index","setExtra","trackPage","pathname","mcOrigen","withParams","properties","pageview","mc_origen","utm_params","qs","split","join","tokens","re","exec","decodeURIComponent","getQueryParams","window","location","search","Object","keys","length","_objectSpread","trackEvent","concat","slice","replace","pathnameToEventName","event","amplitude","getInstance","logEvent","trackUserId","userId","setUserId","trackUserEvent","userProperties","eventProperties","setUserProperties","trackEventMetamap","fetchCapitariaUser","async","capitariaUser","API","graphql","graphqlOperation","cognitoId","cognitoUser","attributes","sub","data","info","identityId","currentCredentials","Auth","id","updateIdentityId","signUp","values","parsedQueryString","_ref","utm_id","SUBID","utm_medium","utm_source","utm_campaign","utm_content","utm_term","country","response","fetch","process","credentials","headers","Authorization","json","countryCode","error","fetchCountry","email","toLocaleLowerCase","password","user","username","given_name","givenName","family_name","familyName","acceptPrivacyTerms","substring","userSub","userNeedEmailValidation","loading","errorMessage","code","JSON","stringify","toast","AuthContext","createContext","state","setUser","userIsLoading","firstLoad","setFirstLoad","AuthProvider","props","useState","setUserIsLoading","useEffect","loggedUser","currentAuthenticatedUser","AWS","config","Config","systemClockOffset","signInUserSession","clockDrift","console","log","autoLogin","getCurrentUser","_jsx","Provider","value","useAuth","context","useContext","undefined","Error","PublicLayout","children","_jsxs","_Fragment","Global","styles","css","_templateObject","_taggedTemplateLiteral","DisclaimerText","styled","section","Disclaimer","div","errorIcon","ErrorIcon","FormGroup","customStyles","LabelWrapper","_templateObject2","Label","label","_templateObject3","Input","input","_templateObject4","hasError","_templateObject5","ErrorMessage","span","_templateObject6","CustomInput","sublabel","name","placeholder","type","tabIndex","style","styleLabel","onChange","onBlur","styleGroup","styleLabelWrapper","othersProps","htmlFor","Spinner","spinnerIcon","SpinnerIcon","Button","button","FakeButton","DisabledButton","ButtonCustom","disabled","disabledStyle","loadingStyle","onClick","className","LogoCapitaria","logoCapitaria","LogoCapitariaBlack","Container","isotypeBg","Content","Description","p","Form","form","NavBar","nav","LogoWrapper","CreateAccountMsg","_templateObject7","StyledLink","Link","_templateObject8","ForgotPassordLink","_templateObject9","buttonCSS","_templateObject10","loadingButtonCss","inputCSS","_templateObject11","_templateObject12","Title","h1","_templateObject13","LoginSchema","Yup","shape","required","LoginContent","onSubmit","submitError","queryStringParams","useQueryString","CapitariaLogoBlack","to","queryString","Formik","initialValues","validationSchema","touched","errors","handleChange","handleBlur","handleSubmit","CustomButton","ButtonCustomV2","GmailImage","img","GmailLogo","src","gmailLogo","alt","RE_DIGIT","RegExp","ContentInputsCodeConfirmPhone","ErrorOTP","OtpInput","valueLength","valueItems","useMemo","valueArray","items","i","char","test","push","focusToNextInput","target","nextElementSibling","focus","focusToPrevInput","previousElementSibling","inputOnKeyDown","e","key","preventDefault","targetValue","setSelectionRange","inputOnFocus","prevInputEl","map","digit","idx","inputMode","autoComplete","pattern","maxLength","inputOnChange","trim","isTargetValueDigit","nextInputEl","targetValueLength","newValue","blur","onKeyDown","onFocus","ResendText","ResendLink","a","ResendCode","resendCode","seconds","setSeconds","isActive","setIsActive","interval","clearInterval","setInterval","BackArrow","backArrow","BackArrowIcon","footerBackground","LinkText","ValidateEmailLayout","href","labelCSS","GmailButton","FlexAbTesting","ContainerReasons","Reason","WhyQuestion","ValidateCodeSchema","ValidateCode","match","navigator","userAgent","gtag","open","toString","setFieldValue","CustomButtonV2","ValidateEmailContent","setLoading","setError","result","resendSignUp","success","forceError","resendValidateCode","confirmSignUp","signIn","confirmSignUpAndSignIn","navigate","LoginFoxBox","sidebarHero","LoginFox","Login","setEmail","setPassword","setUserNeedEmailValidation","emailValue","passwordValue","phone","warn","signOut","login","toLowerCase","Daily","DailyLogo","Weekly","WeeklyLogo","Sidebar","loginSidebarBg","h2","Separator","ForgotPasswordSidebar","ForgotPasswordLayout","SendCodeSchema","SendCode","ChangePasswordSchema","min","ChangePassword","ForgotPasswordContent","userNeedCodeValidation","setUserNeedCodeValidation","sendCode","forgotPassword","message","forgotPasswordSendCode","changePasswordHandler","forgotPasswordSubmit","changePassword","ForgotPassword","Logout","clearUserProperties","logout","logoutUser","Redirect","noThrow","ScrollTop","scrollTo","LogoCapitariaWhite","StyledLinkWhite","EmptyLink","Item","li","Text","IconWrapper","HeaderItem","path","iconOn","iconOff","text","StyledLinkComponent","kycNextStep","getIndexPathFromUser","includes","customerStatus","ProgressBackground","ProgressAnimation","Progressbar","width","listSteps","HeaderWrapper","HeaderWrapperDark","ItemList","ul","Header","showLinks","indexPath","Location","_ref2","CapitariaLogoWhite","nextStep","indexOf","CapitariaLogo","WelcomeIcon","welcomeIconOn","WelcomeIconOn","welcomeIconOff","WelcomeIconOff","DepositIcon","depositIconOn","DepositIconOn","depositIconOff","DepositIconOff","VerifyIcon","verifyIconOn","VerifyIconOn","verifyIconOff","VerifyIconOff","OperativesAspectsIconOn","operativesAspectsIconOn","OperativesAspectsIcon","OperativesAspectsIconOff","operativesAspectsIconOff","CalculatorIcon","calculatorIconOn","CalculatorIconOn","calculatorIconOff","CalculatorIconOff","HelpIcon","helpIconOn","HelpIconOn","helpIconOff","HelpIconOff","GreenArrow","greenArrow","GreenArrowIcon","ExternalLink","activeItem","borderLeft","SidebarItem","external","alias","rel","MobileNavbarItem","DesktopContainer","MobileContainer","ToggleButton","ToggleButtonText","LinkList","DesktopNavbar","l","MobileNavbar","isOpened","setIsOpened","filteredItems","selectedItem","forEach","bottomLinks","VerifyDocumentsIconOn","VerifyDocumentsIconOff","_ref3","Layout","exportParams","updatePersonalInfo","updatedUser","personalInfo","residenceCountry","city","updateRiskProfile","answersRisk","userAnswer","updateKnowledgeProfile","answersKnowledge","updateRiskBadTraderProfile","updateTerms","acceptTerms","updateDeposit","updatePlatform","selectCourse","course","updatedCourse","updateSelectCourse","updateValidationDeposit","updateValidatePersonalInfo","updateSelectPlan","selectedPlan","customerType","updateCustomerType","updatePhone","kyc","arguments","updatedPhone","reload","confirmCode","listErrors","defaultMessage","INVALID_CODE","checkErrors","wasPhoneValidate","notReceivedCode","validateIdentity","HelpPopoverIcon","helpIcon","HelpPopover","position","Popover","isOpen","content","targetRect","popoverRect","ArrowContainer","arrowColor","arrowSize","onMouseOver","onMouseLeave","CheckKycNextStep","useLocation","checkKycStep","PageLayout","TitleWrapper","KycLayout","title","description","blockedCountries","PersonalSchema","address","job","occupation","isPEP","InputWrapper","CheckboxWrapper","buttonStyle","AddressWrapper","LabelFlex","loadingButtonStyle","inputStyle","AddressLabel","otherJobs","fields","height","listOptions","jobCategory","dependsOf","jobSelected","DateWrapper","SelectWrapper","days","Array","from","_","x","months","currentYear","Date","getFullYear","years","CustomDatePicker","date","setDate","updateDate","dateChange","splittedDate","newDate","daysStyles","control","provided","borderColor","indicatorSeparator","monthsStyles","yearsStyles","Select","options","suggestedCountries","othersCountries","formattedCountryData","emoji","entries","countries","groupedCountries","groupStyles","display","alignItems","justifyContent","groupBadgeStyles","backgroundColor","borderRadius","color","fontSize","lineHeight","minWidth","padding","formatGroupLabel","CustomCountryPicker","defaultValue","onSelectDefaultValue","countriesStyles","singleValue","fontFamily","fontWeight","defaultFormattedCountry","findCountry","find","codeCountry","dataCountry","selectedCountry","CheckContainer","CheckboxInput","CustomCheckbox","formGroupStyle","labelStyle","boolValue","CustomSelectPicker","optionsStyles","selectedOption","components","maps","checkbox","select","Image","MapPinIcon","mapPin","Wrapper","ResultText","ResultsFound","results","setter","principalAddress","structured_formatting","main_text","setAddressError","direccion","setGmapResults","setNotSelected","google","Geocoder","geocode","status","formatted_address","formatedAddress","address_components","geometry","lat","lng","firstComponent","types","streetNbr","parseInt","long_name","format","reverse","region","area","Number","postalCode","regExp","numbersFound","finalAddress","loadAddressInformation","setAddress","setLatitude","setLongitude","setPostalCode","setStreetNumber","regexNumber","setCity","secondary_text","FindingResults","loadPredictions","_result$predictions","request","componentRestrictions","service","places","AutocompleteService","getPlacePredictions","predictions","FlexColumnContainer","CloseButton","AddressContainer","ModalGoogleMaps","setShowModal","streetNumber","setErrors","handleContinue","prevErrors","ManualAddressEntry","QuestionPep","QuestionPepWrapper","BoxAnswerPep","ButtonToggle","active","ContainerBoxAnswerPep","answersOfPep","PersonalInfo","isLoading","setIsLoading","setCountryCode","latitude","longitude","notSelected","gmapsResults","addressError","showModal","timeoutRef","useRef","ToggleGroup","evaluate","condA","condB","addressExtension","KYC","field","Component","mapComponents","commonProps","autocomplete","current","clearTimeout","setTimeout","keyCode","currentTarget","_createElement","LoadingScreen","loadingScreen","LoginScreenIcon","isSelected","boxShadow","opacity","InputCheckbox","AnswerCheckbox","checked","handleClick","renderWithBreakLine","query","reduce","reduceElement","acumulator","element","Icon","DropdownIndicatorIcon","dropdownIndicatorIcon","DropdownMenu","CheckboxDropdownContent","Dropdown","DropdownButton","StyledCheckbox","DropdownLabel","DropdownCheckbox","selectedOptions","setSelectedOptions","setIsOpen","handleToggle","option","some","o","optionValue","newSelectedOptions","selected","filter","handleOptionToggle","ContainerAnswer","QueryWrapper","Query","ContainerAnswersRadio","AnswerLabel","AnswerRadio","AnswerText","Question","answers","multiSelectedOptionsChange","answer","onlyDropdownStyles","borderStyle","borderWidth","container","menu","answerSelectedCheckbox","setAnswerSelectedCheckbox","listSelectedOptions","answerId","isMulti","hideSelectedOptions","isClearable","DropdownIndicator","rest","_objectWithoutProperties","_excluded","QuestionGroup","LoadingWrapper","h3","disabledButtonStyle","Questions","questions","setValues","answerSplittedId","questionId","every","listAnswerIds","updateAnswer","newAnswer","removeQuestion","updateMultiAnswer","answeredQuestion","q","isArray","filtered","LoadingScreenIcon","RiskProfile","setQuestions","riskProfileQuestions","parse","getRiskProfileQuestions","getQuestions","KnowledgeProfile","knowledgeProfileQuestions","getKnowledgeProfileQuestions","Paragraph","ParagraphHeadline","ParagraphText","ContractTitle","ContractAndAnnex","CrossButton","LineCross","initialState","contract","market","risk","orders","deposit","withdrawals","recommendations","communications","term","dof","TermsDetails","terms","toogleOpen","toggleAccordeon","stateOpenDiv","detail","termsChile","termsInternational","Terms","Teams","LinkZendesk","Help","HelpPage","executiveTeam","setExecutiveTeam","executiveTeamName","getUserExecutivesTeam","hasOwnProperty","sf_Celula__c","getExecutivesTeamName","updateCardFileFlag","ommit","uploaded","updateCardFileUploaded","VerifyCard","verifyCard","VerifyCardIcon","SuccessCardUpload","SuccessCardUploadImg","successCardUpload","UploadArrow","uploadArrow","UploadArrowIcon","UploadCheck","uploadCheck","UploadCheckIcon","UploadFailedIcon","viewBox","fill","xmlns","cx","cy","r","x1","y1","x2","y2","stroke","strokeWidth","ProgressCirle","percentage","startIcon","endIcon","CircularProgressbarWithChildren","root","fillOpacity","strokeLinecap","transition","transform","transformOrigin","trail","background","UploadProgressCircle","ProgressCircle","UploadContainer","UploadBox","BoxContent","h4","UploadIconWrapper","UploadNote","FileInput","MessageError","fileTypes","listError","UploadFile","fileName","setPercentage","setHasError","fileInputRef","click","ref","accept","file","files","ext","size","uploadedFile","Storage","put","level","contentType","progressCallback","progress","Math","round","loaded","total","UploadProgressCirle","HowToDo","SubTitle","UploadFileWrapper","SusccessSection","SuccessTitle","SuccessDescription","saveButtonStyle","saveButtonLoadingStyle","saveButtonDisabledStyle","TextValidate","_templateObject14","ContainerTextDescription","_templateObject15","OmmitLink","_templateObject16","ContainerPassStep","_templateObject17","SubtitlePassStep","_templateObject18","SuccessScreen","HowToVerify","onClickOmmit","disableSaveButton","setDisableSaveButton","wasCardFileUploaded","ValidateBankCard","removeLastSlash","finalText","substr","Loader","LoaderGif","loaderGif","Gif","ThankYou","timerId","DisclaimerV2","fieldsV2","Schema","matches","usCitizenDeclaration","Declarations","ContainerDeclarations","TextInput","styleInput","UsCitizenDeclaration","PrivacyPolicies","SignUpContentV2","useNavigate","decodeParam","param","last_name","enableReinitialize","liveInUSA","signupSchema","SignUpFoxBox","SignUpFox","SignUpV2","ValidateEmailV2","ContainerCourse","ContainerSingleCourse","Detail","courses","image","CursoBasico","CursoIntermedio","CursoAvanzado","SingleCourse","Course","setCourseSelected","setActive","_courses$active","ContainerView","MessageBold","OptionSkip","CouserSelection","courseSelected","Brokers","BancoEstado","BancoEstadoLogo","bancoEstado","Copy","CopyIcon","Check","CheckIcon","Modal","ModalField","Value","Actions","DoItLater","ImgWrapper","BankModal","logo","account","showSkip","copiedId","setCopiedId","bankAccount","f","CopyToClipboard","onCopy","X","XIcon","CustomModal","closeModal","animationEnd","styleCSS","styleObj","closeOnEsc","closeOnOverlayClick","showCloseIcon","onClose","classNames","overlay","modal","closeIcon","onAnimationEnd","Alert","AlertBanner","Box","BoxLink","WebpayBox","url","nameEvent","internal","onClickWebayNational","Webpay","WebpayLogo","webpayLogo","ContainerButton","PayOnline","isMercadoPagoEnabled","useFeatureIsOn","mercadoPagoLogo","BancoBCI","BancoBCILogo","addTextCSS","flexDirection","paddingBottom","letterSpacing","AccountType","getAccountTypeLabel","isDollarAccount","isSolesAndDollarAccount","isEuroAccount","visibility","BankBox","extraText","Slider","Slides","CarouselOptionsBanks","listBanks","openModal","bank","IconToHide","d","IconToDisplay","Global66Logo","Global66LogoWithoutText","BankTransference","ContentTitleDescription","TitleDescription","ContainerText","ContainerTextInternational","Tabs","Tab","tabsList","credit","transfer","activeTab","borderBottom","banksCapitaria","accountOwner","rut","accountType","accountNumber","intermediaryBank","swift","intermediarySwift","banksKT","CapitariaBanksAccounts","selectedAccount","KTBanksAccounts","bankAccounts","ChileDepositOnboarding","setAccount","setLogo","broker","setBroker","isModalOpen","setIsModalOpen","isClickButton","setIsClickButton","showSection","setShowSection","isExpandedTransferNational","setIsExpandedTransferNational","isExpandedTransferInternational","setIsExpandedTransferInternational","sf_Broker__c","_ref4","tab","handleClickTransferNational","handleClickTransferInternational","clickAnimationEnd","clickModal","BBVA","BBVALogo","BCP","BCPLogo","bcp","Scotiabank","ScotiabankLogo","ContainerStatus","ContainerNuvei","RowDetail","CellDetail","DivWrapper","Info","ApprovedComponent","amount","currency","orderId","successGif","userPaymentOptionId","ccCardNumber","ErrorWithCreditCard","errCode","errorDescription","SuccessNuveiPage","paymentMethod","styleCss","LabelText","ContainerCard","InputNameCard","ButtonDeposit","MexicoCreditCard","memo","safeCharge","nuveiInfo","onSuccess","cardNumber","setCardNumber","cardHolderName","setCardHolderName","fonts","cssUrl","locale","create","attach","createPayment","sessionToken","paymentOption","billingAddress","messageError","FlagPeru","defaultProps","FlagUsa","ContainerCreditCard","ImgCreditCard","PrefixSpan","ContainerInput","WrapperInput","InputDeposit","styleButtonDeposit","ContainerSelectCurrency","SelectCurrency","InputCurrency","setAmount","onClickPay","setCurrency","listCurrency","translateCurrencyFlag","USD","PEN","currencySelected","setCurrencySelected","React","Children","currencyCountrySelected","FlagComponent","changeCurrency","newCurrency","visaImage","mastercardImage","CreditCard","LabelPayment","PaymentMethod","creditcard","ConfigPayments","env","merchantId","merchantSiteId","PeruCreditCard","_nuveiInfo$success","setSafeCharge","modulo","setModulo","setNuveiInfo","setSuccess","dataSuccess","setDataSuccess","Promise","resolve","reject","scriptElem","assign","document","createElement","defer","onerror","onload","body","appendChild","loadScript","SafeCharge","loadSafecharge","ComponentPayment","lastConfig","clientUniqueId","ContainerUpdatedCreditCard","BCPAccount","dollarAccount","ciiDollarAccount","solesAccount","ciiSolesAccount","bankCodeId","BBVAacount","scotiabankAccount","ruc","CreditCardComponent","PeruDeposit","isExpandedTransfer","setIsExpandedTransfer","banks","handleClickTransfer","Santander","SantanderLogo","sucursal","UruguayDeposit","isExpandedDeposit","setIsExpandedDeposit","handleClickDeposit","CFSB","CFSBLogo","CurrencyCloud","CurrencyCloudLogo","Banks","CommunityFederalSavingsBankAccount","CurrencyCloudBankAccount","OtherCountryDeposit","PlansList","amountUSD","amountCLP","footer","recommended","PlanDetails","plan","Plan","Amounts","PlanFooter","PlanDescription","WrapperFooter","WrapperAmounts","Recommended","toUpperCase","ModalTitle","ModalDescription","CallToAction","ContainerDesktop","ModalPlans","renderListPlans","plans","TextOptions","Change","MobileNavbarDeposit","onchange","defaultCountry","setSelectedItem","searchCountry","iconFlag","item","handleItemClick","FlagChile","FlagUruguay","mask","FlagMexico","GlobalSimbol","clipPath","MexicoBankTransfer","userDetails","CreditCardImage","setColor","colorLine","setColorLine","rx","y","BankTransferImage","ContainerSelector","Selector","ImageSelector","TextSelector","MessageContainer","Message","defaultStateActive","banktransfer","TypePayments","setPaymentMethod","activePayments","setActivePayments","onActivePayment","displayMessageWarning","messageWarning","useFeatureValue","acc","MexicoPage","MexicoDeposit","DepositWrapper","WelcomeProspect","RowMessage","RowButton","ButtonAccountsType","Tittle","DepositAfter","UserCountryDepositOnboarding","setCountry","UserCountryDeposit","listCountryDeposit","Chile","Peru","Uruguay","Mexico","link","Deposit","userBroker","getUserBroker","StanbyImage","IconStanby","iconStanby","TextForContinue","ValidationOnHold","LogoMt5","Mt5Logo","metaTrader","DownloadOption","TextDownload","InformativeText","DownloadMt5","WarningIconColorDiv","warningIconColor","WarningIconColor","WarningMessage","ContainerAcceptance","Acceptance","BadTraderProfile","SkeletonWrapper","Animation","Columns","Nemo","Price","Graph","ColumnsInstrument","Skeleton","prices","datasets","tension","pointBorderColor","pointBackgroundColor","labels","Line","events","animation","scales","ticks","stepSize","grid","drawBorder","drawTicks","responsive","plugins","legend","ChartJS","register","registerables","WrapperInformation","Percentage","StockDetails","GraphWrapper","InstrumentDetails","MarketInfo","close","variation","instrument","tooltip","setTooltip","Tooltip","onMouseOut","toFixed","settings","dots","infinite","slidesToShow","slidesToScroll","MarketsWrapper","SliderResponsive","generateRandom","n","floor","crypto","getRandomValues","Uint32Array","randomProperties","opportunities","firstInstrument","secondInstrument","DisplayOpportunities","markets","setMarkets","history","setHistory","retries","setRetries","loadOpportunities","useCallback","startDate","DateTime","now","minus","month","toFormat","endDate","getOpportunities","quantity","long","instruments","buy","short","sell","nemo","start","end","_body","records","err","SubtitleWrapper","Subtitle","Opportunities","initialForm","direction","price_now","setResponse","tooltipIsOpen","setTooltipIsOpen","Context","ContextProvider","_setValues","useSimulator","WrapperTooltip","Parameter","simulator","propName","CustomTooltip","QuestionIcon","inputValue","validate","parseFloat","operations","timeframes","CustomLink","step","Amount","ResultPrediction","lastPrice","priceToday","contractSize","contract_size","spread","ask","bid","calculateWinLose","formatNumber","base_currency","abs","ButtonWrapper","SpinnerWrapper","ButtonSimulator","Fields","Prediction","FooterMessage","WrapperButtonSimulator","Simulator","lastDate","setLastDate","DynamicDisclaimer","minusTimeframe","weeks","timeframe","instrumento","tamaño","CenterIcon","SourceLink","Source","icon","sourcesList","DesktopCarousel","DisplaySources","source","DiscoverOpportunities","useLoadWistia","setWistia","_wistia","Wistia","embed","videoFoam","popover","popoverAnimateThumbnail","bind","hide","trackEventPq","VideoAnalytics","DemoWrapper","FirstTrade","wistia","salesforceId","loadWistia","column","steps","component","question","correctAnswer","matchMedia","ModalWistia","setAnswer","onSkipClick","onSubmitClick","lastStep","Steps","NotActiveStep","ActiveStep","Active","RenderComponent","StepsMobile","ActiveStepMobile","TitleMobile","NotActiveStepMobile","CenterText","SliderWrapper","TitleText","currentStep","setCurrentStep","renderStepMobile","renderStep","_ref5","Welcome","WelcomeTitle","WelcomeSubtitle","ContainerAllValidations","ContainerValidation","TitleValidation","HomeView","wasIdFileUploaded","wasLivenessFileUploaded","WarningIconDiv","warningIcon","WarningIcon","IconComplete","buttonStyleLoading","ContainerStep","ContainerValidatePhone","TextValidationStatus","StateValidatePhone","confirmPhone","CustomPhoneInput","PhoneInput","countryCodeEditable","ReasonExplain","schemaValidationPhone","EditPhone","notCode","isLoadingNotCode","submitNotCode","countryValue","setCountryValue","countryCodeLow","getCountryValue","preferredCountries","localization","enableSearch","searchPlaceholder","searchNotFound","dropdownClass","inputClass","containerClass","inputProps","autoFocus","BasicTextGray","BoldText","strong","ConfirmCode","phoneState","isWaiting","onClickResendCode","onSendCode","ConfirmPhone","ValidatePhone","setUpdatePhone","setPhoneState","setIsWaiting","setNotCode","setIsLoadingNotCode","ValidatePhoneKyc","ValidatePhoneWithoutKyc","IdWrapper","UploadRow","SaveButtonWrapper","defaultSaveButtonStyle","LinkQR","WrapperQR","ContainerTextQR","ContainerImageQR","TitleModalCSS","CountryContainer","Indication","ContainerSelectorTypeDocument","ContainerTypeDocument","LabelTypeDocument","_templateObject19","TypeDocument","_templateObject20","ContainerDocumentsUploaded","_templateObject21","WrapperUploadFile","onChangeFrontSide","onChangeBackSide","onChangePassport","listComponent","ValidateIdentityDocument","frontSideUploaded","setFrontSideUploaded","backSideUploaded","setBackSideUploaded","passportUploaded","setPassportUploaded","showQR","setShowQR","setDefaultCountry","showLinkQR","setShowLinkQR","countryDefault","setCountryDefault","setSelectedCountry","typeDocumentSelected","setTypeDocumentSelected","countryName","mediaQuery","handleMediaChange","addEventListener","removeEventListener","disabledButton","countrySelect","typeDocument","updateIdFileUploaded","updateIdFileFlag","onClickTypeDocument","prevValue","onClickQR","onSave","imageQR","ValidateDocuments","ValidateDocumentsKyc","ValidateDocumentsWithoutKyc","LivenessIcon","fillRule","clipRule","gradientUnits","stopColor","offset","getErrorMessage","maybeError","_unused","String","toErrorWithMessage","LoadingMessage","InstructionVideoCSS","VideoContainer","acceptButtonStyle","cancelButtonStyle","PermissionDenied","ContainerWrapper","VideoDemo","video","ContainerLiveness","MessageImportant","MessageImportantModal","DescriptionModal","SuccessMessage","_templateObject22","ContainerIcon","_templateObject23","_templateObject24","_templateObject25","LoadingView","translateText","diccionaryText","renderActionsVideo","showCancelButton","closeVideo","recordedVideo","uploadVideo","uploadingVideo","listActions","VideoWrapper","authorizedVideo","setRecordedVideo","setExtensionValue","setVideoBlob","setShowCancelButton","constraintsVideoConfig","facingMode","ideal","isFirefox","isMobile","VideoRecorder","t","auto","countdownTime","constraints","audio","isOnInitially","onError","isCameraSwitcherDisabled","onOpenVideoInput","onStartRecording","onStopReplaying","onStopRecording","onSwitchCamera","onCameraOn","onRecordingComplete","videoBlob","prototype","call","castFileToBlob","Blob","renderLoadingView","timeLimit","Video","showVideo","setShowVideo","setUploadingVideo","setAuthorizedVideo","extensionValue","waitingStatus","setWaitingStatus","permissions","permissionStatus","getPermission","uploadComplete","updateLivenessFileUploaded","updateLivenessFileFlag","_result$user","autoPlay","playsInline","controls","loop","extension","ValidateLiveness","showVideoModal","setShowVideoModal","medias","mediaDevices","getUserMedia","getTracks","track","stop","_templateObject26","ValidateLivenessWithoutKyc","ValidateLivenessKyc","formatAmount","thousand","decimals","removeDecimals","parseAmount","isNaN","splitedAmount","valueFormat","toLocaleString","Table","Row","Cell","Name","Currency","Ransom","TextMobile","renderSubAccount","subaccount","ransom","SubAccounts","totalSubAccounts","DateText","SubAccount","Type","sortTransactions","dateA","dateB","dayA","monthA","yearA","dayB","monthB","yearB","timeB","timeA","getTime","TransactionList","transactionsList","sort","transaction","transaction_type","Transactions","goDeposit","subaccountsAndTransactions","setSubaccountsAndTransactions","getSubaccountsAndTransactions","callInfoAccount","subaccounts","transactions","Withdraw","withdraw","WithdrawIcon","Logo","DepositPage","createPreference","preference","createPreferenceMercadoPago","preference_id","getPayment","paymentId","payment","getPaymentMercadoPago","initMercadoPago","styleButton","disabledStyleButton","MercadoPagoView","preferenceId","setPreferenceId","loadingMP","setLoadingMP","MP","Wallet","initialization","customization","texts","valueProp","onReady","onBack","MercadoPagoKyc","MercadoPagoWithoutKyc","PendingView","CheckPending","pending","componentView","MercadoPagoBack","URLSearchParams","get","loadingView","setLoadingView","setPending","payment_date","fetchStatus","globalHistory","listen","ReactGA","Route","trackPageView","setTrackPageView","PrivateRoute","_excluded2","tracked","setTracked","trackUserPage","pathnameWithoutSlash","mercadoPagoPages","LogoutRoute","_excluded3","configure","autoClose","hideProgressBar","listPrivateRoute","default","AuthenticatedApp","Router","isDefault","UnauthenticatedApp","QueryStringProvider","App","Boolean","hostname","environment","dsn","release","tunnel","tagManagerArgs","gtmId","TagManager","initialize","Amplify","awsConfig","init","includeGclid","includeReferrer","includeUtm","apiEndpoint","setDomain","correctClockSkew","growthbook","GrowthBook","apiHost","clientKey","subscribeToChanges","AppProviders","loadFeatures","GrowthBookProvider","ReactDOM","render","getElementById","serviceWorker","ready","then","registration","unregister","catch"],"mappings":"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A,kBACA,eACA,WACA,aACA,iBACA,cACA,YACA,SACA,WACA,oBACA,SACA,QACA,UACA,YACA,aACAH,IAG2CxR,KAAI4R,IAAW,CAAMtZ,MAAOsZ,EAAajb,MAAOib,OCQ3F,CACE1Y,KAAM,WACNZ,MAAO,eACPgB,MAAOgY,GACPlY,KAAM,OACN+O,MAAO,IACP0J,UAAYC,GACHA,IAAgBN,IAG3B,CACEtY,KAAM,aACNZ,MAAO,uCACPa,YAAa,UACbC,KAAM,SACN+O,MAAO,IACPwJ,YClD0B,CAC5B,eACA,eACA,QACA,WACA,gBACA,SACA,aACA,WACA,aACA,UACA,aACA,SACA,YACA,iBACA,cACA,UACA,WACA,aACA,SACA,gBACA,MACA,MACA,OACA,gBACA,qBACA,cACA,YACA,qBACA,YACA,WACA,YACA,cACA,0BACA,iBACA,aACA,gBACA,WACA,eACA,eACA,sBACA,aACA,WACA,YACA,YACA,WACA,sBACA,aACA,YACA,wBACA,WACA,aACA,UACA,aACA,kBACA,WACA,iBACA,eACA,yBACA,eACA,aACA,UACA,kBACA,wBACA,gBACA,YACA,gBACA,eACA,oBACA,oBACA,iBACA,SACA,WACA,MACA,eACA,UACA,YACA,cACA,iCACA,kBACA,SACA,UACA,YACA,gBACA,gBACA,aACA,WACA,aACA,aACA,aACA,2BACA,sBACA,eACA,wBACA,kBACA,oBACA,WACA,YACA,aACA,aACA,mBACA,mBACA,yBACA,YACA,wBACA,sBACA,WACA,YACA,aACA,aACA,gBACA,YACA,gBACA,YAGyB3R,KAAI8Q,IAAU,CAAMxY,MAAOwY,EAAYna,MAAOma,Q,SC7GzE,MAAM7Y,GAAYN,IAAOG,IAAGN,QAAAC,YAAA,kCAItBY,GAAQV,IAAOW,MAAKF,QAAAX,YAAA,uHAQpBsa,GAAcpa,IAAOG,IAAGS,QAAAd,YAAA,+DAKxBua,GAAgBra,IAAOG,IAAGY,QAAAjB,YAAA,iCAI1BT,GAAQW,IAAOG,IAAGc,QAAAnB,YAAA,2MAYlBoB,GAAelB,IAAOmB,KAAIC,QAAAtB,YAAA,uDAK1Bw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","file":"static/js/main.4c46a5f3.chunk.js","sourcesContent":["/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"us-east-2\",\n \"aws_appsync_graphqlEndpoint\": \"https://y7cqm2glcrcfddczv46ite4fkm.appsync-api.us-east-2.amazonaws.com/graphql\",\n \"aws_appsync_region\": \"us-east-2\",\n \"aws_appsync_authenticationType\": \"AMAZON_COGNITO_USER_POOLS\",\n \"aws_cognito_identity_pool_id\": \"us-east-2:a2a46898-0cab-4d5f-936b-69e93437d64c\",\n \"aws_cognito_region\": \"us-east-2\",\n \"aws_user_pools_id\": \"us-east-2_TmW6bW5UJ\",\n \"aws_user_pools_web_client_id\": \"c5vfi2rp6mcv7t4b9894qu3eb\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"aws_user_files_s3_bucket\": \"capitariaplatformmaster-master\",\n \"aws_user_files_s3_bucket_region\": \"us-east-2\"\n};\n\n\nexport default awsmobile;\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nimport * as APITypes from \"../API\";\ntype GeneratedQuery = string & {\n __generatedQueryInput: InputType;\n __generatedQueryOutput: OutputType;\n};\n\nexport const getInstrumentsPrice = /* GraphQL */ `query GetInstrumentsPrice(\n $nemo: String!\n $date: String\n $start: String\n $end: String\n) {\n getInstrumentsPrice(nemo: $nemo, date: $date, start: $start, end: $end)\n}\n` as GeneratedQuery<\n APITypes.GetInstrumentsPriceQueryVariables,\n APITypes.GetInstrumentsPriceQuery\n>;\nexport const getOpportunities = /* GraphQL */ `query GetOpportunities($quantity: String) {\n getOpportunities(quantity: $quantity)\n}\n` as GeneratedQuery<\n APITypes.GetOpportunitiesQueryVariables,\n APITypes.GetOpportunitiesQuery\n>;\nexport const info = /* GraphQL */ `query Info($cognitoId: ID!) {\n info(cognitoId: $cognitoId) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedQuery;\nexport const getSubaccountsAndTransactions = /* GraphQL */ `query GetSubaccountsAndTransactions($cognitoId: ID!) {\n getSubaccountsAndTransactions(cognitoId: $cognitoId)\n}\n` as GeneratedQuery<\n APITypes.GetSubaccountsAndTransactionsQueryVariables,\n APITypes.GetSubaccountsAndTransactionsQuery\n>;\nexport const getUserBroker = /* GraphQL */ `query GetUserBroker($cognitoId: ID!) {\n getUserBroker(cognitoId: $cognitoId)\n}\n` as GeneratedQuery<\n APITypes.GetUserBrokerQueryVariables,\n APITypes.GetUserBrokerQuery\n>;\nexport const getTokenNuvei = /* GraphQL */ `query GetTokenNuvei(\n $cognitoId: ID!\n $amount: String!\n $currency: String!\n $country: String!\n) {\n getTokenNuvei(\n cognitoId: $cognitoId\n amount: $amount\n currency: $currency\n country: $country\n )\n}\n` as GeneratedQuery<\n APITypes.GetTokenNuveiQueryVariables,\n APITypes.GetTokenNuveiQuery\n>;\nexport const getUserExecutivesTeam = /* GraphQL */ `query GetUserExecutivesTeam($cognitoId: ID!) {\n getUserExecutivesTeam(cognitoId: $cognitoId)\n}\n` as GeneratedQuery<\n APITypes.GetUserExecutivesTeamQueryVariables,\n APITypes.GetUserExecutivesTeamQuery\n>;\nexport const getRiskProfileQuestions = /* GraphQL */ `query GetRiskProfileQuestions {\n getRiskProfileQuestions\n}\n` as GeneratedQuery<\n APITypes.GetRiskProfileQuestionsQueryVariables,\n APITypes.GetRiskProfileQuestionsQuery\n>;\nexport const getKnowledgeProfileQuestions = /* GraphQL */ `query GetKnowledgeProfileQuestions {\n getKnowledgeProfileQuestions\n}\n` as GeneratedQuery<\n APITypes.GetKnowledgeProfileQuestionsQueryVariables,\n APITypes.GetKnowledgeProfileQuestionsQuery\n>;\nexport const getUser = /* GraphQL */ `query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedQuery;\nexport const listUsers = /* GraphQL */ `query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n nextToken\n __typename\n }\n}\n` as GeneratedQuery;\n","const errorAws: any = {\n LimitExceededException: \"Se ha superado el número máximo de intentos. Intente nuevamente más tarde\",\n CodeMismatchException: \"El código que ingresaste no es válido\",\n NotAuthorizedException: \"No estás autorizado para realizar esta operación\",\n ExpiredCodeException: \"El código utilizado ha expirado. Solicite un nuevo código\",\n NetworkError: \"Problemas de conexión. Inténtalo en una red más estable\",\n}\n\nexport default errorAws\n","import * as Sentry from \"@sentry/browser\"\n\ninterface CountryType {\n [key: string]: string\n}\n\nconst COUNTRIES: CountryType = {\n CL: \"Chile\",\n PE: \"Peru\",\n UY: \"Uruguay\",\n MX: \"Mexico\",\n}\n\nexport const fetchCountry = async () => {\n let country = \"Uruguay\"\n\n if (process.env.REACT_APP_ENV === \"development\") return country\n\n const url = process.env.REACT_APP_URL_IPINFO || \"\"\n\n try {\n const response = await fetch(url, {\n credentials: \"omit\",\n headers: {\n Authorization: 'JhbGciOiJIUzI',\n },\n })\n const json: { countryCode: string } = await response.json()\n\n if (COUNTRIES[json.countryCode]) {\n country = COUNTRIES[json.countryCode]\n }\n } catch (error) {\n Sentry.captureException(error)\n }\n\n return country\n}\n","import * as Sentry from \"@sentry/browser\"\n\n/**\n * Guarda la información relevante en Sentry que permita tener un mayor\n * control respecto a los errores que son enviados a esta.\n * Se debe utilizar en información relevante que se necesite de los usuarios\n * justo despues del inicio de un metodo o función\n *\n * @param params Un objeto donde el index y el valor seran enviados a sentry como información adicional.\n */\nexport const setTagsSentry = (params: Params) => {\n Sentry.configureScope(scope => {\n for (let index in params) {\n scope.setExtra(index, params[index])\n }\n })\n}\n","import amplitude from \"amplitude-js\"\n\ntype Params = {\n [key: string]: string\n}\n\n/**\n * Esta función estara temporalmente aquí, ya que el paquete de\n * capitaria/capitaria-utms tiene la misma funcionalidad\n */\nexport const getQueryParams = (qs: string) => {\n qs = qs.split(\"+\").join(\" \")\n\n const params: Params = {}\n let tokens\n const re = /\\butm_([^=]+)=([^&]+)/g\n\n while ((tokens = re.exec(qs))) {\n params[\"utm_\" + decodeURIComponent(tokens[1])] = decodeURIComponent(\n tokens[2]\n )\n }\n\n return params\n}\n\nexport const pathnameToEventName = (pathname: string) =>\n pathname.slice(1).replace(/\\//g, \":\")\n\nexport const trackPage = (\n pathname: string,\n mcOrigen?: string,\n withParams?: boolean\n) => {\n if (pathname !== \"/\") {\n let properties: any = { pageview: pathname }\n if (mcOrigen) properties.mc_origen = mcOrigen\n\n const utm_params = getQueryParams(window.location.search)\n\n if (withParams && Object.keys(utm_params).length) {\n properties = { ...utm_params, ...properties }\n }\n\n if (pathname === \"/home\") pathname = \"/profile\"\n\n trackEvent(`${pathnameToEventName(pathname)}:pageview`, properties)\n }\n}\n\nexport const trackEvent = (event: string, properties?: any) => {\n amplitude.getInstance().logEvent(event, properties)\n}\n\nexport const trackUserData = (properties: any) => {\n amplitude.getInstance().setUserProperties(properties)\n}\n\nexport const trackUserId = (userId: string) => {\n amplitude.getInstance().setUserId(userId)\n}\n\nexport const trackUserEvent = (\n event: string,\n userProperties: any,\n eventProperties?: any\n) => {\n trackUserData(userProperties)\n trackEvent(event, eventProperties)\n}\n\nexport const logoutTrackUser = () => {\n amplitude.getInstance().clearUserProperties()\n}\n\nexport const trackEventMetamap = (event: string, properties?: any) => {\n trackEvent(`metamap-v3:${event}`, properties)\n}\n","import AWS from \"aws-sdk\"\nimport { Auth, API, graphqlOperation } from \"aws-amplify\"\nimport { toast } from \"react-toastify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { info } from \"../graphql/queries\"\nimport { updateIdentityId } from \"../graphql/mutations\"\n\nimport errorAws from \"../helpers/errors-aws\"\nimport { fetchCountry } from \"../helpers/country\"\nimport { setTagsSentry } from \"../helpers/sentry\"\nimport { trackUserId, trackUserEvent, trackEvent } from \"../helpers/tracker\"\n\nexport const fetchCapitariaUser = async (cognitoUser: any) => {\n const userInfoResponse = await API.graphql(\n graphqlOperation(info, { cognitoId: cognitoUser.attributes.sub })\n )\n\n // @ts-ignore\n let capitariaUser: User = userInfoResponse.data.info\n\n if (!capitariaUser.identityId) {\n const currentCredentials = await Auth.currentCredentials()\n const response = await API.graphql(\n graphqlOperation(updateIdentityId, {\n id: capitariaUser.id,\n identityId: currentCredentials.identityId,\n })\n )\n // @ts-ignore\n capitariaUser = response.data.updateIdentityId\n }\n\n return capitariaUser\n}\n\ntype LogoutResponse = {\n user: null\n}\n\nexport const logout = async (): Promise => {\n await Auth.signOut()\n\n return { user: null }\n}\n\ntype SignUpResponse = {\n email: string\n password: string\n userNeedEmailValidation: boolean\n loading: boolean\n error: string\n}\n\ntype SignUpType = {\n values: UserSignUp\n parsedQueryString: {\n mc_origen?: string\n utm_medium?: string\n utm_source?: string\n utm_campaign?: string\n utm_content?: string\n utm_term?: string\n utm_id?: string\n SUBID?: string\n }\n}\n\nexport const signUp = async ({\n values,\n parsedQueryString,\n}: SignUpType): Promise => {\n setTagsSentry({ ...values, ...(parsedQueryString as Params) })\n\n const {\n utm_id,\n SUBID,\n utm_medium,\n utm_source,\n utm_campaign,\n utm_content,\n utm_term,\n mc_origen,\n } = parsedQueryString\n\n const country = await fetchCountry()\n const email = values.email.toLocaleLowerCase()\n const password = values.password\n\n trackEvent(\"sign-up:create-account\")\n\n try {\n const user = await Auth.signUp({\n username: email,\n password: password,\n attributes: {\n email,\n given_name: values.givenName,\n family_name: values.familyName,\n \"custom:signUpCountry\": country || \"Uruguay\",\n \"custom:phone\": \"\",\n \"custom:acceptPrivacyTerms\": values.acceptPrivacyTerms,\n \"custom:mcOrigen\": mc_origen || \"\",\n \"custom:utmId\": utm_id || \"\",\n \"custom:investingSubId\": SUBID || \"\",\n \"custom:utmMedium\": utm_medium?.substring(0, 50) || \"\",\n \"custom:utmSource\": utm_source?.substring(0, 50) || \"\",\n \"custom:utmCampaign\": utm_campaign?.substring(0, 50) || \"\",\n \"custom:utmContent\": utm_content?.substring(0, 255) || \"\",\n \"custom:utmTerms\": utm_term?.substring(0, 255) || \"\",\n },\n })\n\n trackUserId(user.userSub)\n\n trackUserEvent(\"sign-up:create-account:success\", {\n email,\n givenName: values.givenName,\n familyName: values.familyName,\n mc_origen,\n utm_medium,\n utm_source,\n utm_campaign,\n utm_content,\n utm_term,\n })\n\n return {\n email,\n password,\n userNeedEmailValidation: true,\n loading: false,\n error: \"\",\n }\n } catch (error) {\n let errorMessage = \"\"\n const forceError = error as any\n if (forceError.code === \"UsernameExistsException\") {\n errorMessage = \"Una cuenta con el email ingresado ya existe\"\n\n trackEvent(\"sign-up:create-account:error:account-exist\")\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n trackEvent(\"sign-up:create-account:error:generic\")\n toast.error(errorMessage)\n }\n\n return {\n email,\n password,\n userNeedEmailValidation: false,\n loading: false,\n error: errorMessage,\n }\n }\n}\n\ntype LoginResponse = {\n email: string\n password: string\n user: User | null\n userNeedEmailValidation: boolean\n error: string\n}\n\nexport const login = async (\n email: string,\n password: string,\n mcOrigen: string\n): Promise => {\n setTagsSentry({ email, password })\n trackEvent(\"login:sign-in\")\n\n try {\n const cognitoUser = await Auth.signIn(email, password)\n const capitariaUser = await fetchCapitariaUser(cognitoUser)\n\n trackUserId(capitariaUser.cognitoId)\n trackUserEvent(\n \"login:sign-in:success\",\n {\n email: capitariaUser.email,\n givenName: capitariaUser.givenName,\n familyName: capitariaUser.familyName,\n phone: capitariaUser.phone,\n },\n {\n mc_origen: mcOrigen,\n }\n )\n\n return {\n email,\n password,\n user: capitariaUser,\n userNeedEmailValidation: false,\n error: \"\",\n }\n } catch (error) {\n let errorMessage = \"Email o contraseña incorrecta\"\n let userNeedEmailValidation = false\n const forceError = error as any\n if (\n forceError.code === \"UserNotFoundException\" ||\n forceError.code === \"NotAuthorizedException\"\n ) {\n errorMessage = \"Email o contraseña incorrecta\"\n\n trackEvent(\"login:sign-in:error:invalid-credentials\")\n } else if (forceError.code === \"UserNotConfirmedException\") {\n errorMessage = \"Debe validar su correo antes de continuar\"\n userNeedEmailValidation = true\n\n trackEvent(\"login:sign-in:error:email-not-validated\")\n toast.warn(errorMessage)\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"login:sign-in:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n }\n\n await Auth.signOut()\n\n return {\n email,\n password,\n user: null,\n userNeedEmailValidation,\n error: errorMessage,\n }\n }\n}\n\nexport const autoLogin = async (): Promise => {\n try {\n const cognitoUser = await Auth.currentAuthenticatedUser()\n\n if (cognitoUser) {\n // Fix clockDrift error: https://github.com/aws-amplify/amplify-js/pull/4251#issuecomment-568915659\n AWS.config = new AWS.Config({\n systemClockOffset: -(cognitoUser.signInUserSession.clockDrift * 1000),\n })\n }\n\n const capitariaUser = await fetchCapitariaUser(cognitoUser)\n\n return capitariaUser\n } catch (error) {\n console.log(error)\n\n return null\n }\n}\n\ntype ChangePasswordResponse = {\n user: User | null\n email: string\n loading: boolean\n error: string\n}\n\nexport const changePassword = async (\n email: string,\n password: string,\n code: string,\n mcOrigen: string\n): Promise => {\n trackEvent(\"forgot-password:change-password\")\n\n try {\n await Auth.forgotPasswordSubmit(email, code, password)\n\n const cognitoUser = await Auth.signIn(email, password)\n const capitariaUser = await fetchCapitariaUser(cognitoUser)\n\n trackUserId(cognitoUser.attributes.sub)\n trackUserEvent(\n \"forgot-password:change-password:success\",\n {\n email: capitariaUser.email,\n givenName: capitariaUser.givenName,\n familyName: capitariaUser.familyName,\n phone: capitariaUser.phone,\n },\n { mc_origen: mcOrigen }\n )\n\n return {\n user: capitariaUser,\n email,\n loading: false,\n error: \"\",\n }\n } catch (error) {\n let errorMessage = \"\"\n\n const forceError = error as any\n\n if (\n forceError.code === \"CodeMismatchException\" ||\n forceError.code === \"NotAuthorizedException\"\n ) {\n errorMessage = errorAws[forceError.code]\n trackEvent(\"forgot-password:change-password:error:invalid-code\")\n } else if (errorAws[forceError.code]) {\n errorMessage = errorAws[forceError.code]\n\n trackEvent(\"forgot-password:change-password:error:catch-error\", {\n error: forceError.code,\n })\n toast.error(errorAws[forceError.code])\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"forgot-password:change-password:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n }\n\n return {\n user: null,\n email,\n loading: false,\n error: errorMessage,\n }\n }\n}\n\ntype ForgotPasswordResponse = {\n email: string\n userNeedCodeValidation: boolean\n loading: boolean\n error: string\n}\n\nexport const forgotPasswordSendCode = async (\n email: string\n): Promise => {\n trackEvent(\"forgot-password:send-code\")\n\n try {\n await Auth.forgotPassword(email)\n\n trackEvent(\"forgot-password:send-code:success\")\n\n return { email, userNeedCodeValidation: true, loading: false, error: \"\" }\n } catch (error) {\n let errorMessage = \"\"\n\n const forceError = error as any\n\n if (\n forceError.code === \"UserNotFoundException\" ||\n forceError.code === \"NotAuthorizedException\"\n ) {\n errorMessage = \"No existe una cuenta correo con ese email\"\n\n trackEvent(\"forgot-password:send-code:error:account-not-exist\")\n } else if (forceError.code === \"InvalidParameterException\") {\n errorMessage =\n \"No se puede recuperar la contraseña. Por favor comunicate a hzurita@capitaria.com explicando este error\"\n\n const params = {\n code: forceError.code,\n message: forceError.message,\n }\n trackUserEvent(\n \"forgot-password:send-code:error:email-not-validated\",\n {\n email,\n },\n params\n )\n } else if (errorAws[forceError.code]) {\n errorMessage = errorAws[forceError.code]\n\n trackEvent(\"forgot-password:send-code:error:catch-error\", {\n error: forceError.code,\n })\n toast.error(errorAws[forceError.code])\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"forgot-password:send-code:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n }\n\n return {\n email,\n userNeedCodeValidation: false,\n loading: false,\n error: errorMessage,\n }\n }\n}\n\ntype confirmSignUpAndSignInResponse = {\n user: User | null\n loading: boolean\n error: string\n}\n\nexport const confirmSignUpAndSignIn = async (\n email: string,\n password: string,\n code: string\n): Promise => {\n try {\n await Auth.confirmSignUp(email, code)\n const cognitoUser = await Auth.signIn(email, password)\n const capitariaUser = await fetchCapitariaUser(cognitoUser)\n\n return {\n user: capitariaUser,\n loading: false,\n error: \"\",\n }\n } catch (error) {\n let errorMessage = \"\"\n\n const forceError = error as any\n\n if (\n forceError.code === \"CodeMismatchException\" ||\n forceError.code === \"NotAuthorizedException\"\n ) {\n errorMessage = errorAws[forceError.code]\n\n trackEvent(\"validate-email:error:invalid-code\")\n } else if (errorAws[forceError.code]) {\n errorMessage = errorAws[forceError.code]\n\n trackEvent(\"validate-email:error:catch-error\", {\n error: forceError.code,\n })\n\n toast.error(errorMessage)\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n trackEvent(\"validate-email:error:generic\")\n toast.error(errorMessage)\n }\n\n return {\n user: null,\n loading: false,\n error: errorMessage,\n }\n }\n}\n\ntype ResendValidateCodeResponse = {\n loading: boolean\n error: string\n}\n\nexport const resendValidateCode = async (\n email: string\n): Promise => {\n try {\n trackEvent(\"validate-email:resend-code\")\n\n await Auth.resendSignUp(email)\n toast.success(\"Se ha enviado un nuevo código a su correo\")\n\n return {\n loading: false,\n error: \"\",\n }\n } catch (error) {\n let errorMessage = \"\"\n\n const forceError = error as any\n\n if (errorAws[forceError.code]) {\n errorMessage = errorAws[forceError.code]\n\n trackEvent(\"validate-email:error:catch-error\", {\n error: forceError.code,\n })\n toast.error(errorMessage)\n } else {\n errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(\"Error al enviar el código nuevamente\")\n trackEvent(\"validate-email:error:generic\")\n toast.error(errorMessage)\n }\n\n return {\n loading: false,\n error: errorMessage,\n }\n }\n}\n","/* tslint:disable */\n/* eslint-disable */\n// this is an auto generated file. This will be overwritten\n\nimport * as APITypes from \"../API\";\ntype GeneratedMutation = string & {\n __generatedMutationInput: InputType;\n __generatedMutationOutput: OutputType;\n};\n\nexport const getPaymentMercadoPago = /* GraphQL */ `mutation GetPaymentMercadoPago(\n $id: ID!\n $paymentId: String!\n $salesforceId: String!\n) {\n getPaymentMercadoPago(\n id: $id\n paymentId: $paymentId\n salesforceId: $salesforceId\n ) {\n payment_id\n amount\n payment_date\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.GetPaymentMercadoPagoMutationVariables,\n APITypes.GetPaymentMercadoPagoMutation\n>;\nexport const createPreferenceMercadoPago = /* GraphQL */ `mutation CreatePreferenceMercadoPago(\n $id: ID!\n $amount: Int!\n $salesforceId: String!\n) {\n createPreferenceMercadoPago(\n id: $id\n amount: $amount\n salesforceId: $salesforceId\n ) {\n preference_id\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.CreatePreferenceMercadoPagoMutationVariables,\n APITypes.CreatePreferenceMercadoPagoMutation\n>;\nexport const updatePhone = /* GraphQL */ `mutation UpdatePhone($id: ID!, $phone: String!, $kyc: Boolean) {\n updatePhone(id: $id, phone: $phone, kyc: $kyc) {\n updatedPhone\n reload\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdatePhoneMutationVariables,\n APITypes.UpdatePhoneMutation\n>;\nexport const confirmCode = /* GraphQL */ `mutation ConfirmCode($id: ID!, $code: String!, $kyc: Boolean) {\n confirmCode(id: $id, code: $code, kyc: $kyc) {\n confirmPhone\n wasPhoneValidate\n kycNextStep\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.ConfirmCodeMutationVariables,\n APITypes.ConfirmCodeMutation\n>;\nexport const notReceivedCode = /* GraphQL */ `mutation NotReceivedCode($id: ID!, $kyc: Boolean) {\n notReceivedCode(id: $id, kyc: $kyc) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.NotReceivedCodeMutationVariables,\n APITypes.NotReceivedCodeMutation\n>;\nexport const validateIdentity = /* GraphQL */ `mutation ValidateIdentity($id: ID!, $cognitoId: ID!) {\n validateIdentity(id: $id, cognitoId: $cognitoId) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.ValidateIdentityMutationVariables,\n APITypes.ValidateIdentityMutation\n>;\nexport const createEvent = /* GraphQL */ `mutation CreateEvent($id: ID!, $event: EventInput!) {\n createEvent(id: $id, event: $event)\n}\n` as GeneratedMutation<\n APITypes.CreateEventMutationVariables,\n APITypes.CreateEventMutation\n>;\nexport const updateCustomerType = /* GraphQL */ `mutation UpdateCustomerType($id: ID!, $customerType: CustomerType!) {\n updateCustomerType(id: $id, customerType: $customerType) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateCustomerTypeMutationVariables,\n APITypes.UpdateCustomerTypeMutation\n>;\nexport const updatePersonalInfo = /* GraphQL */ `mutation UpdatePersonalInfo($id: ID!, $personalInfo: PersonalInfo!) {\n updatePersonalInfo(id: $id, personalInfo: $personalInfo) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdatePersonalInfoMutationVariables,\n APITypes.UpdatePersonalInfoMutation\n>;\nexport const updateSelectCourse = /* GraphQL */ `mutation UpdateSelectCourse($id: ID!, $course: String!) {\n updateSelectCourse(id: $id, course: $course) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateSelectCourseMutationVariables,\n APITypes.UpdateSelectCourseMutation\n>;\nexport const updateValidationDeposit = /* GraphQL */ `mutation UpdateValidationDeposit($id: ID!) {\n updateValidationDeposit(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateValidationDepositMutationVariables,\n APITypes.UpdateValidationDepositMutation\n>;\nexport const updatePlatform = /* GraphQL */ `mutation UpdatePlatform($id: ID!) {\n updatePlatform(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdatePlatformMutationVariables,\n APITypes.UpdatePlatformMutation\n>;\nexport const updateRiskProfile = /* GraphQL */ `mutation UpdateRiskProfile($id: ID!, $userAnswer: AWSJSON!) {\n updateRiskProfile(id: $id, userAnswer: $userAnswer) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateRiskProfileMutationVariables,\n APITypes.UpdateRiskProfileMutation\n>;\nexport const updateKnowledgeProfile = /* GraphQL */ `mutation UpdateKnowledgeProfile($id: ID!, $userAnswer: AWSJSON!) {\n updateKnowledgeProfile(id: $id, userAnswer: $userAnswer) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateKnowledgeProfileMutationVariables,\n APITypes.UpdateKnowledgeProfileMutation\n>;\nexport const updateGoodTraderProfile = /* GraphQL */ `mutation UpdateGoodTraderProfile($id: ID!) {\n updateGoodTraderProfile(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateGoodTraderProfileMutationVariables,\n APITypes.UpdateGoodTraderProfileMutation\n>;\nexport const updateValidatePersonalInfo = /* GraphQL */ `mutation UpdateValidatePersonalInfo($id: ID!) {\n updateValidatePersonalInfo(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateValidatePersonalInfoMutationVariables,\n APITypes.UpdateValidatePersonalInfoMutation\n>;\nexport const updateRiskBadTraderProfile = /* GraphQL */ `mutation UpdateRiskBadTraderProfile($id: ID!) {\n updateRiskBadTraderProfile(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateRiskBadTraderProfileMutationVariables,\n APITypes.UpdateRiskBadTraderProfileMutation\n>;\nexport const updateTerms = /* GraphQL */ `mutation UpdateTerms($id: ID!, $acceptTerms: Boolean!) {\n updateTerms(id: $id, acceptTerms: $acceptTerms) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateTermsMutationVariables,\n APITypes.UpdateTermsMutation\n>;\nexport const updateDeposit = /* GraphQL */ `mutation UpdateDeposit($id: ID!) {\n updateDeposit(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateDepositMutationVariables,\n APITypes.UpdateDepositMutation\n>;\nexport const skipDeposit = /* GraphQL */ `mutation SkipDeposit($id: ID!) {\n skipDeposit(id: $id) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.SkipDepositMutationVariables,\n APITypes.SkipDepositMutation\n>;\nexport const updateIdFileUploaded = /* GraphQL */ `mutation UpdateIdFileUploaded(\n $id: ID!\n $uploaded: Boolean!\n $country: CountryType!\n $typeDocument: String!\n $kyc: Boolean\n) {\n updateIdFileUploaded(\n id: $id\n uploaded: $uploaded\n country: $country\n typeDocument: $typeDocument\n kyc: $kyc\n ) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateIdFileUploadedMutationVariables,\n APITypes.UpdateIdFileUploadedMutation\n>;\nexport const updateLivenessFileUploaded = /* GraphQL */ `mutation UpdateLivenessFileUploaded(\n $id: ID!\n $uploaded: Boolean!\n $kyc: Boolean\n) {\n updateLivenessFileUploaded(id: $id, uploaded: $uploaded, kyc: $kyc) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateLivenessFileUploadedMutationVariables,\n APITypes.UpdateLivenessFileUploadedMutation\n>;\nexport const updateAddressFileUploaded = /* GraphQL */ `mutation UpdateAddressFileUploaded($id: ID!, $uploaded: Boolean!) {\n updateAddressFileUploaded(id: $id, uploaded: $uploaded) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateAddressFileUploadedMutationVariables,\n APITypes.UpdateAddressFileUploadedMutation\n>;\nexport const updateCardFileUploaded = /* GraphQL */ `mutation UpdateCardFileUploaded(\n $id: ID!\n $uploaded: Boolean!\n $kyc: Boolean!\n $ommit: Boolean!\n) {\n updateCardFileUploaded(\n id: $id\n uploaded: $uploaded\n kyc: $kyc\n ommit: $ommit\n ) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateCardFileUploadedMutationVariables,\n APITypes.UpdateCardFileUploadedMutation\n>;\nexport const updateIdentityId = /* GraphQL */ `mutation UpdateIdentityId($id: ID!, $identityId: ID!) {\n updateIdentityId(id: $id, identityId: $identityId) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateIdentityIdMutationVariables,\n APITypes.UpdateIdentityIdMutation\n>;\nexport const updateUser = /* GraphQL */ `mutation UpdateUser(\n $input: UpdateUserInput!\n $condition: ModelUserConditionInput\n) {\n updateUser(input: $input, condition: $condition) {\n id\n cognitoId\n identityId\n salesforceId\n givenName\n familyName\n email\n phone\n birth\n dni\n signUpCountry\n originCountry\n residenceCountry\n city\n address\n job\n liveInUSA\n isPEP\n riskProfile\n riskPoints\n knowledgeProfile\n knowledgePoints\n userProfileSignature\n isKycApproved\n acceptTerms\n userAcceptTermsSignature\n customerStatus\n customerType\n customerCategory\n kycNextStep\n sf_Broker__c\n subaccounts {\n total_deposit_clp\n total_ransom_pen\n total_deposit_usd\n total_ransom_clp\n total_ransom_usd\n total_deposit_pen\n name\n currency\n __typename\n }\n wasIdFileUploaded\n userIdFileSignature\n frontSideIdFilePath\n backSideIdFilePath\n wasAddressFileUploaded\n userAddressFileSignature\n addressFilePath\n wasCardFileUploaded\n userCardFileSignature\n cardFilePath\n wasLivenessFileUploaded\n confirmPhone\n wasPhoneValidate\n wasCreatedInMarketingCloud\n wasCreatedInSalesforce\n needKyc\n utmSource\n utmMedium\n utmCampaign\n utmId\n createdAt\n updatedAt\n validatePersonalInfo\n __typename\n }\n}\n` as GeneratedMutation<\n APITypes.UpdateUserMutationVariables,\n APITypes.UpdateUserMutation\n>;\n","import React, { useEffect, useContext, createContext, useState } from \"react\"\n\nimport { autoLogin } from \"../services/auth\"\n\ntype State = {\n user: User | null\n setUser: React.Dispatch>\n userIsLoading: boolean\n firstLoad: boolean\n setFirstLoad: React.Dispatch>\n}\n\nconst initState: State = {\n user: null,\n setUser: () => { },\n userIsLoading: false,\n firstLoad: false,\n setFirstLoad: () => { },\n}\n\nconst AuthContext = createContext({\n state: { ...initState },\n})\n\nconst AuthProvider = (props: any) => {\n const [user, setUser] = useState(null as User | null)\n const [firstLoad, setFirstLoad] = useState(false)\n const [userIsLoading, setUserIsLoading] = useState(true)\n\n useEffect(() => {\n const getCurrentUser = async () => {\n setUserIsLoading(true)\n\n const loggedUser = await autoLogin()\n setUser(loggedUser)\n setUserIsLoading(false)\n }\n\n getCurrentUser()\n }, [])\n\n return (\n \n )\n}\n\nconst useAuth = () => {\n const context = useContext(AuthContext)\n\n if (context === undefined) {\n throw new Error(`useAuth must be used within a AuthProvider`)\n }\n\n return context\n}\n\nexport { AuthProvider, useAuth }\n","import React from \"react\"\nimport { Global, css } from \"@emotion/react\"\n\nconst PublicLayout = ({ children }: { children: React.ReactNode }) => (\n <>\n div {\n height: 100%;\n }\n `}\n />\n {children}\n \n)\n\nexport default PublicLayout\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst DisclaimerText = styled.section`\n font-family: Nunito;\n font-style: normal;\n font-weight: 600;\n font-size: 0.5625em;\n line-height: 140%;\n text-align: center;\n color: #888888;\n padding: 2rem 0;\n margin: 0 2rem;\n max-width: 920px;\n`\n\nconst Disclaimer = () => (\n \n ......En los mercados financieros se generan rápidos movimientos que pueden\n conllevar a un elevado riesgo de pérdidas. Por esta razón, participar\n activamente en estos mercados con apalancamiento financiero, solo es\n aconsejable para aquellos participantes que puedan asumir dicho riesgo.\n Cualquier análisis o consejo sobre el mercado comunicado a través de\n www.capitaria.com o de algún correo electrónico con este remitente, debe ser\n considerado como una opinión, y nunca como una garantía. En ningún caso y\n bajo ningún concepto, Capitaria se hace responsable de las posibles pérdidas\n incurridas por nuestros clientes. Todo cliente potencial de Capitaria debe\n tener en cuenta que su capital puede verse tanto incrementado como\n disminuido, no debiendo participar en este mercado sin antes considerar si\n esta manera de operar es la adecuada para él, en función de sus condiciones\n económicas. Los clientes potenciales deben también tener en cuenta que no se\n pueden garantizar los resultados de las operaciones, y que los resultados\n obtenidos en el pasado no garantizan resultados futuros. El trading implica\n un alto riesgo y un cliente puede perder una cantidad sustancial de dinero,\n no importando qué método utilice. Capitaria ofrece instrumentos transados a\n través de CFD's, que no están regulados por alguna entidad local.*Argentina:\n depósitos y retiros de dinero sólo con cuenta bancaria en el extranjero*\n \n)\n\nexport default Disclaimer\n","export default __webpack_public_path__ + \"static/media/error-icon.aed0a2ca.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport errorIcon from \"../../../images/error-icon.svg\"\n\nconst Error = styled.div`\n background-image: url(${errorIcon});\n background-repeat: no-repeat;\n background-size: cover;\n padding: 7px;\n`\n\nconst ErrorIcon = () => \n\nexport default ErrorIcon\n","\nimport { FocusEvent, ChangeEvent } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\nimport { SerializedStyles } from \"@emotion/react\"\n\nconst FormGroup = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n flex-direction: column;\n margin-bottom: 1rem;\n\n ${(props) => props.customStyles}\n`\n\nconst LabelWrapper = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n justify-content: space-between;\n width: 100%;\n\n ${(props) => props.customStyles}\n`\n\nconst Label = styled.label<{ customStyles?: SerializedStyles }>`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n\n ${(props) => props.customStyles}\n`\n\nconst Input = styled.input<{ customStyles?: SerializedStyles }>`\n border: 1px solid ${(props: any) => props.hasError ? \"#e76a6a\" : \"#e8e8e8\"};\n border-radius: 5px;\n padding: 10px;\n @media (max-width: 425px) {\n width: 368px;\n height: 50px;\n }\n\n ${(props) => props.customStyles}\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n @media (max-width: 812px) {\n max-width: 300px;\n }\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\ntype Props = {\n label: string\n sublabel?: string | React.ReactNode\n name: string\n placeholder?: string\n type?: string\n tabIndex?: number | null\n value?: string\n style?: SerializedStyles\n onChange?: (event: ChangeEvent) => void\n onBlur?: (event: FocusEvent) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n styleLabel?: SerializedStyles\n styleGroup?: SerializedStyles\n styleLabelWrapper?: SerializedStyles\n id?: any\n}\n\nconst CustomInput = ({\n label,\n sublabel,\n name,\n placeholder,\n type = \"text\",\n tabIndex = null,\n value,\n style,\n styleLabel,\n onChange,\n onBlur,\n hasError,\n errorMessage,\n id,\n styleGroup,\n styleLabelWrapper,\n}: Props) => {\n const othersProps: { tabIndex?: number } = {}\n\n if (tabIndex) {\n othersProps.tabIndex = tabIndex\n }\n\n return (\n \n \n \n {sublabel}\n \n\n \n\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n )\n}\n\nexport default CustomInput\n","export default __webpack_public_path__ + \"static/media/spinner.b7028800.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport spinnerIcon from \"../../../images/spinner.svg\"\n\nconst Spinner = styled.div`\n background-image: url(${spinnerIcon});\n background-repeat: no-repeat;\n background-size: cover;\n width: 36px;\n height: 36px;\n`\n\nconst SpinnerIcon = () => \n\nexport default SpinnerIcon\n","import { SerializedStyles } from \"@emotion/react\"\nimport { MouseEvent } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport SpinnerIcon from \"../ui/images/spinner-icon\"\n\nconst Button = styled.button<{ customStyles?: SerializedStyles }>`\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n border-radius: 5px;\n height: 48px;\n padding: 12px 64px;\n color: #ffffff;\n text-transform: none;\n cursor: pointer;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n\n ${(props) => props.customStyles}\n`\n\nconst FakeButton = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n border-radius: 5px;\n padding: 12px 64px;\n color: #ffffff;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n\n ${(props) => props.customStyles}\n`\n\nconst DisabledButton = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n background-color: #c2c2c2;\n border-radius: 5px;\n padding: 12px 64px;\n color: #ffffff;\n border: 0;\n\n ${(props) => props.customStyles}\n`\n\ntype Props = {\n loading?: boolean\n disabled?: boolean\n type?: \"button\" | \"reset\" | \"submit\" | undefined\n style?: SerializedStyles\n disabledStyle?: SerializedStyles\n loadingStyle?: SerializedStyles\n children: any\n onClick?: (event: MouseEvent) => void\n className?: string\n}\n\nconst ButtonCustom = ({\n loading = false,\n disabled = false,\n type = \"button\",\n style,\n disabledStyle,\n loadingStyle,\n children,\n onClick,\n className\n}: Props) => {\n if (loading) {\n return (\n \n \n \n )\n }\n\n if (disabled) {\n return {children}\n }\n\n return (\n \n )\n}\n\nexport default ButtonCustom\n","export default __webpack_public_path__ + \"static/media/isotype-bg.4dad5c59.png\";","export default __webpack_public_path__ + \"static/media/logo-capitaria-black.c979da24.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport logoCapitaria from \"../../../images/logo-capitaria-black.svg\"\n\nconst LogoCapitaria = styled.div`\n background-image: url(${logoCapitaria});\n background-repeat: no-repeat;\n background-size: cover;\n width: 138px;\n height: 30px;\n @media (max-width: 812px) {\n width: 123.585px;\n height: 27px;\n }\n`\n\nconst LogoCapitariaBlack = () => \n\nexport default LogoCapitariaBlack\n","import React from \"react\"\nimport { Link } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport * as Yup from \"yup\"\n\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\n\nimport Disclaimer from \"../disclaimer\"\nimport CustomInput from \"../ui/custom-form-input\"\nimport CustomButton from \"../ui/custom-button\"\n\nimport isotypeBg from \"../../images/isotype-bg.png\"\nimport CapitariaLogoBlack from \"../ui/images/capitaria-logo-black\"\nimport { trackEvent } from \"../../helpers/tracker\"\nimport { css } from \"@emotion/react\"\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-position: right;\n background-size: 450px 100%;\n background-image: url(${isotypeBg});\n background-repeat: no-repeat;\n @media (max-width: 812px) {\n background: transparent;\n padding-bottom: 2rem;\n }\n`\n\nconst Content = styled.section`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media (max-width: 812px) {\n padding: 4rem 0 7rem;\n }\n`\n\nconst Description = styled.p`\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n margin: 0;\n text-align: center;\n @media (max-width: 812px) {\n font-family: \"Open Sans\";\n font-size: 16px;\n line-height: 22px;\n text-align: center;\n max-width: 166px;\n margin-top: 1rem;\n }\n`\n\nconst Form = styled.form`\n padding-top: 2em;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst NavBar = styled.nav`\n padding-top: 2em;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n @media (max-width: 812px) {\n justify-content: space-between;\n padding: 2rem 1.25rem 0;\n }\n`\n\nconst LogoWrapper = styled.div`\n display: none;\n @media (max-width: 812px) {\n display: block;\n }\n`\n\nconst CreateAccountMsg = styled.span`\n font-weight: 600;\n line-height: 140%;\n font-size: 0.875em;\n color: #1f2425;\n @media (max-width: 812px) {\n display: none;\n }\n`\n\nconst StyledLink = styled(Link)`\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n border-radius: 5px;\n margin: 0 2rem;\n padding: 12px 24px;\n color: #ffffff;\n text-transform: none;\n text-decoration: none;\n cursor: pointer;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n @media (max-width: 812px) {\n padding: 12px;\n margin: 0;\n }\n`\n\nconst ForgotPassordLink = styled(Link)`\n font-size: 12px;\n line-height: 140%;\n color: #505050;\n text-decoration: none;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n height: 48px;\n width: 100%;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst loadingButtonCss = buttonCSS\n\nconst inputCSS = css`\n width: 350px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst Error = styled.p`\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n text-align: center;\n padding: 0;\n @media (max-width: 812px) {\n max-width: 300px;\n }\n`\n\nconst Title = styled.h1`\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: bold;\n font-size: 27.65px;\n line-height: 116%;\n margin: 0;\n color: #1f2425;\n @media (max-width: 812px) {\n text-align: center;\n max-width: 166px;\n }\n`\n\nconst LoginSchema = Yup.object().shape({\n email: Yup.string()\n .email(\"El email ingresado no es válido\")\n .required(\"Este campo es requerido\"),\n password: Yup.string().required(\"Este campo es requerido\"),\n})\n\ntype Props = {\n loading: boolean\n onSubmit: (name: string, password: string) => void\n submitError: string\n}\n\nconst LoginContent = ({ loading, onSubmit, submitError }: Props) => {\n const queryStringParams = useQueryString()\n\n return (\n \n \n \n \n \n\n ¿No tienes una cuenta?\n {\n trackEvent(\"login:link-to:sign-up\")\n }}\n >\n Crea tu cuenta\n \n \n \n Bienvenido a Capitaria\n Ingresa tus datos para entrar a tu perfil\n\n {\n onSubmit(values.email, values.password)\n }}\n >\n {props => {\n const {\n values,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props\n return (\n
\n \n\n {\n trackEvent(\"login:link-to:forgot-password\")\n }}\n >\n Olvidé mi contraseña\n \n }\n type=\"password\"\n style={inputCSS}\n tabIndex={2}\n value={values.password}\n onChange={handleChange}\n onBlur={handleBlur}\n hasError={errors.password && touched.password}\n errorMessage={errors.password}\n />\n\n \n ENTRAR\n \n\n {submitError.length > 0 && {submitError}}\n \n )\n }}\n \n
\n \n
\n )\n}\n\nexport default LoginContent\n","import { SerializedStyles } from \"@emotion/react\"\nimport { MouseEvent } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport SpinnerIcon from \"../ui/images/spinner-icon\"\n\nconst Button = styled.button<{ customStyles?: SerializedStyles }>`\n background: #2ba770;\n border-radius: 5px;\n height: 48px;\n color: #ffffff;\n text-transform: none;\n cursor: pointer;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n padding: 16px 0px;\n font-family: \"Roboto\";\n\n ${(props) => props.customStyles}\n`\n\nconst FakeButton = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n background: #2ba770;\n border-radius: 5px;\n color: #ffffff;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n padding: 16px 0px;\n ${(props) => props.customStyles}\n`\n\nconst DisabledButton = styled.div<{ customStyles?: SerializedStyles }>`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n background-color: #c2c2c2;\n border-radius: 5px;\n color: #ffffff;\n border: 0;\n ${(props) => props.customStyles}\n`\n\ntype Props = {\n loading?: boolean\n disabled?: boolean\n type?: \"button\" | \"reset\" | \"submit\" | undefined\n style?: SerializedStyles\n disabledStyle?: SerializedStyles\n loadingStyle?: SerializedStyles\n children: any\n onClick?: (event: MouseEvent) => void\n className?: string\n}\n\nconst ButtonCustomV2 = ({\n loading = false,\n disabled = false,\n type = \"button\",\n style,\n disabledStyle,\n loadingStyle,\n children,\n onClick,\n className\n}: Props) => {\n if (loading) {\n return (\n \n \n \n )\n }\n\n if (disabled) {\n return {children}\n }\n\n return (\n \n )\n}\n\nexport default ButtonCustomV2\n","export default __webpack_public_path__ + \"static/media/gmail.a6980c8f.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport gmailLogo from \"../../../images/gmail.svg\"\n\nconst GmailImage = styled.img`\n width: 27px;\n height: 27px;\n`\n\nconst GmailLogo = () => (\n \n)\n\nexport default GmailLogo\n","import React, { useMemo } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport ErrorIcon from \"./images/error-icon\"\nimport { SerializedStyles } from \"@emotion/react\"\n\nconst RE_DIGIT = new RegExp(/^\\d+$/)\n\n\nconst ContentInputsCodeConfirmPhone = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n min-width: 189px;\n margin-bottom: 5%;\n input {\n width: 42px;\n height: 43px;\n flex-shrink: 0;\n border: 1px solid #DFE3E8;\n border-radius: 5px;\n text-align: center;\n font-size: 14px;\n font-family: \"Roboto\";\n line-height: 17.5px;\n }\n &.error input {\n border: 1px solid #E76A6A;\n }\n`\n\nconst LabelWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n`\n\nconst Label = styled.label<{ customStyles?: SerializedStyles }>`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n ${(props) => props.customStyles}\n`\n\nconst ErrorOTP = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n @media (max-width: 812px) {\n max-width: 300px;\n }\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\ntype OTPProps = {\n label: string\n sublabel?: string | React.ReactNode\n name: string\n styleLabel?: SerializedStyles\n value: string\n valueLength: number\n onChange: (value: string) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n}\n\nconst OtpInput = ({\n label,\n sublabel,\n name,\n styleLabel,\n value,\n valueLength,\n onChange,\n hasError,\n errorMessage,\n}: OTPProps) => {\n const valueItems = useMemo(() => {\n const valueArray = value.split('')\n const items: Array = []\n\n for (let i = 0; i < valueLength; i++) {\n const char = valueArray[i]\n\n if (RE_DIGIT.test(char)) {\n items.push(char)\n } else {\n items.push('')\n }\n }\n\n return items\n }, [value, valueLength])\n\n const focusToNextInput = (target: HTMLElement) => {\n const nextElementSibling =\n target.nextElementSibling as HTMLInputElement | null\n\n if (nextElementSibling) {\n nextElementSibling.focus()\n }\n }\n const focusToPrevInput = (target: HTMLElement) => {\n const previousElementSibling =\n target.previousElementSibling as HTMLInputElement | null\n\n if (previousElementSibling) {\n previousElementSibling.focus()\n }\n }\n const inputOnChange = (\n e: React.ChangeEvent,\n idx: number\n ) => {\n const target = e.target\n let targetValue = target.value.trim()\n const isTargetValueDigit = RE_DIGIT.test(targetValue)\n\n if (!isTargetValueDigit && targetValue !== '') {\n return\n }\n\n const nextInputEl = target.nextElementSibling as HTMLInputElement | null\n\n // only delete digit if next input element has no value\n if (!isTargetValueDigit && nextInputEl && nextInputEl.value !== '') {\n return\n }\n\n targetValue = isTargetValueDigit ? targetValue : ' '\n\n const targetValueLength = targetValue.length\n\n if (targetValueLength === 1) {\n const newValue =\n value.substring(0, idx) + targetValue + value.substring(idx + 1)\n\n onChange(newValue.trim())\n\n if (!isTargetValueDigit) {\n return\n }\n\n focusToNextInput(target)\n } else if (targetValueLength === valueLength) {\n onChange(targetValue.trim())\n\n target.blur()\n }\n }\n const inputOnKeyDown = (e: React.KeyboardEvent) => {\n const { key } = e\n const target = e.target as HTMLInputElement\n\n if (key === 'ArrowRight' || key === 'ArrowDown') {\n e.preventDefault()\n return focusToNextInput(target)\n }\n\n if (key === 'ArrowLeft' || key === 'ArrowUp') {\n e.preventDefault()\n return focusToPrevInput(target)\n }\n\n const targetValue = target.value\n\n // keep the selection range position\n // if the same digit was typed\n target.setSelectionRange(0, targetValue.length)\n\n if (e.key !== 'Backspace' || targetValue !== '') {\n return\n }\n\n focusToPrevInput(target)\n }\n const inputOnFocus = (e: React.FocusEvent) => {\n const { target } = e\n\n // keep focusing back until previous input\n // element has value\n const prevInputEl =\n target.previousElementSibling as HTMLInputElement | null\n\n if (prevInputEl && prevInputEl.value === '') {\n return prevInputEl.focus()\n }\n\n target.setSelectionRange(0, target.value.length)\n }\n\n return (\n \n \n \n {sublabel}\n \n\n
\n {valueItems.map((digit, idx) => (\n inputOnChange(e, idx)}\n onKeyDown={inputOnKeyDown}\n onFocus={inputOnFocus}\n />\n ))}\n
\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n )\n}\n\nexport default OtpInput\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst ResendText = styled.span`\n font-size: 12px;\n font-family: Roboto;\n margin-top: 18px;\n margin-bottom: 8px;\n line-height: 140%;\n color: #363f41;\n`\n\nconst ResendLink = styled.a`\n font-size: 12px;\n text-decoration: underline;\n line-height: 140%;\n font-weight: bold;\n cursor: pointer;\n font-family: Roboto;\n &.disabled {\n color: #363f41;\n cursor: not-allowed;\n text-decoration: none;\n }\n`\n\ntype Props = {\n resendCode: () => void\n}\n\nconst TIMER = 60\n\nconst ResendCode = ({ resendCode }: Props) => {\n const [seconds, setSeconds] = useState(TIMER)\n const [isActive, setIsActive] = useState(false)\n\n useEffect(() => {\n let interval: any = null\n\n if (isActive) {\n if (seconds === 0) {\n clearInterval(interval)\n setIsActive(false)\n setSeconds(TIMER)\n } else {\n interval = setInterval(() => setSeconds(seconds => seconds - 1), 1000)\n }\n }\n return () => clearInterval(interval)\n }, [isActive, seconds])\n\n const onClick = () => {\n if (!isActive) {\n setIsActive(true)\n resendCode()\n }\n }\n\n return (\n <>\n ¿No has recibido ningún código?\n \n {!isActive\n ? \"Reenviar Código\"\n : `Puedes volver a enviar tu código en ${seconds} segundo${\n seconds !== 1 ? \"s\" : \"\"\n }`}\n \n \n )\n}\n\nexport default ResendCode\n","export default __webpack_public_path__ + \"static/media/footer-background.4dc63e01.svg\";","export default __webpack_public_path__ + \"static/media/back-arrow.56e2a63a.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport backArrow from \"../../../images/back-arrow.svg\"\n\nconst BackArrow = styled.div`\n background-image: url(${backArrow});\n background-repeat: no-repeat;\n background-size: cover;\n width: 24px;\n height: 24px;\n`\n\nconst BackArrowIcon = () => \n\nexport default BackArrowIcon\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\n\nimport footerBackground from \"../../images/footer-background.svg\"\nimport BackArrowIcon from \"../ui/images/back-arrow-icon\"\nimport CapitariaLogoBlack from \"../ui/images/capitaria-logo-black\"\n\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-color: #f9f9f9;\n background-image: url(${footerBackground});\n background-repeat: no-repeat;\n\tbackground-size: 100% 188.835%;\n\tmix-blend-mode: multiply;\n @media (max-width: 425px) {\n padding-bottom: 2rem;\n background-size: 168% 120.835%;\n background-position: -148px 275.713px;\n }\n`\n\nconst NavBar = styled.nav`\n padding-top: 2em;\n width: 100%;\n display: flex;\n align-items: center;\n @media (max-width: 812px) {\n justify-content: space-between;\n padding: 2.55rem 1.25rem 0;\n }\n`\n\nconst Content = styled.section`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: center;\n @media (max-width: 812px) {\n padding: 4rem 0 7rem;\n }\n`\n\nconst LogoWrapper = styled.div`\n display: none;\n @media (max-width: 812px) {\n display: block;\n }\n`\n\nconst StyledLink = styled.a`\n display: flex;\n align-items: center;\n font-size: 13.33px;\n font-weight: 600;\n text-decoration: none;\n line-height: 140%;\n color: #1f2425;\n padding: 0 2rem;\n @media (max-width: 812px) {\n padding: 0;\n }\n`\n\nconst LinkText = styled.span`\n padding-left: 0.5rem;\n`\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst ValidateEmailLayout = ({ children }: Props) => {\n const queryStringParams = useQueryString()\n\n return (\n \n \n \n \n \n\n \n Volver\n \n \n {children}\n \n )\n}\n\nexport default ValidateEmailLayout\n","import styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport React from \"react\"\nimport * as Yup from \"yup\"\n\nimport { trackEvent } from \"../../helpers/tracker\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport GmailLogo from \"../ui/images/gmail-logo\"\nimport OtpInput from \"../ui/otp-input\"\nimport ResendCode from \"./resend-code\"\nimport ValidateEmailLayout from \"./validate-email-layout\"\nimport { css } from \"@emotion/react\"\n\nconst Title = styled.h1`\n max-width: 60%;\n font-family: Open Sans;\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n margin: 0;\n color: #1f2425;\n text-align: center;\n @media (max-width: 425px) {\n max-width: 308px;\n text-align: center;\n }\n`\n\nconst Description = styled.p`\n max-width: 62%;\n font-size: 12px;\n line-height: 125%;\n color: #1f2425;\n margin: 1rem 0 0;\n text-align: center;\n font-feature-settings: 'clig' off, 'liga' off;\n font-family: Roboto;\n font-style: normal;\n font-weight: 500;\n letter-spacing: 0.1px;\n @media (max-width: 425px) {\n max-width: 257px;\n }\n`\n\nconst Form = styled.form`\n padding-top: 2em;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n height: 48px;\n width: 213px;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonCss = buttonCSS\n\nconst labelCSS = css`\n font-size: 20px;\n width: 100%;\n text-align: center;\n margin-bottom: 13px;\n font-family: Roboto;\n font-weight: 500;\n`\n\nconst Error = styled.p`\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n text-align: center;\n padding: 0;\n max-width: 213px;\n`\n\nconst GmailButton = styled.div`\n margin-top: 20px;\n border: 0px;\n padding: 15px;\n border-radius: 10px;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\n background: #fff;\n text-align: center;\n display: flex;\n align-items: center;\n gap: 10px;\n cursor: pointer;\n font-size: 14px;\n`\n\nconst FlexAbTesting = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n`\n\nconst ContainerReasons = styled.div`\n max-width: 30%;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n @media (max-width: 425px) {\n max-width: 90%;\n }\n @media (max-width: 768px) {\n max-width: 60%;\n }\n @media (min-width: 1024px) {\n max-width: 30%;\n }\n`\n\nconst Reason = styled.p`\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n font-family: Roboto;\n text-align: center;\n`\n\nconst WhyQuestion = styled.p`\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n margin: 0;\n font-weight: 600;\n font-family: Roboto;\n`\n\nconst ValidateCodeSchema = Yup.object().shape({\n code: Yup.string().required(\"Este campo es requerido\"),\n})\n\ntype Props = {\n email: string\n loading: boolean\n onSubmit: (code: string) => void\n resendCode: () => void\n submitError: string\n}\n\nconst ValidateCode = ({\n email,\n loading,\n onSubmit,\n resendCode,\n submitError,\n}: Props) => {\n return (\n \n \n Ingresa el código enviado a tu correo\n \n Revisa la bandeja de entrada de tu correo{\" \"}\n {email} y copia el código enviado acá abajo\n \n {email.match(/gmail.com/i) &&\n !window.navigator.userAgent.match(\n /android|iphone|ipad|windows phone/i\n ) && (\n {\n trackEvent(\"validate-email:button-gmail\")\n // @ts-ignore\n gtag('event', 'click_btn_sniper')\n window.open(\n `https://mail.google.com/mail/u/${email}/#search/from%3Anoreply%40capitaria.com+in%3Aanywhere+newer_than%3A1d`\n )\n }}\n >\n Abrir Gmail\n \n )}\n \n onSubmit(values.code.toString().trim())}\n >\n {props => {\n const {\n values,\n touched,\n errors,\n handleSubmit,\n setFieldValue,\n } = props\n return (\n
\n\n { setFieldValue(\"code\", value) }}\n hasError={errors.code && touched.code}\n errorMessage={errors.code}\n />\n\n \n CONTINUAR\n \n\n {submitError.length > 0 && {submitError}}\n \n )\n }}\n \n \n \n \n ¿Porque necesitamos validar tu correo?\n \n \n Tu correo será el nombre de usuario para ingresar a tu cuenta a través de este sitio web por lo que es importante que tu correo esté bien escrito.\n \n \n
\n )\n}\n\nexport default ValidateCode\n","import { navigate } from \"@reach/router\"\nimport React, { useState } from \"react\"\nimport { trackEvent } from \"../../helpers/tracker\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { confirmSignUpAndSignIn, resendValidateCode } from \"../../services/auth\"\n\nimport ValidateCode from \"./validate-code\"\n\ntype Props = {\n email: string\n password: string\n}\n\nconst ValidateEmailContent = ({ email, password }: Props) => {\n const {\n state: { setUser, setFirstLoad },\n } = useAuth()\n\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(\"\")\n\n const validateEmail = async (code: string) => {\n setLoading(true)\n\n const result = await confirmSignUpAndSignIn(email, password, code)\n\n if (result.user) {\n setUser(result.user)\n setFirstLoad(true)\n trackEvent(\"validate-email:success\")\n await navigate(\"/loading\")\n }\n\n setError(result.error)\n setLoading(false)\n }\n\n const resendCode = async () => {\n setLoading(true)\n\n const result = await resendValidateCode(email)\n\n setError(result.error)\n setLoading(false)\n }\n\n return (\n \n )\n}\n\nexport default ValidateEmailContent\n","export default __webpack_public_path__ + \"static/media/sidebar.a085b248.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport sidebarHero from \"../../../images/sidebar.png\"\n\n\nconst LoginFoxBox = styled.div`\n background-image: url(${sidebarHero});\n background-repeat: no-repeat;\n background-size: contain;\n width: 30vw;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n background-color: black;\n @media (max-width: 850px) {\n display: none;\n }\n`\n\nconst LoginFox = () => (\n <>\n \n \n \n)\nexport default LoginFox\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { login } from \"../../services/auth\"\n\nimport PublicLayout from \"../public-layout\"\nimport LoginContent from \"./login-content\"\nimport ValidateEmailContent from \"../validate-email/validate-email-content\"\nimport LoginFox from \"../ui/images/login-fox\"\n\nconst Container = styled.div`\n display: flex;\n min-height: 100%;\n`\n\nconst Login = () => {\n const {\n state: { setUser },\n } = useAuth()\n const { parsedQueryString } = useQueryString()\n\n const [email, setEmail] = useState(\"\")\n const [password, setPassword] = useState(\"\")\n const [loading, setLoading] = useState(false)\n const [userNeedEmailValidation, setUserNeedEmailValidation] = useState(false)\n const [error, setError] = useState(\"\")\n\n const onSubmit = async (emailValue: string, passwordValue: string) => {\n setLoading(true)\n\n const result = await login(\n emailValue.toLowerCase(),\n passwordValue,\n parsedQueryString.mc_origen\n )\n\n setEmail(emailValue.toLowerCase())\n setPassword(passwordValue)\n\n if (result.user) {\n setUser(result.user)\n } else {\n setUserNeedEmailValidation(result.userNeedEmailValidation)\n setError(result.error)\n\n setLoading(false)\n }\n }\n\n return (\n \n \n \n {!userNeedEmailValidation ? (\n \n ) : (\n \n )}\n \n \n )\n}\n\nexport default Login\n","export default __webpack_public_path__ + \"static/media/login-sidebar-bg.544f4eac.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport dailyLogo from \"../../../images/daily-logo.png\"\n\nconst Daily = styled.img`\n width: 38px;\n height: 22px;\n`\n\nconst DailyLogo = () => \n\nexport default DailyLogo\n","export default \"data:image/png;base64,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\"","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport weeklyLogo from \"../../../images/weekly-logo.png\"\n\nconst Weekly = styled.img`\n width: 52px;\n height: 20px;\n`\n\nconst WeeklyLogo = () => \n\nexport default WeeklyLogo\n","export default \"data:image/png;base64,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\"","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport loginSidebarBg from \"../../images/login-sidebar-bg.png\"\nimport DailyLogo from \"../ui/images/daily-logo\"\nimport WeeklyLogo from \"../ui/images/weekly-logo\"\n\nconst Sidebar = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: flex-start;\n width: 384px;\n padding: 1.5rem 3rem 3rem;\n background-image: url(${loginSidebarBg});\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n @media (max-width: 812px) {\n display: none;\n }\n`\n\nconst Title = styled.h2`\n font-family: \"Open Sans\";\n font-weight: bold;\n font-size: 27.65px;\n line-height: 116%;\n color: #ffffff;\n`\nconst Description = styled.p`\n margin: 0;\n width: 256px;\n font-size: 11.11px;\n line-height: 120%;\n color: #ffffff;\n`\n\nconst LogoWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 256px;\n margin-top: 1rem;\n`\n\nconst Separator = styled.div`\n width: 2rem;\n`\n\nconst ForgotPasswordSidebar = () => (\n \n Tu dosis diaria de noticias financieras.\n\n \n Desde la última IPO hasta el nuevo tweet de Trump. Informativo, ingenioso\n y con todo lo que necesitas para comenzar tu día en solo 5 minutos.\n \n\n \n \n \n \n \n \n)\n\nexport default ForgotPasswordSidebar\n","import React from \"react\"\nimport { Link } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\n\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\nimport { trackEvent } from \"../../helpers/tracker\"\n\nimport isotypeBg from \"../../images/isotype-bg.png\"\nimport BackArrowIcon from \"../ui/images/back-arrow-icon\"\nimport CapitariaLogoBlack from \"../ui/images/capitaria-logo-black\"\n\nimport Disclaimer from \"../disclaimer\"\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-position: right;\n background-size: 450px 100%;\n background-image: url(${isotypeBg});\n background-repeat: no-repeat;\n @media (max-width: 812px) {\n background: transparent;\n padding-bottom: 2rem;\n }\n`\n\nconst NavBar = styled.nav`\n padding-top: 2em;\n width: 100%;\n display: flex;\n align-items: center;\n @media (max-width: 812px) {\n justify-content: space-between;\n padding: 2.55rem 1.25rem 0;\n }\n`\n\nconst Content = styled.section`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media (max-width: 812px) {\n padding: 4rem 0 7rem;\n }\n`\n\nconst LogoWrapper = styled.div`\n display: none;\n @media (max-width: 812px) {\n display: block;\n }\n`\n\nconst StyledLink = styled(Link)`\n display: flex;\n align-items: center;\n font-size: 13.33px;\n font-weight: 600;\n text-decoration: none;\n line-height: 140%;\n color: #1f2425;\n padding: 0 2rem;\n @media (max-width: 812px) {\n padding: 0;\n }\n`\n\nconst LinkText = styled.span`\n padding-left: 0.5rem;\n`\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst ForgotPasswordLayout = ({ children }: Props) => {\n const queryStringParams = useQueryString()\n\n return (\n \n \n \n \n \n\n {\n trackEvent(\"forgot-password:link-to:login\")\n }}\n >\n Volver\n \n \n {children}\n \n \n )\n}\n\nexport default ForgotPasswordLayout\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport * as Yup from \"yup\"\n\nimport CustomInput from \"../ui/custom-form-input\"\nimport CustomButton from \"../ui/custom-button\"\nimport ForgotPasswordLayout from \"./forgot-password-layout\"\nimport { css } from \"@emotion/react\"\n\nconst Title = styled.h1`\n font-family: Open Sans;\n font-size: 27.65px;\n line-height: 116%;\n margin: 0;\n color: #1f2425;\n @media (max-width: 812px) {\n max-width: 185px;\n text-align: center;\n }\n`\n\nconst Description = styled.p`\n font-family: Nunito;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n margin: 1rem 0 0;\n text-align: center;\n max-width: 380px;\n @media (max-width: 812px) {\n max-width: 198px;\n }\n`\n\nconst Form = styled.form`\n padding-top: 2em;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n height: 48px;\n width: 350px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst loadingButtonCss = css`\n margin-top: 2rem;\n height: 48px;\n width: 350px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst inputCSS = css`\n width: 350px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst Error = styled.p`\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n text-align: center;\n padding: 0;\n max-width: 300px;\n`\n\nconst SendCodeSchema = Yup.object().shape({\n email: Yup.string()\n .email(\"El email ingresado no es válido\")\n .required(\"Este campo es requerido\"),\n})\n\ntype Props = {\n loading: boolean\n onSubmit: (email: string) => void\n submitError: string\n}\n\nconst SendCode = ({ loading, onSubmit, submitError }: Props) => (\n \n ¿Olvidaste tu contraseña?\n \n ¡No te preocupes! Ingresa el correo con el que creaste tu cuenta y te\n enviaremos un link para que crees una nueva contraseña\n \n\n {\n onSubmit(values.email.toLowerCase())\n }}\n >\n {props => {\n const {\n values,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props\n return (\n
\n \n\n \n ENVIAR\n \n\n {submitError.length > 0 && {submitError}}\n \n )\n }}\n \n
\n)\n\nexport default SendCode\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport * as Yup from \"yup\"\n\nimport CustomInput from \"../ui/custom-form-input\"\nimport CustomButton from \"../ui/custom-button\"\nimport ForgotPasswordLayout from \"./forgot-password-layout\"\nimport { css } from \"@emotion/react\"\n\nconst Title = styled.h1`\n font-family: Open Sans;\n font-size: 27.65px;\n line-height: 116%;\n margin: 0;\n color: #1f2425;\n @media (max-width: 812px) {\n width: 216px;\n text-align: center;\n }\n`\n\nconst Description = styled.p`\n font-family: Nunito;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n margin: 1rem 0 0;\n text-align: center;\n max-width: 380px;\n @media (max-width: 812px) {\n max-width: 237px;\n }\n`\n\nconst Form = styled.form`\n padding-top: 2em;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n width: 350px;\n height: 48px;\n @media (max-width: 812px) {\n width: 300px;\n font-size: 13.33px;\n line-height: 140%;\n }\n`\n\nconst loadingButtonCss = css`\n margin-top: 2rem;\n width: 350px;\n height: 48px;\n @media (max-width: 812px) {\n width: 300px;\n font-size: 13.33px;\n line-height: 140%;\n }\n`\n\nconst inputCSS = css`\n width: 350px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst Error = styled.p`\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n text-align: center;\n padding: 0;\n max-width: 300px;\n`\n\nconst ChangePasswordSchema = Yup.object().shape({\n code: Yup.string().required(\"Este campo es requerido\"),\n password: Yup.string()\n .required(\"Este campo es requerido\")\n .min(8, \"La contraseña es muy corta - mínimo, debería tener 8 caracteres\"),\n})\n\ntype Props = {\n email: string\n loading: boolean\n onSubmit: (code: string, password: string) => void\n submitError: string\n}\n\nconst ChangePassword = ({ email, loading, onSubmit, submitError }: Props) => (\n \n Crea una nueva contraseña\n \n Ingresa el código que te enviamos a {email} para\n crear tu nueva contraseña.\n \n\n {\n onSubmit(values.code.toString().trim(), values.password)\n }}\n >\n {props => {\n const {\n values,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n setFieldValue,\n } = props\n return (\n
\n {\n handleChange(event)\n setFieldValue(\"code\", event.target.value)\n }}\n onBlur={handleBlur}\n hasError={errors.code && touched.code}\n errorMessage={errors.code}\n />\n \n\n \n CAMBIAR CONTRASEÑA\n \n\n {submitError.length > 0 && {submitError}}\n \n )\n }}\n \n
\n)\n\nexport default ChangePassword\n","import React, { useState } from \"react\"\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { changePassword, forgotPasswordSendCode } from \"../../services/auth\"\n\nimport SendCode from \"./send-code\"\nimport ChangePassword from \"./change-password\"\n\nconst ForgotPasswordContent = () => {\n const { state } = useAuth()\n const { parsedQueryString } = useQueryString()\n\n const [email, setEmail] = useState(\"\")\n const [userNeedCodeValidation, setUserNeedCodeValidation] = useState(false)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(\"\")\n\n const sendCode = async (email: string) => {\n setLoading(true)\n\n const result = await forgotPasswordSendCode(email)\n\n setEmail(result.email)\n setUserNeedCodeValidation(result.userNeedCodeValidation)\n setLoading(result.loading)\n setError(result.error)\n }\n\n const changePasswordHandler = async (code: string, password: string) => {\n setLoading(true)\n\n const result = await changePassword(\n email,\n password,\n code,\n parsedQueryString.mc_origen\n )\n\n if (result.user) {\n state.setUser(result.user)\n } else {\n setEmail(result.email)\n setLoading(result.loading)\n setError(result.error)\n }\n }\n\n if (userNeedCodeValidation) {\n return (\n \n )\n } else {\n return (\n \n )\n }\n}\n\nexport default ForgotPasswordContent\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport PublicLayout from \"../public-layout\"\nimport ForgotPasswordSidebar from \"./forgot-password-sidebar\"\nimport ForgotPasswordContent from \"./forgot-password-content\"\n\nconst Container = styled.section`\n display: flex;\n min-height: 100%;\n`\n\nconst ForgotPassword = () => (\n \n \n \n \n \n \n)\n\nexport default ForgotPassword\n","import React, { useEffect } from \"react\"\nimport { Redirect } from \"@reach/router\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { logout } from \"../../services/auth\"\n\nimport { logoutTrackUser } from \"../../helpers/tracker\"\n\nconst Logout = () => {\n const {\n state: { setUser },\n } = useAuth()\n\n useEffect(() => {\n const logoutUser = async () => {\n logoutTrackUser()\n const result = await logout()\n setUser(result.user)\n }\n\n logoutUser()\n }, [setUser])\n\n return \n}\n\nexport default Logout\n","import { useEffect } from \"react\"\n\nconst ScrollTop = () => {\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [])\n\n return null\n}\n\nexport default ScrollTop\n","export default __webpack_public_path__ + \"static/media/logo-capitaria-white.cd90d5eb.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport logoCapitaria from \"../../../images/logo-capitaria-white.svg\"\n\nconst LogoCapitaria = styled.div`\n background-image: url(${logoCapitaria});\n background-repeat: no-repeat;\n background-size: cover;\n width: 138px;\n height: 30px;\n @media (max-width: 812px) {\n width: 102px;\n height: 22px;\n }\n`\n\nconst LogoCapitariaWhite = () => \n\nexport default LogoCapitariaWhite\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Link } from \"@reach/router\"\nimport { useAuth } from \"../../hooks/auth-context\"\n\nconst StyledLink = styled(Link)`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-size: 0.625em;\n line-height: 110%;\n color: #1f2425;\n text-decoration: none;\n`\nconst StyledLinkWhite = styled(Link)`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-size: 0.625em;\n line-height: 110%;\n color: #ffff;\n text-decoration: none;\n`\n\nconst EmptyLink = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n line-height: 110%;\n color: #1f2425;\n text-decoration: none;\n`\n\nconst Item = styled.li`\n text-align: center;\n padding: 0.25rem 0;\n margin-left: 2rem;\n cursor: pointer;\n`\n\nconst Text = styled.span`\n font-family: \"Open Sans\";\n font-size: 0.625em;\n line-height: 14px;\n color: #ffffff;\n @media (max-width: 812px) {\n display: none;\n }\n`\n\nconst IconWrapper = styled.div``\n\ntype Props = {\n location: Location\n path?: string\n iconOn: any\n iconOff: any\n text: string\n onClick?: () => void\n}\n\nconst HeaderItem = ({\n location,\n path,\n iconOn,\n iconOff,\n text,\n onClick,\n}: Props) =>{\n const { state } = useAuth()\n const user = state.user as User\n\n const StyledLinkComponent = user.kycNextStep === \"home\" ? StyledLinkWhite : StyledLink\n return (\n \n {path ? (\n \n {location.pathname === path ? iconOn : iconOff}\n {text}\n \n ) : (\n onClick() : undefined}>\n {iconOff}\n {text}\n \n )}\n \n )\n}\n\nexport default HeaderItem\n","/**\n * Todo cliente que tenga estado de Archivado o Prospecto\n * se debe mostrar el inicio del Onboarding, con la URL de Bienvenido,\n * Los demas se deben mostrar con la URL de Home\n */\nexport const getIndexPathFromUser = (user: User) => {\n const statusWithWelcomePath: (string | null)[] = [\"Archivado\", \"Prospecto\", null]\n\n return statusWithWelcomePath.includes(user.customerStatus)\n ? \"/bienvenido\" : \"/home\"\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst ProgressBackground = styled.div`\n background: #dfe3e8;\n height: 8px;\n width: 100%;\n`\n\nconst ProgressAnimation = styled.div`\n height: 8px;\n background-color: #44d091;\n width: 0;\n`\n\ntype Props = {\n width?: number\n}\n\nconst Progressbar = ({ width = 0 }: Props) => (\n <>\n \n \n \n \n)\n\nexport default Progressbar\n","const listSteps = [\n \"kyc/validate-phone\",\n \"kyc/validate-documents\",\n \"kyc/validate-liveness\",\n \"kyc/select-course\",\n \"kyc/personal-info\",\n \"kyc/deposit\",\n \"kyc/document-credit-card\",\n \"kyc/validate-deposit\",\n \"kyc/platform\",\n \"kyc/risk-profile\",\n \"kyc/knowledge-profile\",\n \"kyc/bad-trader-profile\",\n \"kyc/terms\",\n]\n\nexport default listSteps\n","import React from \"react\"\nimport { Link, Location } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\nimport CapitariaLogoWhite from \"./images/capitaria-logo-white\"\n\nimport CapitariaLogo from \"./images/capitaria-logo-black\"\nimport HeaderItem from \"./header-item\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { getIndexPathFromUser } from \"../../helpers/index-path-user\"\nimport Progressbar from \"./progressbar\"\nimport listSteps from \"../../helpers/list-steps\"\n\nconst HeaderWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.25rem 4rem;\n background-color: #f4f6f8;\n @media (max-width: 812px) {\n padding: 0.25rem 1.375rem;\n }\n`\nconst HeaderWrapperDark = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.25rem 4rem;\n background-color: #1f2425;\n @media (max-width: 812px) {\n padding: 0.25rem 1.375rem;\n }\n`\n\nconst ItemList = styled.ul`\n display: flex;\n justify-content: center;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n`\n\ntype Props = {\n showLinks: boolean\n}\n\nconst calculateWidth = (nextStep: string) => {\n return 100 / listSteps.length * (listSteps.indexOf(nextStep) + 1)\n}\n\nconst Header = ({ showLinks }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n\n const indexPath = getIndexPathFromUser(user)\n\n return (\n \n {({ location }) => (\n <>\n {user.kycNextStep === \"home\" ? (\n \n \n \n \n\n {showLinks && (\n \n \n \n )}\n \n ) : (\n <>\n {user.kycNextStep !== \"home\" && }\n \n \n \n \n\n {showLinks && (\n \n \n \n )}\n \n \n )}\n \n )}\n \n )\n}\n\nexport default Header\n","export default __webpack_public_path__ + \"static/media/icn-welcome-on.7b4fc706.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport welcomeIconOn from \"../../../images/icn-welcome-on.svg\"\n\nconst WelcomeIcon = styled.div`\n background-image: url(${welcomeIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 30px;\n height: 32px;\n`\n\nconst WelcomeIconOn = () => \n\nexport default WelcomeIconOn\n","export default __webpack_public_path__ + \"static/media/icn-welcome-off.cb6c7e3b.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport welcomeIconOff from \"../../../images/icn-welcome-off.svg\"\n\nconst WelcomeIcon = styled.div`\n background-image: url(${welcomeIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 30px;\n height: 32px;\n`\n\nconst WelcomeIconOff = () => \n\nexport default WelcomeIconOff\n","export default __webpack_public_path__ + \"static/media/icn-deposit-on.2a0338be.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport depositIconOn from \"../../../images/icn-deposit-on.svg\"\n\nconst DepositIcon = styled.div`\n background-image: url(${depositIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 30px;\n height: 30px;\n`\n\nconst DepositIconOn = () => \n\nexport default DepositIconOn\n","export default __webpack_public_path__ + \"static/media/icn-deposit-off.db316075.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport depositIconOff from \"../../../images/icn-deposit-off.svg\"\n\nconst DepositIcon = styled.div`\n background-image: url(${depositIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 30px;\n height: 30px;\n`\n\nconst DepositIconOff = () => \n\nexport default DepositIconOff\n","export default __webpack_public_path__ + \"static/media/icn-verify-documents-on.993c9538.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport verifyIconOn from \"../../../images/icn-verify-documents-on.svg\"\n\nconst VerifyIcon = styled.div`\n background-image: url(${verifyIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst VerifyIconOn = () => \n\nexport default VerifyIconOn\n","export default __webpack_public_path__ + \"static/media/icn-verify-documents-off.8467fa95.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport verifyIconOff from \"../../../images/icn-verify-documents-off.svg\"\n\nconst VerifyIcon = styled.div`\n background-image: url(${verifyIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst VerifyIconOff = () => \n\nexport default VerifyIconOff\n","export default __webpack_public_path__ + \"static/media/icn-operatives-aspects-on.6612f4d3.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport operativesAspectsIconOn from \"../../../images/icn-operatives-aspects-on.svg\"\n\nconst OperativesAspectsIconOn = styled.div`\n background-image: url(${operativesAspectsIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst OperativesAspectsIcon = () => \n\nexport default OperativesAspectsIcon\n","export default __webpack_public_path__ + \"static/media/icn-operatives-aspects-off.f0c08c24.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport operativesAspectsIconOff from \"../../../images/icn-operatives-aspects-off.svg\"\n\nconst OperativesAspectsIconOff = styled.div`\n background-image: url(${operativesAspectsIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst OperativesAspectsIcon = () => \n\nexport default OperativesAspectsIcon\n","export default __webpack_public_path__ + \"static/media/icn-calculator-on.e49914d0.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport calculatorIconOn from \"../../../images/icn-calculator-on.svg\"\n\nconst CalculatorIcon = styled.div`\n background-image: url(${calculatorIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst CalculatorIconOn = () => \n\nexport default CalculatorIconOn\n","export default __webpack_public_path__ + \"static/media/icn-calculator-off.c933ccbe.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport calculatorIconOff from \"../../../images/icn-calculator-off.svg\"\n\nconst CalculatorIcon = styled.div`\n background-image: url(${calculatorIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 26px;\n`\n\nconst CalculatorIconOff = () => \n\nexport default CalculatorIconOff\n","export default __webpack_public_path__ + \"static/media/icn-help-on.6553042e.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport helpIconOn from \"../../../images/icn-help-on.svg\"\n\nconst HelpIcon = styled.div`\n background-image: url(${helpIconOn});\n background-repeat: no-repeat;\n background-size: cover;\n width: 28px;\n height: 28px;\n`\n\nconst HelpIconOn = () => \n\nexport default HelpIconOn\n","export default __webpack_public_path__ + \"static/media/icn-help-off.1237d091.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport helpIconOff from \"../../../images/icn-help-off.svg\"\n\nconst HelpIcon = styled.div`\n background-image: url(${helpIconOff});\n background-repeat: no-repeat;\n background-size: cover;\n width: 28px;\n height: 28px;\n`\n\nconst HelpIconOff = () => \n\nexport default HelpIconOff\n","export default __webpack_public_path__ + \"static/media/green-arrow.cc93cf76.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport greenArrow from \"../../../images/green-arrow.svg\"\n\nconst GreenArrow = styled.div`\n background-image: url(${greenArrow});\n background-repeat: no-repeat;\n background-size: cover;\n width: 24px;\n height: 15px;\n`\n\nconst GreenArrowIcon = () => \n\nexport default GreenArrowIcon\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Link } from \"@reach/router\"\n\nconst StyledLink = styled(Link)`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-size: 0.625em;\n line-height: 110%;\n color: #1f2425;\n text-decoration: none;\n`\n\nconst ExternalLink = styled.a`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-size: 0.625em;\n line-height: 110%;\n color: #1f2425;\n text-decoration: none;\n`\n\nconst Item = styled.li`\n text-align: center;\n padding: 0.5rem 0.5rem 1rem;\n border-left: 4px solid #ffffff;\n border-right: 4px solid #ffffff;\n`\n\nconst activeItem = {\n borderLeft: \"4px solid #30ab76\",\n}\n\ntype Props = {\n location: Location\n path: string\n iconOn: any\n iconOff: any\n text: string\n external?: boolean\n alias?: string[]\n}\n\nconst SidebarItem = ({\n location,\n path,\n iconOn,\n iconOff,\n text,\n external,\n alias\n}: Props) => {\n let { pathname } = location\n const isActive = alias ? alias.includes(pathname) : path === pathname\n\n return (\n \n {external ? (\n \n {iconOff}\n {text}\n \n ) : (\n \n {pathname === path ? iconOn : iconOff}\n {text}\n \n )}\n \n )\n}\n\nexport default SidebarItem\n","import React, { MouseEvent } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Link } from \"@reach/router\"\n\nconst StyledLink = styled(Link)`\n display: flex;\n align-items: center;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-weight: 600;\n font-size: 16px;\n line-height: 22px;\n color: #808080;\n text-decoration: none;\n`\n\nconst ExternalLink = styled.a`\n display: flex;\n align-items: center;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-weight: 600;\n font-size: 16px;\n line-height: 22px;\n color: #808080;\n text-decoration: none;\n`\n\nconst Item = styled.li`\n border-bottom: 1px solid #e0e0e0;\n padding: 0.75rem 1.375rem;\n`\n\nconst LinkText = styled.span`\n margin-left: 10px;\n`\n\ntype Props = {\n location: Location\n path: string\n iconOn: any\n iconOff: any\n text: string\n external?: boolean\n onClick: (event: MouseEvent) => void\n}\n\nconst MobileNavbarItem = ({\n location,\n path,\n iconOn,\n iconOff,\n text,\n external,\n onClick,\n}: Props) => (\n \n {external ? (\n onClick(e)}\n >\n {iconOff}\n {text}\n \n ) : (\n onClick(e)}>\n {location.pathname === path ? iconOn : iconOff}\n {text}\n \n )}\n \n)\n\nexport default MobileNavbarItem\n","import React, { useState } from \"react\"\nimport { Location, WindowLocation } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\n\nimport WelcomeIconOn from \"./images/welcome-icon-on\"\nimport WelcomeIconOff from \"./images/welcome-icon-off\"\nimport DepositIconOn from \"./images/deposit-icon-on\"\nimport DepositIconOff from \"./images/deposit-icon-off\"\nimport VerifyDocumentsIconOn from \"./images/verify-documents-icon-on\"\nimport VerifyDocumentsIconOff from \"./images/verify-documents-icon-off\"\nimport OperativesAspectsIconOn from \"./images/operatives-aspects-icon-on\"\nimport OperativesAspectsIconOff from \"./images/operatives-aspects-icon-off\"\nimport CalculatorIconOn from \"./images/calculator-icon-on\"\nimport CalculatorIconOff from \"./images/calculator-icon-off\"\nimport HelpIconOn from \"./images/help-icon-on\"\nimport HelpIconOff from \"./images/help-icon-off\"\nimport GreenArrowIcon from \"./images/green-arrow-icon\"\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport SidebarItem from \"./sidebar-item\"\nimport MobileNavbarItem from \"./mobile-navbar-item\"\n\nconst DesktopContainer = styled.div`\n border-right: 1px solid #e0e0e0;\n background-color: #ffffff;\n padding: 2rem 0;\n max-width: 90px;\n @media (max-width: 812px) {\n display: none;\n }\n`\n\nconst MobileContainer = styled.div`\n border-right: 1px solid #e0e0e0;\n background-color: #ffffff;\n width: 100;\n display: none;\n @media (max-width: 812px) {\n display: block;\n }\n`\n\nconst ToggleButton = styled.div`\n display: flex;\n align-items: center;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-weight: 600;\n font-size: 16px;\n line-height: 22px;\n color: #1f2425;\n text-decoration: none;\n border-bottom: 1px solid #e0e0e0;\n padding: 0 1.375rem;\n min-height: 54px;\n`\n\nconst ToggleButtonText = styled.span`\n margin-left: 10px;\n flex-grow: 1;\n`\n\nconst LinkList = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n position: sticky;\n top: 2rem;\n`\n\ntype DesktopNavbarProps = {\n location: WindowLocation\n items: Link[]\n}\n\nconst DesktopNavbar = ({ location, items }: DesktopNavbarProps) => (\n \n \n {items.map((l, idx) => (\n \n ))}\n \n \n)\n\ntype MobileNavbarProps = {\n location: WindowLocation\n items: Link[]\n}\n\nconst MobileNavbar = ({ location, items }: MobileNavbarProps) => {\n const [isOpened, setIsOpened] = useState(false)\n\n const filteredItems: Link[] = []\n let selectedItem: Link = items[0]\n\n items.forEach(l => {\n if (l.path !== location.pathname) {\n filteredItems.push(l)\n } else {\n selectedItem = l\n }\n })\n\n const onClick = () => setIsOpened(!isOpened)\n\n return (\n \n \n {selectedItem.iconOn}{\" \"}\n {selectedItem.text}\n \n \n\n {isOpened && (\n \n {filteredItems.map((i, idx) => (\n \n ))}\n \n )}\n \n )\n}\n\n\nconst Sidebar = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const { firstLoad } = state\n\n const bottomLinks = [\n {\n id: \"deposit\",\n path: \"/deposit\",\n text: \"Depósitos\",\n iconOn: ,\n iconOff: ,\n },\n {\n id: \"verify-documents\",\n path: \"/verify-documents\",\n text: \"Verificación de Tarjeta\",\n iconOn: ,\n iconOff: ,\n },\n {\n id: \"operatives-aspects\",\n path: \"https://bit.ly/3pb6wVA\",\n text: \"Aspectos Operativos\",\n iconOn: ,\n iconOff: ,\n external: true,\n },\n {\n id: \"calculator\",\n path:\n \"https://calculadora.capitaria.com/basica?utm_source=capitaria&utm_medium=referral&utm_campaign=capitaria&utm_content=boton-perfil-calculadora\",\n text: \"Calculadoras\",\n iconOn: ,\n iconOff: ,\n external: true,\n },\n ]\n\n let topLinks: Link[] = [\n {\n id: \"home\",\n path: \"/home\",\n alias: [\"/home\"],\n text: \"Bienvenida\",\n iconOn: ,\n iconOff: ,\n },\n ]\n\n let items: Link[] = []\n if (!firstLoad) {\n items = [...topLinks]\n if (user.kycNextStep === \"home\") {\n items = [\n ...items,\n ...bottomLinks,\n {\n id: \"help\",\n path: \"/help\",\n text: \"Preguntas Frecuentes\",\n iconOn: ,\n iconOff: ,\n },\n ]\n } else {\n items = [\n ...items,\n {\n id: \"help\",\n path: \"/help\",\n text: \"Preguntas Frecuentes\",\n iconOn: ,\n iconOff: ,\n },\n ]\n }\n }\n\n return (\n \n {({ location }) => (\n <>\n {user.kycNextStep === \"home\" &&\n <>\n \n {!firstLoad && }\n \n }\n \n )}\n \n )\n}\n\nexport default Sidebar\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport footerBackground from \"./../images/footer-background.svg\"\nimport ScrollTop from \"../helpers/scroll-top\"\nimport Header from \"./ui/header\"\nimport Sidebar from \"./ui/sidebar\"\n\nconst Container = styled.div`\n display: flex;\n min-height: 100%;\n background-image: url(${footerBackground});\n background-repeat: no-repeat;\n\tbackground-size: 100% 156.835%;\n background-position: 1% -33%;\n @media (max-width: 812px) {\n flex-direction: column;\n background-size: 132% 155.835%;\n }\n @media (max-width: 450px) {\n background-position: 1% -17%;\n background-size: 180% 172.835%;\n }\n`\n\nconst Content = styled.div`\n width: 100%;\n @media (max-width: 812px) {\n padding: 0 0rem;\n }\n`\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst Layout = ({ children }: Props) => {\n return (\n <>\n \n
\n \n \n {children}\n \n \n )\n}\n\nexport default Layout\n","import { API, graphqlOperation } from \"aws-amplify\"\nimport * as Sentry from \"@sentry/browser\"\nimport { toast } from \"react-toastify\"\n\nimport {\n updatePersonalInfo,\n updateRiskProfile,\n updateKnowledgeProfile,\n updateTerms,\n updateCustomerType,\n updateValidatePersonalInfo,\n updatePhone,\n confirmCode,\n validateIdentity,\n notReceivedCode,\n updateSelectCourse,\n updateDeposit,\n updateValidationDeposit,\n updatePlatform,\n updateRiskBadTraderProfile,\n} from \"../graphql/mutations\"\n\nimport { setTagsSentry } from \"../helpers/sentry\"\nimport { trackEvent, trackUserEvent } from \"../helpers/tracker\"\n\ntype Personal = {\n residenceCountry: string\n city: string\n address: string\n job: string\n isPEP: string\n addressExtension: string\n postalCode: string\n latitude: string\n longitude: string\n}\n\ntype KycResponse = {\n user: User\n}\n\nconst personalInfo = async (\n user: User,\n values: Personal\n): Promise => {\n setTagsSentry({ ...values })\n trackEvent(\"kyc:personal-info\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updatePersonalInfo, {\n id: user.id,\n personalInfo: {\n ...values,\n },\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updatePersonalInfo\n\n trackUserEvent(\"kyc:personal-info:success\", {\n residenceCountry: values.residenceCountry,\n city: values.city,\n })\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:personal-info:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst riskProfile = async (user: User, values: any): Promise => {\n setTagsSentry({ answersRisk: values })\n trackEvent(\"kyc:risk-profile\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateRiskProfile, {\n id: user.id,\n userAnswer: JSON.stringify(values),\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateRiskProfile\n\n trackEvent(\"kyc:risk-profile:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:risk-profile:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst knowledgeProfile = async (\n user: User,\n values: any\n): Promise => {\n setTagsSentry({ answersKnowledge: values })\n\n trackEvent(\"kyc:knowledge-profile\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateKnowledgeProfile, {\n id: user.id,\n userAnswer: JSON.stringify(values),\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateKnowledgeProfile\n\n trackEvent(\"kyc:knowledge-profile:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:knowledge-profile:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst validatePersonalInfo = async (user: User): Promise => {\n trackEvent(\"kyc:validatePersonalInfo\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateValidatePersonalInfo, {\n id: user.id,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateValidatePersonalInfo\n\n trackEvent(\"kyc:validatePersonalInfo:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:validatePersonalInfo:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\ntype ModifyPhoneType = {\n updatedPhone: boolean\n reload?: boolean | null\n}\n\nconst modifyPhone = async (\n user: User,\n phone: string,\n kyc: boolean = true\n): Promise => {\n setTagsSentry({ phone })\n trackEvent(\"kyc:update-phone\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updatePhone, {\n id: user.id,\n phone,\n kyc,\n })\n )\n\n // @ts-ignore\n const { updatedPhone, reload } = response.data.updatePhone\n\n const statusUpdatedPhone = updatedPhone ? \"success\" : \"failed\"\n trackUserEvent(`kyc:update-phone:${statusUpdatedPhone}`, {\n phone: phone,\n })\n\n if (reload) {\n window.location.reload()\n }\n\n return { updatedPhone, reload }\n } catch (error) {\n trackEvent(\"kyc:update-phone:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { updatedPhone: false, reload: false }\n }\n}\n\ntype ConfirmPhoneResponse = {\n confirmCode: boolean\n kycNextStep: string\n wasPhoneValidate: boolean\n}\n\ntype ErrorType = {\n message: string\n}\n\ntype ListErrors = {\n [key: string]: string\n}\n\nconst checkErrors = (listErrors: ErrorType[], defaultMessage = \"\") => {\n const errors: ListErrors = {\n // VALIDATION PHONE\n INVALID_CODE: \"El código no es valido.\",\n }\n\n for (const error of listErrors) {\n if (errors[error.message]) {\n return errors[error.message]\n }\n }\n\n return defaultMessage\n}\n\nconst validateCode = async (\n user: User,\n code: string,\n kyc: boolean = true\n): Promise => {\n setTagsSentry({ code })\n trackEvent(\"kyc:validate-code-phone\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(confirmCode, {\n id: user.id,\n code,\n kyc,\n })\n )\n\n trackUserEvent(`kyc:validate-code-phone:success`, {\n code,\n })\n\n // @ts-ignore\n return response.data.confirmCode\n } catch (error) {\n console.log(error)\n trackEvent(\"kyc:validate-code-phone:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n checkErrors(\n // @ts-ignore\n error?.errors as ErrorType[],\n \"No se pudo verificar tu código.\"\n )\n )\n\n return { confirmCode: false, wasPhoneValidate: false, kycNextStep: \"\" }\n }\n}\n\nconst notCode = async (\n user: User,\n kyc: boolean = true\n): Promise => {\n trackEvent(\"kyc:validate-code-not-phone\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(notReceivedCode, {\n id: user.id,\n kyc,\n })\n )\n\n // @ts-ignore\n const result = response.data.notReceivedCode\n trackEvent(`kyc:validate-code-not-phone:success`)\n\n return { user: result }\n } catch (error) {\n trackEvent(\"kyc:validate-code-not-phone:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"No se puede guardar la información. Intentalo en unos minutos.\"\n )\n\n return { user }\n }\n}\n\nconst startValidateIdentity = async (user: User): Promise => {\n trackEvent(\"kyc:validate-identity\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(validateIdentity, {\n id: user.id,\n cognitoId: user.cognitoId,\n })\n )\n\n // @ts-ignore\n const result = response.data.validateIdentity\n trackEvent(`kyc:validate-identity:success`)\n\n return { user: result }\n } catch (error) {\n trackEvent(\"kyc:validate-identity:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\"No se pudo iniciar la validación de identidad.\")\n\n return { user }\n }\n}\n\nconst confirmRiskBadTraderProfile = async (\n user: User\n): Promise => {\n trackEvent(\"kyc:risk-bad-trader-profile\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateRiskBadTraderProfile, {\n id: user.id,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateRiskBadTraderProfile\n\n trackEvent(\"kyc:risk-bad-trader-profile:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:risk-bad-trader-profile:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst terms = async (user: User): Promise => {\n trackEvent(\"kyc:terms\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateTerms, {\n id: user.id,\n acceptTerms: true,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateTerms\n\n trackEvent(\"kyc:terms:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:terms:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst selectCourse = async (\n user: User,\n course: string\n): Promise => {\n trackEvent(\"kyc:select-course\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateSelectCourse, {\n id: user.id,\n course,\n })\n )\n\n // @ts-ignore\n const updatedCourse = response.data.updateSelectCourse\n\n trackEvent(\"kyc:select-course:success\")\n\n return { user: updatedCourse }\n } catch (error) {\n trackEvent(\"kyc:select-course:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst completeDeposit = async (user: User): Promise => {\n trackEvent(\"kyc:deposit\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateDeposit, {\n id: user.id,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateDeposit\n\n trackEvent(\"kyc:deposit:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:deposit:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst completeValidationDeposit = async (user: User): Promise => {\n trackEvent(\"kyc:validation-deposit\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateValidationDeposit, {\n id: user.id,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateValidationDeposit\n\n trackEvent(\"kyc:validation-deposit:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:validation-deposit:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst completeUpdatePlatform = async (user: User): Promise => {\n trackEvent(\"kyc:platform\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updatePlatform, {\n id: user.id,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updatePlatform\n\n trackEvent(\"kyc:platform:success\")\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:platform:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst selectPlan = async (\n user: User,\n selectedPlan: string\n): Promise => {\n setTagsSentry({ selectedPlan })\n trackEvent(\"kyc:select-plan\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateCustomerType, {\n id: user.id,\n customerType: selectedPlan,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateCustomerType\n\n trackUserEvent(\"kyc:select-plan:success\", {\n customerType: selectedPlan,\n })\n\n return { user: updatedUser }\n } catch (error) {\n trackEvent(\"kyc:select-plan:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n return { user }\n }\n}\n\nconst exportParams = {\n updatePersonalInfo: personalInfo,\n updateRiskProfile: riskProfile,\n updateKnowledgeProfile: knowledgeProfile,\n updateRiskBadTraderProfile: confirmRiskBadTraderProfile,\n updateTerms: terms,\n updateDeposit: completeDeposit,\n updatePlatform: completeUpdatePlatform,\n selectCourse,\n updateValidationDeposit: completeValidationDeposit,\n updateValidatePersonalInfo: validatePersonalInfo,\n updateSelectPlan: selectPlan,\n updatePhone: modifyPhone,\n confirmCode: validateCode,\n notReceivedCode: notCode,\n validateIdentity: startValidateIdentity,\n}\n\nexport default exportParams\n","export default __webpack_public_path__ + \"static/media/help-popover-icon.ee8c2565.svg\";","import styled from \"@emotion/styled\"\n\nimport helpIcon from \"../../../images/help-popover-icon.svg\"\n\nconst HelpPopoverIcon = styled.div`\n background-image: url(${helpIcon});\n background-repeat: no-repeat;\n background-size: cover;\n width: 19px;\n height: 19px;\n`\n\nexport default HelpPopoverIcon\n","import React, { useState } from \"react\"\nimport Popover, { ArrowContainer } from \"react-tiny-popover\"\nimport styled from \"@emotion/styled\"\n\nimport HelpPopoverIcon from \"./images/help-popover-icon\"\n\nconst Content = styled.div`\n background: #ffffff;\n border-radius: 5px;\n padding: 1rem;\n font-size: 10px;\n line-height: 12px;\n max-width: 250px;\n`\n\ntype Props = {\n text: string\n position?: \"right\" | \"left\" | \"top\" | \"bottom\"\n}\n\nconst HelpPopover = ({ text, position = \"top\" }: Props) => {\n const [isOpened, setIsOpened] = useState(false)\n\n return (\n (\n \n {text}\n \n )}\n >\n setIsOpened(!isOpened)}\n onMouseOver={() => setIsOpened(true)}\n onMouseLeave={() => setIsOpened(false)}\n />\n \n )\n}\n\nexport default HelpPopover\n","import React, { useEffect } from \"react\"\nimport { navigate, useLocation } from \"@reach/router\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst CheckKycNextStep = ({ children }: Props) => {\n const { state } = useAuth()\n const location = useLocation()\n\n useEffect(() => {\n const checkKycStep = async () => {\n const user = state.user as User\n if (location.pathname !== `/${user.kycNextStep}`) {\n await navigate(`/${user.kycNextStep}`, { replace: true })\n }\n }\n\n checkKycStep()\n }, [location, state])\n\n return <>{children}\n}\n\nexport default CheckKycNextStep\n","import React from \"react\"\n\nimport ScrollTop from \"../helpers/scroll-top\"\n\ntype Props = {\n children: React.ReactNode\n}\n\nconst PageLayout = ({ children }: Props) => (\n <>\n \n {children}\n \n)\n\nexport default PageLayout\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport PageLayout from \"../page-layout\"\n\nconst Container = styled.div`\n display: flex;\n`\n\nconst TitleWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Content = styled.div`\n width: 100%;\n`\n\nconst Title = styled.h1`\n font-family: \"Open Sans\";\n font-size: 1.75em;\n margin: 0;\n color: #1f2425;\n @media (max-width: 812px) {\n font-weight: bold;\n font-size: 24px;\n line-height: 116%;\n }\n`\n\nconst Description = styled.p`\n font-family: Nunito;\n line-height: 140%;\n font-size: 1em;\n color: #1f2425;\n margin: 0.5rem 0 0;\n text-align: center;\n max-width: 544px;\n @media (max-width: 812px) {\n font-size: 18px;\n line-height: 120%;\n max-width: 314px;\n }\n`\n\ntype Props = {\n title?: string\n description?: string\n children: any\n}\n\nconst KycLayout = ({ title, description, children }: Props) => {\n return (\n \n \n \n \n {title}\n {description}\n \n {children}\n \n \n \n )\n}\n\nexport default KycLayout\n","import * as Yup from \"yup\"\n\nconst blockedCountries = [\n \"United States\",\n \"Afghanistan\",\n \"Bosnia and Herzegovina\",\n \"North Korea\",\n \"Iraq\",\n \"Iran\",\n \"Laos\",\n \"Syria\",\n \"Uganda\",\n \"Vanuatu\",\n \"Yemen\",\n]\n\nconst PersonalSchema = Yup.object().shape({\n residenceCountry: Yup.string()\n .test(\n \"isAllowedCountry\",\n \"En estos momentos no estamos operando en ${value}, lo sentimos\" /* eslint-disable-line no-template-curly-in-string */,\n value => !blockedCountries.includes(value)\n )\n .required(\"Este campo es requerido\"),\n address: Yup.string().required(\"Este campo es requerido\"),\n job: Yup.string().required(\"Este campo es requerido\"),\n occupation: Yup.string().required(\"Este campo es requerido\"),\n isPEP: Yup.boolean().required(\"Este campo es requerido\"),\n})\n\nexport default PersonalSchema\n","import { css } from \"@emotion/react\"\nimport styled from \"@emotion/styled\"\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n`\n\nconst Form = styled.form`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3.5rem 0 3rem;\n width: 458px;\n margin: 0 auto;\n @media (max-width: 812px) {\n width: 100%;\n padding: 2rem 1.5rem 5rem;\n }\n`\n\nconst InputWrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`\n\nconst CheckboxWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n margin-top: 1rem;\n width: 100%;\n flex-direction: column;\n`\n\nconst buttonStyle = css`\n margin-top: 2.75rem;\n padding: 12px;\n height: 48px;\n width: 200px;\n`\n\nconst Label = styled.label`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst AddressWrapper = styled.div`\n margin-bottom: 10px;\n display: flex;\n flex-direction: column;\n`\n\nconst LabelFlex = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst loadingButtonStyle = buttonStyle\n\nconst checkboxLabelStyle = {\n width: \"100%\",\n \"@media (maxWidth: 812px)\": {\n width: \"290px\",\n },\n}\n\nconst checkboxFormGroupStyle = {\n width: \"300px\",\n \"@media (maxWidth: 812px)\": {\n marginRight: 0,\n width: \"300px\",\n },\n}\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\ntype Style = Record\n\nconst inputStyle: Style = {\n width: \"219px\",\n \"@media (max-width: 812px)\": {\n width: \"327px\",\n },\n}\n\nconst addressInputStyle: Style = {\n width: \"90px\",\n height: \"56px\",\n \"@media (max-width: 812px)\": {\n width: \"90px\",\n },\n}\n\nconst AddressLabel = styled.div`\n margin-right: 5px;\n`\n\nexport {\n inputStyle,\n addressInputStyle,\n Error,\n Form,\n InputWrapper,\n CheckboxWrapper,\n buttonStyle,\n Label,\n loadingButtonStyle,\n checkboxLabelStyle,\n checkboxFormGroupStyle,\n ErrorMessage,\n AddressWrapper,\n LabelFlex,\n AddressLabel,\n}\n","export const otherJobs: string = \"Otras\"\n\nexport const listJobsCategory: string[] = [\n \"Agricultura\",\n \"Alimentos\",\n \"Bienes Raíces\",\n \"Científica/Técnica\",\n \"Comunicación\",\n \"Construcción\",\n \"Educación\",\n \"Finanzas\",\n \"Gestión\",\n \"Información\",\n \"Manufactura\",\n \"Mayorista\",\n \"Minera\",\n \"Residuos\",\n \"Sector Público\",\n \"Retail\",\n \"Salud\",\n \"Seguros\",\n \"Servicios\",\n \"Transporte\",\n otherJobs,\n]\n\nexport const jobsCategory = listJobsCategory.map(jobCategory => ({label: jobCategory, value: jobCategory}))\n","import { addressInputStyle, inputStyle } from \"./styles\"\nimport { jobsCategory, otherJobs } from \"../../../helpers/jobs-category\"\nimport occupation from \"../../../helpers/occupation\"\n\nconst fields: FieldPersonalInfo[] = [\n {\n name: \"residenceCountry\",\n label: \"País de residencia\",\n placeholder: \"Seleccionar país\",\n style: inputStyle,\n type: \"country\",\n width: 219,\n },\n {\n name: \"address\",\n label: \"Dirección\",\n placeholder: \"Calle y número\",\n type: \"maps\",\n id: \"inputAddress\",\n },\n {\n name: \"addressExtension\",\n label: \"Block/Depto/Casa (opcional)\",\n style: addressInputStyle,\n type: \"text\",\n },\n {\n name: \"job\",\n label: \"Área de trabajo\",\n placeholder: \"Agricultura\",\n type: \"select\",\n width: 219,\n listOptions: jobsCategory,\n },\n {\n name: \"otherJob\",\n label: \"Otra área\",\n style: inputStyle,\n type: \"text\",\n width: 219,\n dependsOf: (jobSelected: any) => {\n return jobSelected === otherJobs\n },\n },\n {\n name: \"occupation\",\n label: \"Profesión / ocupación / oficio\",\n placeholder: \"Gerente\",\n type: \"select\",\n width: 219,\n listOptions: occupation,\n },\n]\n\nexport default fields\n","const occupations: string[] = [\n \"Abogado/Juez\",\n \"Académico\",\n \"Actor\",\n \"Actuario\",\n \"Administrador\",\n \"Agente\",\n \"Agricultor\",\n \"Analista\",\n \"Arquitecto\",\n \"Artista\",\n \"Asegurador\",\n \"Asesor\",\n \"Asistente\",\n \"Astrofísico\",\n \"Audiovisual\",\n \"Auditor\",\n \"Banquero\",\n \"Biólogo\",\n \"Cajero\",\n \"Cartógrafo\",\n \"CEO\",\n \"CFO\",\n \"Chef\",\n \"Científico\",\n \"Cientista Politico\",\n \"Comerciante\",\n \"Conductor\",\n \"Construccion Civil\",\n \"Consultor\",\n \"Contador\",\n \"Contralor\",\n \"Contratista\",\n \"Corredor de propiedades\",\n \"Data Scientist\",\n \"Deportista\",\n \"Desarrollador\",\n \"Director\",\n \"Diseñador\",\n \"Distribuidor\",\n \"Dueño(a) de casa\",\n \"Economista\",\n \"Educador\",\n \"Ejecutivo\",\n \"Embajador\",\n \"Empleado\",\n \"Empleado público\",\n \"Empresario\",\n \"Enfermero\",\n \"Entrenador/instructor\",\n \"Escritor\",\n \"Estudiante\",\n \"Eventos\",\n \"Examinador\",\n \"Farmaceútico\",\n \"Finanzas\",\n \"Fisioterapeuta\",\n \"Fotógrafo\",\n \"Funcionario público\",\n \"Geofísico\",\n \"Geólogo\",\n \"Gerente\",\n \"Gerente general\",\n \"Importador/Exportador\",\n \"Independiente\",\n \"Ingeniero\",\n \"Inversionista\",\n \"Investigador\",\n \"Jefe contabilidad\",\n \"Jefe de proyectos\",\n \"Jefe de ventas\",\n \"Joyero\",\n \"Jubilado\",\n \"KAM\",\n \"Logística\",\n \"Manager\",\n \"Marketing\",\n \"Mecánico\",\n \"Médico/dentista/veterinario\",\n \"Militar/Oficial\",\n \"Minero\",\n \"Modista\",\n \"Músico\",\n \"Nutricionista\",\n \"Odontólogo\",\n \"Oficinista\",\n \"Operador\",\n \"Paisajista\",\n \"Pensionado\",\n \"Periodista\",\n \"Piloto/Auxiliar de vuelo\",\n \"Policia/Bombero/PDI\",\n \"Préstamos\",\n \"Prevención riesgos\",\n \"Product Manager\",\n \"Productor Eventos\",\n \"Profesor\",\n \"Psicologo\",\n \"Publicista\",\n \"Químico\",\n \"Quiropráctico\",\n \"Recursos Humanos\",\n \"Relaciones Públicas\",\n \"Seguridad\",\n \"Seguros e inversiones\",\n \"Servicio al cliente\",\n \"Software\",\n \"Sommelier\",\n \"Subgerente\",\n \"Técnico\",\n \"Tecnología\",\n \"Terapeuta\",\n \"Transportista\",\n \"Vendedor\",\n]\n\nexport default occupations.map(occupation => ({label: occupation, value: occupation}))\n","import { useState, ChangeEvent } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Select, { OptionTypeBase } from \"react-select\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\nimport { SerializedStyles } from \"@emotion/react\"\n\nconst FormGroup = styled.div`\n margin-bottom: 1rem;\n`\n\nconst Label = styled.label`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst DateWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n`\n\nconst SelectWrapper = styled.div`\n margin-right: 1rem;\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\nconst days: OptionTypeBase[] = Array.from(Array(31), (_, x) => {\n const day = {\n label: `${x + 1}`,\n value: x + 1 < 10 ? `0${x + 1}` : `${x + 1}`,\n }\n return day\n})\nconst months: OptionTypeBase[] = [\n { label: \"Enero\", value: \"01\" },\n { label: \"Febrero\", value: \"02\" },\n { label: \"Marzo\", value: \"03\" },\n { label: \"Abril\", value: \"04\" },\n { label: \"Mayo\", value: \"05\" },\n { label: \"Junio\", value: \"06\" },\n { label: \"Julio\", value: \"07\" },\n { label: \"Agosto\", value: \"08\" },\n { label: \"Septiembre\", value: \"09\" },\n { label: \"Octubre\", value: \"10\" },\n { label: \"Noviembre\", value: \"11\" },\n { label: \"Diciembre\", value: \"12\" },\n]\nconst currentYear = new Date().getFullYear()\nconst years: OptionTypeBase[] = []\nfor (let i = currentYear; i >= 1920; i--) {\n years.push({ label: i, value: i })\n}\n\ntype Props = {\n label: string\n style?: SerializedStyles\n onChange?: (e: string | ChangeEvent) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n}\n\nconst CustomDatePicker = ({\n label,\n style,\n onChange,\n hasError,\n errorMessage,\n}: Props) => {\n const [date, setDate] = useState(\"####-##-##\")\n\n const updateDate = (dateChange: any, date: string, type: string) => {\n const splittedDate = date.split(\"-\")\n let newDate = \"\"\n\n if (type === \"day\") {\n newDate = `${splittedDate[0]}-${splittedDate[1]}-${dateChange.value}`\n } else if (type === \"month\") {\n newDate = `${splittedDate[0]}-${dateChange.value}-${splittedDate[2]}`\n } else if (type === \"year\") {\n newDate = `${dateChange.value}-${splittedDate[1]}-${splittedDate[2]}`\n }\n\n setDate(newDate)\n if (onChange) onChange(newDate)\n }\n\n const daysStyles = {\n control: (provided: any) => ({\n ...provided,\n width: 70,\n height: 46,\n borderColor: hasError ? \"#e76a6a\" : \"#e8e8e8\",\n }),\n indicatorSeparator: () => ({\n width: 0,\n }),\n }\n const monthsStyles = {\n control: (provided: any) => ({\n ...provided,\n width: 132,\n height: 46,\n borderColor: hasError ? \"#e76a6a\" : \"#e8e8e8\",\n }),\n indicatorSeparator: () => ({\n width: 0,\n }),\n }\n\n const yearsStyles = {\n control: (provided: any) => ({\n ...provided,\n width: 92,\n height: 46,\n borderColor: hasError ? \"#e76a6a\" : \"#e8e8e8\",\n }),\n indicatorSeparator: () => ({\n width: 0,\n }),\n }\n\n return (\n \n \n\n \n \n updateDate(value, date, \"day\")}\n />\n \n \n updateDate(value, date, \"month\")}\n />\n \n updateDate(value, date, \"year\")}\n />\n \n\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n )\n}\n\nexport default CustomDatePicker\n","import React from \"react\"\nimport { FocusEvent } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Select, { OptionTypeBase } from \"react-select\"\nimport { Country, countries } from \"countries-list\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\n\nconst FormGroup = styled.div`\n margin-bottom: 1rem;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n`\n\nconst Label = styled.label`\n font-family: \"Roboto\";\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: #1f2425;\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n `\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\nexport type DefaultValue = OptionType | OptionTypeBase\n\nexport interface OptionType extends OptionTypeBase {\n code: string\n}\n\nconst suggestedCountries: OptionType | OptionTypeBase[] = []\nconst othersCountries: OptionType | OptionTypeBase[] = []\n\nconst formattedCountryData = (code: string, data: Country) => ({\n label: `${data.emoji} ${data.name}`,\n value: data.name,\n code: code\n})\n\nObject.entries(countries).forEach(country => {\n const [code, data] = country\n\n if ([\"CL\", \"PE\", \"UY\", \"MX\"].includes(code)) {\n suggestedCountries.push(formattedCountryData(code, data))\n } else {\n othersCountries.push(formattedCountryData(code, data))\n }\n})\n\nconst groupedCountries = [\n {\n label: \"Sugeridos\",\n options: suggestedCountries,\n },\n {\n label: \"Otros\",\n options: othersCountries,\n },\n]\n\nconst groupStyles = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n}\nconst groupBadgeStyles = {\n backgroundColor: \"#EBECF0\",\n borderRadius: \"2em\",\n color: \"#172B4D\",\n display: \"inline-block\",\n fontSize: 12,\n lineHeight: \"1\",\n minWidth: 1,\n padding: \"0.16666666666667em 0.5em\",\n}\n\nconst formatGroupLabel = (data: any) => (\n
\n {data.label}\n {data.options.length}\n
\n)\n\n\ntype Props = {\n label: string\n defaultValue?: string\n placeholder: string\n width?: number\n onChange?: (value: OptionType) => void\n onSelectDefaultValue?: (value: OptionType | undefined) => void\n onBlur?: (event: FocusEvent) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n}\n\nconst CustomCountryPicker = ({\n label,\n defaultValue,\n placeholder,\n width,\n onChange,\n onSelectDefaultValue,\n onBlur,\n hasError,\n errorMessage,\n}: Props) => {\n const countriesStyles = {\n control: (provided: any) => ({\n ...provided,\n width: width || 352,\n height: 46,\n borderColor: hasError ? \"#e76a6a\" : \"#e8e8e8\",\n \"@media (maxWidth: 812px)\": {\n width: \"327px\",\n },\n }),\n indicatorSeparator: () => ({\n width: 0,\n }),\n singleValue: (styles: any) => ({\n ...styles,\n fontFamily: \"Roboto\",\n fontSize: \"12px\",\n lineHeight: \"16px\",\n color: \"#172425\",\n fontWeight: 400,\n })\n }\n\n let defaultFormattedCountry: OptionTypeBase | undefined = undefined\n\n if (defaultValue) {\n const findCountry = Object.entries(countries).find(([code, data]) =>\n data.name === defaultValue\n )\n\n if (findCountry) {\n const [codeCountry, dataCountry] = findCountry\n defaultFormattedCountry = formattedCountryData(codeCountry, dataCountry)\n }\n }\n\n if (onSelectDefaultValue) {\n onSelectDefaultValue(defaultFormattedCountry as OptionType)\n }\n\n return (\n \n \n\n onChange!(selectedCountry)}\n onBlur={onBlur}\n />\n\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n )\n}\n\nexport default CustomCountryPicker\n","import { FocusEvent } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\nimport { SerializedStyles } from \"@emotion/react\"\n\n\nconst FormGroup = styled.div`\n display: flex;\n flex-direction: column;\n max-width: 100%;\n`\n\nconst Label = styled.label`\n position: relative;\n cursor: pointer;\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n clear: both;\n display: flex;\n flex-direction: column;\n justify-content: center;\n min-height: 32px;\n`\n\nconst Text = styled.span`\n & > a {\n color: #1f2425;\n }\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n @media (maxWidth: 812px) {\n max-width: 300px;\n }\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\nconst CheckContainer = styled.div`\n display: flex;\n align-items: center;\n`\n\nconst CheckboxInput = styled.input`\n margin-right: 8px;\n`\n\ntype Props = {\n formGroupStyle?: SerializedStyles\n label: string | React.ReactNode\n labelStyle?: SerializedStyles\n value: string\n onChange?: (event: string) => void\n onBlur?: (event: FocusEvent) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n}\n\nconst CustomCheckbox = ({\n formGroupStyle,\n label,\n labelStyle,\n value,\n onChange,\n onBlur,\n hasError,\n errorMessage,\n}: Props) => (\n \n \n\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n)\n\nexport default CustomCheckbox\n","import React from \"react\"\nimport { FocusEvent, ChangeEvent } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Select, { OptionTypeBase } from \"react-select\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\n\nconst FormGroup = styled.div`\n margin-bottom: 1rem;\n`\n\nconst Label = styled.label`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\ntype Options = {\n value: string\n label: string\n}\n\ntype Props = {\n label: string\n placeholder: string\n width?: number\n onChange?: (event: string | ChangeEvent) => void\n onBlur?: (event: FocusEvent) => void\n hasError?: boolean | \"\"\n errorMessage?: string\n listOptions: Options[]\n}\n\nconst CustomSelectPicker = ({\n label,\n placeholder,\n width,\n onChange,\n onBlur,\n hasError,\n errorMessage,\n listOptions,\n}: Props) => {\n const optionsStyles = {\n control: (provided: any) => ({\n ...provided,\n width: width || 352,\n height: 46,\n borderColor: hasError ? \"#e76a6a\" : \"#e8e8e8\",\n \"@media (maxWidth: 812px)\": {\n width: \"327px\",\n },\n }),\n indicatorSeparator: () => ({\n width: 0,\n }),\n }\n\n return (\n \n \n\n {\n const option = selectedOption as OptionTypeBase\n if (onChange) onChange(option.value)\n }}\n onBlur={onBlur}\n />\n\n {hasError && (\n \n {} {errorMessage}\n \n )}\n \n )\n}\n\nexport default CustomSelectPicker\n","import CustomInput from \"../../ui/custom-form-input\"\nimport CustomButton from \"../../ui/custom-button\"\nimport CustomDatePicker from \"../../ui/custom-date-picker\"\nimport CustomCountryPicker from \"../../ui/custom-country-picker\"\nimport CustomCheckbox from \"../../ui/custom-checkbox\"\nimport CustomSelectPicker from \"../../ui/custom-select\"\nimport styled from \"@emotion/styled\"\n\nconst Input = styled.input`\n border: 1px solid #e8e8e8;\n border-radius: 5px;\n padding: 10px;\n height: 48px;\n width: 458px;\n @media (max-width: 812px) {\n width: 327px;\n }\n`\n\nconst components: Record = {\n maps: Input,\n text: CustomInput,\n button: CustomButton,\n date: CustomDatePicker,\n country: CustomCountryPicker,\n checkbox: CustomCheckbox,\n select: CustomSelectPicker,\n}\n\nexport default components\n","export default __webpack_public_path__ + \"static/media/pin-map-icon.3e0e561b.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport mapPin from \"../../../images/pin-map-icon.svg\"\n\nconst Image = styled.img`\n width: 15px;\n height: 15px;\n`\n\nconst MapPinIcon = () => (\n \"map\n)\n\nexport default MapPinIcon\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport MapPinIcon from \"../../../ui/images/map-pin-icon\"\nimport loadAddressInformation from \"../loadAddressInformation\"\n\ntype GmapsResult = {\n description: string\n terms: Record[]\n structured_formatting: Record\n}\n\ntype ResultsType = {\n results: GmapsResult[]\n setter: {\n setAddressError: (addressError: string) => void\n setFieldValue: (field: string, value: string) => void\n setGmapResults: (gmapsResults: any) => void\n setNotSelected: (notSelected: boolean) => void\n setAddress: (address: string) => void\n setLatitude: (latitude: number) => void\n setLongitude: (longitude: number) => void\n setPostalCode: (postalCode: string) => void\n setStreetNumber: (streetNumber: string) => void\n setCity: (city: string) => void\n setShowModal: (showModal: boolean) => void\n setError: (error: boolean) => void\n }\n}\n\nconst IconWrapper = styled.div`\n padding-left: 10px;\n padding-right: 10px;\n`\n\nconst Wrapper = styled.div`\n background: white;\n position: relative;\n padding-right: 10px;\n padding-top: 15px;\n padding-bottom: 15px;\n font-size: 13px;\n border-bottom: 1px solid #ccc;\n cursor: pointer;\n letter-spacing: 0.015;\n line-height: 20px;\n display: flex;\n align-items: center;\n z-index: 10;\n`\n\nconst ResultText = styled.div`\n padding-left: 5px;\n padding-right: 10px;\n font-size: 12px;\n`\n\nconst ResultsFound = ({ results, setter }: ResultsType) => (\n
\n {results.map((result: GmapsResult, index: number) => (\n
\n {\n const principalAddress = result.structured_formatting.main_text\n if (!principalAddress.match(/\\d/)) {\n setter.setAddressError(\"Falta el número de calle\")\n // setter.setShowModal(true)\n return\n }\n const direccion = result.description\n setter.setFieldValue(\"address\", direccion)\n setter.setGmapResults([])\n setter.setNotSelected(false)\n setter.setAddressError(\"\")\n setter.setError(false)\n var geocoder = new google.maps.Geocoder()\n geocoder.geocode({ address: direccion }, function (results, status) {\n const result = loadAddressInformation(results)\n setter.setAddress(direccion)\n setter.setLatitude(result.lat)\n setter.setLongitude(result.lng)\n setter.setPostalCode(result.postalCode)\n if (!result.streetNbr) {\n const regexNumber = principalAddress.match(/\\d+/)\n if (regexNumber) {\n setter.setStreetNumber(regexNumber[0])\n }\n } else {\n setter.setStreetNumber(result.streetNbr)\n }\n setter.setCity(result.city)\n })\n }}\n >\n \n \n \n \n {`${result.structured_formatting.main_text}`}\n \n {result.structured_formatting.secondary_text}\n \n \n \n
\n ))}\n
\n)\n\nexport default ResultsFound\n","type GeometryGMaps = {\n location: {\n lat: () => number\n lng: () => number\n }\n}\n\ntype Information = {\n address: string\n streetNbr: string\n postalCode: string\n city: string\n region: string\n lat: number\n lng: number\n}\n\nexport default function loadAddressInformation(result: any):Information {\n if (!result) throw new Error(\"Not found\")\n const { formatted_address: formatedAddress, address_components } = result[0]\n const response: any = {}\n const geometry = result[0].geometry as GeometryGMaps\n if (geometry) {\n const { lat, lng } = geometry.location\n response.lat = lat()\n response.lng = lng()\n }\n if (!formatedAddress || !address_components) throw new Error(\"Not found\")\n\n const firstComponent = address_components[0]\n const isTypeStreet = firstComponent.types.indexOf(\"street_number\") !== -1\n\n if (isTypeStreet) {\n const streetNbr = parseInt(firstComponent.long_name)\n response.streetNbr = streetNbr\n }\n\n const format: string[] = formatedAddress.split(\", \").reverse()\n let [region, area] = format.slice(1, 3)\n\n if (Number(area)) {\n response.postalCode = area\n area = format.slice(3, 4)[0]\n }\n\n const regExp = new RegExp(/\\d+/ig)\n const numbersFound = area.match(regExp)\n\n if (numbersFound?.length && format.length > 3) {\n response.postalCode = numbersFound[0]\n area = area.replace(new RegExp(` ?${numbersFound[0]} ?`, \"ig\"), \"\")\n }\n\n const finalAddress = format.slice(3).reverse()\n response.address = finalAddress.join(\", \")\n\n response.city = area\n response.region = region\n\n return response as Information\n}\n","import styled from \"@emotion/styled\"\nimport React from \"react\"\n\nconst Wrapper = styled.div`\n background: white;\n position: relative;\n width: 457px;\n padding: 10px;\n font-size: 13px;\n z-index: 10;\n border-bottom: 1px solid #ccc;\n @media (max-width: 812px) {\n position: relative;\n width: 327px;\n }\n`\n\nconst FindingResults = ({ children }: any) => (\n \n {children}\n \n)\n\nexport default FindingResults","type AddressType = {\n countryCode: string\n value: string\n}\n\nconst loadPredictions = async ({countryCode, value}: AddressType) :Promise => {\n const request = {\n fields: [\"name\", \"geometry\", \"formatted_address\", \"address_components\"],\n componentRestrictions: { country: countryCode },\n }\n const service = new window.google.maps.places.AutocompleteService()\n const result = await service.getPlacePredictions({\n input: value,\n componentRestrictions: request.componentRestrictions,\n })\n return {\n result: result?.predictions || [],\n error: !result?.predictions?.length,\n }\n}\n\nexport default loadPredictions\n","import styled from \"@emotion/styled\"\nimport React, { useState } from \"react\"\nimport { trackEvent } from \"../../../helpers/tracker\"\nimport \"./styles.css\"\n\nconst Button = styled.div`\n background: #2BA770;\n color: #fff;\n padding: 10px 55px;\n border-radius: 5px;\n border: none;\n height: 44px;\n font-family: \"Roboto\";\n font-weight: 500;\n text-decoration: none;\n width: 100%;\n cursor: pointer;\n display: flex;\n justify-content: center;\n align-items: center;\n @media (max-width: 812px) {\n margin-left: 0;\n width: 19.6rem;\n }\n`\n\nconst Container = styled.div`\n margin-top: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n`\n\nconst FlexColumnContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n`\n\nconst CloseButton = styled.div`\n cursor: pointer;\n font-size: 20px;\n font-weight: bold;\n`\n\nconst AddressContainer = styled.div`\n display: flex;\n gap: 10px;\n margin-bottom: 10px;\n align-items: center;\n`\n\nconst AddressLabel = styled.div`\n label {\n font-weight: bold;\n }\n`\n\nconst ErrorMessage = styled.div`\n color: #ff0000;\n font-size: 12px;\n`\n\ntype PropsModalGoogleMaps = {\n address: string\n setAddress: (address: string) => void\n city: string\n setCity: (city: string) => void\n setShowModal: (showModal: boolean) => void\n setFieldValue: (field: string, value: string) => void\n values: Record\n streetNumber: string\n setStreetNumber: (streetNumber: string) => void\n setError: (error: boolean) => void\n setGmapResults: (gmapsResults: any) => void\n setAddressError: (error: string) => void\n}\n\nfunction ModalGoogleMaps({\n address,\n setAddress,\n city,\n setCity,\n setFieldValue,\n setShowModal,\n streetNumber,\n setStreetNumber,\n setError,\n values,\n setGmapResults,\n setAddressError\n}: PropsModalGoogleMaps) {\n const [errors, setErrors] = useState>({\n address: \"\",\n city: \"\",\n streetNumber: \"\"\n })\n const validateAddress = () => {\n if (streetNumber.length === 0) {\n setErrors(prevErrors => ({\n ...prevErrors,\n streetNumber: \"Ingresa un número de calle\",\n }))\n return false\n }\n\n if (!address) {\n setErrors(prevErrors => ({\n ...prevErrors,\n address: \"Ingresa una dirección\",\n }))\n return false\n }\n\n if (!city) {\n setErrors(prevErrors => ({\n ...prevErrors,\n city: \"Ingresa una ciudad o estado\",\n }))\n return false\n }\n setFieldValue(\"address\", address)\n setFieldValue(\"city\", city)\n setError(false)\n return true\n }\n\n const handleContinue = () => {\n const isValid = validateAddress()\n\n if (isValid) {\n setErrors({\n address: \"\",\n city: \"\",\n streetNumber: \"\",\n })\n setAddressError(\"\")\n setShowModal(false)\n setGmapResults([])\n setError(false)\n setAddress(`${values[\"address\"]} ${streetNumber}, ${city}`)\n setFieldValue(\"address\", `${values[\"address\"]} ${streetNumber}, ${city}`)\n trackEvent(\"kyc:personal-info:manual-address:continue\", {\n address: values[\"address\"],\n city,\n streetNumber\n })\n } else {\n trackEvent(\"kyc:personal-info:manual-adress:error\", {\n address,\n city,\n streetNumber,\n errors,\n })\n }\n }\n\n\n return (\n
\n
\n
Ingresa tu dirección
\n setShowModal(false)}>×\n
\n
\n \n
\n \n \n \n \n {errors[\"address\"].length ? (\n {errors[\"address\"]}\n ) : null}\n \n
\n {\n setAddress(event.target.value)\n setFieldValue(\"address\", event.target.value)\n setErrors({ ...errors, address: \"\" })\n }}\n value={values[\"address\"]}\n />\n
\n
\n
\n \n \n \n \n {errors[\"streetNumber\"].length ? (\n {errors[\"streetNumber\"]}\n ) : null}\n \n
\n {\n setStreetNumber(event.target.value)\n // setFieldValue(\"address\", event.target.value)\n setErrors({ ...errors, streetNumber: \"\" })\n }}\n value={streetNumber}\n />\n
\n
\n
\n \n \n \n \n {errors[\"city\"].length ? (\n {errors[\"city\"]}\n ) : null}\n \n
\n {\n setCity(event.target.value)\n setFieldValue(\"city\", event.target.value)\n setErrors({ ...errors, city: \"\" })\n }}\n value={city}\n />\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nexport default ModalGoogleMaps\n","import React, { KeyboardEvent, useRef, useState } from \"react\"\nimport { navigate } from \"@reach/router\"\nimport { Formik } from \"formik\"\nimport styled from \"@emotion/styled\"\n\nimport { useAuth } from \"../../../hooks/auth-context\"\nimport KYC from \"../../../services/kyc\"\nimport HelpPopover from \"../../ui/help-popover\"\nimport CheckKycNextStep from \"../check-kyc-step\"\nimport KycLayout from \"../kyc-layout\"\nimport PersonalSchema from \"../schemas/personal-info\"\nimport fields from \"../personal-info/fields\"\nimport mapComponents from \"../personal-info/mapComponents\"\nimport ResultsFound from \"./helpers/results-found\"\nimport FindingResults from \"./helpers/finding-results\"\nimport ErrorIcon from \"../../ui/images/error-icon\"\nimport loadPredictions from \"./loadPredictions\"\nimport {\n buttonStyle,\n CheckboxWrapper,\n Error,\n ErrorMessage,\n Form,\n InputWrapper,\n loadingButtonStyle,\n Label,\n AddressWrapper,\n LabelFlex,\n AddressLabel\n} from \"./styles\"\n\nimport \"./styles.css\"\nimport ModalGoogleMaps from \"./modal\"\nimport CustomButtonV2 from \"../../ui/custom-button-v2\"\n\ntype Personal = {\n residenceCountry: string\n city?: string\n address: string\n job: string\n isPEP: string\n occupation: string\n addressExtension: string\n postalCode?: string\n latitude?: number\n longitude?: number\n}\n\nconst ManualAddressEntry = styled.div`\n background: #000;\n color: #FFF;\n padding: 10px;\n cursor: pointer;\n text-align: center;\n font-size: 12px;\n font-weight: bold;\n letter-spacing: 0.015;\n line-height: 20px;\n`\n\nconst QuestionPep = styled.p`\n font-family: Nunito;\n font-size: 13.33px;\n font-style: normal;\n font-weight: 600;\n line-height: 140%;\n margin-right: 20px;\n`\n\nconst QuestionPepWrapper = styled.div`\n display: flex;\n justify-content: flex-start;\n width: 100%;\n align-items: center;\n`\n\nconst BoxAnswerPep = styled.button`\n width: 102px;\n height: 64px;\n border-radius: 5px;\n border: 1px solid #C4CDD5;\n margin-right: 20px;\n cursor: pointer;\n`\n\ninterface ButtonToggleProps {\n active: boolean\n onClick: () => void\n children: React.ReactNode\n}\n\nconst ButtonToggle = styled(BoxAnswerPep)`\n opacity: 0.7;\n ${({ active }) =>\n active &&\n `\n background-color: #fff;\n border-color: #2ba770;\n box-shadow: 0px 5px 5px 0px rgba(0, 0, 0, 0.08), 0px 3px 14px 0px rgba(0, 0, 0, 0.04), 0px 8px 10px 0px rgba(0, 0, 0, 0.06);\n opacity: 1;\n `}\n`\n\nconst ContainerBoxAnswerPep = styled.div`\n display: flex;\n flex-direction: row;\n`\n\nconst answersOfPep = {\"Si\": \"true\", \"No\": \"false\"}\ntype ToggleGroupProps = {\n value: string\n hasError?: boolean | \"\"\n errorMessage?: string\n onClick: (event: string) => void\n}\n\nconst PersonalInfo = () => {\n const { state } = useAuth()\n const user = state.user as User\n const [isLoading, setIsLoading] = useState(false)\n const [address, setAddress] = useState(\"\")\n const [streetNumber, setStreetNumber] = useState(\"\")\n const [city, setCity] = useState(\"\")\n const [postalCode, setPostalCode] = useState(\"\")\n const [countryCode, setCountryCode] = useState(\"CL\")\n const [latitude, setLatitude] = useState(0)\n const [longitude, setLongitude] = useState(0)\n const [notSelected, setNotSelected] = useState(true)\n const [gmapsResults, setGmapResults] = useState([])\n const [addressError, setAddressError] = useState(\"\")\n const [showModal, setShowModal] = useState(false)\n const [error, setError] = useState(false)\n const timeoutRef = useRef()\n\n function ToggleGroup({\n value,\n hasError,\n errorMessage,\n onClick,\n }: ToggleGroupProps) {\n const values = Object.entries(answersOfPep)\n return (\n
\n {values.map(([key, label]) => (\n onClick(label)}>\n {key}\n \n ))}\n {hasError && (\n \n {} {errorMessage}\n \n )}\n
\n )\n }\n\n const formikInitialValues: Personal = {\n city: \"\",\n residenceCountry: \"\",\n address: \"\",\n job: \"\",\n occupation: \"\",\n isPEP: \"\",\n addressExtension: \"\",\n postalCode: \"\",\n }\n\n const onSubmit = async (values: Personal) => {\n if (!streetNumber) return\n setIsLoading(true)\n const result = await KYC.updatePersonalInfo(user, {\n ...values,\n address: address,\n city,\n postalCode,\n latitude: latitude.toString(),\n longitude: longitude.toString(),\n })\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n const evaluate = (condA: any, condB: any) => condA && condB\n\n return (\n \n \n \n {props => {\n const {\n values,\n setFieldValue,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n } = props\n return (\n
handleSubmit(values)} autoComplete=\"off\">\n \n {fields.map((field: FieldPersonalInfo, index: number) => {\n const name = field.name as keyof typeof values\n if (field.dependsOf && !field.dependsOf(values.job))\n return null\n const Component = mapComponents[field.type]\n const commonProps = {\n ...field,\n key: index,\n onChange: handleChange,\n onBlur: handleBlur,\n errors: errors[name],\n value: values[name],\n errorMessage: errors[name],\n type: \"text\",\n autocomplete: \"off\",\n hasError: evaluate(errors[name], touched[name]),\n onKeyDown: (\n event: KeyboardEvent\n ) => { },\n }\n if (name === \"address\") {\n delete commonProps.value\n commonProps.onChange = (event: React.ChangeEvent) => {\n handleChange(event)\n setAddressError(\"\")\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n timeoutRef.current = window.setTimeout(async () => {\n if (address.length > 3 && notSelected) {\n const { result, error } = await loadPredictions({\n countryCode,\n value: event.target.value,\n })\n if (!error) {\n setGmapResults(result)\n setError(false)\n } else {\n setError(true)\n }\n if (!/\\d/.test(event.target.value)) {\n setError(true)\n }\n }\n }, 3000)\n }\n commonProps.onKeyDown = (\n event: KeyboardEvent\n ) => {\n if ([91, 32].includes(event.keyCode)) return\n setStreetNumber(\"\")\n setGmapResults([])\n setNotSelected(true)\n setAddress(event.currentTarget.value)\n setError(false)\n setCity(\"\")\n setFieldValue(\"address\", event.currentTarget.value)\n }\n commonProps.hasError =\n evaluate(touched[name], !streetNumber) ||\n commonProps.hasError\n commonProps.errorMessage = evaluate(\n touched[name],\n !streetNumber\n )\n ? \"Selecciona una dirección con número\"\n : errors[name]\n }\n if ([\"select\", \"country\", \"date\"].includes(field.type)) {\n commonProps.onChange = (event: any) => {\n if (field.type === \"country\") {\n setCountryCode(event.code)\n setFieldValue(name, event.value)\n return\n }\n setFieldValue(name, event)\n }\n }\n if (name === \"address\") {\n return (\n \n {showModal && (\n \n )}\n \n \n {gmapsResults.length === 0 &&\n city.length === 0 &&\n values.address.length > 0 &&\n notSelected &&\n !error ? (\n Buscando...\n ) : (\n
\n \n
\n )}\n {values.address.length > 0 && error && (\n // gmapsResults.length >= 0 && (\n setShowModal(true)}\n >\n Ingresa tu dirección manualmente\n \n )}\n
\n )\n }\n return (\n \n )\n })}\n \n \n ¿Eres una persona políticamente expuesta?\n \n \n \n setFieldValue(\"isPEP\", value)}\n />\n \n \n
\n\n \n CONTINUAR\n \n \n )\n }}\n \n
\n
\n )\n}\n\nexport default PersonalInfo\n","export default __webpack_public_path__ + \"static/media/loading-screen.4bb62890.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport loadingScreen from \"../../../images/loading-screen.svg\"\n\nconst LoadingScreen = styled.div`\n background-image: url(${loadingScreen});\n background-repeat: no-repeat;\n background-size: cover;\n width: 80px;\n height: 80px;\n`\n\nconst LoginScreenIcon = () => \n\nexport default LoginScreenIcon\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\n\ninterface FormGroupProps {\n isSelected: boolean\n}\n\nconst FormGroup = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n width: 102px;\n height: 64px;\n text-align: center;\n cursor: pointer;\n ${({ isSelected }) =>\n isSelected && {\n backgroundColor: \"#fff\",\n borderColor: \"#2ba770\",\n boxShadow: \"0px 5px 5px 0px rgba(0, 0, 0, 0.08), 0px 3px 14px 0px rgba(0, 0, 0, 0.04), 0px 8px 10px 0px rgba(0, 0, 0, 0.06)\",\n opacity: \"1\",\n }\n }\n`\n\nconst InputCheckbox = styled.input`\n`\n\nconst Label = styled.label`\n font-family: \"Open Sans\";\n color: #919eab;\n width: 100%;\n height: 100%;\n align-items: center;\n text-align: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n cursor: pointer;\n`\n\ntype Props = {\n id: string\n name: string\n label: string\n labelStyle?: any\n inputStyle?: any\n onClick: any\n isSelected: boolean\n}\n\nconst AnswerCheckbox = ({\n id,\n name,\n label,\n labelStyle,\n onClick,\n isSelected,\n}: Props) => {\n\n const handleClick = () => {\n onClick(id)\n }\n\n return (\n \n \n \n \n )\n}\n\nexport default AnswerCheckbox\n","import React from \"react\"\n\nexport const renderWithBreakLine = (query: string) => {\n return query.split(\"

\").reduce(reduceElement, [])\n}\n\nexport const reduceElement = (\n acumulator: (string | JSX.Element)[],\n element: string\n) => {\n if (!acumulator.length) {\n return [element]\n }\n return [...acumulator,
,
, element]\n}\n","export default __webpack_public_path__ + \"static/media/dropdown-indicator-icon.578b446e.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport dropdownIndicatorIcon from \"../../../images/dropdown-indicator-icon.svg\"\n\nconst Icon = styled.img`\n width: 13.679px;\n height: 13.679px;\n`\n\nconst DropdownIndicatorIcon = () => \n\nexport default DropdownIndicatorIcon\n","import React, { useState } from 'react'\n\nimport styled from \"@emotion/styled\"\nimport DropdownIndicatorIcon from \"../ui/images/dropdown-indicator-icon\"\n\n\nconst DropdownMenu = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n border-color: #919EAB;\n border-radius: 4px;\n border-style: solid;\n border-width: 1px;\n box-shadow: none;\n padding: 0px 15px;\n overflow-x: hidden;\n overflow-y: scroll;\n height: 17em;\n line-height: 1em;\n`\n\nconst CheckboxDropdownContent = styled.div`\n width: 100%;\n`\n\nconst Dropdown = styled.div``\n\nconst DropdownButton = styled.button`\n width: 100%;\n text-align: justify;\n padding: 10px 17px;\n background-color: #ffffff;\n border-color: #919EAB;\n border-radius: 4px;\n border-style: solid;\n border-width: 1px;\n box-shadow: none;\n color: #808080;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n`\n\nconst StyledCheckbox = styled.input`\n display: inline-block !important;\n width: 30px;\n height: 30px;\n margin-right: 5px;\n filter: hue-rotate(184deg);\n`\n\nconst DropdownLabel = styled.label`\n height: 51px;\n padding-top: 10px;\n display: flex;\n align-items: center;\n`\n\ntype SelectedOptions = {\n value: string\n label: string\n selected?: boolean | undefined\n}\n\ninterface Props {\n options: { value: string; label: string }[]\n placeholder: string\n onChange: (selectedOptions: SelectedOptions[]) => void\n}\n\nconst DropdownCheckbox: React.FC = ({ options, placeholder, onChange }: any) => {\n const [selectedOptions, setSelectedOptions] = useState<{\n value: string; label: string; selected?: boolean\n }[]>([])\n const [isOpen, setIsOpen] = useState(false)\n\n const handleToggle = () => {\n setIsOpen(!isOpen)\n }\n\n const handleOptionToggle = (option: { value: string; label: string }) => {\n const optionValue = option.value\n const isSelected = selectedOptions.some((o) => o.value === optionValue)\n let newSelectedOptions = []\n\n if (isSelected) {\n newSelectedOptions = selectedOptions.map((o) => {\n return { ...o, selected: o.value !== optionValue }\n })\n } else {\n newSelectedOptions = selectedOptions.concat([{ ...option, selected: true }])\n }\n\n setSelectedOptions(newSelectedOptions.filter(option => option.selected === true))\n onChange(newSelectedOptions)\n }\n\n return (\n \n \n \n {selectedOptions.length > 0 ? `${selectedOptions.length} opci${selectedOptions.length !== 1 ? 'ones' : 'ón'} seleccionada${selectedOptions.length !== 1 ? 's' : ''}` : placeholder}\n \n \n {isOpen && (\n \n {options.map((option: { value: string; label: string }) => (\n \n o.value === option.value)}\n onChange={() => handleOptionToggle(option)}\n />\n {option.label}\n \n ))}\n \n )}\n \n \n )\n}\n\nexport default DropdownCheckbox\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Select, { components } from 'react-select'\n\nimport AnswerCheckbox from \"./answer-checkbox\"\nimport { renderWithBreakLine } from \"../../helpers/break-line-from-text\"\nimport DropdownIndicatorIcon from \"../ui/images/dropdown-indicator-icon\"\nimport DropdownCheckbox from \"./dropdown-checkbox\"\n\n\nconst ContainerAnswer = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-evenly;\n`\n\nconst QueryWrapper = styled.div`\n padding-top: 2rem;\n max-width: 100%;\n @media (max-width: 768px) {\n max-width: 750px;\n }\n @media (max-width: 425px) {\n max-width: 400px;\n }\n`\n\nconst Query = styled.p`\n font-family: \"Open Sans\";\n font-weight: 600;\n line-height: 22px;\n color: #1f2425;\n`\n\nconst Description = styled.p`\n font-family: \"Open Sans\";\n color: #1f2425;\n`\n\nconst FormGroup = styled.div`\n display: flex;\n flex-direction: row;\n align-items: flex-start;\n`\n\nconst ContainerAnswersRadio = styled.div`\n display: flex;\n flex-direction: column;\n min-height: 300px;\n justify-content: space-around;\n`\n\nconst AnswerLabel = styled.label`\n cursor: pointer;\n display: flex;\n flex-direction: row;\n align-items: center;\n`\n\nconst AnswerRadio = styled.input`\n margin-right: 5px;\n transform: scale(1.3);\n accent-color: #2ba770;\n width: 30px;\n height: 30px;\n margin-right: 20px;\n margin-left: 30px;\n @media (max-width: 700px) {\n margin-left: 15px;\n }\n`\n\nconst AnswerText = styled.p`\n width: calc(100% - 60px);\n`\n\ntype OptionChange = {\n answerId: string\n value?: boolean\n}\n\ntype Props = {\n name: string\n query: string\n type: string\n description?: string\n answers: { id: string; text: string }[]\n onClick: (answerId: string, value?: boolean) => void\n multiSelectedOptionsChange?: (options: OptionChange[]) => void\n}\n\nconst Question = ({\n name,\n query,\n type,\n description,\n answers,\n onClick,\n multiSelectedOptionsChange,\n}: Props) => {\n const options = answers.map((answer) => ({\n value: answer.id,\n label: answer.text,\n }))\n\n const handleMultiOptionChange = (listSelectedOptions: { value: string, selected?: boolean }[]) => {\n if (multiSelectedOptionsChange)\n multiSelectedOptionsChange(listSelectedOptions.map(option => ({ answerId: option.value, value: option.selected })))\n }\n\n const handleChange = (selectedOption: any) => {\n if (type === \"dropdown\") {\n onClick(selectedOption.value, true)\n } else {\n console.log(\"No hay opciones seleccionadas\")\n }\n }\n\n const onlyDropdownStyles = {\n option: (provided: any, state: any) => ({\n ...provided,\n backgroundColor: state.isSelected ? '#44D091' : '#ffffff',\n color: state.isSelected ? '#ffff !important' : '#000000',\n }),\n control: (provided: any) => ({\n ...provided,\n boxShadow: 'none',\n padding: '0 10px',\n borderColor: '#919EAB',\n borderStyle: 'solid',\n borderWidth: '1px',\n }),\n container: (provided: any) => ({\n ...provided,\n width: '100%',\n }),\n menu: (provided: any) => ({\n ...provided,\n width: '100%',\n }),\n indicatorSeparator: (provided: any) => ({\n ...provided,\n display: 'none',\n }),\n }\n\n const [answerSelectedCheckbox, setAnswerSelectedCheckbox] = useState(null)\n\n const handleCheckboxChange = (id: string) => {\n if (id !== answerSelectedCheckbox) {\n onClick(id)\n setAnswerSelectedCheckbox(id)\n }\n }\n\n\n return (\n \n {renderWithBreakLine(query)}\n {description}\n \n {type === \"multi-checkbox\" ? (\n \n ) : type === \"dropdown\" ? (\n (\n \n \n \n )\n }}\n />\n ) : type === \"radio\" ? (\n \n {answers.map((answer) => (\n \n onClick(answer.id)}>\n onClick(answer.id)}\n />\n {answer.text}\n \n \n ))}\n \n ) : (\n answers.map((answer, idx) => (\n \n handleCheckboxChange(answer.id)}\n isSelected={answer.id === answerSelectedCheckbox}\n />\n \n ))\n )}\n \n \n )\n}\n\nexport default Question\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport Question from \"./question\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\n\nconst Container = styled.section`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-bottom: 5rem;\n @media (max-width: 812px) {\n padding: 0 1.5rem 3rem;\n }\n`\n\nconst QuestionGroup = styled.section`\n max-width: 700px;\n`\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst buttonStyle = css`\n margin: 2rem 0 5rem;\n width: 222px;\n`\n\nconst Title = styled.h3`\n width: 60%;\n color: #1F2425;\n\n text-align: center;\n font-family: Open Sans;\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n`\n\nconst loadingButtonStyle = buttonStyle\nconst disabledButtonStyle = buttonStyle\n\ntype Value = {\n [key: string]: string[]\n}\n\ntype Props = {\n title: string,\n questions: {\n id: string\n query: string\n type: string\n description?: string\n answers: Answer[]\n }[]\n isLoading: boolean\n onSubmit?: (values: Value) => void\n}\n\nconst Questions = ({ title, questions, isLoading, onSubmit }: Props) => {\n const [values, setValues] = useState({} as Value)\n\n const updateMultiAnswer = (answerId: string, value?: boolean) => {\n const answerSplittedId = answerId.split(\"-\")\n const questionId = `${answerSplittedId[0]}-${answerSplittedId[1]}`\n const answeredQuestion = questions.find(q => q.id === questionId)\n let newAnswer = [answerId]\n let removeQuestion = false\n\n if (\n answeredQuestion?.type === \"multi-checkbox\" &&\n Array.isArray(values[questionId])\n ) {\n const answersIds = values[questionId] as string[]\n const filtered = answersIds.filter(id => id !== answerId)\n\n if (value) {\n newAnswer = [...filtered, answerId]\n } else {\n if (filtered.length === 0) {\n removeQuestion = true\n } else {\n newAnswer = [...filtered]\n }\n }\n }\n return { newAnswer, questionId, removeQuestion }\n }\n\n const multiSelectedOptionsChange = (options: any[]) => {\n if (options.length > 0) {\n const firstAnswer = options[0].answerId\n const answerSplittedId = firstAnswer.split(\"-\")\n const questionId = `${answerSplittedId[0]}-${answerSplittedId[1]}`\n\n if (options.every(answer => answer.value)) {\n const listAnswerIds: string[] = options.map(answer => answer.answerId)\n setValues({ ...values, [questionId]: listAnswerIds })\n }\n else {\n const listAnswerIds: string[] = options.filter(answer => answer.value).map(answer => answer.answerId)\n if (listAnswerIds.length === 0) {\n delete values[questionId]\n setValues({ ...values })\n }\n else {\n setValues({ ...values, [questionId]: listAnswerIds })\n }\n }\n }\n }\n\n const updateAnswer = (answerId: string, value?: boolean) => {\n const { newAnswer, questionId, removeQuestion } = updateMultiAnswer(answerId, value)\n if (removeQuestion) {\n delete values[questionId]\n setValues({ ...values })\n } else {\n setValues({ ...values, [questionId]: newAnswer })\n }\n }\n\n const onClick = () => {\n if (onSubmit) {\n onSubmit(values)\n }\n }\n\n if (questions.length === 0) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n {title}\n \n \n {questions.map((q, idx) => (\n \n ))}\n \n\n \n CONTINUAR\n \n \n )\n}\n\nexport default Questions\n","import React, { useEffect, useState } from \"react\"\nimport { navigate } from \"@reach/router\"\nimport { toast } from \"react-toastify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { getRiskProfileQuestions } from \"../../graphql/queries\"\n\nimport { trackEvent } from \"../../helpers/tracker\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport CheckKycNextStep from \"./check-kyc-step\"\nimport Questions from \"./questions\"\n\nconst RiskProfile = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [questions, setQuestions] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n const getQuestions = async () => {\n try {\n const response = await API.graphql(\n graphqlOperation(getRiskProfileQuestions, {})\n )\n const riskProfileQuestions = JSON.parse(\n // @ts-ignore\n response.data.getRiskProfileQuestions\n )\n\n setQuestions(riskProfileQuestions)\n } catch (error) {\n trackEvent(\"kyc:risk-profile:error:loading-questions\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n }\n }\n\n getQuestions()\n }, [])\n\n const onSubmit = async (values: any) => {\n setIsLoading(true)\n\n const result = await KYC.updateRiskProfile(user, values)\n\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n \n \n )\n}\n\nexport default RiskProfile\n","import React, { useEffect, useState } from \"react\"\nimport { navigate } from \"@reach/router\"\nimport { toast } from \"react-toastify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { getKnowledgeProfileQuestions } from \"../../graphql/queries\"\n\nimport { trackEvent } from \"../../helpers/tracker\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport CheckKycNextStep from \"./check-kyc-step\"\nimport Questions from \"./questions\"\n\n\nconst KnowledgeProfile = () => {\n const { state } = useAuth()\n const { user, setUser } = state\n\n const [questions, setQuestions] = useState([])\n const [isLoading, setIsLoading] = useState(false)\n\n useEffect(() => {\n const getQuestions = async () => {\n try {\n const response = await API.graphql(\n graphqlOperation(getKnowledgeProfileQuestions, {})\n )\n const knowledgeProfileQuestions = JSON.parse(\n // @ts-ignore\n response.data.getKnowledgeProfileQuestions\n )\n\n setQuestions(knowledgeProfileQuestions)\n } catch (error) {\n trackEvent(\"kyc:knowledge-profile:error:loading-questions\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n }\n }\n\n getQuestions()\n }, [])\n\n const onSubmit = async (values: any) => {\n setIsLoading(true)\n\n const result = await KYC.updateKnowledgeProfile(user as User, values)\n\n setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n \n\n \n )\n}\n\nexport default KnowledgeProfile\n","import React, { useState } from \"react\"\nimport { navigate } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\n\nconst Paragraph = styled.div`\n position: relative;\n max-width: 616px;\n background-color: white;\n margin-bottom: 12px;\n box-shadow: inset 0px -1px 0px rgba(0, 0, 0, 0.12);\n`\n\nconst ParagraphHeadline = styled.h3`\n margin: 0;\n padding: 16px 24px;\n font-family: 'Work Sans';\n font-style: normal;\n font-weight: 500;\n font-size: 16px;\n line-height: 24px;\n box-shadow: inset 0px -1px 0px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n`\n\nconst ParagraphText = styled.p`\n margin: 29px 61px;\n font-family: 'Nunito';\n font-weight: 400;\n font-size: 14px;\n line-height: 140%;\n min-height: 60px;\n transition: max-height .1s, margin .2s linear .1s;\n &.closed {\n overflow: hidden;\n max-height: 0;\n min-height: 0;\n margin: 0 61px;\n }\n`\n\nconst ContractTitle = styled.h2`\n min-width: 616px;\n font-family: 'Work Sans';\n font-weight: 700;\n font-size: 32px;\n line-height: 40px;\n color: #454F5B;\n text-align: center;\n\n @media (max-width: 812px) {\n min-width: 100%;\n }\n`\n\nconst ContractAndAnnex = styled.p`\n color: #363f41;\n font-weight: bold;\n font-size: 13.33px;\n line-height: 140%;\n text-align: center;\n margin-bottom: 0;\n & > a {\n color: #5C6AC4;\n text-decoration: none;\n cursor: pointer;\n font-size: 14px;\n font-weight: 400;\n font-family: 'Roboto';\n line-height: 18px;\n }\n`\n\nconst buttonStyle = css`\n margin-top: 1.5rem;\n padding: 0px;\n width: 18.95rem;\n background-color: #2ba770;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst loadingButtonStyle = buttonStyle\n\nconst CrossButton = styled.div`\n cursor: pointer;\n position: absolute;\n right: 27px;\n top: 15px;\n height: 22px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n &.open{\n span{\n &:nth-child(1),\n &:nth-child(2){\n transform: translate(0px, 5px) rotate(-90deg);\n margin: 0;\n }\n &:nth-child(2){\n transform: translate(0px, 1px) rotate(0deg);\n }\n }\n }\n`\n\nconst LineCross = styled.span`\n background: #1d1d1b;\n display: block;\n width: 18px;\n height: 4px;\n border-radius: 5px;\n margin-bottom: -4px;\n -webkit-transition: all 0.5s linear;\n transition: all 0.3s linear;\n`\n\nconst initialState: StateTerm = {\n contract: true,\n market: false,\n risk: false,\n 'market-liquidity': false,\n orders: false,\n 'operations-duration': false,\n deposit: false,\n withdrawals: false,\n recommendations: false,\n communications: false,\n term: false,\n dof: false,\n 'relevant-terms': false,\n}\n\n\ntype Terms = {\n contract: string\n detail: ItemTerm[]\n}\n\n\ntype Props = {\n terms: Terms\n}\n\nconst TermsDetails = ({ terms }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [isLoading, setIsLoading] = useState(false)\n const [open, toogleOpen] = useState(initialState)\n\n const onSubmit = async () => {\n setIsLoading(true)\n\n const result = await KYC.updateTerms(user)\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n const toggleAccordeon = (key: TypeKey) => () =>\n toogleOpen((stateOpenDiv: StateTerm) => ({\n ...stateOpenDiv,\n [key]: !stateOpenDiv[key]\n }))\n\n return (\n <>\n Resumen de los términos y condiciones\n {terms.detail.map((values: ItemTerm, idx: number) => {\n return (\n \n \n \n \n \n \n {values.title}\n \n \n {values.description}\n \n \n )\n })}\n\n \n \n Descargar todos los términos, condiciones y sus anexos\n \n \n\n \n Acepto los términos y condiciones\n \n \n )\n}\n\nexport default TermsDetails\n","export const termsChile: ItemTerm[] = [\n {\n key: 'contract',\n title: 'Términos, condiciones y productos',\n description: `Capitaria Latam SPA, en adelante (Capitaria), es un bróker que ofrece a sus clientes una cuenta de inversión para operar en diversos instrumentos financieros, conocidos como Contratos por Diferencia (CFD's), que son instrumentos financieros derivados del mercado OTC (en adelante, denominado “OTC”), que replican los movimientos que mantienen distintos activos financieros, tales como Futuros, Índices, Exchange Trade Funds (ETF's), divisas y acciones, a través de los cuales los clientes pueden invertir bajo su propia cuenta y riesgo.`,\n },\n {\n key: 'market',\n title: 'Mercado OTC',\n description: 'Las operaciones en el mercado OTC se realizan en un mercado informal, conocido internacionalmente como \"over the counter\" (sobre el mostrador) u \"OTC\". Por tanto, las operaciones no se realizan por medio de mercados unificados o regulados como son, por ejemplo, el bursátil y el bancario.',\n },\n {\n key: 'risk',\n title: 'Riesgos',\n description: 'Operar en los mercados antes mencionados involucra conocimientos y habilidades especificas incluyendo el conocimiento y sumisión de los riesgos que implica el realizar operaciones con apalancamiento.'\n },\n {\n key: 'market-liquidity',\n title: 'Liquidez del mercado',\n description: 'Puede haber ciertos casos en los cuales la liquidez del mercado disminuye causando que las operaciones con determinadas monedas u otros instrumentos financieros cesen, pudiendo generarse condiciones adversas para el cliente que pueden llevar a pérdidas financieras substanciales, incluso mayores al dinero que disponga en su cuenta de operaciones.'\n },\n {\n key: 'orders',\n title: 'Órdenes',\n description: 'El cliente comprará y/o venderá instrumentos OTC directamente y por su cuenta a Capitaria, a través de órdenes que podrán darse en forma oral vía telefónica, o enviadas a través de la plataforma online que dispone. Capitaria podrá rechazar órdenes de inversión realizada por el cliente cuando los movimientos y/o condiciones de mercado hagan imposible su ejecución.'\n },\n {\n key: 'operations-duration',\n title: 'Duración de las operaciones',\n description: 'Las operaciones de compra y venta que realice el cliente con Capitaria, se mantendrán abiertas hasta que el cliente decida cerrarlas por compensación, o cuando éstas venzan, momento en que se acreditará o devengará, el diferencial que corresponda. En ningún caso Capitaria procederá a la entrega física de las divisas o instrumentos que se negocien.'\n },\n {\n key: 'deposit',\n title: 'Depósitos',\n description: 'El sistema requiere del depósito de dineros que respalden las operaciones, los que podrán ser depositados por el cliente en las cuentas bancarias de Capitaria o bien en cualquiera de las cuentas bancarias de entidades recaudadoras con las que Capitaria mantiene relaciones comerciales.'\n },\n {\n key: 'withdrawals',\n title: 'Retiros',\n description: 'Todos los fondos propiedad del Cliente si bien pueden ser retirados en cualquier momento por este, ello está condicionado a que al momento del retiro el cliente haya cumplido con todas las obligaciones derivadas de su relación con Capitaria. Estos fondos serán entregados, preferentemente, en la misma moneda en que el cliente haya depositado los fondos de garantía necesarios para operar en el sistema.'\n },\n {\n key: 'recommendations',\n title: 'Recomendaciones de inversión',\n description: 'Capitaria, sus empleados, agentes o dependientes, no son asesores financieros. Por tanto, en el hipotético evento de existir determinadas recomendaciones, éstas no son vinculantes y estarán basadas solamente en opiniones personales de quien las emite.'\n },\n {\n key: 'communications',\n title: 'Comunicaciones',\n description: 'Las comunicaciones se realizarán a través de la plataforma o bien a través de correo electrónico fijado para estos efectos. Capitaria proporcionará al cliente claves de acceso a la plataforma y/o a su página web, de modo que pueda acceder a ellas para revisar, controlar y comprobar en detalle todos sobre los movimientos de su cuenta. Las condiciones y aspectos operativos serán informados al cliente en su sitio web www.capitaria.com.'\n },\n {\n key: 'term',\n title: 'Término del Contrato',\n description: 'El contrato tendrá una duración indefinida a partir de la fecha de suscripción. Cualquiera de las partes podrá ponerle término en la medida que no haya obligaciones pendientes, bastando que se comunique de la decisión vía correo electrónico, y, además, se hayan retirado íntegramente los fondos de garantía. En caso de permanencia de los fondos, o bien, en caso de que se realizaren nuevos depósitos, el presente contrato recobrará vigencia.'\n },\n {\n key: 'dof',\n title: 'Origen de los fondos',\n description: 'El cliente declara que los fondos que depositará a la compañía son fondos provenientes de actividades completamente lícitas y que han cumplido todas las obligaciones tributarias respectivas en su país de origen, además declara que los fondos con los que operará son recursos propios y no son fondos de propiedad de terceros. Al igual que en el caso de realizar depósitos con tarjetas bancarias, declara que serán de propiedad del cliente y no de terceros.'\n },\n {\n key: 'relevant-terms',\n title: 'Términos relevantes',\n description: 'El cliente declara que ha entendido todos los conceptos explicados en la declaración de términos relevantes, los cuales son de relevancia para poder operar la cuenta real. Los ejecutivos de la compañía están disponibles para responder cualquier consulta relacionada a los términos relevantes.'\n },\n]\n\n\nexport const termsInternational: ItemTerm[] = [\n {\n key: 'contract',\n title: 'Términos, condiciones y productos',\n description: `KT Financial Group Limited, en adelante (KT), es un bróker representado localmente por Capitaria (agente autorizado). KT ofrece a sus clientes una cuenta de inversión para operar en diversos instrumentos financieros, conocidos como Contratos por Diferencia (CFD's), que son instrumentos financieros derivados del mercado OTC (en adelante, denominado “OTC”), que replican los movimientos que mantienen distintos activos financieros, tales como Futuros, Índices, Exchange Trade Funds (ETF's), divisas y acciones, a través de los cuales los clientes pueden invertir bajo su propia cuenta y riesgo.`\n },\n {\n key: 'market',\n title: 'Mercado OTC',\n description: 'Las operaciones en el mercado OTC se realizan en un mercado informal, conocido internacionalmente como \"over the counter\" (sobre el mostrador) u \"OTC\". Por tanto, las operaciones no se realizan por medio de mercados unificados o regulados como son, por ejemplo, el bursátil y el bancario.'\n },\n {\n key: 'risk',\n title: 'Riesgos',\n description: 'Operar en los mercados antes mencionados involucra conocimientos y habilidades especificas incluyendo el conocimiento y sumisión de los riesgos que implica el realizar operaciones con apalancamiento.'\n },\n {\n key: 'market-liquidity',\n title: 'Liquidez del mercado',\n description: 'Puede haber ciertos casos en los cuales la liquidez del mercado disminuye causando que las operaciones con determinadas monedas u otros instrumentos financieros cesen, pudiendo generarse condiciones adversas para el cliente que pueden llevar a pérdidas financieras substanciales, incluso mayores al dinero que disponga en su cuenta de operaciones.'\n },\n {\n key: 'orders',\n title: 'Órdenes',\n description: 'El cliente comprará y/o venderá instrumentos OTC directamente y por su cuenta a KT, a través de órdenes que podrán darse en forma oral vía telefónica, o enviadas a través de la plataforma online que dispone KT. KT podrá rechazar órdenes de inversión realizada por el cliente cuando los movimientos y/o condiciones de mercado hagan imposible su ejecución.'\n },\n {\n key: 'operations-duration',\n title: 'Duración de las operaciones',\n description: 'Las operaciones de compra y venta que realice el cliente con KT, se mantendrán abiertas hasta que el cliente decida cerrarlas por compensación, o cuando éstas venzan, momento en que se acreditará o devengará, el diferencial que corresponda. En ningún caso KT procederá a la entrega física de las divisas o instrumentos que se negocien.'\n },\n {\n key: 'deposit',\n title: 'Depósitos',\n description: 'El sistema requiere del depósito de dineros que respalden las operaciones, los que podrán ser depositados por el cliente en las cuentas bancarias de KT o bien en las cuentas bancarias de cualquiera de sus Recaudadoras, Agencias, Representantes, Afiliadas o Agentes alrededor del mundo, y que en cada caso se le comunicarán como alternativa al momento de abrir su cuenta.'\n },\n {\n key: 'withdrawals',\n title: 'Retiros',\n description: 'Todos los fondos propiedad del Cliente si bien pueden ser retirados en cualquier momento por este, ello está condicionado a que al momento del retiro el cliente haya cumplido con todas las obligaciones derivadas de su relación con KT. Estos fondos serán entregados, preferentemente, en la misma moneda en que el cliente haya depositado los fondos de garantía necesarios para operar en el sistema.'\n },\n {\n key: 'recommendations',\n title: 'Recomendaciones de inversión',\n description: 'KT, sus empleados, agentes o dependientes, no son asesores financieros. Por tanto, en el hipotético evento de existir determinadas recomendaciones, éstas no son vinculantes y estarán basadas solamente en opiniones personales de quien las emite.'\n },\n {\n key: 'communications',\n title: 'Comunicaciones',\n description: 'Las comunicaciones se realizarán a través de la plataforma o bien a través de correo electrónico fijado para estos efectos. KT proporcionará al cliente claves de acceso a la plataforma y/o a su página web, de modo que pueda acceder a ellas para revisar, controlar y comprobar en detalle todos sobre los movimientos de su cuenta. Las condiciones y aspectos operativos serán informados al cliente en su sitio web www.ktspirit.com.'\n },\n {\n key: 'term',\n title: 'Término del Contrato',\n description: 'El contrato tendrá una duración indefinida a partir de la fecha de suscripción. Cualquiera de las partes podrá ponerle término en la medida que no haya obligaciones pendientes, bastando que se comunique de la decisión vía correo electrónico, y, además, se hayan retirado íntegramente los fondos de garantía. En caso de permanencia de los fondos, o bien, en caso de que se realizaren nuevos depósitos, el presente contrato recobrará vigencia.'\n },\n {\n key: 'dof',\n title: 'Origen de los fondos',\n description: 'El cliente declara que los fondos que depositará a la compañía son fondos provenientes de actividades completamente lícitas y que han cumplido todas las obligaciones tributarias respectivas en su país de origen, además declara que los fondos con los que operará son recursos propios y no son fondos de propiedad de terceros. Al igual que en el caso de realizar depósitos con tarjetas bancarias, declara que serán de propiedad del cliente y no de terceros.'\n },\n {\n key: 'relevant-terms',\n title: 'Términos relevantes',\n description: 'El cliente declara que ha entendido todos los conceptos explicados en la declaración de términos relevantes, los cuales son de relevancia para poder operar la cuenta real. Los ejecutivos de la compañía están disponibles para responder cualquier consulta relacionada a los términos relevantes.'\n },\n]\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport TermsDetails from \"./terms-details\"\n\nimport CheckKycNextStep from \"./check-kyc-step\"\nimport KycLayout from \"./kyc-layout\"\nimport { termsChile, termsInternational } from \"./terms-full\"\n\nconst Container = styled.section`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 3rem 0 7rem;\n @media (max-width: 812px) {\n padding: 3rem 1.5rem 7rem;\n }\n`\n\nconst CONTRACT_TERMS_KT = 'https://capitariaplatformmaster-master.s3.us-east-2.amazonaws.com/documents/contrato-inversion-kt-v30-Ago2023.pdf'\n\nconst CONTRACT_TERMS_CAPITARIA = 'https://capitariaplatformmaster-master.s3.us-east-2.amazonaws.com/documents/contrato-inversion-capitaria-latam-v1-3-Mar2021.pdf'\n\n\nconst Terms = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const terms = {\n detail: user.residenceCountry === \"Chile\" ? termsChile : termsInternational,\n contract:\n user.residenceCountry === \"Chile\"\n ? CONTRACT_TERMS_CAPITARIA\n : CONTRACT_TERMS_KT,\n }\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default Terms\n","export const Teams: ExecutiveTeam[] = [\n \"BIDASK\",\n \"METETRADERS\",\n \"OSIGLIADORES\",\n \"INKA TRADERS\",\n \"ALLIGATORS\",\n]\n\nexport const executives: TeamType = {\n BIDASK: [\n {\n name: \"Gabriela Mellado\",\n title: \"Scrum Master\",\n email: \"gmellado@capitaria.com\",\n wasap: \"+56997335899\",\n image: \"gabriela-mellado.png\",\n gender: \"female\",\n },\n {\n name: \"Camila Escobar\",\n title: \"Trading Executive\",\n email: \"cescobar@capitaria.com\",\n wasap: \"+56971371936\",\n image: \"camila-escobar.png\",\n gender: \"female\",\n },\n {\n name: \"Patricio Olmos\",\n title: \"Trading Executive\",\n email: \"polmos@capitaria.com\",\n wasap: \"+56954013852\",\n image: \"patricio-olmos.png\",\n gender: \"male\",\n },\n {\n name: \"Felipe Parro\",\n title: \"Trading Executive\",\n email: \"fparro@capitaria.com\",\n wasap: \"+56971356431\",\n image: \"felipe-parro.png\",\n gender: \"male\",\n },\n ],\n METETRADERS: [\n {\n name: \"Constanza Forno\",\n title: \"Senior Trading Executive\",\n email: \"constanza@capitaria.com\",\n wasap: \"+56971356392\",\n image: \"constanza-forno.png\",\n gender: \"female\",\n },\n {\n name: \"Sergio Rivadeneira\",\n title: \"Scrum Master\",\n email: \"sergior@capitaria.com\",\n wasap: \"+56991818221\",\n image: \"sergio-rivadeneira.png\",\n gender: \"male\",\n },\n {\n name: \"Consuelo Podlech\",\n title: \"Trading Executive\",\n email: \"cpodlech@capitaria.com\",\n wasap: \"+56993212801\",\n image: \"consuelo-podlech.png\",\n gender: \"female\",\n },\n {\n name: \"José Tomás Riveros\",\n title: \"Trading Executive\",\n email: \"jriveros@capitaria.com\",\n wasap: \"+56971371926\",\n image: \"\",\n gender: \"male\",\n },\n ],\n OSIGLIADORES: [\n {\n name: \"Luis Felipe Hernández\",\n title: \"Senior Trading Executive\",\n email: \"lhernandez@capitaria.com\",\n wasap: \"+56954013953\",\n image: \"luis-felipe-hernandez.png\",\n gender: \"male\",\n },\n {\n name: \"Gonzalo Lavín\",\n title: \"Senior Trading Executive\",\n email: \"glavin@capitaria.com\",\n wasap: \"+56978596998\",\n image: \"gonzalo-lavin.png\",\n gender: \"male\",\n },\n {\n name: \"Ignacio Vidal\",\n title: \"Trading executive\",\n email: \"ividal@capitaria.com\",\n wasap: \"+56967287402\",\n image: \"ignacio-vidal.png\",\n gender: \"male\",\n },\n {\n name: \"Rosario Saez\",\n title: \"Trading Executive\",\n email: \"rsaez@capitaria.com\",\n wasap: \"+56968436244\",\n image: \"rosario-saez.png\",\n gender: \"female\",\n },\n ],\n \"INKA TRADERS\": [\n {\n name: \"Santiago Málaga\",\n title: \"Scrum Master\",\n email: \"smalaga@capitaria.com\",\n wasap: \"+51944737651\",\n image: \"santiago-malaga.png\",\n gender: \"male\",\n },\n {\n name: \"Ignacio Higueras\",\n title: \"Trading Executive\",\n email: \"ihigueras@capitaria.com\",\n wasap: \"+51944737651\",\n image: \"ignacio-higueras.png\",\n gender: \"male\",\n },\n {\n name: \"Adriana Cuellar\",\n title: \"Trading Executive\",\n email: \"jcuellar@capitaria.com\",\n wasap: \"+51944737651\",\n image: \"\",\n gender: \"female\",\n },\n {\n name: \"Rodrigo Olivares\",\n title: \"Trading Executive\",\n email: \"rolivares@capitaria.com\",\n wasap: \"+51944737648\",\n image: \"\",\n gender: \"male\",\n },\n ],\n ALLIGATORS: [\n {\n name: \"Nicolás Müller\",\n title: \"Scrum Master\",\n email: \"nmuller@capitaria.com\",\n wasap: \"+56971356434\",\n image: \"nicolas-muller.png\",\n gender: \"male\",\n },\n {\n name: \"Joel Rodríguez\",\n title: \"Trading Executive\",\n email: \"jrodriguez@capitaria.com\",\n wasap: \"+56968435712\",\n image: \"joel-rodriguez.png\",\n gender: \"male\",\n },\n {\n name: \"Jorge Manzione\",\n title: \"Trading Executive\",\n email: \"jmanzione@capitaria.com\",\n wasap: \"+59895437973\",\n image: \"jorge-manzione.png\",\n gender: \"male\",\n },\n ],\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { trackEvent } from \"../../helpers/tracker\"\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n`\n\nconst LinkZendesk = styled.a`\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n border: 0;\n border-radius: 5px;\n color: #ffffff;\n padding: 14px 22px;\n margin-top: 30px;\n margin-bottom: 40px;\n text-decoration: none;\n text-align: center;\n`\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 3rem;\n`\n\nconst Title = styled.div`\n font-family: \"Open Sans\";\n font-weight: bold;\n font-size: 25px;\n line-height: 120.4%;\n color: #1f2425;\n text-align: center;\n max-width: 610px;\n margin-bottom: 40px;\n`\n\nconst Description = styled.p`\n font-size: 16px;\n line-height: 140%;\n max-width: 550px;\n text-align: center;\n`\n\nconst Help = () => (\n \n \n \n Si tienes alguna duda, puedes ir a nuestra sección de preguntas\n frecuentes\n \n \n Todo lo que hacemos en Capitaria es para que tengas la mejor experiencia\n posible en el Trading. En esta sección encontrarás las preguntas más\n recurrentes de nuestros Traders.\n \n\n trackEvent(\"help:link:zendesk\")}\n target=\"_blank\"\n href=\"https://blog.capitaria.com/preguntas-frecuentes\"\n >\n PREGUNTAS FRECUENTES\n \n \n \n)\n\nexport default Help\n","import React, { useState, useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { toast } from \"react-toastify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { getUserExecutivesTeam } from \"../../graphql/queries\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport { Teams } from \"../../services/executives-team\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport PageLayout from \"../page-layout\"\n\nimport Help from \"./help\"\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst HelpPage = () => {\n const [executiveTeam, setExecutiveTeam] = useState(\"loading\" as ExecutiveTeam)\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n const getExecutivesTeamName = async () => {\n try {\n const response = await API.graphql(\n graphqlOperation(getUserExecutivesTeam, { cognitoId: user.cognitoId })\n )\n const executiveTeamName = JSON.parse(\n // @ts-ignore\n response.data.getUserExecutivesTeam\n )\n\n if (\n executiveTeamName.hasOwnProperty(\"sf_Celula__c\") &&\n Teams.includes(executiveTeamName.sf_Celula__c)\n ) {\n setExecutiveTeam(executiveTeamName.sf_Celula__c)\n } else {\n setExecutiveTeam(\"\")\n }\n } catch (error) {\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n setExecutiveTeam(\"\")\n }\n }\n\n getExecutivesTeamName()\n }, [user.cognitoId])\n\n if (executiveTeam === \"loading\") {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default HelpPage\n","import { API, graphqlOperation } from \"aws-amplify\"\nimport * as Sentry from \"@sentry/browser\"\nimport { toast } from \"react-toastify\"\n\nimport {\n updateIdFileUploaded,\n updateAddressFileUploaded,\n updateCardFileUploaded,\n updateLivenessFileUploaded,\n} from \"../graphql/mutations\"\n\nimport { trackEvent } from \"../helpers/tracker\"\nimport { DefaultValue } from \"../components/ui/custom-country-picker\"\n\ntype UploadFileResponse = {\n user: User | null\n error: string\n}\n\nexport const updateIdFileFlag = async (\n user: User,\n countrySelect: DefaultValue,\n typeDocument: string,\n kyc: boolean = true\n): Promise => {\n trackEvent(\"profile:verify-identity\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateIdFileUploaded, {\n id: user.id,\n uploaded: true,\n country: {\n name: countrySelect.value,\n code: countrySelect.code,\n },\n typeDocument: typeDocument,\n kyc,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateIdFileUploaded\n\n trackEvent(\"profile:verify-identity:success\")\n\n return {\n user: updatedUser,\n error: \"\",\n }\n } catch (error) {\n const errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"profile:verify-identity:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n\n return {\n user: null,\n error: errorMessage,\n }\n }\n}\n\nexport const updateLivenessFileFlag = async (\n user: User,\n kyc: boolean = true\n): Promise => {\n trackEvent(\"profile:verify-liveness\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateLivenessFileUploaded, {\n id: user.id,\n uploaded: true,\n kyc,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateLivenessFileUploaded\n\n trackEvent(\"profile:verify-liveness:success\")\n\n return {\n user: updatedUser,\n error: \"\",\n }\n } catch (error) {\n const errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"profile:verify-liveness:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n\n return {\n user: null,\n error: errorMessage,\n }\n }\n}\n\nexport const updateAddressFileFlag = async (user: User) => {\n trackEvent(\"profile:verify-address\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateAddressFileUploaded, {\n id: user.id,\n uploaded: true,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateAddressFileUploaded\n\n trackEvent(\"profile:verify-address:success\")\n\n return {\n user: updatedUser,\n error: \"\",\n }\n } catch (error) {\n const errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"profile:verify-address:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n\n return {\n user: null,\n error: errorMessage,\n }\n }\n}\n\nexport const updateCardFileFlag = async (\n user: User,\n kyc: boolean,\n ommit: boolean = false\n) => {\n trackEvent(\"profile:verify-card\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(updateCardFileUploaded, {\n id: user.id,\n uploaded: true,\n kyc,\n ommit,\n })\n )\n\n // @ts-ignore\n const updatedUser = response.data.updateCardFileUploaded\n\n trackEvent(\"profile:verify-card:success\")\n\n return {\n user: updatedUser,\n error: \"\",\n }\n } catch (error) {\n const errorMessage =\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n\n trackEvent(\"profile:verify-card:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(errorMessage)\n\n return {\n user: null,\n error: \"\",\n }\n }\n}\n","export default __webpack_public_path__ + \"static/media/verify-card-icon.31d98d34.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport verifyCard from \"../../../images/verify-card-icon.svg\"\n\nconst VerifyCard = styled.div`\n background-image: url(${verifyCard});\n background-repeat: no-repeat;\n background-size: cover;\n width: 115px;\n height: 78px;\n`\n\nconst VerifyCardIcon = () => \n\nexport default VerifyCardIcon\n","export default __webpack_public_path__ + \"static/media/success-card-upload.b0d184ec.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport successCardUpload from \"../../../images/success-card-upload.png\"\n\nconst SuccessCardUpload = styled.img`\n width: 178px;\n height: 159px;\n`\n\nconst SuccessCardUploadImg = () => (\n \n)\n\nexport default SuccessCardUploadImg\n","export default __webpack_public_path__ + \"static/media/upload-arrow.2dd399bd.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport uploadArrow from \"../../../images/upload-arrow.svg\"\n\nconst UploadArrow = styled.div`\n background-image: url(${uploadArrow});\n background-repeat: no-repeat;\n background-size: cover;\n width: 20px;\n height: 24px;\n`\n\nconst UploadArrowIcon = () => \n\nexport default UploadArrowIcon\n","export default __webpack_public_path__ + \"static/media/upload-check.a0a71136.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport uploadCheck from \"../../../images/upload-check.svg\"\n\nconst UploadCheck = styled.div`\n background-image: url(${uploadCheck});\n background-repeat: no-repeat;\n background-size: cover;\n width: 26px;\n height: 21px;\n`\n\nconst UploadCheckIcon = () => \n\nexport default UploadCheckIcon\n","import React from \"react\"\n\nconst UploadFailedIcon = () => (\n \n \n \n \n \n \n)\n\nexport default UploadFailedIcon\n","import React from \"react\"\nimport { CircularProgressbarWithChildren } from \"react-circular-progressbar\"\n\nimport \"react-circular-progressbar/dist/styles.css\"\n\ntype Props = {\n percentage: number\n startIcon: any\n endIcon: any\n}\n\nconst ProgressCirle = ({ percentage, startIcon, endIcon }: Props) => {\n return (\n
\n \n {percentage === 0 && startIcon}\n {percentage === 100 && endIcon}\n \n
\n )\n}\n\nexport default ProgressCirle\n","import React from \"react\"\n\nimport UploadArrowIcon from \"../ui/images/upload-arrow-icon\"\nimport UploadCheckIcon from \"../ui/images/upload-check-icon\"\nimport UploadFailedIcon from \"./images/upload-failed-icon\"\n\nimport ProgressCircle from \"./progress-circle\"\n\ntype Props = {\n percentage: number\n hasError?: boolean\n}\n\nconst UploadProgressCircle = ({ percentage, hasError = false }: Props) =>\n hasError ? (\n \n ) : (\n }\n endIcon={}\n />\n )\n\nexport default UploadProgressCircle\n","import React, { useState, useRef, useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { toast } from \"react-toastify\"\nimport { Storage } from \"aws-amplify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { trackEventMetamap } from \"../../helpers/tracker\"\nimport UploadProgressCirle from \"../ui/upload-progress-circle\"\n\nconst UploadContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 0;\n flex-grow: 1;\n margin-left: 7.5px;\n margin-right: 7.5px;\n`\n\nconst UploadBox = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n border-radius: 5px;\n border: 1px solid #DFE3E8;\n padding: 12px;\n width: 191px;\n background-color: #fff;\n max-width: 140px;\n height: 114px;\n text-align: center;\n`\n\nconst BoxContent = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media (max-width: 425px) {\n max-height: 114px;\n }\n`\n\nconst Title = styled.h4`\n line-height: 110%;\n font-weight: bold;\n color: #1f2425;\n text-align: center;\n margin: 0 0 0.75rem;\n font-size: .7em;\n margin-top: 8px;\n\n`\n\nconst UploadIconWrapper = styled.div`\n padding: 1rem 0 0;\n`\n\nconst UploadNote = styled.p`\n font-size: 12px;\n line-height: 11px;\n color: #757575;\n`\n\nconst FileInput = styled.input`\n display: none;\n`\n\nconst MessageError = styled.div`\n background-color: #FFCAC0;\n color: #B42006;\n border-radius: 3.064px;\n width: 100%;\n height: 40px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n margin-bottom: 8px;\n`\n\ntype FileTypes = {\n [key: string]: string\n}\n\nconst fileTypes: FileTypes = {\n \"image/png\": \"png\",\n \"image/jpeg\": \"jpeg\",\n \"application/pdf\": \"pdf\",\n}\n\ntype Props = {\n title?: string\n fileName: string\n onChange: (event: any) => void\n}\n\nconst listError = {\n INVALID_TYPE: \"Tipo de archivo no soportado\",\n INVALID_SIZE: \"Archivo excede limite de peso\",\n ERROR_UPLOAD: \"Error al subir el archivo. Intentelo más tarde\",\n}\n\nconst MAX_SIZE_FILE = 10 * 1024 * 1024\n\nconst UploadFile = ({ title, fileName, onChange }: Props) => {\n const [percentage, setPercentage] = useState(0)\n const [isLoading, setLoading] = useState(false)\n const [hasError, setHasError] = useState(\"\")\n\n useEffect(() => {\n setPercentage(0)\n setHasError(\"\")\n }, [fileName])\n\n const changeHandler = async (event: any) => {\n setHasError(\"\")\n setPercentage(0)\n const file = event.target.files[0]\n\n if (file) {\n trackEventMetamap(`file-selected: ${fileName}`)\n setLoading(true)\n const ext = fileTypes[file.type]\n\n if (file.size >= MAX_SIZE_FILE) {\n trackEventMetamap(`file-size-exceeded: ${fileName}`)\n setHasError(listError.INVALID_SIZE)\n } else if (ext) {\n // fake start for small files\n setPercentage(27)\n\n try {\n const uploadedFile = await Storage.put(`${fileName}.${ext}`, file, {\n level: \"private\",\n contentType: file.type,\n progressCallback: (progress: any) => {\n setPercentage(\n Math.round((progress.loaded / progress.total) * 100)\n )\n },\n })\n\n onChange(uploadedFile)\n } catch (error) {\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n setPercentage(0)\n setHasError(listError.ERROR_UPLOAD)\n }\n } else {\n trackEventMetamap(`file-type-not-supported: ${fileName}`)\n setHasError(listError.INVALID_TYPE)\n }\n setLoading(false)\n }\n }\n const fileInputRef = useRef(null)\n\n return (\n <>\n {hasError && {hasError}}\n \n \n {\n if (isLoading) return\n\n trackEventMetamap(`click-upload: ${fileName}`)\n if (fileInputRef.current) {\n trackEventMetamap(`click-upload-current: ${fileName}`)\n fileInputRef.current.click()\n }\n }}\n >\n \n\n \n \n \n\n Peso máximo 5 MB en formato jpg, png\n \n \n {title}\n \n \n )\n}\n\nexport default UploadFile\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { updateCardFileFlag } from \"../../services/verify-documents\"\n\nimport VerifyCardIcon from \"../ui/images/verify-card-icon\"\nimport SuccessCardUploadImg from \"../ui/images/success-card-upload-img\"\n\nimport UploadFile from \"./upload-file\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\n\nconst Content = styled.div`\n display: flex;\n justify-content: space-between;\n flex-direction: column;\n align-items: center;\n`\n\nconst HowToDo = styled.div`\n width: 100%;\n margin-top: 25px;\n display: flex;\n flex-direction: column;\n align-items: center;\n @media (max-width: 812px) {\n margin-bottom: 1rem;\n }\n`\n\nconst Title = styled.h3`\n font-family: \"Open Sans\";\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n margin-top: 0;\n margin-bottom: 0;\n color: #1f2425;\n text-align: center;\n`\n\nconst SubTitle = styled.h4`\n font-family: \"Open Sans\";\n font-size: 14px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst Description = styled.p`\n font-family: \"Open Sans\";\n font-size: 12px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst UploadContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n align-items: center;\n`\n\nconst UploadFileWrapper = styled.div`\n width: 100%;\n`\n\nconst IconWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nconst SusccessSection = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n min-width: 100%;\n`\n\nconst SuccessTitle = styled.h4`\n text-align: center;\n text-transform: uppercase;\n font-size: 12px;\n line-height: 118.1%;\n color: #363f41;\n margin: 2rem 0 0;\n max-width: 280px;\n`\n\nconst SuccessDescription = styled.p`\n text-align: center;\n font-size: 12px;\n line-height: 118.1%;\n color: #363f41;\n margin: 0.25rem 0 1rem;\n`\n\nconst saveButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 48px;\n width: 260px;\n background-color: #2ba770;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst saveButtonLoadingStyle = saveButtonStyle\n\nconst saveButtonDisabledStyle = css`\n margin-top: 1.5rem;\n padding: 12px 48px;\n width: 260px;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst TextValidate = styled.p`\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n display: flex;\n width: 311px;\n height: 44px;\n flex-direction: column;\n justify-content: center;\n`\n\nconst ContainerTextDescription = styled.div`\n width: 311px;\n margin-top: 10px;\n`\n\nconst OmmitLink = styled.div`\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n line-height: 16px;\n letter-spacing: 0.1px;\n text-decoration-line: underline;\n cursor: pointer;\n`\n\nconst ContainerPassStep = styled.div`\n background-color: #E0F5F5;\n border-radius: 5px;\n width: 377px;\n height: 70px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: 0;\n margin-bottom: 25px;\n @media (max-width: 450px) {\n width: 97%;\n }\n`\n\nconst SubtitlePassStep = styled.p`\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\nconst SuccessScreen = () => (\n \n \n ¡TARJETA REGISTRADA CON ÉXITO!\n \n Tu próximo depósito se realizará en segundos\n \n \n)\n\ntype HowToVerifyProps = {\n onClick: () => void\n onClickOmmit: () => void\n isLoading: boolean\n}\n\nconst HowToVerify = ({ onClick, isLoading, onClickOmmit }: HowToVerifyProps) => {\n const [disableSaveButton, setDisableSaveButton] = useState(true)\n\n const onChange = () => {\n setDisableSaveButton(false)\n }\n\n return (\n <>\n \n \n ¿Hiciste Transferencia Bancaria?\n \n Saltar este paso\n \n Validación de tarjeta bancaria\n Sube una fotografía de tu tarjeta de crédito o débito dejando visible solo los últimos 4 dígitos de tu tarjeta. \n \n \n \n \n\n \n Enviar y continuar\n \n \n\n \n\n ¿Cómo tiene que ser esta fotografía?\n \n \n \n \n \n Para tu seguridad, te pedimos una fotografía en donde{\" \"}\n \n sólo dejes visibles tu nombre completo y los últimos 4 números de tu tarjeta.\n \n \n \n Con esta imagen validamos que tú eres el titular de esta cuenta y tarjeta, ya que por cumplimiento, no aceptamos pagos de terceros.\n \n \n \n\n \n )\n}\n\ntype Props = {\n kyc: boolean\n}\n\nconst VerifyCard = ({ kyc }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [isLoading, setIsLoading] = useState(false)\n\n const onClick = async () => {\n setIsLoading(true)\n\n try {\n const result = await updateCardFileFlag(user, kyc)\n\n if (result.user) {\n state.setUser(result.user)\n }\n\n setIsLoading(false)\n } catch (error) {\n setIsLoading(false)\n }\n }\n\n const onOmmitCardFile = async () => {\n setIsLoading(true)\n\n try {\n const result = await updateCardFileFlag(user, kyc, true)\n\n if (result.user) {\n state.setUser(result.user)\n }\n\n setIsLoading(false)\n } catch (error) {\n setIsLoading(false)\n }\n }\n\n return (\n \n {user.wasCardFileUploaded ? (\n \n ) : (\n \n )}\n \n )\n}\n\nexport default VerifyCard\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport PageLayout from \"../page-layout\"\n\nimport VerifyCard from \"./verify-card\"\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n flex-direction: column;\n`\n\nconst Content = styled.div`\n width: 100%;\n padding: 2rem 0;\n`\n\n\nconst ValidateBankCard = () => {\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default ValidateBankCard\n","export const removeLastSlash = (text: string) => {\n let finalText = text\n if (text !== \"/\" && text.substr(text.length - 1) === \"/\") {\n finalText = text.substr(0, text.length - 1)\n }\n return finalText\n}\n","export default __webpack_public_path__ + \"static/media/loader.e61a886e.gif\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport loaderGif from \"../../../images/loader.gif\"\n\nconst Loader = styled.img`\n width: 200px;\n`\n\nconst LoaderGif = () => (\n \n)\n\nexport default LoaderGif\n","import React, { useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport Progressbar from \"../ui/progressbar\"\nimport LoaderGif from \"../ui/images/loader\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { getIndexPathFromUser } from \"../../helpers/index-path-user\"\nimport { navigate } from \"@reach/router\"\n\n\nconst Content = styled.div`\n display: flex;\n align-items: center;\n height: 90vh;\n justify-content: center;\n`\n\nconst Gif = styled.div`\n text-align: center;\n`\n\nconst Text = styled.div`\n color: #000000;\n font-weight: 700;\n`\n\n\nconst ThankYou = () => {\n const { state } = useAuth()\n const user = state.user as User\n const setFirstLoad = state.setFirstLoad\n\n useEffect(() => {\n let timerId: NodeJS.Timeout = setTimeout(async () => {\n setFirstLoad(false)\n\n await navigate(getIndexPathFromUser(user), { replace: true })\n }, 4 * 1000)\n\n return () => {\n clearTimeout(timerId)\n }\n }, [user, setFirstLoad])\n\n return <>\n \n\n \n \n \n PREPARANDO TODO
PARA INGRESAR A TU CUENTA
\n
\n
\n \n}\n\nexport default ThankYou\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst DisclaimerText = styled.section`\n font-family: Roboto;\n font-style: normal;\n font-weight: 400;\n font-size: 9px;\n line-height: 140%;\n text-align: center;\n color: #1A2225;\n max-width: 924px;\n margin: 20px 18px;\n\n @media (max-width: 425px) {\n text-align: justify;\n margin: 0px 20px 16pxs\n }\n\n @media (max-width: 768px) {\n margin: 70px 18px 13px;\n }\n`\n\nconst DisclaimerV2 = () => (\n \n En los mercados financieros se generan rápidos movimientos que pueden\n conllevar a un elevado riesgo de pérdidas. Por esta razón, participar\n activamente en estos mercados con apalancamiento financiero, solo es\n aconsejable para aquellos participantes que puedan asumir dicho riesgo.\n Cualquier análisis o consejo sobre el mercado comunicado a través de\n www.capitaria.com o de algún correo electrónico con este remitente, debe ser\n considerado como una opinión, y nunca como una garantía. En ningún caso y\n bajo ningún concepto, Capitaria se hace responsable de las posibles pérdidas\n incurridas por nuestros clientes. Todo cliente potencial de Capitaria debe\n tener en cuenta que su capital puede verse tanto incrementado como\n disminuido, no debiendo participar en este mercado sin antes considerar si\n esta manera de operar es la adecuada para él, en función de sus condiciones\n económicas. Los clientes potenciales deben también tener en cuenta que no se\n pueden garantizar los resultados de las operaciones, y que los resultados\n obtenidos en el pasado no garantizan resultados futuros. El trading implica\n un alto riesgo y un cliente puede perder una cantidad sustancial de dinero,\n no importando qué método utilice. Capitaria ofrece instrumentos transados a\n través de CFD's, que no están regulados por alguna entidad local.*Argentina:\n depósitos y retiros de dinero sólo con cuenta bancaria en el extranjero*\n \n)\n\nexport default DisclaimerV2\n","type SignUpField = InputSignUpForm\n\nconst fieldsV2: SignUpField[] = [\n {\n name: \"givenName\",\n label: \"Nombre\",\n },\n {\n name: \"familyName\",\n label: \"Apellido\",\n },\n {\n name: \"email\",\n label: \"Email\",\n type: \"email\",\n },\n {\n name: \"password\",\n label: \"Crear una contraseña\",\n type: \"password\",\n },\n]\n\nexport default fieldsV2\n","import * as Yup from \"yup\"\n\nconst Schema = () => {\n return Yup.object().shape({\n givenName: Yup.string().required(\"Este campo es requerido\"),\n familyName: Yup.string().required(\"Este campo es requerido\"),\n email: Yup.string()\n .email(\"El email ingresado no es válido\")\n .required(\"Este campo es requerido\"),\n password: Yup.string()\n .required(\"Este campo es requerido\")\n .min(\n 8,\n \"La contraseña es muy corta - mínimo, debería tener 8 caracteres\"\n ),\n acceptPrivacyTerms: Yup.string().matches(\n /^true$/,\n \"Debes aceptar las Políticas de Privacidad para crear tu cuenta\"\n ),\n usCitizenDeclaration: Yup.string().matches(\n /^true$/,\n \"No debes ser residente de Estados Unidos para crear tu cuenta\"\n ),\n })\n}\n\nexport default Schema\n","import React from 'react'\nimport CustomCheckbox from \"../../ui/custom-checkbox\"\n\n\nexport default function Declarations({\n field,\n values,\n setFieldValue,\n handleBlur,\n errors,\n touched,\n children\n}: any) {\n return (\n setFieldValue(field, value)}\n onBlur={handleBlur}\n hasError={errors[field] && touched[field]}\n errorMessage={errors[field]}\n />\n )\n}\n","import React, { useState } from \"react\"\nimport { Link, useNavigate } from \"@reach/router\"\nimport styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport 'react-phone-input-2/lib/style.css'\nimport { useQueryString } from \"@capitaria/capitaria-utms\"\n\nimport DisclaimerV2 from \"../../disclaimer-v2\"\nimport CustomInput from \"../../ui/custom-form-input\"\nimport CapitariaLogoBlack from \"../../ui/images/capitaria-logo-black\"\nimport { trackEvent } from \"../../../helpers/tracker\"\nimport fieldsV2 from './fields-v2'\nimport signupSchema from \"./signup-schema\"\nimport \"./styles.css\"\nimport { signUp } from \"../../../services/auth\"\nimport footerBackground from \"../../../images/footer-background.svg\"\nimport CustomButtonV2 from \"../../ui/custom-button-v2\"\nimport Declarations from \"./declarations\"\nimport { css } from \"@emotion/react\"\n\n\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n flex: 1;\n justify-content: center;\n align-items: center;\n background-position: right;\n background-image: url(${footerBackground});\n background-color: #f9f9f9;\n\tbackground-position: 0px 304.713px;\n\tbackground-size: 100% 131.835%;\n background-repeat: no-repeat;\n\tmix-blend-mode: multiply;\n\n @media (max-width: 435px) {\n background-size: 270% 130.835%;\n background-position: -241px 305.713px;\n }\n`\n\nconst Content = styled.section`\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n @media (max-width: 425px) {\n padding: 4rem 0 7rem;\n width: 100%;\n }\n`\n\nconst Title = styled.h1`\n font-family: Open Sans;\n text-align: center;\n\tfont-size: 27.65px;\n\tfont-style: normal;\n\tfont-weight: 500;\n\tline-height: 116%;\n margin: 0;\n color: #1f2425;\n`\n\nconst Description = styled.p`\n font-family: Roboto;\n line-height: 140%;\n font-size: 13.33px;\n color: #1f2425;\n margin: 0.5rem 0 0;\n text-align: center;\n max-width: 447px;\n font-weight: 400;\n @media (max-width: 425px) {\n max-width: 301px;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n line-height: 15px;\n letter-spacing: 0.1px;\n }\n`\n\nconst Form = styled.form`\n padding-top: 2em;\n\twidth: 264px;\n\tmin-height: 495px;\n @media (max-width: 425px) {\n width: 85%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n`\n\nconst NavBar = styled.nav`\n height: 106px;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n @media (max-width: 812px) {\n justify-content: space-between;\n padding: 0rem 1.25rem;\n }\n`\n\nconst LogoWrapper = styled.div`\n display: none;\n @media (max-width: 812px) {\n display: block;\n }\n`\n\nconst CreateAccountMsg = styled.span`\n font-weight: 600;\n line-height: 140%;\n font-size: 0.875em;\n color: #1f2425;\n @media (max-width: 812px) {\n display: none;\n }\n`\n\nconst StyledLink = styled(Link)`\n\twidth: 136.5px;\n\theight: 38.7px;\n background: transparent;\n border-radius: 6px;\n margin: 0 2rem;\n\ttext-align: center;\n color: #000000;\n text-transform: none;\n text-decoration: none;\n cursor: pointer;\n border: 1px solid #2ba770;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\n @media (max-width: 812px) {\n margin: 0;\n }\n`\n\nconst buttonCSS = css`\n margin-top: 3rem;\n height: 48px;\n width: 264px;\n @media (max-width: 812px) {\n width: 264px;\n }\n`\n\nconst Error = styled.p`\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n text-align: center;\n padding: 0;\n max-width: 352px;\n @media (max-width: 812px) {\n max-width: 300px;\n }\n`\n\nconst ContainerDeclarations = styled.div`\n width: 256px;\n margin-left: 40px;\n`\n\nconst TextInput = styled.p`\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n margin: 1px 0px;\n & > a {\n color: #1f2425;\n text-decoration: none;\n }\n`\n\nconst styleGroup = css`\n @media (max-width: 425px) {\n width: 100%;\n align-items: center;\n }\n`\n\nconst styleLabelWrapper = css`\n @media (max-width: 425px) {\n width: 85%;\n }\n`\n\nconst styleInput = css`\n @media (max-width: 425px) {\n max-width: 368px;\n width: 85%;\n }\n`\n\nconst UsCitizenDeclaration = () => (\n \n Declaro no ser ciudadano ni residente de Estados Unidos\n \n)\n\nconst PrivacyPolicies = () => (\n \n \n Acepto las{\" \"}\n \n Políticas de Privacidad\n \n \n \n)\n\nconst SignUpContentV2 = () => {\n const { parsedQueryString } = useQueryString()\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState(\"\")\n const navigate = useNavigate()\n const queryStringParams = useQueryString()\n\n const decodeParam = (\n param: string | null) => param ? decodeURIComponent(param.replace(/\\+/g, \" \")\n ) : \"\"\n const givenName = decodeParam(queryStringParams.parsedQueryString.name as string || \"\")\n const familyName = decodeParam(queryStringParams.parsedQueryString.last_name as string || \"\")\n const email = queryStringParams.parsedQueryString.email as string || \"\"\n\n\n const onSubmit = async (values: UserSignUp) => {\n setLoading(true)\n\n const result = await signUp({\n values,\n parsedQueryString\n })\n\n if (result.error.length) {\n setError(result.error)\n } else {\n await navigate(\"/validate-email\", {\n state: {\n email: values.email.toLocaleLowerCase(),\n password: values.password,\n },\n })\n }\n\n setLoading(false)\n }\n\n return (\n \n \n \n \n \n ¿Ya tienes una cuenta?\n trackEvent(\"sign-up:link-to:login\")}\n >\n Ingresar\n \n \n \n Crea tu cuenta trading\n \n El mercado da oportunidades todos los días\n
\n Te enseñamos, acompañamos y damos acceso al mercado para que seas\n parte de las miles de personas que ya estan tomando estas\n oportunidades\n
\n \n {({\n values,\n setFieldValue,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n }) => {\n return (\n
\n {fieldsV2.map(\n (\n field: InputSignUpForm,\n index: number\n ) => {\n const name = field.name as keyof typeof values\n const commonProps = {\n ...field,\n className: \"custom-input\",\n onBlur: handleBlur,\n errors: errors[name],\n hasError: errors[name] && touched[name],\n onChange: handleChange,\n value: values[name],\n errorMessage: errors[name],\n styleGroup,\n styleLabelWrapper,\n style: styleInput,\n }\n\n return \n }\n )}\n \n \n \n
\n \n \n \n \n Crear mi cuenta real\n \n {error.length > 0 && {error}}\n \n )\n }}\n \n
\n \n
\n )\n}\n\nexport default SignUpContentV2\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport sidebarHero from \"../../../images/sidebar.png\"\n\nconst SignUpFoxBox = styled.div`\n background-image: url(${sidebarHero});\n background-repeat: no-repeat;\n background-size: contain;\n width: 30vw;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n background-color: black;\n @media (max-width: 850px) {\n display: none;\n }\n`\n\nconst SignUpFox = () => (\n <>\n \n\n \n \n)\n\nexport default SignUpFox\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport PublicLayout from \"../public-layout\"\nimport SignUpContentV2 from \"./sign-up-content/index-v2\"\nimport SignUpFox from \"../ui/images/sign-up-fox\"\n\nconst Container = styled.section`\n display: flex;\n min-height: 100%;\n`\n\nconst SignUpV2 = () => (\n \n \n \n \n \n \n)\n\nexport default SignUpV2\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport PublicLayout from \"../public-layout\"\nimport ValidateEmailContent from \"../validate-email/validate-email-content\"\nimport { navigate, useLocation } from \"@reach/router\"\n\nconst Container = styled.section`\n display: flex;\n min-height: 100%;\n`\n\ninterface Visitor {\n email: string\n password: string\n}\n\nconst ValidateEmailV2 = () => {\n const location = useLocation()\n const state = location.state as Visitor\n\n if (!state || !state.email || !state.password) {\n navigate(\"/sign-up-v2\")\n return <>\n }\n\n return (\n \n \n \n \n \n )\n}\n\nexport default ValidateEmailV2\n","export default __webpack_public_path__ + \"static/media/curso_intermedio_cover.d48c1c6a.png\";","export default __webpack_public_path__ + \"static/media/curso_avanzado_cover.64bfabca.png\";","export default __webpack_public_path__ + \"static/media/curso_basico_cover.40de70ef.png\";","import React, { Dispatch, SetStateAction, useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport CursoIntermedio from '../ui/images/curso_intermedio_cover.png'\nimport CursoAvanzado from '../ui/images/curso_avanzado_cover.png'\nimport CursoBasico from '../ui/images/curso_basico_cover.png'\n\n\nconst ContainerCourse = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n max-width: 1024px;\n flex-wrap: wrap;\n justify-content: center;\n @media (max-width: 700px) {\n max-width: 500px;\n flex-direction: column;\n }\n`\n\n\nconst ContainerSingleCourse = styled.div`\n width: 250px;\n height: 198px;\n padding: 0;\n margin: 0 8px;\n cursor: pointer;\n background: #ffffff;\n border-radius: 5px;\n transition: box-shadow 1s;\n display:flex;\n flex-direction: column;\n align-items: center;\n border: 1px solid transparent;\n @media (max-width: 700px) {\n margin: 10px ;\n }\n\n @media (max-width: 920px) {\n margin: 10px;\n scroll-snap-align: start;\n flex-shrink: 0;\n width: 160px;\n height: 127px;\n }\n\n &:hover {\n img {\n filter: saturate(0.5);\n }\n }\n &.active {\n border: 1px solid #44d091;\n box-shadow: 0px 15px 30px #dde4ee;\n img {\n filter: none;\n }\n }\n`\n\nconst Image = styled.img`\n width: 100%;\n`\n\nconst Detail = styled.p`\n font-size: 10px;\n line-height: 12px;\n letter-spacing: 0.1px;\n margin: 0;\n font-weight: 600;\n font-family: \"Roboto\";\n max-width: 180px;\n width: 100%;\n margin-top: 10px;\n text-align: center;\n @media (min-width: 921px) {\n font-size: 14px;\n }\n`\n\n\ntype DataCourseProps = {\n image: string\n detail: string\n}\n\nconst courses: DataCourseProps[] = [\n {\n image: CursoBasico,\n detail: \"Curso Trading básico\",\n },\n {\n image: CursoIntermedio,\n detail: \"Curso Trading intermedio\",\n },\n {\n image: CursoAvanzado,\n detail: \"Curso Trading avanzado\",\n },\n]\ntype SingleCourseProps = {\n data: DataCourseProps\n active: boolean\n onClick?: any\n}\n\nconst SingleCourse = ({ active, data, onClick }: SingleCourseProps) => {\n const className = active ? \"active\" : \"\"\n\n return (\n \n \n {data.detail}\n \n )\n}\n\ntype CourseProps = {\n setCourseSelected: Dispatch>\n}\n\nconst Course = ({ setCourseSelected }: CourseProps) => {\n const [active, setActive] = useState(-1)\n\n useEffect(() => {\n if (active !== -1 && courses[active]?.detail !== undefined) {\n setCourseSelected(courses[active].detail)\n }\n }, [active, setCourseSelected])\n\n return (\n \n {courses.map((data, idx) => (\n setActive(idx)} data={data} />\n ))}\n \n )\n}\n\nexport default Course\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Course from \"./courses\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\n\nimport KYC from \"../../services/kyc\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { navigate } from \"@reach/router\"\nimport { css } from \"@emotion/react\"\n\nconst ContainerView = styled.div`\n margin-top: 25px;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Title = styled.h3`\n width: 303px;\n font-family: Open Sans;\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n text-align: center;\n`\n\nconst Description = styled.p`\n width: 297px;\n color: #1F2425;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\nconst MessageBold = styled.p`\n color: #1F2425;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\nconst OptionSkip = styled.a`\n text-decoration:none;\n color: #1F2425;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n margin-top: 5%;\n`\n\nconst disabledButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 44px;\n font-size: 16px;\n width: 260px;\n height: 50px;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n width: 260px;\n height: 50px;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonCss = buttonCSS\n\nconst CouserSelection = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [courseSelected, setCourseSelected] = useState(\"\")\n const [isLoading, setIsLoading] = useState(false)\n const handleClick = async () => {\n setIsLoading(true)\n\n const result = await KYC.selectCourse(user, \"Sin curso seleccionado\")\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n const onSubmit = async () => {\n setIsLoading(true)\n\n const result = await KYC.selectCourse(user, courseSelected)\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n Selecciona tu curso\n \n Como parte de los beneficios al crear tu cuenta, te regalamos los cursos gratis de nuestro Dojo Trading.\n \n Selecciona el curso que mas se ajuste a tu nivel\n \n Te enviaremos los accesos una vez creada tu cuenta\n \n Continuar\n \n {!isLoading && Omitir}\n \n )\n}\nexport default CouserSelection\n","export const Brokers = [\"Capitaria\", \"KT Financial Group\"]\n","export default __webpack_public_path__ + \"static/media/banco-estado.617e3a4d.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport bancoEstado from \"../../../images/banco-estado.png\"\n\nconst BancoEstado = styled.img`\n width: 136px;\n height: 37px;\n`\n\nconst BancoEstadoLogo = () => (\n \n)\n\nexport default BancoEstadoLogo\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport copyIcon from \"../../../images/copy-icon.png\"\n\nconst Copy = styled.img`\n width: 13px;\n height: 14px;\n`\n\nconst CopyIcon = () => \n\nexport default CopyIcon\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAcCAYAAAB/E6/TAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALoSURBVHgBtVa9jhNBDLY9kxRU9whb00CNQBcJOoQ4JPo7aPnR8QTQUCNEje4EBS1wLRKRaBANHS1KS3U0iIK18c9MsqtkEdronGSz692xx/bnz4sX3xw2OJkcgcAMqqB9UVWiX7ta6uMaTSVVu3rm3LT5ev3pAjZIzpN8JMi7iKRmWW1gWBc0XyjhtzoyjVSNiD6EiHVzU/gNQ5IJZRZb4u/q5RUA6weEktpjUsNctk5h0C+rSk9YUP99za8f/HPYEelK3z0vPt969gTOSHLSHFnYLAJnKZkgUoHYv3Hl/cObwHiop83g6l4BB2WeBB9pjTgQ1ono8smDC1qit4IFTujQstAdCgYIA4ssoSIVpXHteMICHNjXQ2NgWItoCrLnANFw9fY7XXlqBbfnmMFPuW5iCXOBZPp6Hff31P2OamZWo7VYiRkLyCyI5x9uvJjDCLl2cq9RC7u2iRIR9PqSbMsOa9RjC2MlRcqxOOLw0wnMIO/10ETQFmBEakt5AR11wQE9R5picgDQf8AK/hFRYMj6iFbFXDoCT5pvSmB86lDaiEARYWCQ4KzVA5mMUAqDZhgtEUQ0hIHBqdMirELGXIYSMUiMT10ti3qS7EaxBzqwEkGK3G5VIypk4BGVGmGHGQwModRA03gSrPu3n8HbU9QtkoZZ0C8AMD6kbDYwWiUniHnS66NCJOaMtqmRVcdJUeo8CgwuH8g6NDgoSOAPjBWyhjX0eh8J3m21VxLQKXQiqiyLiUfXyBvWSUgkH199fby2E/fgrwbCMj53KZy4tY3tSKVhLZ8E48V4tE6szY78yDHwtmpYdRQjHAYjKsNTiLdwFMMSBx1lm0Y2rg3ek3b//qfbM/DxWqDpFsp4WUl3RxIupHH+sXm0yREm+ahge1zeBQ6QyjtAKlaMlbssXAqxYkwseGudrcVeUDY5+vLy2+LSnfOo9NToih30l2AJStFISVfbpEdHi0Xueig6rPoUDucTlIO/78NNVF0vCXoAAAAASUVORK5CYII=\"","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport checkIcon from \"../../../images/check-icon.png\"\n\nconst Check = styled.img`\n width: 18px;\n height: 14px;\n`\n\nconst CheckIcon = () => \n\nexport default CheckIcon\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAcCAYAAAAJKR1YAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGQSURBVHgBxdU9UoNAFAfwt5ikSsEROMJewRvEGS2sDCeQJoxdSOdogydIrDJqZvAGegM5At7AGa1iFN+uhAmEXdjAwr/ha2F+vIW3AB2GPrgjuprMd88R6Cj0cUKBkBfcNYHEi/D01u4MlMFsk6AMaDmFGJaYvHMXtBghBmAWnt14rYLo0rGgN3iTYVhamTKO6Q+kldlGe4VSTAwWlGC0g1QxWkGHYLSBJJh7xIxl9zYOqoNpHFQXw5L+9rjIXfLG1SEmBdEnd4qt22dd9BCUEEPgWQXDQRwD4CXHpiqKzh1TUJkQPtc2KIZVKP8d/aPYW1fBDAWYr/VxaPsfoBgj6QkzyKPwrWWoFIO7TWFY0urg1Hm4meauRvCNDz/3ozYwGVBVlE4MS2a159NH4rvMCPZ97E7fsB/sYWJEb4yTuhiWwsaIlVrg5iI3MoJf8org8R7mx8AKXkfQQISduhCVT8MYKagUpQFTChKiNGEqgThq5QaIGOnGsPQqjTrCJWAzsBBj6sQohQaOSZdXFmjOH7z64+KmsfiGAAAAAElFTkSuQmCC\"","import React, { useState } from \"react\"\nimport CopyToClipboard from \"react-copy-to-clipboard\"\nimport styled from \"@emotion/styled\"\n\nimport CustomButton from \"../ui/custom-button\"\nimport CopyIcon from \"../ui/images/copy-icon\"\nimport CheckIcon from \"../ui/images/check-icon\"\nimport { trackEvent } from \"../../helpers/tracker\"\nimport { css } from \"@emotion/react\"\n\nconst Modal = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 2rem 2rem 1rem;\n`\n\nconst Content = styled.div`\n margin-top: 1rem;\n width: 100%;\n`\n\nconst ModalField = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid #e0e0e0;\n padding: 0.5rem 0;\n`\n\nconst Label = styled.p`\n font-family: \"Open Sans\";\n font-weight: 600;\n font-size: 0.75em;\n line-height: 16px;\n margin: 0;\n`\n\nconst Value = styled.p`\n font-family: \"Open Sans\";\n font-size: 0.75em;\n line-height: 16px;\n margin: 0;\n`\n\nconst Actions = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding-top: 2rem;\n width: 100%;\n`\n\nconst buttonStyle = css`\n font-family: \"Open Sans\";\n font-weight: 600;\n font-size: 0.625em;\n line-height: 14px;\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n margin: 1rem 0;\n padding: 0 6px;\n height: 46px;\n width: 156px;\n .full-width-button {\n width: 100%;\n }\n`\n\nconst DoItLater = styled.div`\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: 600;\n font-size: 0.625em;\n line-height: 14px;\n display: flex;\n align-items: center;\n text-align: center;\n text-decoration-line: underline;\n color: #1d1d1d;\n cursor: pointer;\n`\n\nconst ImgWrapper = styled.div`\n cursor: pointer;\n`\n\nconst fields: string[] = [\n \"accountOwner\",\n \"rut\",\n \"accountType\",\n \"accountNumber\",\n \"ruc\",\n \"swift\",\n \"dollarAccount\",\n \"ciiDollarAccount\",\n \"solesAccount\",\n \"ciiSolesAccount\",\n \"bankCodeId\",\n \"intermediaryBank\",\n \"accountNBR\",\n \"abaRouting\",\n \"intermediarySwift\",\n \"sucursal\",\n \"email\",\n]\n\ntype Props = {\n logo: any\n account: BankAccount\n showSkip: boolean\n onClick: () => void\n}\n\nconst BankModal = ({ logo, account, showSkip, onClick }: Props) => {\n const [copiedId, setCopiedId] = useState(-1)\n\n const bankAccount = account as {\n [key: string]: AccountField\n }\n\n return (\n \n {logo}\n\n \n {fields.map((f, idx) => {\n if (bankAccount[f]) {\n return (\n \n
\n \n {bankAccount[f].value}\n
\n\n setCopiedId(idx)}\n >\n \n {idx === copiedId ? : }\n \n \n
\n )\n }\n\n return null\n })}\n
\n\n \n {showSkip && (\n {\n onClick()\n trackEvent(\"kyc:deposit:skip\")\n }}\n >\n Lo haré despues\n \n )}\n \n ¡YA DEPOSITÉ!\n \n \n
\n )\n}\n\nexport default BankModal\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport xIcon from \"../../../images/x.png\"\n\nconst X = styled.img`\n width: 14px;\n height: 14px;\n`\n\nconst XIcon = () => \n\nexport default XIcon\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAC3SURBVHgBtdVdCoQwDATgshfd3MzcdLYFw0rRNj/jgAVNyfdi09bOADj6823kjJ6j9/xxYBYaemKW4w6joRP2R/siuE8afcBGxDbQ0C122VhG3RgDDWMVNI1l0DIWQWmYB6VjDpSPBVFpzGxQ8fb5NH+QrMWz+EGu4dwyToyDLjAB+5aB45zRUAQOdRlFYoKkURTGVRgFYTa6URAH8RbFC1N/ifZFmdgGVSsqE3tAdS4qE5tQtfcfZC3THwrIp5YAAAAASUVORK5CYII=\"","import React, { CSSProperties } from \"react\"\nimport { Modal } from \"react-responsive-modal\"\nimport styled from \"@emotion/styled\"\nimport { SerializedStyles } from \"@emotion/react\"\n\nimport \"react-responsive-modal/styles.css\"\n\nimport X from \"../ui/images/x-icon\"\n\nconst Header = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-family: \"Open Sans\";\n font-weight: 600;\n border-radius: 2px;\n background: linear-gradient(180deg, #30ab76 0%, #71c552 100%);\n color: #ffffff;\n padding: 1rem;\n`\n\ntype Props = {\n title: string\n children: any\n isOpen: boolean\n closeModal: () => void\n animationEnd?: () => void\n styleCSS?: SerializedStyles\n styleObj?: CSSProperties\n closeOnEsc?: boolean\n closeOnOverlayClick?: boolean\n showCloseIcon?: boolean\n}\n\nconst CustomModal = ({\n title,\n children,\n isOpen,\n closeModal,\n animationEnd = () => { },\n styleCSS,\n styleObj,\n closeOnEsc = true,\n closeOnOverlayClick = true,\n showCloseIcon = true,\n}: Props) => (\n }\n onAnimationEnd={animationEnd}\n closeOnEsc={closeOnEsc}\n closeOnOverlayClick={closeOnOverlayClick}\n showCloseIcon={showCloseIcon}\n >\n
{title}
\n {children}\n \n)\n\nexport default CustomModal\n","import React, { ReactNode } from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst Alert = styled.div`\n font-family: \"Open Sans\";\n font-size: 0.825em;\n line-height: 14px;\n color: #363f41;\n background-color: #ddf2fa;\n border-radius: 5px;\n padding: 1rem 1.5rem;\n`\n\ntype Props = {\n children: ReactNode\n}\n\nconst AlertBanner = ({ children }: Props) => {children}\n\nexport default AlertBanner\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { trackEvent } from \"../../helpers/tracker\"\nimport { Link } from \"@reach/router\"\n\nconst Box = styled.a`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n background-color: #ffffff;\n border: 1px solid #e0e0e0;\n box-sizing: border-box;\n box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.15);\n border-radius: 5px;\n padding: 1rem 0;\n margin: 1rem 0 2rem;\n width: 217px;\n min-height: 100px;\n cursor: pointer;\n`\n\nconst BoxLink = styled(Link)`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n background-color: #ffffff;\n border: 1px solid #e0e0e0;\n box-sizing: border-box;\n box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.15);\n border-radius: 5px;\n padding: 1rem 0;\n margin: 1rem 0 2rem;\n width: 217px;\n min-height: 100px;\n cursor: pointer;\n`\n\nconst BoxContent = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-grow: 1;\n`\n\ntype Props = {\n children: any\n url: string\n nameEvent: string\n internal?: boolean\n}\n\nconst WebpayBox = ({ children, url, nameEvent, internal = false }: Props) => {\n const onClickWebayNational = () => trackEvent(`kyc:deposit:${nameEvent}`)\n\n if (internal === true) {\n return (\n \n {children}\n \n )\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default WebpayBox\n","export default __webpack_public_path__ + \"static/media/webpay.dedca173.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport webpayLogo from \"../../../images/webpay.png\"\n\nconst Webpay = styled.img`\n width: 165px;\n height: 72px;\n`\n\nconst WebpayLogo = () => \n\nexport default WebpayLogo\n","export default __webpack_public_path__ + \"static/media/mercadopago-logo.3f32c06f.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { useFeatureIsOn } from \"@growthbook/growthbook-react\"\n\nimport AlertBanner from \"../ui/alert-banner\"\nimport WebpayBox from \"./webpay-box\"\nimport Webpay from \"../ui/images/webpay-logo\"\n\nimport mercadoPagoLogo from \"../../images/mercadopago-logo.svg\"\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-bottom: 4rem;\n`\n\nconst ContainerButton = styled.div`\n display: flex;\n width: 100%;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: space-evenly;\n`\n\nconst get_text_important = () => (\n <>\n IMPORTANTE: En algunos casos podrá existir un costo por procesamiento de hasta un 2,5%, el cual será descontado del monto depositado.\n \n)\n\ntype Props = {\n kyc?: boolean\n}\n\nconst PayOnline = ({ kyc = false }: Props) => {\n\n const isMercadoPagoEnabled = useFeatureIsOn(\"payment-mercadopago-chile\")\n\n return (\n \n \n \n \n \n {isMercadoPagoEnabled && (\n \n \"Mercado\n \n )}\n \n {get_text_important()} \n \n )\n}\n\nexport default PayOnline\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport bancoBci from \"../../../images/bci.png\"\n\nconst BancoBCI = styled.img`\n width: 109px;\n height: 59px;\n`\n\nconst BancoBCILogo = () => (\n \n)\n\nexport default BancoBCILogo\n","export default \"data:image/png;base64,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\"","import React, { CSSProperties } from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst addTextCSS: CSSProperties = {\n flexDirection: \"column\",\n paddingBottom: \"10px\",\n fontWeight: 400,\n fontSize: \"12px\",\n lineHeight: \"120%\",\n letterSpacing: \"0.1px\",\n}\n\nconst Box = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n align-items: center;\n background-color: #ffffff;\n border: 1px solid #e0e0e0;\n box-sizing: border-box;\n box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.15);\n border-radius: 5px;\n padding: 1rem 0 0;\n margin: 0rem 5px 30px;\n width: 217px;\n height: 110px;\n cursor: pointer;\n`\n\nconst BoxContent = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-grow: 1;\n width: 198px;\n`\n\nconst AccountType = styled.div`\n font-family: \"Open Sans\";\n font-size: 0.625em;\n font-weight: 600;\n line-height: 14px;\n text-align: center;\n background-color: #1f2425;\n padding: 0.25rem;\n color: #ffffff;\n width: 100%;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n`\n\nconst getAccountTypeLabel = (\n isDollarAccount: boolean,\n isSolesAndDollarAccount: boolean,\n isEuroAccount: boolean\n) => {\n let label = Cuenta\n\n if (isDollarAccount) {\n label = Cuenta en dólares\n }\n\n if (isEuroAccount) {\n label = Cuenta en Euros\n }\n\n if (isSolesAndDollarAccount) {\n label = Cuenta en dólares y soles\n }\n\n return label\n}\n\ntype Props = {\n children: any\n isDollarAccount?: boolean\n isSolesAndDollarAccount?: boolean\n isEuroAccount?: boolean\n onClick: (selectedAccount: BankAccount, logo: any) => void\n account: BankAccount\n extraText?: boolean\n}\n\nconst BankBox = ({\n children,\n isDollarAccount = false,\n isSolesAndDollarAccount = false,\n isEuroAccount = false,\n onClick,\n account,\n extraText = false,\n}: Props) => (\n onClick(account, children)} tabIndex={0}>\n {children}\n {getAccountTypeLabel(isDollarAccount, isSolesAndDollarAccount, isEuroAccount)}\n \n)\n\nexport default BankBox\n","import React from \"react\"\nimport styled from \"styled-components\"\nimport BankBox from \"./bank-box\"\n\nconst Slider = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n @media (max-width: 814px) {\n overflow: hidden;\n }\n`\n\nconst Slides = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n overflow-x: auto;\n text-align: center;\n\n /* Hide scrollbar for Chrome, Safari and Opera */\n &::-webkit-scrollbar {\n display: none;\n }\n\n /* Hide scrollbar for IE and Edge */\n -ms-overflow-style: none;\n\n @media (max-width: 1275px) {\n justify-content: normal;\n }\n @media (min-width: 814px) {\n width: 100%;\n min-height: 150px;\n max-height: 300px;\n flex-wrap: wrap;\n justify-content: space-between;\n }\n @media (max-width: 814px) {\n scroll-snap-type: x mandatory;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n width: 318px;\n height: 110px;\n }\n`\n\nconst CarouselOptionsBanks = ({ listBanks, openModal }: any) => {\n\n return (\n \n \n {listBanks.map((bank: any) => (\n \n {bank.text ? bank.text : null}\n {bank.image}\n \n ))}\n \n \n )\n}\n\nexport default CarouselOptionsBanks\n","\nimport React from \"react\"\n\nconst IconToHide = () => (\n \n \n \n \n \n)\n\nexport default IconToHide\n","import React from \"react\"\n\nconst IconToDisplay = () => (\n \n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nexport default IconToDisplay\n","import React from \"react\"\n\nconst Global66Logo = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \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 default Global66Logo\n","import React from \"react\"\n\nconst Global66LogoWithoutText = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default Global66LogoWithoutText\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport BancoEstado from \"../ui/images/banco-estado-logo\"\nimport BankModal from \"./bank-modal\"\nimport CustomModal from \"../ui/custom-modal\"\nimport PayOnline from \"./pay-online\"\nimport BancoBCI from \"../ui/images/banco-bci-logo\"\nimport { trackEvent } from \"../../helpers/tracker\"\nimport CarouselOptionsBanks from \"./carousel-options-banks\"\nimport IconToHide from \"../ui/images/icon-to-hide\"\nimport IconToDisplay from \"../ui/images/icon-to-display\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport Global66Logo from \"../ui/images/global66\"\nimport Global66LogoWithoutText from \"../ui/images/global66-without-text\"\n\nconst BankTransference = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-bottom: 4rem;\n width: 100%;\n margin-top: 35px;\n`\n\nconst ContentTitleDescription = styled.div`\n display: inline-flex;\n height: 56px;\n align-items: center;\n background-color: #fff;\n width: 100%;\n padding: 12px;\n justify-content: space-between;\n margin-top: 15px;\n`\nconst TitleDescription = styled.h4`\n font-family: Roboto;\n font-size: 11px;\n font-style: normal;\n font-weight: 400;\n color: #1f2425;\n line-height: 140%;\n`\n\nconst Text = styled.p`\n font-family: \"Open Sans\";\n font-size: 0.75em;\n`\n\nconst ContainerText = styled.div`\n background-color: #fff;\n width: 100%;\n height: 15.875em;\n padding: 0 15px;\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n`\nconst ContainerTextInternational = styled.div`\n background-color: #fff;\n width: 100%;\n height: 27.875em;\n padding: 0 15px;\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n`\n\nconst Tabs = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: 20px;\n background-color: transparent;\n margin-bottom: 20px;\n`\n\nconst Tab = styled.div`\n text-align: center;\n color: #1f2425;\n width: 217px;\n padding-bottom: 0.5rem;\n cursor: pointer;\n`\n\nconst tabsList = {\n credit: \"Crédito o Débito\",\n transfer: \"Transferencias\",\n}\n\nconst activeTab = {\n fontWeight: 600,\n borderBottom: \"4px solid #30ab76\",\n}\n\nconst CapitariaBEAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"Capitaria Latam SPA\",\n },\n rut: {\n label: \"RUT\",\n value: \"76.257.904-9\",\n },\n accountType: {\n label: \"Tipo de Cuenta\",\n value: \"Cuenta Corriente\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"00008079447\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst CapitariaBCIAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"Capitaria Latam SPA\",\n },\n rut: {\n label: \"RUT\",\n value: \"76.257.904-9\",\n },\n accountType: {\n label: \"Tipo de Cuenta\",\n value: \"Cuenta Corriente\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"63516764\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst CapitariaBCIDollarAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"Capitaria Latam SPA\",\n },\n rut: {\n label: \"RUT\",\n value: \"76.257.904-9\",\n },\n accountType: {\n label: \"Tipo de Cuenta\",\n value: \"Cuenta Corriente\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"000019667507\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"CREDCLRM\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst CapitariaBEDollarAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"Capitaria Latam SPA\",\n },\n rut: {\n label: \"RUT\",\n value: \"76.257.904-9\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"001-0-804237-0\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BECHCLRM\",\n },\n intermediaryBank: {\n label: \"Banco Intermediario (Opcional)\",\n value: \"BANK OF AMERICA\",\n },\n intermediarySwift: {\n label: \"SWIFT Banco Intermediario\",\n value: \"BOFAUS3N\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst GlobalBankAccount: BankAccount = {\n accountOwner: {\n label: \"Destinatario\",\n value: \"Capitaria Latam SPA\",\n },\n rut: {\n label: \"RUT\",\n value: \"76.257.904-9\",\n },\n accountType: {\n label: \"Tipo de Cuenta\",\n value: \"Cuenta Vista\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"12773229\",\n },\n intermediaryBank: {\n label: \"Banco Intermediario (Opcional)\",\n value: \"Global66 / GLOBAL CARD S.A\",\n },\n}\n\nconst GlobalBankAccountDollar: BankAccount = {\n accountOwner: {\n label: \"Destinatario\",\n value: \"Capitaria Latam SPA\",\n },\n accountNumber: {\n label: \"Usuario\",\n value: \"@CAPITCL003\",\n },\n}\n\nconst KTBEAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Agencia en Chile\",\n },\n rut: {\n label: \"RUT\",\n value: \"59.155.280-5\",\n },\n accountType: {\n label: \"Tipo de Cuenta\",\n value: \"Cuenta Corriente\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"00008881111\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst KTBEDollarAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Agencia en Chile\",\n },\n rut: {\n label: \"RUT\",\n value: \"59.155.280-5\",\n },\n accountNumber: {\n label: \"N° de Cuenta\",\n value: \"00108042397\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BECHCLRM\",\n },\n intermediaryBank: {\n label: \"Banco Intermediario (Opcional)\",\n value: \"BANK OF AMERICA\",\n },\n intermediarySwift: {\n label: \"SWIFT Banco Intermediario\",\n value: \"BOFAUS3N\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst banksCapitaria = [\n {\n account: CapitariaBCIAccount,\n image: ,\n },\n {\n account: GlobalBankAccount,\n image: ,\n },\n {\n account: CapitariaBEAccount,\n image: ,\n },\n {\n account: CapitariaBCIDollarAccount,\n image: ,\n isDollarAccount: true,\n },\n {\n account: GlobalBankAccountDollar,\n image: ,\n isDollarAccount: true,\n text: \"Se requiere cuenta creada\",\n extraText: true,\n },\n {\n account: CapitariaBEDollarAccount,\n image: ,\n isDollarAccount: true,\n },\n]\n\nconst banksKT = [\n {\n account: KTBEAccount,\n image: ,\n },\n {\n account: KTBEDollarAccount,\n image: ,\n isDollarAccount: true,\n },\n]\nconst CapitariaBanksAccounts = ({\n selectedAccount,\n}: {\n selectedAccount: (selectedAccount: BankAccount, logo: any) => void\n}) => (\n \n)\n\nconst KTBanksAccounts = ({\n selectedAccount,\n}: {\n selectedAccount: (selectedAccount: BankAccount, logo: any) => void\n}) => (\n \n)\n\nconst bankAccounts = (\n broker: string = \"\",\n selectedAccount: (selectedAccount: BankAccount, logo: any) => void\n) => {\n if (broker === \"KT Financial Group\") {\n return \n }\n\n return \n}\n\ntype Props = {\n broker?: string\n kyc?: boolean\n onClick?: () => void\n}\n\nconst ChileDepositOnboarding = ({\n kyc = true,\n onClick = () => { },\n}: Props) => {\n const emptyAccount: BankAccount = {\n accountOwner: { label: \"\", value: \"\" },\n }\n const [account, setAccount] = useState(emptyAccount)\n const [logo, setLogo] = useState(null)\n const [broker, setBroker] = useState(\"Capitaria\")\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isClickButton, setIsClickButton] = useState(false)\n const [showSection, setShowSection] = useState(\"credit\")\n const [isExpandedTransferNational, setIsExpandedTransferNational] = useState(false)\n const [isExpandedTransferInternational, setIsExpandedTransferInternational] = useState(false)\n\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n setBroker(user.sf_Broker__c)\n }, [user.sf_Broker__c])\n\n const closeModal = () => setIsModalOpen(false)\n\n const clickModal = () => {\n setIsModalOpen(false)\n setIsClickButton(true)\n }\n\n const clickAnimationEnd = () => {\n if (isClickButton) {\n onClick()\n }\n }\n\n const selectedAccount = (account: BankAccount, logo: any) => {\n setIsModalOpen(true)\n setLogo(logo)\n setAccount(account)\n }\n const onClickTab = (tab: string) => () => {\n trackEvent(`deposit:tab:${tab}`)\n setShowSection(tab)\n }\n\n const handleClickTransferNational = () => {\n setIsExpandedTransferNational(!isExpandedTransferNational)\n }\n const handleClickTransferInternational = () => {\n setIsExpandedTransferInternational(!isExpandedTransferInternational)\n }\n\n return (\n <>\n \n {Object.entries(tabsList).map(([key, title], idx: number) => (\n \n {title}\n \n ))}\n \n {showSection === \"credit\" && }\n {showSection === \"transfer\" &&\n <>\n \n\n {bankAccounts(broker, selectedAccount)}\n\n \n \n Condiciones transferencias bancarias cuentas nacionales\n \n {isExpandedTransferNational ? : }\n \n\n {isExpandedTransferNational && (\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN EFECTIVO, todo\n depósito en efectivo será devuelto a la cuenta suscrita en el\n contrato de apertura.\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN cheque o transferencias bancarias\n provenientes de terceros\n o cuentas no suscritas al contrato de apertura.\n \n \n Todo depósito tendrá hasta 48 horas hábiles para ser reflejado en la\n cuenta de trading.\n \n \n La copia de transferencia deberá ser enviada como comprobante de\n depósito a depositos@capitaria.com.\n \n \n )}\n\n \n \n Condiciones transferencias bancarias cuentas internacionales\n \n {isExpandedTransferInternational ? : }\n \n\n {isExpandedTransferInternational && (\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN EFECTIVO, todo\n depósito en efectivo será devuelto a la cuenta suscrita en el\n contrato de apertura.\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN cheque o transferencias bancarias\n provenientes de terceros o cuentas no suscritas al contrato de apertura\n \n \n Todo depósito tendrá hasta 72 horas hábiles para ser reflejado en la\n cuenta de trading.\n \n \n La copia de transferencia deberá ser enviada como comprobante de\n depósito al Ejecutivo de Trading.\n \n \n Toda transacción entre cuentas internacionales tiene un costo de\n transferencia asociado dependiendo del banco de origen del cliente.\n \n \n Para transferencias entre cuentas Citibank, el costo es de 8\n dólares. Para transferencias entre Citibank y cuentas\n internacionales, el costo es de 10 dólares.\n \n \n La transacción puede tener costos adicionales provenientes del banco\n de origen del cliente, antes de realizar una transacción\n internacional, informarse con su banco acerca de los costos\n asociados.\n \n \n )}\n \n \n \n \n \n }\n \n )\n}\n\nexport default ChileDepositOnboarding\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport bbva from \"../../../images/bbva.png\"\n\nconst BBVA = styled.img`\n width: 95px;\n height: 54px;\n`\n\nconst BBVALogo = () => \n\nexport default BBVALogo\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/bcp.7ca987fe.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport bcp from \"../../../images/bcp.png\"\n\nconst BCP = styled.img`\n width: 98px;\n height: 45px;\n`\n\nconst BCPLogo = () => \n\nexport default BCPLogo\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport scotiabank from \"../../../images/scotiabank.png\"\n\nconst Scotiabank = styled.img`\n width: 101px;\n height: 22px;\n`\n\nconst ScotiabankLogo = () => \n\nexport default ScotiabankLogo\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/success.fb8847f2.gif\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport PageLayout from \"../page-layout\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport successGif from \"../../images/success.gif\"\n\nconst ContainerStatus = styled.div`\n display: flex;\n justify-content: space-around;\n min-width: 600px;\n`\n\nconst ContainerNuvei = styled.div`\n max-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n display: flex;\n flex-direction: column;\n width: 50%;\n margin: 0 auto;\n`\n\nconst RowDetail = styled.div`\n display: flex;\n align-self: center;\n &>div:first-of-type {\n text-align: right;\n padding-right: 5px;\n }\n &>div:last-of-type {\n text-align: left;\n padding-left: 5px;\n }\n width: 100%;\n`\n\nconst CellDetail = styled.div`\n width: 100%;\n`\n\nconst DivWrapper = styled.div`\n text-align: center;\n margin: 0 auto;\n max-width: 556px;\n width: 100%;\n & * {\n font-family: \"Open Sans\";\n }\n`\n\nconst Title = styled.h1`\n font-family: \"Roboto\";\n color: black;\n font-size: 24px;\n font-weight: 400;\n line-height: 30px;\n margin-bottom: 30px;\n margin-top: 0px;\n text-align: center;\n`\n\nconst Info = styled.div`\n font-family: \"Roboto\";\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: #080F12;\n text-align: center;\n`\n\ntype ApprovedComponentProps = {\n data: any\n amount: string\n currency: string\n orderId: string\n email: string\n}\n\nconst ApprovedComponent = ({\n data,\n amount,\n currency,\n orderId,\n email,\n}: ApprovedComponentProps) => {\n return (\n <>\n \"Depósito\n Depósito Exitoso\n \n \n N° Orden: \n {orderId}\n \n \n Fecha: \n {data.userPaymentOptionId}\n \n \n {currency} $: \n {amount}\n \n \n Tarjeta: \n {data.ccCardNumber}\n \n \n \n

\n Recuerde que se ha enviado automáticamente un comprobante de pago\n a su email {email}\n

\n

\n Importante: El monto depositado puede que demore\n un tiempo en verse reflejado en la plataforma. Ante cualquier duda\n puedes comunicarte con tu ejecutivo\n

\n
\n \n )\n}\n\ntype ErrorWithCreditCardProps = {\n orderId: string\n data: any\n}\n\nconst ErrorWithCreditCard = ({\n orderId,\n data,\n}: ErrorWithCreditCardProps) => {\n return (\n <>\n Ocurrio un error al procesar el deposito\n \n \n ID de la Transacción: \n {orderId}\n \n \n Codigo de Error: \n {data.errCode}\n \n \n Descripción del error: \n {data.errorDescription}\n \n \n \n )\n}\n\nconst SuccessNuveiPage = ({\n data,\n amount,\n currency,\n orderId,\n paymentMethod,\n}: any) => {\n const { state } = useAuth()\n const { email } = state.user as User\n\n return (\n \n \n \n {paymentMethod === 'creditcard' ?\n (\n data.result === 'APPROVED' ?\n :\n \n ) :\n <>\n Transferencia en progreso\n \n \n Si ya realizaste tu transferencia, debes esperar unos minutos para que nos informe el banco.\n \n \n Te llegara un correo con la información correspondiente.\n \n \n \n }\n \n \n \n )\n}\n\nexport default SuccessNuveiPage\n","import React, { memo, useEffect, useState } from \"react\"\nimport { css, Global } from \"@emotion/react\"\nimport styled from \"@emotion/styled\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport { useAuth } from \"../../hooks/auth-context\"\n\nconst styleCss = css`\ninput {\n background: #ffffff;\n border-radius: 3px;\n border: 1px solid #d3dce6;\n color: #4a5568;\n display: block;\n outline: none;\n padding: 5px 12px;\n width: 360px;\n font-family: Nunito Sans, sans-serif;\n}\ninput:placeholder-shown {\n border: 1px solid #d3dce6;\n}\ninput:hover {\n border: 1px solid #95aac1;\n}\ninput:focus {\n border: 1px solid #00becf;\n}\n#card-field-placeholder,\n#card-field,\n#card-number,\n#card-expiry,\n#card-cvc {\n background: #ffffff;\n border-radius: 3px;\n border: 1px solid #d3dce6;\n color: #4a5568;\n display: block;\n margin-top: 5px;\n outline: none;\n padding: 7px 12px;\n width: 100%;\n}\n#card_number_three_fields {\n margin-top: 5px;\n padding: 7px 12px;\n width: 470px;\n}\n\n.pay-button {\n background-color: #00becf;\n border-radius: 3px;\n border: 1px solid #00a6b5;\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n height: 36px;\n line-height: 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n margin-right: 10px;\n width: 140px;\n}\n.pay-button:hover {\n color: #fff;\n background-color: #0f93a1;\n}\n.validation-error {\n color: #ff3f5a;\n font-size: 12px;\n height: 16px;\n line-height: 16px;\n visibility: hidden;\n}\n\nlabel {\n color: #4a5568;\n font-size: 14px;\n font-weight: 600;\n}\n#card_number {\n width: 700px;\n}\n#cardholder_name {\n width: 470px;\n}\n.App h1 {\n color: #00becf;\n}\n#card-field-placeholder.sfc-focus,\n#card-field.sfc-focus,\n#card-number.focused,\n#card-expiry.focused,\n#card-cvc.focused {\n border: 1px solid #00becf;\n}\n\n#card-field-placeholder:hover,\n#card-field:hover,\n#card-number:hover,\n#card-expiry:hover,\n#card-cvc:hover {\n border: 1px solid #95aac1;\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.sfcModal-header {\n height: 1.5rem;\n}\n.sfcModal-dialog {\n margin: 55px auto;\n max-width: 492px;\n position: relative;\n width: auto;\n}\n.sfcModal-content {\n background-clip: padding-box;\n background-color: #ffffff;\n border: 1px solid #dfdfdf;\n outline: 0;\n position: relative;\n}\n.sfcModal-close {\n border: 0;\n color: #2c2a2a;\n cursor: pointer;\n font-size: 0.9rem;\n padding: 0;\n position: absolute;\n right: 0.5rem;\n top: 0.4rem;\n}\n.sfcIcon--close:before {\n content: \"\\\\2716\";\n}\n`\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n`\n\nconst LabelText = styled.label`\n color: #ACB5BD;\n font-size: 12px;\n line-height: 14px;\n letter-spacing: 0.08em;\n font-family: \"Roboto\";\n font-weight: 500;\n`\n\nconst ContainerCard = styled.div`\n max-width: 600px;\n width: 100%;\n`\n\nconst InputNameCard = styled.input`\n width: 100%;\n`\n\nconst ContainerButton = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 15px;\n`\n\nconst ButtonDeposit = styled.button`\n background-color: #2BA770;\n color: white;\n border: none;\n border-radius: 8px;\n width: 400px;\n height: 50px;\n`\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\n// TODO: refactor este componente para nombrarse de una sola manera y que puedan ser llamadas todas las TC o TD necesarias\nexport const MexicoCreditCard = memo(({ safeCharge, nuveiInfo, onSuccess, country }: any) => {\n const [cardNumber, setCardNumber] = useState(null)\n const [cardHolderName, setCardHolderName] = useState(\"\")\n const [loading, setLoading] = useState(false)\n\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n if (safeCharge) {\n\n // Card number----------------------------------------------------\n const safeChargeFields = safeCharge.fields({\n fonts: [{ cssUrl: \"\" }],\n locale: \"es\"\n })\n const cardNumber = safeChargeFields.create(\"card\", {})\n\n cardNumber.attach(\"#card-field\")\n\n setCardNumber(cardNumber)\n }\n }, [safeCharge])\n\n const createPayment = (e: any) => {\n if (cardNumber) {\n if (loading) return\n setLoading(true)\n try {\n safeCharge.createPayment(\n {\n sessionToken: nuveiInfo.success.sessionToken,\n cardHolderName: cardHolderName,\n paymentOption: cardNumber,\n billingAddress: {\n email: user.email,\n country: country,\n }\n },\n (response: any) => {\n setLoading(false)\n onSuccess(response)\n if (response.result !== 'APPROVED') {\n const messageError = `email: ${user.email} - code: ${response.errCode} - description: ${response.errorDescription}`\n Sentry.captureException(messageError)\n }\n }\n )\n } catch (e) {\n console.error(e)\n Sentry.captureException(e)\n }\n }\n }\n\n return (\n <>\n \n \n \n Nombre\n setCardHolderName(e.target.value)}\n />\n \n\n \n Detalles Tarjeta\n
\n \n {loading && (\n \n \n \n )}\n {!loading && (\n \n \n Depositar\n \n \n )}\n \n \n )\n})\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAQDSURBVHgB7ZdNiFtVFMf/9768fMfOBzM0nYw1Uu1mLIq4kCJC6cKii9alUDVVHFCL6MKFYgdcKYqKdKHgR3Wja0E3BbFFxFoYaEFGYcQpnSZjnckkk04myXvvHs/LmNdkMsnk3e7K+0HIvefec+7/3ffO/QACAgICAgJ8IAbtuIzMhAM6FAIOKmCfgEgAtE7APNsvGjB/GMOVwlY/mpmRG9nTaYHIY4Lkw2zJsk9cQawJor8g6LxC+KdkbmFpEB19BRNIlJA5YAGnuOMRNsV690WN+5zl/1NjuHbJNayfyUyx7UNJxEIR7zMUPzh9x7/3EycKs9ARvIKROxTib7KUV7gaweDUZEJ9kvgAMTLls359Bb+TSC7/nhDuIw8ouIzMSAP0FRefgE9kVCF1aBnGPglragQUkvCLIHwfsa8dE9OwuuJvNRDScRb7kY5YYRBSj67AHLMgy3WE5lZ5cPIbxp3aI43wni+3a+sSvAL5Kv8dhwbxAxWYuxte3SjWYFypwDcCUpF4svr5xGvdTW0sYW/WgPUnm034RCZtDB+93pzlDgyJ+kPjoIgBv/DLWY3J9btFrlTyxumIDfslHbEuiQcq3WJdHAXj6g3owIk3vKGSb7TbPMF/464oDzcNHThLwpmNns3G9Sr0oad4pr0vwROcgnMfW5PQwBxvQIR7J5eweJuoNKADz/JE/Ys997bqnmAFZwqauIJ3QmoKdlEC93txWgWe3b3QRMbtHfuIusItMOmN5QX0tyN1MsjeoPyvxy140zO3GUqWoYmydlZMxsDnrC7Ys9gqt80wzUMTp7TzSkgJrdVy01cqT1vb1NAFaGIvhft34FRXQ9pfHDmkfm9VPMGjyF/ltllo4NwIwSmHeo+Y4DbT/yGo6Uv4JZn71zsrd0ThymloUpvrvYTbE1rLexNy8E57vUPwCPJfcy5fhga1+TicSvd5QfG364zHoAddjJP6sd3SIVg0d377BXJvRH5DOwKVc6MgdXM1IClg7R/iUbRWiGI0RM+I6UK1p2CX3fjnAod/i4sl+MReMVGdTTXFEyeadc8QKBWGBnVHqZPi6cLc1oY+V6T08wrybS6m4QeOGN2/vhY9jpqdTozDP4t8t3s9lst/u901qWfqjqLwmQ3nKBd/BjDgNsU5Tfit+kfyEZqMPs61y4P7uv3orEV0OH4i/42vO107M/xQLyJ9WEK+zJ0PcpThLX7ElVW2X5JQ764hci6Lhdr/8kXjTOaYIjrJ1QexeRrs8OVakYjOm0J+HELoV5Hb9O2Fr2xwb9INhCdDMLKSV1cLDieEuRBFZXEXyiXRZzaLnw7vSoZDWaXMO4UhouQ4FaHEQlhai+K5ZY17VEBAQEBAwO3If5M6ZTNQaCH2AAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAAA4CAYAAACohjseAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUZSURBVHgB7ZZdTBxVFIDPvbM7sJUtVHYLVNouipK2KD+7QKXUQvpQH4g/idWY+mKixgeNNWqMaXyoibEa7YtJfWiT2pc2wkMjSU3UpKCtgsAChVoxarFabFp2+V122Z2f47kzOwtvMLz05X7JzJx777nnZ+49dwZAIpFIJBKJRCKRSCQSiUQikbiDraZQFh7ckFDu8XFVMwHmrD6e8pkzg+F5YAxX6oZCE/kz5Td9Qs6ffzBTrMe0fwsUv2jnzcUzsd9bFlbqJksShRlFy1cWua77F5KH97fMHT3KzJxBRFbUNlJoJPMV0Xx8+9hsZ+ezBrhg1QRLwoMP61x/iQNvIH9bxByGaAJnF1BNvxf7aTnoYKS/A4E1CdlE822Fsz9MZF0MGAWI0VjFxNNAAQYjfc8gKO+Q2kPA0A/I0hTILdL9LB6NfOHYC0QGnqfHR+TSa9uEF6ejke/ABXw1hdvRyFh8oOlwelFvR8Y+oa5t9AyRs5cxpZQ7eqW7e0OU9RNinK4i01C/J70mCnwrJbcFAf8RyVHQHyN4zpBOo9Cj5MTqbKDxEHAz97I2N/WV0OMIXdvFfHEpDBvAJasmaMNw/lrzdHwgcoJW6KrVA6CCou5wNHTN8zoDzBMyIp6YHambpeAfc8YR+Q/Bhv5SmvgWtSghyJDzd2mojeSnGPJPFZP35vQNtYUejn3MGtkLLvGASziaF2hlqu2WUSXuZeGuDRqDdjsS1AyddezceVW9jalqZsXF0io3rxkmr6R3ZdUT9ceXvNqp+d7m6azpr3NOWrs9kDBeEe6oymPkb4qs7EAGu62xnjYd1sgaV3AZ2oZ9K6ZbW0ZjJU/S4wGrC9k3s5siY3fyMgFK4j4rGYZTS5p3kmosvsJUmap5fwzUDrfCwQ5lpY/AvK+GTpp9tj/sJKNX7BFWWJgo3gYuWEeCqSFyaAXKTWwpf/RnOjW5OAxEkLSDjdPQw3STm2KVi7PTRsWWjQ+FfyP5ODhbDmAXeIyLgesV3xbVDhflnDDPq/Ry8hBFfsrnyJwEqS4wEwYXuE7Q4980TeFZtUJbJpgylAMk2rWB+J+Jnp6s5ZZcvIiXHbmgIHCEJr5AGf5q95AVBvsVRT8pWkW13UW04oeseYDj4qXQOTRMTevzYDDcBS5wneBUT3WCPhlDueBN5Q0Rl5BpC56ciUasjyVHjOR0gEcd+e+eiqVYNHI2baTaaGW+zOlQfQX2jPsVT8EhSt6XnTgVqB94kxvGHpKTdhfUgAtcJ2jhNS+J1OwGtlp3OhVThveU3UXHAmN1tgyY1OIjwdbugmB9tDLUOpEvuhNDe2MKN88tG8WMJ6nk06Hy2nIf20cRHqfs3yc7/myCVf7wYADWiOtTVKBj3jgH7TqJlblQAL5KXamdFHJhU3+IPgul2ZG/EqMH7vgiA3XIjZ6FxNR4MNx/w2iM+gxUmpf/NLAro87WcgOq7CbM0uaddEY5YIAKvITe3VaV4f3UFVtDqOtbwelfam5SfYwuxyYOA3baaXqA575XVE+XbE/sEWptpIJrpPU9SFu4nZK7Nzv/chqTH1Jyz4FVemCaDD5QkTU6F5rsmKhmsleA5trrcF0rKKCKP8eypyHVzw0l4+3PDer0K6fws3bw4pin+tS1fs68xyjGMP0IbLLSAPYn/dKdn/Ynz29M520EDXQyRvMwARm189ZoTdIxubk+epHmnUHOVHpbiyCRSCQSiUQikUgkEolEIpHcLf4HT6gGy4tKvc4AAAAASUVORK5CYII=\"","import React from \"react\"\n\nconst FlagPeru = (style:any) => (\n\n \n \n \n \n \n)\n\nFlagPeru.defaultProps = {\n width:\"20\",\n height:\"15\"\n}\n\nexport default FlagPeru\n","import React from \"react\"\n\nconst FlagUsa = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \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 default FlagUsa\n","import React, { Dispatch, SetStateAction, useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport mastercardImage from \"../../../images/mastercard.png\"\nimport visaImage from \"../../../images/visa.png\"\nimport FlagPeru from \"../../ui/images/flag-peru\"\nimport FlagUsa from \"../../ui/images/flag-usa\"\nimport { useFeatureIsOn } from \"@growthbook/growthbook-react\"\nimport ButtonCustom from \"../../ui/custom-button\"\nimport { css } from \"@emotion/react\"\n\n\nconst ContainerNuvei = styled.div`\n min-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n > div {\n max-width: 414px;\n }\n`\n\nconst ContainerCreditCard = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin-top: 15px;\n`\n\nconst ImgCreditCard = styled.img`\n width: 44px;\n height: 44px;\n margin: 0 10px;\n`\n\nconst PrefixSpan = styled.span`\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: black;\n text-align: center;\n border: 1px solid #919eab;\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n display: table-cell;\n border-right: 0;\n border-radius: 8px 0px 0px 8px;\n`\n\nconst ContainerInput = styled.div`\n position: relative;\n display: table;\n border-collapse: separate;\n width: 100%;\n`\n\nconst WrapperInput = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n`\n\nconst InputDeposit = styled.input`\n border: 1px solid #919eab;\n border-radius: 8px;\n width: 358px;\n height: 56px;\n border-radius: 0px 8px 8px 0px;\n border-left: none;\n`\n\nconst styleButtonDeposit = css`\n background: #2BA770;\n color: white;\n border: none;\n border-radius: 8px;\n width: 100%;\n height: 50px;\n`\n\nconst ContainerButton = styled(WrapperInput)`\n margin-top: 15px;\n`\n\nconst ContainerSelectCurrency = styled.div`\n width: 100%;\n height: 40px;\n padding: 4px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin: 0;\n\n`\n\nconst SelectCurrency = styled.button`\n width: 66px;\n height: 29px;\n left: 569px;\n top: 415px;\n border: 2px solid #2BA770;\n border-radius: 10px;\n padding: 5px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n\n &.disabled {\n opacity: 40%;\n border: 2px solid buttonface;\n }\n`\n\ntype Props = {\n currency: string\n amount: number\n setAmount: Dispatch>\n setCurrency: (newCurrency: CurrencyPeruProps) => void\n onClickPay: () => Promise\n}\n\n\ntype TranslateCurerncyProps = {\n [key in CurrencyPeruProps]: (props: any) => JSX.Element\n}\n\n\nconst InputCurrency = ({ currency, amount, setAmount, onClickPay, setCurrency }: Props) => {\n const listCurrency: CurrencyPeruProps[] = [\"PEN\"]\n\n if (useFeatureIsOn(\"payment-peru-usd\"))\n listCurrency.push(\"USD\")\n\n const translateCurrencyFlag: TranslateCurerncyProps = {\n USD: FlagUsa,\n PEN: FlagPeru,\n }\n\n const [currencySelected, setCurrencySelected] = useState(currency)\n const [loading, setLoading] = useState(false)\n\n const changeCurrency = (newCurrency: CurrencyPeruProps) => {\n if (loading) return\n setLoading(true)\n setCurrencySelected(newCurrency)\n setCurrency(newCurrency)\n\n setTimeout(() => {\n setLoading(false)\n }, 2000)\n }\n\n return (\n \n {listCurrency.length > 1 && (\n \n {React.Children.map(listCurrency, (currencyCountrySelected) => {\n const FlagComponent = translateCurrencyFlag[currencyCountrySelected]\n return (\n changeCurrency(currencyCountrySelected)}\n >\n \n {currencyCountrySelected}\n \n )\n\n })}\n \n )}\n \n \n {currency}\n setAmount(parseInt(e.target.value, 10))}\n />\n \n \n \n \n Depositar\n \n \n \n \n \n \n \n )\n}\n\nexport default InputCurrency\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport PageLayout from \"../../page-layout\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\n\nimport { useAuth } from \"../../../hooks/auth-context\"\nimport { getTokenNuvei } from \"../../../graphql/queries\"\n\nimport LoadingScreenIcon from \"../../ui/images/loading-screen\"\nimport SuccessNuveiPage from \"../success-page\"\nimport { MexicoCreditCard } from \"../mexico-credit-card\"\nimport InputCurrency from \"./input-currency\"\nimport AlertBanner from \"../../ui/alert-banner\"\n\nconst CreditCard = styled.div`\n display: flex;\n justify-content: space-around;\n min-width: 600px;\n margin-bottom: 10px;\n`\n\nconst LabelPayment = styled.div`\n background-color: #DDF2FA;\n width: 600px;\n color: black;\n padding-top: 17px;\n padding-bottom: 17px;\n font-size: 20px;\n line-height: 26px;\n display: flex;\n justify-content: center;\n`\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst loadScript = (src: string) =>\n new Promise((resolve, reject) => {\n const scriptElem = Object.assign(document.createElement(\"script\"), {\n type: \"text/javascript\",\n defer: true,\n src,\n onerror: (e: any) => {\n reject(e)\n }\n })\n scriptElem.onload = () => {\n resolve()\n }\n document.body.appendChild(scriptElem)\n })\n\ntype PropsPaymentMethod = {\n [key: string]: any\n}\n\nconst PaymentMethod: PropsPaymentMethod = {\n creditcard: MexicoCreditCard,\n}\n\nconst ConfigPayments = {\n PEN: {\n env: \"prod\",\n merchantId: \"6989725270836596280\",\n merchantSiteId: \"243496\"\n },\n USD: {\n env: \"prod\",\n merchantId: \"960245599035110614\",\n merchantSiteId: \"298538\"\n },\n}\n\nconst PeruCreditCard = () => {\n\n const [safeCharge, setSafeCharge] = useState(null)\n const [amount, setAmount] = useState(0)\n const [loading, setLoading] = useState(false)\n const [modulo, setModulo] = useState(false)\n const [nuveiInfo, setNuveiInfo] = useState({} as any)\n\n const { state } = useAuth()\n const user = state.user as User\n\n const [success, setSuccess] = useState(false)\n const [dataSuccess, setDataSuccess] = useState({})\n const [currency, setCurrency] = useState(\"PEN\")\n\n useEffect(() => {\n const loadSafecharge = async () => {\n await loadScript(\n \"https://cdn.safecharge.com/safecharge_resources/v1/websdk/safecharge.js\" //production\n )\n // @ts-ignore\n if (window.SafeCharge) {\n setSafeCharge(\n // @ts-ignore\n window.SafeCharge(ConfigPayments['PEN'])\n )\n }\n }\n\n loadSafecharge()\n }, [])\n\n const changeCurrency = (newCurrency: CurrencyPeruProps) => {\n setCurrency(newCurrency)\n setSafeCharge(lastConfig => {\n console.log('Cambiando la config por ', newCurrency)\n // @ts-ignore\n return window.SafeCharge(ConfigPayments[newCurrency])\n\n })\n }\n\n const modulodepago = async () => {\n if (loading) return\n if (amount <= 0) return\n\n setLoading(true)\n const response = await API.graphql(\n graphqlOperation(\n getTokenNuvei,\n {\n cognitoId: user.cognitoId,\n amount: amount,\n currency: currency,\n country: \"peru\",\n }\n )\n )\n // @ts-ignore\n setNuveiInfo(JSON.parse(response.data.getTokenNuvei))\n setLoading(false)\n setModulo(true)\n }\n\n const onSuccess = (data: any) => {\n setDataSuccess(data)\n setSuccess(true)\n }\n\n const ComponentPayment: any = PaymentMethod['creditcard']\n\n return (\n \n \n {!modulo && !loading && (\n \n )}\n {modulo && \n Monto a depositar: {currency} ${amount}\n }\n \n {loading && \n \n }\n {modulo && !success &&\n \n }\n {success && }\n \n IMPORTANTE: Por el uso de Tarjeta de Crédito o Débito,\n este tiene un costo de 3,25%.\n Dicho costo será descontado del monto depositado.\n
\n
\n \n NO SE ACEPTAN PAGOS PROVENIENTES DE TARJETAS DE TERCEROS.\n {\" \"}\n Si esto sucede, el pago será anulado.\n
\n
\n )\n}\n\nexport default PeruCreditCard\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { trackEvent } from \"../../helpers/tracker\"\nimport CustomModal from \"../ui/custom-modal\"\nimport BBVA from \"../ui/images/bbva-logo\"\nimport BCP from \"../ui/images/bcp-logo\"\nimport IconToDisplay from \"../ui/images/icon-to-display\"\nimport IconToHide from \"../ui/images/icon-to-hide\"\nimport Scotiabank from \"../ui/images/scotiabank-logo\"\nimport BankModal from \"./bank-modal\"\nimport CarouselOptionsBanks from \"./carousel-options-banks\"\nimport PeruCreditCard from \"../nuvei/peru/credit-card\"\nimport { useFeatureIsOn } from \"@growthbook/growthbook-react\"\n\nconst BankTransference = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-bottom: 4rem;\n width: 100%;\n`\n\nconst ContentTitleDescription = styled.div`\n display: inline-flex;\n height: 56px;\n align-items: center;\n background-color: #fff;\n width: 100%;\n padding: 12px;\n justify-content: space-between;\n margin-top: 15px;\n`\nconst TitleDescription = styled.h4`\n font-family: Roboto;\n font-size: 11px;\n font-style: normal;\n font-weight: 400;\n color: #1f2425;\n line-height: 140%;\n`\n\nconst Text = styled.p`\n font-family: \"Open Sans\";\n font-size: 0.75em;\n`\n\nconst ContainerText = styled.div`\n background-color: #fff;\n width: 100%;\n height: 12.875em;\n padding: 0 15px;\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n`\n\nconst Tabs = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: 20px;\n background-color: transparent;\n margin-bottom: 20px;\n`\n\nconst Tab = styled.div`\n text-align: center;\n color: #1f2425;\n width: 217px;\n padding-bottom: 0.5rem;\n cursor: pointer;\n`\n\nconst ContainerUpdatedCreditCard = styled.div`\n min-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n`\n\nconst tabsList = {\n credit: \"Crédito o Débito\",\n transfer: \"Transferencias\",\n}\n\nconst activeTab = {\n fontWeight: 600,\n borderBottom: \"4px solid #30ab76\",\n}\n\nconst BCPAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Limited\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BCP LPEPL\",\n },\n dollarAccount: {\n label: \"Cuenta Dólares\",\n value: \"1941959486196\",\n },\n ciiDollarAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"00219400195948619695\",\n },\n solesAccount: {\n label: \"Cuenta Soles\",\n value: \"1941973495091\",\n },\n ciiSolesAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"00219400197349509198\",\n },\n bankCodeId: {\n label: \"Código Identificación Bancaria\",\n value: \"93560477\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst BBVAacount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Limited\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BCONPEPL\",\n },\n dollarAccount: {\n label: \"Cuenta Dólares\",\n value: \"0011-0123-01-00063521\",\n },\n ciiDollarAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"011 123 000100063521 77\",\n },\n solesAccount: {\n label: \"Cuenta Soles\",\n value: \"0011-0123-01-00063513\",\n },\n ciiSolesAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"011 123 000100063513 74\",\n },\n bankCodeId: {\n label: \"Código Identificación Bancaria\",\n value: \"00025317926\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst scotiabankAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Limited\",\n },\n ruc: {\n label: \"Ruc\",\n value: \"9040061493\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BSUDPEPLXXX\",\n },\n dollarAccount: {\n label: \"Cuenta Dólares\",\n value: \"0003977006\",\n },\n ciiDollarAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"009 170 000003977006 20\",\n },\n solesAccount: {\n label: \"Cuenta Soles\",\n value: \"0000451070\",\n },\n ciiSolesAccount: {\n label: \"CCI (Código Interbancario)\",\n value: \"009 170 000000451070 27\",\n },\n}\n\ntype Props = {\n showSkip?: boolean\n onClick?: () => void\n}\n\nconst CreditCardComponent = () => {\n\n const isPeruCreditCardEnabled = useFeatureIsOn(\"payment-peru\")\n\n if (isPeruCreditCardEnabled)\n return \n\n return (\n \n Estamos actualizando para que tengas una mejor experiencia con Capitaria\n \n )\n}\n\n\nconst PeruDeposit = ({ showSkip = true, onClick = () => { } }: Props) => {\n const emptyAccount: BankAccount = {\n accountOwner: { label: \"\", value: \"\" },\n }\n const [account, setAccount] = useState(emptyAccount)\n const [logo, setLogo] = useState(null)\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isClickButton, setIsClickButton] = useState(false)\n const [showSection, setShowSection] = useState(\"credit\")\n const [isExpandedTransfer, setIsExpandedTransfer] = useState(false)\n\n const closeModal = () => {\n setIsModalOpen(false)\n }\n\n const openModal = (selectedAccount: BankAccount, logo: any) => {\n setIsModalOpen(true)\n setAccount(selectedAccount)\n setLogo(logo)\n }\n\n const clickAnimationEnd = () => {\n if (isClickButton) {\n onClick()\n }\n }\n\n const clickModal = () => {\n setIsModalOpen(false)\n setIsClickButton(true)\n }\n\n const onClickTab = (tab: string) => () => {\n trackEvent(`deposit:tab:${tab}`)\n setShowSection(tab)\n }\n\n const handleClickTransfer = () => {\n setIsExpandedTransfer(!isExpandedTransfer)\n }\n\n const banks = [\n {\n account: scotiabankAccount,\n isSolesAndDollarAccount: true,\n isDollarAccount: false,\n extraText: false,\n image: ,\n },\n {\n account: BCPAccount,\n isSolesAndDollarAccount: true,\n isDollarAccount: false,\n extraText: false,\n image: ,\n }, {\n account: BBVAacount,\n isSolesAndDollarAccount: true,\n isDollarAccount: false,\n extraText: false,\n image: ,\n },\n ]\n\n return (\n <>\n \n {Object.entries(tabsList).map(([key, title], idx: number) => (\n \n {title}\n \n ))}\n \n {showSection === \"credit\" && }\n {showSection === \"transfer\" &&\n <>\n \n
\n \n
\n \n \n Condiciones transferencias bancarias cuentas Perú\n \n {isExpandedTransfer ? : }\n \n {isExpandedTransfer && (\n \n \n Los depósitos deben enviarse al email depositos@capitaria.com con\n copia a su Ejecutivo de Trading e ir bajo el asunto KT.\n \n \n Cabe señalar que{\" \"}\n la cuenta del Citibank tiene un costo asociado por\n ingreso y retiro.\n \n \n NO SE ACEPTAN DEPÓSITOS PROVENIENTES DE CUENTAS CORRIENTES DE\n TERCEROS.\n Si esto sucede, todo depósito será reversado a la cuenta corriente\n inscrita en el contrato.\n \n )}\n
\n\n \n \n \n \n }\n \n )\n}\n\nexport default PeruDeposit\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport santander from \"../../../images/santander.png\"\n\nconst Santander = styled.img`\n width: 103px;\n height: 60px;\n`\n\nconst SantanderLogo = () => \n\nexport default SantanderLogo\n","export default \"data:image/png;base64,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\"","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport Santander from \"../ui/images/santander-logo\"\nimport BankModal from \"./bank-modal\"\nimport CustomModal from \"../ui/custom-modal\"\nimport CarouselOptionsBanks from \"./carousel-options-banks\"\nimport IconToDisplay from \"../ui/images/icon-to-display\"\nimport IconToHide from \"../ui/images/icon-to-hide\"\n\nconst BankTransference = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-bottom: 4rem;\n width: 100%;\n`\n\nconst ContentTitleDescription = styled.div`\n display: inline-flex;\n height: 56px;\n align-items: center;\n background-color: #fff;\n width: 100%;\n padding: 12px;\n justify-content: space-between;\n margin-top: 15px;\n`\nconst TitleDescription = styled.h4`\n font-family: Roboto;\n font-size: 11px;\n font-style: normal;\n font-weight: 400;\n color: #1f2425;\n line-height: 140%;\n`\n\nconst Text = styled.p`\n font-family: \"Open Sans\";\n font-size: 0.75em;\n`\n\nconst ContainerText = styled.div`\n background-color: #fff;\n width: 100%;\n height: 23.875em;\n padding: 0 15px;\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\n margin-top: 5px;\n`\n\nconst Tabs = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: 20px;\n background-color: transparent;\n margin-bottom: 20px;\n`\n\nconst Tab = styled.div`\n text-align: center;\n color: #1f2425;\n width: 217px;\n padding-bottom: 0.5rem;\n cursor: pointer;\n`\n\nconst activeTab = {\n fontWeight: 600,\n borderBottom: \"4px solid #30ab76\",\n}\n\nconst SantanderAccount: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Limited\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BSCHUYMMXXX\",\n },\n dollarAccount: {\n label: \"Cuenta Dólares\",\n value: \"5100566313\",\n },\n sucursal: {\n label: \"Sucursal\",\n value: \"04 - Ciudad Vieja\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst SantanderAccountOtherBanks: BankAccount = {\n accountOwner: {\n label: \"Beneficiario\",\n value: \"KT Financial Group Limited\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"BSCHUYMMXXX\",\n },\n dollarAccount: {\n label: \"Cuenta Dólares\",\n value: \"0004005100566313\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst banks = [\n {\n account: SantanderAccount,\n isDollarAccount: true,\n extraText: true,\n image: ,\n text: \"Desde mi cuenta Santander\",\n },\n {\n account: SantanderAccountOtherBanks,\n isDollarAccount: true,\n extraText: true,\n image: ,\n text: \"Desde otros bancos\",\n },\n]\ntype Props = {\n showSkip?: boolean\n onClick?: () => void\n}\n\nconst UruguayDeposit = ({ showSkip = true, onClick = () => { } }: Props) => {\n const emptyAccount: BankAccount = {\n accountOwner: { label: \"\", value: \"\" },\n }\n const [account, setAccount] = useState(emptyAccount)\n const [logo, setLogo] = useState(null)\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isClickButton, setIsClickButton] = useState(false)\n const [isExpandedTransfer, setIsExpandedTransfer] = useState(false)\n const [isExpandedDeposit, setIsExpandedDeposit] = useState(false)\n\n const closeModal = () => {\n setIsModalOpen(false)\n }\n\n const openModal = (selectedAccount: BankAccount, logo: any) => {\n setIsModalOpen(true)\n setAccount(selectedAccount)\n setLogo(logo)\n }\n\n const clickModal = () => {\n setIsModalOpen(false)\n setIsClickButton(true)\n }\n\n const clickAnimationEnd = () => {\n if (isClickButton) {\n onClick()\n }\n }\n const handleClickTransfer = () => {\n setIsExpandedTransfer(!isExpandedTransfer)\n }\n const handleClickDeposit = () => {\n setIsExpandedDeposit(!isExpandedDeposit)\n }\n\n return (\n <>\n \n \n Transferencia\n \n \n \n
\n \n \n \n Condiciones en caso de transferencia\n \n {isExpandedTransfer ? : }\n \n\n {isExpandedTransfer && (\n \n \n La cuenta bancaria que el cliente brinde al momento de la apertura\n de su cuenta, para efectos de depósitos y rescates, deberá ser de la\n misma moneda en la que apertura la cuenta en KTFG. De no ser así,\n KTFG no se responsabilizará por la demora y rechazo de la operación\n de rescate que el cliente solicite, ya que operaciones de\n transferencia interbancaria con diferente moneda no son aceptadas\n por los bancos y estas son rechazadas a los días, retrasando así la\n operación de rescate del cliente.\n \n\n \n Se debe enviar comprobante de transferencia al email\n depositos@capitaria.com, con copia a su Ejecutivo de Inversiones\n y en el asunto debe ir KT depósito.\n \n\n \n Las transferencias de depósito deben de enviarse al email\n depositos@capitaria.com, con copia a su Ejecutivo de Inversiones y\n en el asunto debe ir KT depósito.\n \n\n \n NO SE ACEPTAN DEPÓSITOS PROVENIENTES DE CUENTAS DE TERCEROS.\n Dicha transferencia deberá ser de la cuenta bancaria que se\n encuentra ya registrada en el sistema. Si esto sucede, se realizará\n un retorno de operación de la transferencia, y se devolverá el dinero\n a la cuenta bancaria de la cual se realizó la transferencia.\n \n \n )}\n \n \n Condiciones en caso de depósitos\n \n {isExpandedDeposit ? : }\n \n {isExpandedDeposit && (\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN EFECTIVO,\n todo depósito en efectivo será devuelto a la cuenta suscrita en el\n contrato de apertura.\n \n\n \n\n NO SE ACEPTARÁN DEPÓSITOS DE TERCEROS, ya sea en cheque o\n transferencias bancarias, o desde cuentas bancarias no\n suscritas al contrato de apertura.\n \n\n \n Se debe enviar foto del cheque del titular de la cuenta, previo\n depósito por buzonera y copia del depósito efectuado al agente\n comercial.\n \n\n \n Todo depósito tendrá hasta 72 horas hábiles para ser reflejado\n en la cuenta de trading.\n \n\n \n Toda transacción entre cuentas internacionales tiene un costo\n de transferencia asociado dependiendo del banco de origen del cliente.\n \n \n )}\n
\n\n \n \n \n \n )\n}\n\nexport default UruguayDeposit\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst CFSB = styled.img`\n width: 150px;\n height: 60px;\n`\n\nconst urlImage =\n 'https://capitariaplatformmaster-master.s3.us-east-2.amazonaws.com/public/community-federal-savings-bank.png'\n\nconst CFSBLogo = () => \n\nexport default CFSBLogo\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst CurrencyCloud = styled.img`\n width: 115px;\n height: 63px;\n`\n\nconst urlImage =\n 'https://capitariaplatformmaster-master.s3.us-east-2.amazonaws.com/public/currency-cloud.png'\n\nconst CurrencyCloudLogo = () => \n\nexport default CurrencyCloudLogo\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport BankBox from \"./bank-box\"\nimport BankModal from \"./bank-modal\"\nimport CustomModal from \"../ui/custom-modal\"\nimport IconToHide from \"../ui/images/icon-to-hide\"\nimport IconToDisplay from \"../ui/images/icon-to-display\"\nimport CFSBLogo from \"../ui/images/cfsb-logo\"\nimport CurrencyCloudLogo from \"../ui/images/currency-cloud-logo\"\n\n\nconst BankTransference = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-bottom: 4rem;\n width: 100%;\n margin-top: 35px;\n`\n\nconst Banks = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n`\n\nconst ContentTitleDescription = styled.div`\n display: inline-flex;\n height: 56px;\n align-items: center;\n background-color: #fff;\n width: 100%;\n padding: 12px;\n justify-content: space-between;\n margin-top: 15px;\n`\nconst TitleDescription = styled.h4`\n font-family: Roboto;\n font-size: 11px;\n font-style: normal;\n font-weight: 400;\n color: #1f2425;\n line-height: 140%;\n`\n\nconst Text = styled.p`\n font-family: \"Open Sans\";\n font-size: 0.75em;\n`\n\nconst ContainerText = styled.div`\n background-color: #fff;\n width: 100%;\n height: 27.875em;\n padding: 0 15px;\n display: flex;\n flex-direction: column;\n margin-top: 5px;\n`\n\nconst CommunityFederalSavingsBankAccount: BankAccount = {\n accountOwner: {\n label: \"Destinatario\",\n value: \"KT Financial Group Agencia en Chile\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"CMFGUS33\",\n },\n intermediaryBank: {\n label: \"Nombre Banco\",\n value: \"Community Federal Savings Bank\",\n },\n dollarAccount: {\n label: \"Numero de cuenta\",\n value: \"8339296174\",\n },\n sucursal: {\n label: \"Dirección del Banco\",\n value: \"810 Seventh Avenue, New York, NY 10019, US\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\nconst CurrencyCloudBankAccount: BankAccount = {\n accountOwner: {\n label: \"Destinatario\",\n value: \"KT Financial Group Agencia en Chile\",\n },\n accountNumber: {\n label: \"IBAN\",\n value: \"GB95TCCL00997944610567\",\n },\n swift: {\n label: \"SWIFT\",\n value: \"TCCLGB31\",\n },\n intermediaryBank: {\n label: \"Nombre Banco\",\n value: \"The Currency Cloud Limited\",\n },\n sucursal: {\n label: \"Dirección del Banco\",\n value: \"12 Stewart Street, The Steward Building, London, E1 6FQ, GB\",\n },\n email: {\n label: \"Email de Depósito\",\n value: \"depositos@capitaria.com\",\n },\n}\n\ntype Props = {\n kyc?: boolean\n onClick?: () => void\n}\n\nconst OtherCountryDeposit = ({\n kyc = true,\n onClick = () => { },\n}: Props) => {\n const emptyAccount: BankAccount = {\n accountOwner: { label: \"\", value: \"\" },\n }\n const [account, setAccount] = useState(emptyAccount)\n const [logo, setLogo] = useState(null)\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isClickButton, setIsClickButton] = useState(false)\n const [isExpandedTransfer, setIsExpandedTransfer] = useState(false)\n\n const closeModal = () => {\n setIsModalOpen(false)\n }\n\n const clickModal = () => {\n setIsModalOpen(false)\n setIsClickButton(true)\n }\n\n const clickAnimationEnd = () => {\n if (isClickButton) {\n onClick()\n }\n }\n\n const selectedAccount = (selectedAccount: BankAccount, logo: any) => {\n setIsModalOpen(true)\n setLogo(logo)\n setAccount(selectedAccount)\n }\n\n const handleClickTransfer = () => {\n setIsExpandedTransfer(!isExpandedTransfer)\n }\n\n return (\n <>\n \n \n \n \n \n\n \n \n \n \n\n \n \n Condiciones transferencias bancarias cuentas internacionales\n \n {isExpandedTransfer ? : }\n \n\n {isExpandedTransfer && (\n \n NO SE ACEPTARÁN DEPÓSITOS EN EFECTIVO, todo\n depósito en efectivo será devuelto a la cuenta suscrita en el\n contrato de apertura.\n \n \n NO SE ACEPTARÁN DEPÓSITOS EN cheque o transferencias bancarias\n provenientes de terceros o cuentas no suscritas al contrato de apertura\n \n \n Todo depósito tendrá hasta 72 horas hábiles para ser reflejado en la\n cuenta de trading.\n \n \n La copia de transferencia deberá ser enviada como comprobante de\n depósito al Ejecutivo de Trading.\n \n \n Toda transacción entre cuentas internacionales tiene un costo de\n transferencia asociado dependiendo del banco de origen del cliente.\n \n \n La transacción puede tener costos adicionales provenientes del banco\n de origen del cliente, antes de realizar una transacción\n internacional, informarse con su banco acerca de los costos\n asociados.\n \n \n )}\n \n\n \n \n \n \n )\n}\n\nexport default OtherCountryDeposit\n","const PlansList: Array = [\n {\n name: \"Pro\",\n amountUSD: \"6.000\",\n amountCLP: \"5.000.000\",\n description: \"Todo lo necesario para no perderte ninguna oportunidad\",\n footer: [\n \"+450 instrumentos\",\n \"Apalancamiento x100\",\n \"Opera desde 0,1 lotes\",\n \"Sin costo de mantención\",\n ],\n recommended: true,\n },\n {\n name: \"Premium\",\n amountUSD: \"30.000\",\n amountCLP: \"25.000.000\",\n description: \"Una cuenta para los traders más exigentes\",\n footer: [\n \"+450 instrumentos\",\n \"Apalancamiento x100\",\n \"Opera desde 0,5 lotes\",\n \"Sin costo de mantención\",\n \"Menor Spread\",\n ],\n recommended: false,\n },\n]\n\nexport default PlansList\n","import React from 'react'\nimport styled from '@emotion/styled'\n\nexport default function PlanDetails(plan: Plan) {\n const Plan = styled.div`\n position: relative;\n flex-basis: 216px;\n width: 216px;\n border-radius: 5px;\n border: 1px solid #e0e0e0;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.2);\n padding-top: 37px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n margin: auto;\n width: 228.262px;\n margin-bottom: 22px;\n padding-top: 27px;\n padding-bottom: 15px;\n @media (max-width: 812px) {\n height: 234px;\n }\n `\n\n const Title = styled.div`\n color: #454f5b;\n font-family: \"Work Sans\";\n font-weight: 700;\n font-size: 24px;\n line-height: 32px;\n margin-bottom: 7px;\n @media (max-width: 812px) {\n text-align: center;\n font-size: 17.502px;\n font-style: normal;\n font-weight: 700;\n line-height: 23.337px;\n letter-spacing: -0.729px;\n }\n `\n\n const Amounts = styled.div`\n border: 1px solid #44d091;\n padding-top: 13px;\n padding-bottom: 11px;\n border-radius: 5px;\n font-size: 12px;\n line-height: 16.34px;\n font-family: \"Open Sans\";\n font-weight: 400;\n @media (max-width: 812px) {\n padding-top: 0;\n padding-bottom: 0;\n line-height: 20px;\n width: 138.561px;\n height: 40.839px;\n text-align: center;\n font-size: 8.751px;\n font-style: normal;\n }\n `\n\n const PlanFooter = styled.div`\n font-size: 12px;\n padding-left: 10px;\n padding-right: 10px;\n padding-top: 10px;\n @media (max-width: 812px) {\n padding-top: inherit;\n text-align: center;\n font-family: Roboto;\n font-size: 8.751px;\n font-style: normal;\n font-weight: 500;\n line-height: 11.668px;\n letter-spacing: 0.073px;\n }\n `\n\n const PlanDescription = styled.div`\n font-size: 12px;\n font-weight: 400;\n font-family: \"Roboto\";\n height: 85px;\n padding: 20px 15px 0px 15px;\n @media (max-width: 812px) {\n height: 24px;\n width: 169.92px;\n text-align: center;\n font-family: Roboto;\n font-size: 8.751px;\n font-style: normal;\n font-weight: 500;\n line-height: 11.668px;\n letter-spacing: 0.073px;\n padding: 5px\n }\n `\n\n const WrapperFooter = styled.div`\n background: #fff0d2;\n border-radius: 5px;\n height: 129px;\n padding: 5px;\n line-height: 16.5px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n @media (max-width: 812px) {\n line-height: 20px;\n padding-bottom: 20px;\n padding-top: 10px;\n width: 200.549px;\n height: 80px;\n }\n `\n\n const WrapperAmounts = styled.div`\n padding-left: 14px;\n padding-right: 14px;\n @media (max-width: 812px) {\n padding-left: 50px;\n padding-right: 50px;\n }\n `\n\n const Recommended = styled.div`\n position: absolute;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n background: #30ab76;\n color: #fff;\n font-size: 12px;\n padding-top: 8px;\n padding-bottom: 8px;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n `\n\n return (\n \n {plan.recommended && Recomendado}\n {plan.name.toUpperCase()}\n \n \n Depósito inicial desde
\n {plan.amountUSD} USD / {plan.amountCLP} CLP\n
\n
\n \n {plan.description}\n \n \n \n \n {plan.footer.map((footer, index): JSX.Element => (\n
{footer}
\n ))}\n
\n
\n
\n
\n )\n}\n","import React, { Dispatch, SetStateAction } from 'react'\nimport { Modal } from \"react-responsive-modal\"\nimport { Link } from '@reach/router'\nimport styled from \"@emotion/styled\"\n\nimport plans from './plans-list'\nimport PlanDetails from './plan-details'\n\ntype ModalProps = {\n isModalOpen: boolean,\n setIsModalOpen: Dispatch>,\n kycNextStep?: string | null,\n}\n\nconst ModalTitle = styled.div`\n font-family: \"Work Sans\";\n font-weight: 700;\n font-size: 32px;\n padding-top: 40px;\n @media (max-width: 600px) {\n width: 273px;\n }\n`\n\nconst ModalDescription = styled.div`\n font-family: \"Roboto\";\n font-size: 16px;\n font-weight: 500;\n width: 549px;\n display: block;\n margin: auto;\n padding-top: 20px;\n @media (max-width: 812px) {\n width: 294px;\n text-align: center;\n font-size: 14px;\n }\n`\n\nconst Button = styled(Link)`\n background-color: #30AB76;\n color: #fff;\n padding-top: 10px;\n padding-bottom: 10px;\n padding-left: 55px;\n padding-right: 55px;\n border-radius: 5px;\n border: none;\n height: 44px;\n font-family: \"Roboto\";\n font-weight: 500;\n text-decoration: none;\n cursor: pointer;\n @media (max-width: 812px) {\n margin-left: 0;\n width: 19.6rem;\n }\n`\n\nconst CallToAction = styled.div`\n display: block;\n margin-top: 50px;\n margin-bottom: 20px;\n`\n\nconst ContainerDesktop = styled.div`\n width: 700px;\n\n @media (min-width: 800px) {\n display: flex;\n }\n\n @media (max-width: 450px) {\n flex-direction: column;\n }\n`\n\nexport default function ModalPlans({ isModalOpen, setIsModalOpen, kycNextStep }: ModalProps) {\n\n const renderListPlans = plans.map((plan, index): JSX.Element =>\n \n )\n\n return (\n setIsModalOpen(false)}\n classNames={{\n modal: \"modal-plans\",\n }}\n >\n Tipos de Cuentas\n \n Dos tipos de cuentas según tu capital inicial destinadas a que puedas vivir la experiencia del trading de la mejor manera y cuides tu capital.\n \n \n {kycNextStep && }\n \n \n {renderListPlans}\n \n \n )\n}\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst MobileContainer = styled.div`\n border-right: 1px solid #e0e0e0;\n background-color: #ffffff;\n width: 100;\n cursor: pointer;\n`\n\nconst ToggleButton = styled.div`\n display: flex;\n align-items: center;\n font-family: \"Open Sans\";\n font-style: normal;\n font-weight: normal;\n font-weight: 600;\n font-size: 16px;\n line-height: 22px;\n color: #1f2425;\n text-decoration: none;\n border-bottom: 1px solid #e0e0e0;\n padding: 0 0 0 0.375rem;\n width: 365px;\n height: 48px;\n @media (min-width: 812px) {\n padding: 0 9px;\n height: 28px;\n }\n`\n\nconst LinkList = styled.ul`\n list-style: none;\n padding: 0;\n margin: 0;\n position: sticky;\n top: 2rem;\n width: 365px;\n height: 100%;\n`\n\ntype DropdownProps = {\n country: string\n items: ValueDropdown[]\n onchange: Function\n defaultCountry: string\n}\n\nconst Item = styled.li`\n border-bottom: 1px solid #e0e0e0;\n padding: 0.75rem 0.375rem;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n`\nconst TextOptions = styled.p`\n margin: 0 10px;\n\tcolor: #1F2425;\n\tfont-family: Roboto;\n\tfont-size: 12px;\n\tfont-style: normal;\n\tfont-weight: 400;\n\tline-height: 16px;\n\tletter-spacing: 0.1px;\n width: 220px;\n`\n\nconst Change = styled.p`\n\twidth: 55px;\n\tcolor: #2BA770;\n\ttext-align: center;\n\tfont-family: Roboto;\n\tfont-size: 12px;\n\tfont-style: normal;\n\tfont-weight: 400;\n\tline-height: 16px;\n\tletter-spacing: 0.1px;\n\tmargin-left: 10%;\n`\n\n\nconst MobileNavbarDeposit = ({ country, items, onchange, defaultCountry }: DropdownProps) => {\n const [isOpened, setIsOpened] = useState(false)\n const [selectedItem, setSelectedItem] = useState(items[0])\n\n useEffect(() => {\n const searchCountry = items.filter(i => i.id === country)\n if (searchCountry.length > 0) {\n setSelectedItem(searchCountry[0])\n } else {\n setSelectedItem(items.filter(i => i.id === defaultCountry)[0])\n }\n }, [country, items, defaultCountry])\n\n const onClick = () => setIsOpened(!isOpened)\n const handleItemClick = (item: ValueDropdown) => {\n setSelectedItem(item)\n setIsOpened(false)\n onchange(item)\n }\n\n return (\n \n \n {selectedItem.iconFlag}{\" \"}\n {selectedItem.text}\n Cambiar\n \n\n {isOpened && (\n \n {items.map((item, index) => (\n handleItemClick(item)}>\n {item.iconFlag}\n {item.text}\n \n ))}\n \n )}\n \n )\n}\n\nexport default MobileNavbarDeposit\n","import React from \"react\"\n\nconst FlagChile = (style:any) => (\n\n \n \n \n \n \n \n \n \n \n \n)\nFlagChile.defaultProps = {\n width: \"15\",\n height: \"15\",\n}\n\nexport default FlagChile\n//\n","import React from \"react\"\n\nconst FlagUruguay = (style:any) => (\n\n \n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t{/* */}\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n)\n\nFlagUruguay.defaultProps = {\n\twidth: \"15\",\n\theight: \"15\",\n}\n\nexport default FlagUruguay\n","\nimport React from \"react\"\n\nconst FlagMexico = (style:any) => (\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nFlagMexico.defaultProps = {\n width: \"15\",\n height: \"15\",\n}\n\nexport default FlagMexico\n","import React from \"react\"\n\nconst GlobalSimbol = (style: any) => (\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nGlobalSimbol.defaultProps = {\n width: \"15\",\n height: \"15\",\n}\n\nexport default GlobalSimbol\n","import React, { memo, useEffect, useState } from \"react\"\nimport { css, Global } from \"@emotion/react\"\nimport styled from \"@emotion/styled\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { trackEvent } from \"../../helpers/tracker\"\n\nconst styleCss = css`\n input {\n background: #ffffff;\n border-radius: 3px;\n border: 1px solid #d3dce6;\n color: #4a5568;\n display: block;\n outline: none;\n padding: 5px 12px;\n width: 360px;\n font-family: Nunito Sans, sans-serif;\n }\n input:placeholder-shown {\n border: 1px solid #d3dce6;\n }\n input:hover {\n border: 1px solid #95aac1;\n }\n input:focus {\n border: 1px solid #00becf;\n }\n #card-field-placeholder,\n #card-field,\n #card-number,\n #card-expiry,\n #card-cvc {\n background: #ffffff;\n border-radius: 3px;\n border: 1px solid #d3dce6;\n color: #4a5568;\n display: block;\n margin-top: 5px;\n outline: none;\n padding: 7px 12px;\n width: 100%;\n }\n #card_number_three_fields {\n margin-top: 5px;\n padding: 7px 12px;\n width: 470px;\n }\n\n .pay-button {\n background-color: #00becf;\n border-radius: 3px;\n border: 1px solid #00a6b5;\n color: #fff;\n font-size: 14px;\n font-weight: 400;\n height: 36px;\n line-height: 20px;\n margin-top: 10px;\n margin-bottom: 10px;\n margin-right: 10px;\n width: 140px;\n }\n .pay-button:hover {\n color: #fff;\n background-color: #0f93a1;\n }\n .validation-error {\n color: #ff3f5a;\n font-size: 12px;\n height: 16px;\n line-height: 16px;\n visibility: hidden;\n }\n\n label {\n color: #4a5568;\n font-size: 14px;\n font-weight: 600;\n }\n #card_number {\n width: 700px;\n }\n #cardholder_name {\n width: 470px;\n }\n .App h1 {\n color: #00becf;\n }\n #card-field-placeholder.sfc-focus,\n #card-field.sfc-focus,\n #card-number.focused,\n #card-expiry.focused,\n #card-cvc.focused {\n border: 1px solid #00becf;\n }\n\n #card-field-placeholder:hover,\n #card-field:hover,\n #card-number:hover,\n #card-expiry:hover,\n #card-cvc:hover {\n border: 1px solid #95aac1;\n }\n\n button,\n input,\n optgroup,\n select,\n textarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n .sfcModal-header {\n height: 1.5rem;\n }\n .sfcModal-dialog {\n margin: 55px auto;\n max-width: 492px;\n position: relative;\n width: auto;\n }\n .sfcModal-content {\n background-clip: padding-box;\n background-color: #ffffff;\n border: 1px solid #dfdfdf;\n outline: 0;\n position: relative;\n }\n .sfcModal-close {\n border: 0;\n color: #2c2a2a;\n cursor: pointer;\n font-size: 0.9rem;\n padding: 0;\n position: absolute;\n right: 0.5rem;\n top: 0.4rem;\n }\n .sfcIcon--close:before {\n content: \"\\\\2716\";\n }\n`\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n align-items: center;\n`\n\nconst ContainerButton = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 15px;\n`\n\nconst ButtonDeposit = styled.button`\n background-color: #2BA770;\n color: white;\n border: none;\n border-radius: 8px;\n width: 400px;\n height: 50px;\n`\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\n\nexport const MexicoBankTransfer = memo(({ safeCharge, nuveiInfo, onSuccess, country }: any) => {\n const [loading, setLoading] = useState(true)\n\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n if (safeCharge) {\n setLoading(false)\n }\n }, [safeCharge])\n\n const createPayment = (e: any) => {\n if (loading) return\n setLoading(true)\n try {\n safeCharge.createPayment(\n {\n sessionToken: nuveiInfo.success.sessionToken,\n paymentOption: {\n \"alternativePaymentMethod\": {\n \"paymentMethod\": \"apmgw_STPmex\"\n }\n },\n userDetails: {\n country: country,\n },\n billingAddress: {\n email: user.email,\n country: country\n }\n },\n (response: any) => {\n setLoading(false)\n onSuccess(response)\n if (response.result !== 'APPROVED') {\n const messageError = `email: ${user.email} - code: ${response.errCode} - description: ${response.errorDescription}`\n Sentry.captureException(messageError)\n trackEvent(\"payment-bank-deposit:mexico:error\", {\n error: response.errorDescription,\n code: response.errCode,\n })\n }\n }\n )\n } catch (e) {\n console.error(e)\n Sentry.captureException(e)\n }\n }\n\n return (\n <>\n \n \n {loading && (\n \n \n \n )}\n {!loading && (\n <>\n \n \n Transferir\n \n \n \n )}\n \n \n )\n})\n","import React, { useEffect, useState } from \"react\"\n\ntype Props = {\n active?: boolean\n}\n\nconst CreditCardImage = ({ active=false }: Props) => {\n const [color, setColor] = useState(\"#919EAB\")\n const [colorLine, setColorLine] = useState(\"#FFFFFF\")\n\n useEffect(() => {\n if (active) {\n setColor(\"#2BA770\")\n setColorLine(\"#A4F8D5\")\n } else {\n setColor(\"#919EAB\")\n setColorLine(\"#FFFFFF\")\n }\n\n }, [active])\n return (\n \n \n \n \n \n )\n}\n\nexport default CreditCardImage\n","import React, { useEffect, useState } from \"react\"\n\ntype Props = {\n active?: boolean\n}\n\nconst BankTransferImage = ({ active=false }: Props) => {\n const [color, setColor] = useState('#919EAB')\n\n useEffect(() => {\n if (active) {\n setColor('#2BA770')\n } else {\n setColor('#919EAB')\n }\n\n }, [active])\n\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default BankTransferImage\n","import React, { Dispatch, SetStateAction, useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport mastercardImage from \"../../images/mastercard.png\"\nimport visaImage from \"../../images/visa.png\"\nimport CreditCardImage from \"../../images/credit-card\"\nimport BankTransferImage from \"../../images/bank-transfer\"\nimport { useFeatureIsOn, useFeatureValue } from \"@growthbook/growthbook-react\"\n\n\nconst ContainerNuvei = styled.div`\n min-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n > div {\n max-width: 414px;\n }\n`\n\nconst ContainerSelector = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n max-width: 414px;\n margin-bottom: 20px;\n width: 100%;\n`\n\nconst ContainerCreditCard = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin-top: 15px;\n`\n\nconst ImgCreditCard = styled.img`\n width: 44px;\n height: 44px;\n margin: 0 10px;\n`\n\nconst Selector = styled.div`\n width: 200px;\n font-size: 14px;\n line-height: 18px;\n color: #1F2425;\n background-color: #F9FAFB;\n padding: 9px 14px;\n border: 1px solid #C4CDD5;\n border-radius: 5px;\n display: flex;\n flex-direction: column;\n align-items: center;\n cursor: pointer;\n\n &.active {\n background-color: #FFFFFF;\n border-color: #2BA770;\n color: #2BA770;\n }\n`\n\nconst PrefixSpan = styled.span`\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: black;\n text-align: center;\n border: 1px solid #919eab;\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n display: table-cell;\n border-right: 0;\n border-radius: 8px 0px 0px 8px;\n`\n\nconst ContainerInput = styled.div`\n position: relative;\n display: table;\n border-collapse: separate;\n width: 100%;\n`\n\nconst WrapperInput = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n`\n\nconst InputDeposit = styled.input`\n border: 1px solid #919eab;\n border-radius: 8px;\n width: 358px;\n height: 56px;\n border-radius: 0px 8px 8px 0px;\n border-left: none;\n`\n\nconst ButtonDeposit = styled.button`\n background-color: #2BA770;\n color: white;\n border: none;\n border-radius: 8px;\n width: 100%;\n height: 50px;\n`\n\nconst ContainerButton = styled(WrapperInput)`\n margin-top: 15px;\n`\n\nconst ImageSelector = styled.div`\n min-height: 40px;\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 12px;\n`\n\nconst TextSelector = styled.div``\n\nconst MessageContainer = styled.div`\n background-color: #fffbe6;\n border: 1px solid #ffd666;\n padding: 0 15px;\n border-radius: 5px;\n max-width: 377px;\n width: 100%;\n min-height: 70px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: 0;\n margin-bottom: 25px;\n @media (max-width: 450px) {\n width: 97%;\n }\n`\n\nconst Message = styled.p`\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\ntype Props = {\n currency: string\n amount: number\n setAmount: Dispatch>\n onClickPay: () => Promise\n setPaymentMethod: Dispatch>\n}\n\nconst defaultStateActive = {\n creditcard: false,\n banktransfer: false,\n}\n\nconst TypePayments = ({ currency, amount, setAmount, onClickPay, setPaymentMethod }: Props) => {\n\n const [activePayments, setActivePayments] = useState({ creditcard: false, banktransfer: true })\n\n const onActivePayment = (type: string) => () => {\n setPaymentMethod(type)\n setActivePayments({\n ...defaultStateActive,\n [type]: true,\n })\n }\n\n const displayMessageWarning = useFeatureIsOn(\"payment-bank-transfer-mexico-problem\")\n const messageWarning = useFeatureValue(\"payment-bank-transfer-mexico-message\", \"Intermitencia al realizar depósitos\")\n\n return (\n \n {displayMessageWarning && (\n \n \n {messageWarning.split('
').reduce((acc: any, value: string) => ([...acc, value,
]), []).slice(0, -1)}\n
\n
\n )}\n \n \n \n \n \n Transferencia Bancaria\n \n \n \n \n \n Tarjeta de Crédito o Débito\n \n \n \n \n {currency}\n setAmount(parseInt(e.target.value, 10))}\n />\n \n \n \n \n Depositar\n \n \n \n \n \n \n
\n )\n}\n\nexport default TypePayments\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport PageLayout from \"../page-layout\"\nimport { MexicoBankTransfer } from \"./mexico-bank-transfer\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { getTokenNuvei } from \"../../graphql/queries\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport SuccessNuveiPage from \"./success-page\"\nimport TypePayments from \"./type-payment\"\nimport { MexicoCreditCard } from \"./mexico-credit-card\"\n\nconst CreditCard = styled.div`\n display: flex;\n justify-content: space-around;\n min-width: 600px;\n`\n\nconst LabelPayment = styled.div`\n background-color: #DDF2FA;\n width: 600px;\n color: black;\n padding-top: 17px;\n padding-bottom: 17px;\n font-size: 20px;\n line-height: 26px;\n display: flex;\n justify-content: center;\n`\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst loadScript = (src: string) =>\n new Promise((resolve, reject) => {\n const scriptElem = Object.assign(document.createElement(\"script\"), {\n type: \"text/javascript\",\n defer: true,\n src,\n onerror: (e: any) => {\n reject(e)\n }\n })\n scriptElem.onload = () => {\n resolve()\n }\n document.body.appendChild(scriptElem)\n })\n\ntype PropsPaymentMethod = {\n [key: string]: any\n}\n\nconst PaymentMethod: PropsPaymentMethod = {\n creditcard: MexicoCreditCard,\n banktransfer: MexicoBankTransfer,\n}\n\nconst MexicoPage = ({ currency = 'MXN' }: any) => {\n\n const [safeCharge, setSafeCharge] = useState(null)\n const [amount, setAmount] = useState(0)\n const [loading, setLoading] = useState(false)\n const [modulo, setModulo] = useState(false)\n const [nuveiInfo, setNuveiInfo] = useState({} as any)\n const [paymentMethod, setPaymentMethod] = useState('banktransfer')\n\n const { state } = useAuth()\n const user = state.user as User\n\n const [success, setSuccess] = useState(false)\n const [dataSuccess, setDataSuccess] = useState({})\n\n useEffect(() => {\n const loadSafecharge = async () => {\n await loadScript(\n \"https://cdn.safecharge.com/safecharge_resources/v1/websdk/safecharge.js\" //production\n )\n // @ts-ignore\n if (window.SafeCharge) {\n setSafeCharge(\n // @ts-ignore\n window.SafeCharge({\n env: \"prod\",\n merchantId: \"6989725270836596280\",\n merchantSiteId: \"234498\"\n })\n )\n }\n }\n\n loadSafecharge()\n }, [])\n\n const modulodepago = async () => {\n if (loading) return\n setLoading(true)\n const response = await API.graphql(\n graphqlOperation(\n getTokenNuvei,\n {\n cognitoId: user.cognitoId,\n amount: amount,\n currency: currency,\n country: \"mexico\",\n }\n )\n )\n // @ts-ignore\n setNuveiInfo(JSON.parse(response.data.getTokenNuvei))\n setLoading(false)\n setModulo(true)\n }\n\n const onSuccess = (data: any) => {\n setDataSuccess(data)\n setSuccess(true)\n }\n\n const ComponentPayment: any = PaymentMethod[paymentMethod]\n\n return (\n \n \n {!modulo && !loading && (\n \n )}\n {modulo && \n Monto a depositar: {currency} ${amount}\n }\n \n {loading && \n \n }\n {modulo && !success &&\n \n }\n {success && }\n \n )\n}\n\nexport default MexicoPage\n","import React from \"react\"\nimport MexicoPage from \"./mexico-page\"\nimport { useFeatureIsOn } from \"@growthbook/growthbook-react\"\nimport styled from \"@emotion/styled\"\n\nconst ContainerUpdatedCreditCard = styled.div`\n min-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n`\n\ntype Props = {\n showSkip?: boolean\n onClick?: () => void\n}\n\nconst MexicoDeposit = ({ showSkip, onClick }: Props) => {\n\n const isMexicoCreditCardEnabled = useFeatureIsOn(\"payment-mexico\")\n\n if (isMexicoCreditCardEnabled)\n return \n\n return (\n \n Estamos actualizando para que tengas una mejor experiencia con Capitaria\n \n )\n\n}\n\nexport default MexicoDeposit\n","import { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport ChileDepositOnboarding from \"./chile-deposit-onboarding\"\nimport PeruDeposit from \"./peru-deposit\"\nimport UruguayDeposit from \"./uruguay-deposit\"\nimport OtherCountryDeposit from \"./other-country-deposit\"\nimport ModalPlans from \"../shared/modal-plans\"\nimport MobileNavbarDeposit from \"../ui/util-dropdown\"\nimport FlagPeru from \"../ui/images/flag-peru\"\nimport FlagChile from \"../ui/images/flag-chile\"\nimport FlagUruguay from \"../ui/images/flag-uruguay\"\nimport FlagMexico from \"../ui/images/flag-mexico\"\nimport GlobalSimbol from \"../ui/images/global-simbol\"\nimport { navigate } from \"@reach/router\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport MexicoDeposit from \"../nuvei/mexico-deposit\"\n\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n`\n\nconst DepositWrapper = styled.div`\n padding: 3rem 0 1rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n max-width: 690px;\n @media (max-width: 812px) {\n max-width: 368px;\n }\n`\n\nconst WelcomeProspect = styled.div`\n line-height: 24px;\n width: 100%;\n min-height: 96px;\n height: auto;\n border-radius: 5px;\n margin: auto;\n margin-bottom: 1rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #fff;\n padding: 19px;\n @media (max-width: 812px) {\n width: 100%;\n flex-direction: column;\n height: auto;\n }\n\n`\n\nconst RowMessage = styled.div`\n color: #1F2425;\n margin-bottom: 15px;\n`\n\nconst RowButton = styled.div`\n width: 200px;\n height: 50px;\n flex-shrink: 0;\n border-radius: 3.284px;\n border: 1px solid #2BA770;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: center;\n @media (max-width: 812px) {\n margin-top: 1.5rem;\n margin-bottom: 0.7rem;\n }\n`\n\nconst ButtonAccountsType = ({ onClick, href, text }: CustomLink) => {\n const Button = styled.a`\n color: #303A3E;\n border-radius: 5px;\n border: none;\n height: 44px;\n width: 128px;\n font-family: \"Roboto\";\n -webkit-text-decoration: none;\n text-decoration: none;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n @media (max-width: 812px) {\n margin-left: 0;\n }\n `\n\n return \n}\n\nconst Tittle = styled.h3`\n width: 400px;\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n @media (max-width: 812px) {\n width: 280px;\n }\n`\n\nconst buttonStyle = css`\n margin-top: 1rem;\n width: 298px;\n height: 50px;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonStyle = buttonStyle\n\nconst DepositAfter = styled.a`\n cursor: pointer;\n margin-top: 10px;\n text-decoration: underline;\n`\n\ntype Props = {\n broker?: string\n kyc?: boolean\n onClick?: () => void\n}\n\ntype CustomLink = {\n href?: string\n text?: string\n modal?: boolean\n onClick?: () => void\n}\n\nconst UserCountryDepositOnboarding = ({\n kyc = false,\n onClick = () => { },\n}: Props) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const [country, setCountry] = useState(\"Chile\")\n\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n setCountry(user.residenceCountry)\n }, [user.residenceCountry])\n\n\n const items = [\n {\n id: \"Chile\",\n text: \"Opciones de depósito para Chile\",\n iconFlag: ,\n },\n {\n id: \"Peru\",\n text: \"Opciones de depósito para Peru\",\n iconFlag: ,\n },\n {\n id: \"Uruguay\",\n text: \"Opciones de depósito para Uruguay\",\n iconFlag: ,\n },\n {\n id: \"Mexico\",\n text: \"Opciones de depósito para Mexico\",\n iconFlag: ,\n },\n {\n id: \"Global\",\n text: \"Opciones de depósito para Otros Países\",\n iconFlag: ,\n },\n ]\n\n let UserCountryDeposit = OtherCountryDeposit\n\n const listCountryDeposit = {\n Chile: ChileDepositOnboarding,\n Peru: PeruDeposit,\n Uruguay: UruguayDeposit,\n Mexico: MexicoDeposit,\n }\n\n if (listCountryDeposit.hasOwnProperty(country)) {\n UserCountryDeposit = listCountryDeposit[country as keyof typeof listCountryDeposit]\n }\n\n\n const link: CustomLink = {\n text: \"Ver tipos de cuentas\",\n modal: true,\n onClick: () => setIsModalOpen(true)\n }\n\n const onSubmit = async () => {\n setIsLoading(true)\n\n const result = await KYC.updateDeposit(user)\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n return (\n \n \n \n \n Deposita fondos en tu cuenta\n \n ¿Ya conoces nuestros tipos de cuentas?\n \n \n {link.href && }\n {link.modal && }\n \n \n { setCountry(country.id) }}\n defaultCountry=\"Global\"\n />\n {}\n {kyc && (\n <>\n \n Ya deposité\n \n Depositaré despúes\n \n )}\n \n \n )\n}\n\nexport default UserCountryDepositOnboarding\n","import React, { useState, useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { toast } from \"react-toastify\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport { Brokers } from \"../../services/brokers\"\n\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { getUserBroker } from \"../../graphql/queries\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport PageLayout from \"../page-layout\"\nimport UserCountryDepositOnboarding from \"../deposit/user-country-deposit-onboarding\"\n\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\n\nconst Deposit = () => {\n const [broker, setBroker] = useState(\"loading\")\n const { state } = useAuth()\n const user = state.user as User\n\n useEffect(() => {\n const getExecutivesTeamName = async () => {\n try {\n const response = await API.graphql(\n graphqlOperation(getUserBroker, { cognitoId: user.cognitoId })\n )\n // @ts-ignore\n const userBroker = JSON.parse(response.data.getUserBroker)\n\n if (\n userBroker.hasOwnProperty(\"sf_Broker__c\") &&\n Brokers.includes(userBroker.sf_Broker__c)\n ) {\n setBroker(userBroker.sf_Broker__c)\n } else {\n setBroker(\"\")\n }\n } catch (error) {\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrió un error inesperado, por favor vuelve a intentarlo más tarde\"\n )\n\n setBroker(\"\")\n }\n }\n\n getExecutivesTeamName()\n }, [user.cognitoId])\n\n\n if (broker === \"loading\") {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default Deposit\n","export default __webpack_public_path__ + \"static/media/icon-standby-validation.42f14b12.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport iconStanby from \"../../../images/icon-standby-validation.svg\"\n\nconst StanbyImage = styled.img`\n\twidth: 83px;\n\theight: 83px;\n`\n\nconst IconStanby = () => (\n \n)\n\nexport default IconStanby\n","import React, { useState } from \"react\"\nimport styled from \"styled-components\"\nimport KYC from \"../../services/kyc\"\n\nimport IconStanby from \"../ui/images/icon-standby-validation\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { navigate } from \"@reach/router\"\nimport { css } from \"@emotion/react\"\n\nconst ContainerView = styled.div`\n\twidth: 100%;\n\theight: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n`\n\nconst Title = styled.h3`\n\twidth: 308px;\n\tfont-family: Open Sans;\n\tfont-size: 27.65px;\n\tfont-style: normal;\n\tfont-weight: 700;\n\tline-height: 116%;\n\tcolor: #1f2425;\n\ttext-align: center;\n`\n\nconst Text = styled.p`\n\ttext-align: center;\n\tmax-width: 45%;\n\tmargin-top: 40px;\n\t@media(max-width:768px) {\n\t\tmax-width: 50%;\n\t}\n\t@media (min-width: 320px) and (max-width: 425px){\n\t\tmax-width: 70%;\n\t}\n`\n\nconst TextForContinue = styled.p`\n\ttext-align: center;\n\tmax-width: 35%;\n\t@media(max-width:768px) {\n\t\tmax-width: 40%;\n\t}\n\t@media (min-width: 320px) and (max-width: 425px){\n\t\tmax-width: 80%;\n\t}\n`\nconst saveButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 48px;\n width: 260px;\n background-color: #2ba770;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst loadingButtonStyle = saveButtonStyle\n\nconst ValidationOnHold = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [isLoading, setIsLoading] = useState(false)\n\n const onSubmit = async () => {\n setIsLoading(true)\n\n const result = await KYC.updateValidationDeposit(user)\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n \n Validando depósito y tu información\n \n \n \n Una vez validado tu información y tu depósito, te enviaremos un email con tus accesos a la plataforma.\n \n
\n \n Mientras, sigue completando los últimos pasos de tu perfil para que puedas operar\n \n \n Continuar\n \n\n
\n )\n}\n\nexport default ValidationOnHold\n","export default __webpack_public_path__ + \"static/media/mt5-logo.72efad17.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport metaTrader from \"../../../images/mt5-logo.png\"\n\nconst LogoMt5 = styled.img`\n width: 68px;\n height: 84px;\n`\n\nconst Mt5Logo = () => (\n \n)\n\nexport default Mt5Logo\n","import styled from \"@emotion/styled\"\nimport React, { useState } from \"react\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport Mt5Logo from \"../ui/images/mt5-logo\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { navigate } from \"@reach/router\"\nimport { css } from \"@emotion/react\"\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Title = styled.h3`\n width: 308px;\n font-family: Open Sans;\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n color: #1F2425;\n text-align: center;\n`\n\nconst Text = styled.p`\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n color: #1F2425;\n text-align: center;\n width: 209px;\n`\n\nconst DownloadOption = styled.div`\n border-radius: 5px;\n border: 1px solid #E0E0E0;\n background: #fff;\n width: 141px;\n height: 141px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n`\n\nconst Link = styled.a``\n\nconst TextDownload = styled.a`\n width: 98px;\n color: #000;\n text-align: center;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 500;\n line-height: 17.5px;\n text-decoration: none;\n margin-top: 10px;\n`\nconst InformativeText = styled.p`\n width: 284px;\n color: #1F2425;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\nconst saveButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 48px;\n width: 260px;\n background-color: #2ba770;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst loadingButtonStyle = saveButtonStyle\n\nconst DownloadMt5 = () => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [isLoading, setIsLoading] = useState(false)\n\n const onSubmit = async () => {\n setIsLoading(true)\n\n const result = await KYC.updatePlatform(user)\n state.setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n Habilitación de Plataforma\n \n Mientras validamos tu depósito, y te enviamos los accesos, puedes descargar la plataforma acá\n \n \n \n \n \n \n \n Descargar\n \n
\n \n Para habilitar tu plataforma, es necesario revisar tu perfil de riesgo, conocimientos e información personal\n \n \n Continuar\n \n
\n )\n}\n\nexport default DownloadMt5\n","export default __webpack_public_path__ + \"static/media/warning-icon-color.4137b673.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport warningIconColor from \"../../../images/warning-icon-color.svg\"\n\nconst WarningIconColorDiv = styled.div`\n background-image: url(${warningIconColor});\n background-repeat: no-repeat;\n background-size: cover;\n width: 39px;\n height: 33.79px;\n`\n\nconst WarningIconColor = () => \n\nexport default WarningIconColor\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { navigate } from \"@reach/router\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\n\nimport WarningIconColor from \"../ui/images/warning-icon-color\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 80%;\n margin: 50px auto;\n max-width: 490px;\n`\n\nconst Title = styled.h3`\n text-align: center;\n font-family: Open Sans;\n font-size: 24px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n`\nconst WarningMessage = styled.p`\n text-align: center;\n font-family: Roboto;\n font-size: 15px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n`\nconst ContainerAcceptance = styled.div`\n background-color: #fff0d2;\n padding: 10px 20px;\n margin-bottom: 10%;\n`\nconst Acceptance = styled.p`\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px;\n letter-spacing: 0.1px;\n`\n\nconst saveButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 48px;\n width: 260px;\n background-color: #2ba770;\n box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);\n`\n\nconst loadingButtonStyle = saveButtonStyle\n\n\nconst BadTraderProfile = () => {\n const { state } = useAuth()\n const { user, setUser } = state\n const [isLoading, setIsLoading] = useState(false)\n\n const handleConfirm = async () => {\n if (isLoading) return\n setIsLoading(true)\n\n const result = await KYC.updateRiskBadTraderProfile(user as User)\n console.log(result)\n\n setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n return (\n \n \n \n Tu nivel de conocimiento o riesgo no es el recomendable para hacer Trading\n \n \n Si decides abrir una cuenta y vivir el mundo del trading, ten en cuenta que lo harás bajo tu propia responsabilidad. Será necesario que nos indiques expresamente tu deseo de proceder.\n \n \n \n Asumo plena responsabilidad en abrir cuenta con Capitaria. Tras la evaluación de perfilamiento Capitaria me recomienda que el producto trading no se ajusta totalmente a mi perfil como inversionista. Entiendo que el trading no es para todos, por lo que asumo bajo mi responsabilidad abrir una cuenta con Capitaria.\n \n \n \n Confirmar y continuar\n \n \n )\n}\n\nexport default BadTraderProfile\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst SkeletonWrapper = styled.div`\n flex: 1;\n display: flex;\n align-items: center;\n flex-direction: column;\n`\n\nconst Animation = styled.div`\n animation: color 1.2s infinite linear;\n background: #ccc;\n height: 20px;\n border-radius: 5px;\n margin-bottom: 7px;\n`\n\nconst Title = styled(Animation)`\n width: 100%;\n`\n\nconst Columns = styled.div`\n display: flex;\n gap: 10px;\n margin-top: 7px;\n`\n\nconst Nemo = styled(Animation)`\n width: 90px;\n`\n\nconst Price = styled(Nemo)``\n\nconst Graph = styled(Animation)`\n width: 90px;\n height: 60px;\n`\n\nconst ColumnsInstrument = styled(Columns)`\n display: block;\n`\n\nconst Skeleton = () => (\n \n  \n \n \n \n \n \n \n \n \n)\n\nexport default Skeleton\n","import React from \"react\"\nimport { Line } from \"react-chartjs-2\"\nimport { Chart as ChartJS, registerables } from \"chart.js\"\n\nChartJS.register(...registerables)\n\ntype TypeGraph = {\n prices: number[]\n borderColor: string\n}\n\nexport default function Graph({ prices, borderColor }: TypeGraph) {\n const datasets = [\n {\n data: prices,\n tension: 0.5,\n label: \"\",\n borderColor,\n pointBorderColor: \"transparent\",\n pointBackgroundColor: \"transparent\",\n borderWidth: 1,\n },\n ]\n\n const data = {\n labels: new Array(prices.length).fill(\" \"),\n datasets,\n }\n\n return (\n
\n
\n \n
\n
\n )\n}\n","export default __webpack_public_path__ + \"static/media/loader-opportunities.14a17cdf.svg\";","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport Graph from \"./Graph\"\nimport Spinner from \"../../../../images/loader-opportunities.svg\"\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n flex: 1;\n border-radius: 5px;\n box-shadow: 0px 8px 12px rgba(0, 0, 0, 0.06), 0px 3px 15px rgba(0, 0, 0, 0.04),\n 0px 4px 5px rgba(0, 0, 0, 0.08);\n font-family: Roboto;\n font-weight: 700;\n height: 112px;\n position: relative;\n @media (max-width: 812px) {\n margin: 12px;\n margin-bottom: 20px;\n height: auto;\n border: 1.5px solid rgba(0, 0, 0, 0.06);\n }\n`\n\nconst Title = styled.div`\n border-top-right-radius: 5px;\n border-top-left-radius: 5px;\n background: #1f2425;\n color: #fff;\n padding-top: 12px;\n padding-bottom: 12px;\n text-align: center;\n font-family: \"Open Sans\";\n font-weight: 700;\n font-size: 11px;\n display: block;\n width: 100%;\n @media (max-width: 812px) {\n font-size: 15px;\n top: 20px;\n }\n display: block;\n padding-right: 7;\n padding-left: 7;\n border-radius: 5;\n`\n\nconst Nemo = styled.div`\n font-size: 12px;\n @media (max-width: 812px) {\n font-size: 13px;\n }\n`\n\nconst Price = styled.span`\n font-size: 12.85px;\n font-family: Roboto;\n`\n\nconst WrapperInformation = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n height: 70%;\n gap: 11px;\n @media (max-width: 812px) {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n margin-top: 20px;\n margin-bottom: 20px;\n }\n`\n\nconst Percentage = (props: any) => {\n const Component = styled(Price)`\n margin-top: 5px;\n font-weight: 400;\n font-size: 10px;\n font-weight: 700;\n color: ${props.percentage < 0 ? \"#ff0000\" : \"#238636\"};\n `\n return {props.percentage}%\n}\n\nconst StockDetails = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 3px;\n`\n\nconst GraphWrapper = styled.div`\n position: relative;\n right: 5px;\n min-width: 100px;\n @media (max-width: 812px) {\n }\n`\n\nconst InstrumentDetails = styled.div`\n margin-left: 15px;\n`\n\nexport default function MarketInfo(props: Market) {\n const { name, close, variation, prices } = props\n const instrument = props.instrument.replace(\"#\", \"\")\n const [tooltip, setTooltip] = useState(false)\n const borderColor = variation >= 0 ? \"green\" : \"red\"\n const Tooltip = ({ children }: any) => {\n const Component = styled(Title)`\n position: absolute;\n display: ${!tooltip ? \"none\" : \"block\"};\n top: ${name.split(\" \").length <= 2 ? \"-42px\" : \"-37px\"};\n font-size: ${name.split(\" \").length <= 2 ? \"11px\" : \"50%\"};\n padding-left: 10px;\n padding-right: 10px;\n border-radius: 5px;\n @media (max-width: 812px) {\n display: none;\n }\n `\n return {children}\n }\n\n return (\n \n {name}\n {\n setTooltip(true)\n }}\n onMouseOut={() => {\n setTooltip(false)\n }}\n >\n {name &&\n name\n .split(\" \")\n .slice(0, 3)\n .join(\" \")}\n \n \n \n {instrument}\n \n ${close}\n \n \n \n \n {prices && prices.length ? (\n \n ) : (\n \"\"\n )}\n \n \n \n )\n}\n","import React, { useCallback, useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport Slider from \"react-slick\"\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { DateTime } from \"luxon\"\nimport * as Sentry from \"@sentry/browser\"\n\nimport {\n getInstrumentsPrice,\n getOpportunities,\n} from \"../../../../graphql/queries\"\nimport Skeleton from \"./Skeleton\"\nimport MarketInfo from \"./MarketInfo\"\n\nconst settings = {\n dots: true,\n infinite: true,\n slidesToShow: 1,\n slidesToScroll: 1,\n}\n\nconst MarketsWrapper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n margin-top: 25px;\n gap: 10px;\n @media (max-width: 812px) {\n flex-direction: column;\n display: none;\n }\n`\n\nconst SliderResponsive = styled.div`\n display: block;\n margin-top: 10px;\n @media (min-width: 812px) {\n display: none;\n }\n`\n\nconst SkeletonWrapper = styled.div`\n display: flex;\n justify-content: center;\n gap: 15px;\n margin-top: 20px;\n`\n\ntype Body = {\n instruments: Record[]\n price_now: Record[]\n}\n\nconst generateRandom = (n: number): number =>\n Math.floor((crypto.getRandomValues(new Uint32Array(1))[0] / 2 ** 32) * n)\n\nconst randomProperties = function (opportunities: any) {\n const keys = Object.keys(opportunities)\n const firstInstrument = keys[generateRandom(5 + generateRandom(3))]\n let secondInstrument = keys[generateRandom(10)]\n\n let i = 0\n while (secondInstrument === firstInstrument) {\n secondInstrument = keys[generateRandom(10)]\n i++\n if (i > 10) break\n }\n return [\n opportunities[firstInstrument],\n opportunities[secondInstrument],\n ]\n}\n\nconst MAX_RETRIES = 3\n\nexport default function DisplayOpportunities(props: any) {\n const [markets, setMarkets] = useState()\n const [history, setHistory] = useState>()\n const [retries, setRetries] = useState(0)\n\n const loadOpportunities = useCallback(async () => {\n if (retries > MAX_RETRIES) return\n try {\n const startDate = DateTime.now()\n .minus({\n month: 1,\n })\n .toFormat(\"yyyy-MM-dd\")\n const endDate = DateTime.now().toFormat(\"yyyy-MM-dd\")\n const {\n // @ts-ignore\n data: { getOpportunities: response },\n } = await API.graphql(\n graphqlOperation(getOpportunities, {\n quantity: 20,\n })\n )\n const { body } = JSON.parse(response)\n const long = randomProperties(body.instruments.buy)\n const short = randomProperties(body.instruments.sell)\n const opportunities = long.concat(short)\n setMarkets(opportunities)\n const nemo: any = opportunities.map(({ instrument }: any) => instrument)\n const {\n // @ts-ignore\n data: { getInstrumentsPrice: prices },\n } = await API.graphql(\n graphqlOperation(getInstrumentsPrice, {\n nemo: nemo.join(\",\"),\n start: startDate,\n end: endDate,\n })\n )\n const { body: _body } = JSON.parse(prices)\n const { instruments }: Body = _body\n const records: Record = {}\n instruments.forEach((element: any) => {\n if (!records[element.instrument])\n records[element.instrument] = [element.close]\n else records[element.instrument].push(element.close)\n })\n setHistory(records)\n } catch (err) {\n Sentry.captureException(err)\n setRetries(retries + 1)\n }\n }, [retries])\n\n useEffect(() => {\n loadOpportunities()\n }, [loadOpportunities])\n\n if (!markets)\n return (\n \n \n \n \n \n \n )\n\n const opportunities = markets.map((market: Market, index: number) => (\n \n ))\n\n return (\n
\n {opportunities}\n \n {opportunities}\n \n
\n )\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { DateTime } from \"luxon\"\n\nconst Message = styled.div`\n display: flex;\n justify-content: center;\n text-align: center;\n font-size: 10px;\n color: #637381;\n margin-top: 20px;\n position: relative;\n top: 10px;\n line-height: 14px;\n`\n\nexport default function Disclaimer() {\n return (\n \n {\" \"}\n *Última actualización el{\" \"}\n {DateTime.now()\n .minus({ days: 1 })\n .toFormat(\"yyyy-MM-dd\")}{\" \"}\n a las 18:30
\n Los instrumentos se transan a través de CFD's. Capitaria no es asesor de\n inversiones.\n
\n )\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport \"slick-carousel/slick/slick.css\"\nimport \"slick-carousel/slick/slick-theme.css\"\nimport DisplayOpportunities from \"./DisplayOpportunities\"\nimport Disclaimer from \"./Disclaimer\"\n\nconst Container = styled.div`\n background: #fff;\n padding: 30px;\n border-radius: 5px;\n width: 860px;\n margin-left: auto;\n margin-right: auto;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.06), 0px 1px 18px rgba(0, 0, 0, 0.04),\n 0px 3px 5px rgba(0, 0, 0, 0.08);\n margin-bottom: 40px;\n @media (max-width: 812px) {\n width: 350px;\n }\n`\n\nconst Title = styled.div`\n font-size: 24px;\n font-weight: 500;\n font-family: Roboto;\n display: flex;\n justify-content: center;\n @media (max-width: 812px) {\n text-align: center;\n font-size: 20px;\n }\n`\n\nconst SubtitleWrapper = styled.div`\n margin-top: 42px;\n line-height: 20px;\n font-weight: 400;\n font-family: Roboto;\n display: flex;\n justify-content: center;\n text-align: center;\n`\n\nconst Subtitle = styled.div`\n width: 532px;\n font-size: 16px;\n @media (max-width: 812px) {\n font-size: 12px;\n }\n`\n\nconst Opportunities = () => (\n \n Oportunidades pasando en este momento\n \n \n \n La gran ventaja de nuestro producto es que{\" \"}\n \n puedes tomar oportunidades cuando el precio sube y tambien cuando el\n precio baja\n \n \n \n \n \n)\n\nexport default Opportunities\n","import React, { useContext, useState } from \"react\"\n\ntype Simulator = {\n nemo: string\n direction: string\n size: string\n date: string\n}\n\ntype ContextValues = {\n values: Simulator\n setValues: (name: any, content: any) => void\n response: PricesApiResponse\n setResponse: React.Dispatch>\n tooltipIsOpen: string\n setTooltipIsOpen: React.Dispatch>\n}\n\nconst initialForm: ContextValues = {\n values: {\n nemo: \"\",\n direction: \"\",\n size: \"\",\n date: \"\",\n },\n setValues: () => {},\n response: {\n instruments: [],\n price_now: []\n },\n setResponse: () => {},\n tooltipIsOpen: \"\",\n setTooltipIsOpen: () => {},\n}\n\nconst Context = React.createContext(initialForm)\n\nfunction ContextProvider({ children }: any) {\n const [values, _setValues] = useState({\n nemo: \"#AAPL\",\n direction: \"ask\",\n size: \"0.1\",\n date: \"1d\",\n })\n const [response, setResponse] = useState({})\n const setValues = (name: any, content: any) =>\n _setValues({\n ...values,\n [name]: content,\n })\n const [tooltipIsOpen, setTooltipIsOpen] = useState(\"\")\n\n return (\n \n {children}\n \n )\n}\n\nconst useSimulator = () => useContext(Context)\n\nexport { ContextProvider, Context, useSimulator }\n","export default __webpack_public_path__ + \"static/media/icon-question.1aeb1fff.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\ntype Props = {\n message: JSX.Element\n isOpen: boolean\n onClick: () => void\n}\n\nconst Tooltip = ({ message, isOpen, onClick }: Props) => {\n const Wrapper = styled.div`\n position: absolute;\n bottom: 22px;\n right: 0px;\n background-color: #303a3e;\n color: #fff;\n font-size: 10px;\n padding-top: 15px;\n padding-bottom: 15px;\n padding-left: 15px;\n padding-right: 15px;\n border-radius: 5px;\n width: 200px;\n text-align: center;\n line-height: 15px;\n font-family: Roboto;\n font-weight: 400;\n `\n\n return isOpen ? {message} : null\n}\n\nexport default Tooltip\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport QuestionIcon from \"../../../../images/icon-question.svg\"\nimport Tooltip from \"../../../ui/tooltip\"\nimport { useSimulator } from \"./context\"\nimport { trackEvent } from \"../../../../helpers/tracker\"\n\nconst Wrapper = styled.div`\n flex-basis: 100%;\n margin-right: 7px;\n @media (max-width: 812px) {\n margin-bottom: 20px;\n }\n`\n\nconst Label = styled.div`\n font-size: 14px;\n margin-bottom: 8px;\n position: relative;\n display: flex;\n font-family: Roboto;\n align-items: center;\n`\n\nconst Select = styled.select`\n font-family: \"Open Sans\";\n font-size: 16px;\n padding: 8px;\n width: 95%;\n border-radius: 4px;\n height: 45px;\n border: 0;\n @media (max-width: 812px) {\n width: 200px;\n }\n`\n\nconst Input = styled.input`\n font-family: \"Open Sans\";\n font-size: 16px;\n padding: 8px;\n width: 95%;\n border-radius: 4px;\n height: 45px;\n border: 0;\n @media (max-width: 812px) {\n width: 200px;\n }\n`\n\nconst WrapperTooltip = styled.div`\n position: absolute;\n right: 10px;\n`\n\nexport default function Parameter(props: Field) {\n const { setIsActive } = props\n const simulator = useSimulator()\n const propName = props.name as keyof typeof simulator.values\n const CustomTooltip = () =>\n props.tooltip ? (\n <>\n {\n const label = props.label.toLocaleLowerCase().replace(/ /g, \"-\")\n trackEvent(`homeprospecto:simulador:${label}`)\n simulator.setTooltipIsOpen(\n simulator.tooltipIsOpen === propName ? \"\" : propName\n )\n }}\n >\n \"question\"\n \n {\n simulator.setTooltipIsOpen(\"\")\n return true\n }}\n />\n \n ) : null\n\n return (\n \n \n {props.type === \"select\" ? (\n ) => {\n simulator.setValues(propName, event.target.value)\n setIsActive(false)\n }}\n >\n {props.options.map((option: Option, index: number) => (\n \n ))}\n \n ) : (\n ) => {\n const inputValue: string = event.target.value\n let value: number = 0.1\n if (props.validate && props.validate(inputValue))\n value = parseFloat(inputValue)\n simulator.setValues(propName, value)\n setIsActive(false)\n }}\n value={simulator.values[propName]}\n onBlur={(event: any) => {\n const inputValue: string = event.target.value\n if (!inputValue || inputValue === \"0\")\n simulator.setValues(propName, 0.1)\n }}\n />\n )}\n \n )\n}\n","const instruments: Option[] = [\n {\n text: \"Amazon.com Inc.\",\n value: \"#AMZN\",\n },\n {\n text: \"Apple Inc.\",\n value: \"#AAPL\",\n },\n {\n text: \"Alibaba Group Holding Limited\",\n value: \"#BABA\",\n },\n {\n text: \"Dolar Americano vs Peso Chileno\",\n value: \"USDCLP\",\n },\n {\n text: \"Dólar Americano vs Peso Mexicano\",\n value: \"USDMXN\",\n },\n {\n text: \"Dólar Americano vs Yen Japonés\",\n value: \"USDJPY\",\n },\n {\n text: \"Euro vs Dólar Americano\",\n value: \"EURUSD\",\n },\n {\n text: \"Google\",\n value: \"#GOOGL\",\n },\n {\n text: \"Facebook Inc.\",\n value: \"#META\",\n },\n {\n text: \"Microsoft Corporation\",\n value: \"#MSFT\",\n },\n {\n text: \"Netflix Inc.\",\n value: \"#NFLX\",\n },\n {\n text: \"NIO Limited\",\n value: \"#NIO\",\n },\n {\n text: \"NVidia Corp.\",\n value: \"#NVDA\",\n },\n {\n text: \"XAU vs USD (Oro)\",\n value: \"XAUUSD\",\n },\n {\n text: \"S&P 500 INDEX CFD\",\n value: \"SP\",\n },\n {\n text: \"Soquimich\",\n value: \"CLP.SQM\",\n },\n {\n text: \"Tesla Motors Inc\",\n value: \"#TSLA\",\n },\n {\n text: \"Petróleo (WTI)\",\n value: \"WTI\",\n },\n]\n\n\nexport default instruments\n","const operations: Option[] = [\n {\n value: \"ask\",\n text: \"Comprar\"\n },\n {\n value: \"bid\",\n text: \"Vender\"\n },\n]\n\nexport default operations\n","const timeframes: Option[] = [\n {\n value: \"1d\",\n text: \"Hace 1 día\"\n },\n {\n value: \"3d\",\n text: \"Hace 3 días\"\n },\n {\n value: \"1w\",\n text: \"Hace 1 semana\"\n },\n {\n value: \"2w\",\n text: \"Hace 2 semana\"\n },\n {\n value: \"1m\",\n text: \"Hace 1 mes\"\n },\n]\n\nexport default timeframes\n","import React from 'react'\nimport styled from \"@emotion/styled\"\n\nimport instruments from \"./instruments\"\nimport operations from \"./operations\"\nimport timeframes from \"./timeframes\"\nimport { trackEvent } from '../../../../../helpers/tracker'\n\nconst CustomLink = styled.a`\n color: #FFF;\n text-decoration: underline;\n`\n\nconst params: Field[] = [\n {\n label: \"Instrumentos\",\n name: \"nemo\",\n options: instruments,\n type: \"select\",\n defaultValue: \"#AAPL\",\n },\n {\n label: \"Tipo de operación\",\n name: \"direction\",\n options: operations,\n type: \"select\",\n tooltip: (\n <>\n ¿Qué es vender?\n
\n {\n trackEvent(`homeprospecto:simulador:tooltip:link-direccion`)\n }}\n href=\"https://blog.capitaria.com//s/f/que-significa-la\"\n >\n Quiero saber más\n \n \n ),\n },\n {\n label: \"Tamaño operación\",\n name: \"size\",\n type: \"number\",\n step: 0.1,\n required: true,\n options: [],\n tooltip: (\n <>\n Cantidad de lotes que deseas operar.\n
\n {\n trackEvent(`homeprospecto:simulador:tooltip:link-lotes`)\n }}\n href=\"https://blog.capitaria.com//s/f/que-es-un-lote\"\n >\n Quiero saber más\n \n \n ),\n validate: (input: any): boolean => {\n return /^\\W|^0\\.0|^0\\d/.test(input) !== true\n },\n },\n {\n label: \"¿Cuándo compré o vendí?\",\n name: \"date\",\n options: timeframes,\n type: \"select\",\n },\n]\n\nexport default params\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { useSimulator } from \"./context\"\n\nconst Amount = styled.div`\n font-size: 40px;\n font-family: \"Work Sans\";\n font-weight: 700;\n color: #fff;\n`\n\nconst Text = styled.div`\n font-family: Roboto;\n font-weight: 500;\n`\n\n\ntype CalculateWinLose = {\n direction: string\n priceToday: any\n lastPrice: number\n contractSize: number\n size: number\n}\n\n\nconst calculateWinLose = ({\n direction,\n lastPrice,\n priceToday,\n contractSize,\n size,\n}: CalculateWinLose) => {\n const result: Record = { amount: 0, state: null }\n const spread = priceToday.ask - priceToday.bid\n switch (direction) {\n case \"bid\":\n result.amount =\n contractSize * size * (lastPrice - priceToday.bid - spread)\n result.state =\n lastPrice - priceToday.ask - spread > 0 ? \"ganado\" : \"perdido\"\n break\n case \"ask\":\n result.amount =\n contractSize * size * (lastPrice + spread - priceToday.bid)\n result.state =\n priceToday.bid - lastPrice + spread > 0 ? \"ganado\" : \"perdido\"\n break\n }\n result.state = result.amount ? result.state : \"quedado igual\"\n return result\n}\n\nexport default function ResultPrediction({ isActive }: any) {\n const { response, values } = useSimulator()\n const { direction } = values\n if (!isActive || !response) return null\n\n const { instruments = null, price_now = null } = response\n if (!instruments || !price_now) return null\n\n const lastPrice = instruments[0]\n const priceToday = price_now[0]\n const contractSize: number = price_now[0].contract_size\n\n if (lastPrice && priceToday) {\n const result = calculateWinLose({\n direction,\n lastPrice: lastPrice.close,\n priceToday,\n contractSize,\n size: parseFloat(values.size),\n })\n\n const formatNumber = result.amount.toFixed(2)\n\n return (\n result.state && (\n <>\n Hubieses {result.state} *:\n \n {priceToday.base_currency} ${Math.abs(formatNumber)}\n \n \n )\n )\n } else {\n return null\n }\n}\n","export default __webpack_public_path__ + \"static/media/loader-simulator.375b78e7.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport Spinner from \"../../images/loader-simulator.svg\"\n\nconst Button = styled.div`\n position: relative;\n display: flex;\n align-items: center;\n justify-content: start;\n font-family: Roboto;\n font-weight: 500;\n font-size: 16px;\n margin-top: 25px;\n background: #30AB76;\n color: #FFF;\n padding-top: 12px;\n padding-bottom: 12px;\n padding-right: 65px;\n padding-left: 65px;\n border-radius: 5px;\n text-align: center;\n width: 284px;\n cursor: pointer;\n @media (max-width: 812px) {\n margin-top: 10px;\n width: 200px;\n gap: 0px;\n }\n`\n\nconst ButtonWrapper = styled.div`\n width: 58%;\n @media (max-width: 812px) {\n position: relative;\n right: 0px;\n width: 155px;\n }\n`\n\ntype ButtonProps = {\n text: string\n loading: boolean\n onClick: () => void\n}\n\nconst SpinnerIcon = () => \"\"\nconst SpinnerWrapper = ({ children }: any) => {\n const Wrapper = styled.div`\n height: 25px;\n width: 18%;\n padding-left: 10px;\n @media (max-width: 812px) {\n padding-left: 0px;\n width: auto;\n position: absolute;\n left: 40px;\n }\n `\n return {children}\n}\n\nexport default function ButtonSimulator({ text, loading, onClick }: ButtonProps) {\n return (\n \n )\n}\n","import React, { useState } from \"react\"\nimport { API, graphqlOperation } from \"aws-amplify\"\nimport { DateTime } from \"luxon\"\nimport styled from \"@emotion/styled\"\n\nimport { useSimulator } from \"./context\"\nimport { getInstrumentsPrice } from \"../../../../graphql/queries\"\nimport { trackEvent } from \"../../../../helpers/tracker\"\nimport Parameter from \"./Parameter\"\nimport fields from \"./fields\"\nimport ResultPrediction from \"./ResultPrediction\"\nimport ButtonSimulator from \"../../../ui/button-simulator\"\n\nconst Container = styled.div`\n background: #1b2229;\n color: #fff;\n padding-top: 30px;\n padding-bottom: 50px;\n border-radius: 5px;\n width: 860px;\n margin-left: auto;\n margin-right: auto;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.06), 0px 1px 18px rgba(0, 0, 0, 0.04),\n 0px 3px 5px rgba(0, 0, 0, 0.08);\n margin-bottom: 25px;\n @media (max-width: 812px) {\n width: 350px;\n }\n`\n\nconst Title = styled.div`\n color: #44d091;\n display: flex;\n justify-content: center;\n font-family: \"Work Sans\";\n font-weight: 700;\n font-size: 24px;\n @media (max-width: 812px) {\n text-align: center;\n font-size: 20px;\n }\n`\n\nconst SubtitleWrapper = styled.div`\n padding-top: 10px;\n padding-bottom: 10px;\n font-size: 16px;\n line-height: 20px;\n font-weight: 400;\n font-family: Roboto;\n display: flex;\n justify-content: center;\n text-align: center;\n @media (max-width: 812px) {\n font-size: 15px;\n }\n`\n\nconst Subtitle = styled.div`\n width: 500px;\n font-family: Roboto;\n @media (max-width: 812px) {\n font-size: 14px;\n padding-left: 27.7px;\n padding-right: 27.7px;\n }\n`\n\nconst Fields = styled.div`\n display: flex;\n flex-direction: row;\n margin-top: 20px;\n padding-left: 70px;\n padding-right: 70px;\n @media (max-width: 812px) {\n flex-direction: column;\n padding-left: 0px;\n padding-right: 0px;\n align-items: center;\n }\n`\n\nconst Prediction = styled.div`\n margin-top: 35px;\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n`\n\nconst FooterMessage = styled.div`\n font-family: Roboto;\n font-size: 11px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n text-align: center;\n position: relative;\n top: 30px;\n @media (max-width: 812px) {\n padding-left: 27.7px;\n padding-right: 27.7px;\n top: 0px;\n }\n`\n\nconst WrapperButtonSimulator = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`\n\nexport default function Simulator() {\n const [isActive, setIsActive] = useState(false)\n const [loading, setLoading] = useState(false)\n const [lastDate, setLastDate] = useState(\"\")\n const simulator = useSimulator()\n\n const loadSimulation = async () => {\n setLoading(true)\n simulator.setResponse({})\n const timeframes: Record = {\n \"1d\": { days: 1 },\n \"3d\": { days: 3 },\n \"1w\": { weeks: 1 },\n \"2w\": { weeks: 2 },\n \"1m\": { months: 1 },\n }\n const minusTimeframe = timeframes[simulator.values.date]\n const date = DateTime.now()\n .minus(minusTimeframe)\n .toFormat(\"yyyy-MM-dd\")\n const {\n // @ts-ignore\n data: { getInstrumentsPrice: response },\n } = await API.graphql(\n graphqlOperation(getInstrumentsPrice, {\n nemo: simulator.values.nemo,\n date,\n })\n )\n trackEvent(\"homeprospecto:simulador:boton-simular\", {\n timeframe: simulator.values.date,\n instrumento: simulator.values.nemo,\n direccion:\n simulator.values.direction === \"bid\" ? \"compra\" : \"venta\",\n tamaño: simulator.values.size,\n })\n const { body } = JSON.parse(response)\n simulator.setResponse(body)\n if (body && body.instruments && body.instruments.length) {\n const date = body.instruments[0].date.split(\"-\")\n const newDate = `${date[2]}-${date[1]}-${date[0]}`\n setLastDate(newDate)\n }\n setIsActive(true)\n setLoading(false)\n }\n\n const DynamicDisclaimer = () => {\n return (\n <>\n {lastDate.length\n ? `**Precio referencial basado en la hora\n de cierre del día ${lastDate}`\n : ` **Precio referencial basado en la\n hora de cierre en días con mercado abierto `}\n \n )\n }\n\n return (\n \n Simulador de Oportunidades\n \n \n Selecciona un instrumento, una compra o venta y una temporalidad para\n ver cuanto podrías haber ganado o perdido\n \n \n \n {fields.map((field: Field, index: number) => (\n \n ))}\n \n \n \n \n \n \n \n \n *Listado instrumentos populares. Al acceder a nuestra plataforma tendrás\n acceso a más de 500 instrumentos\n
\n \n
\n
\n )\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\n\nimport { trackEvent } from '../../../helpers/tracker';\n\nconst Wrapper = styled.div`\n grid-row: 1;\n transition: width 3s, height 3s, transform 3s;\n height: 197px;\n width: 277px;\n background-color: #FFF;\n display: flex;\n flex-direction: column;\n justify-content: center;\n border-radius: 5px;\n box-shadow: 0px 4px 6px 0px #0000001A;\n cursor: pointer;\n @media (max-width: 812px) {\n width: auto;\n margin-bottom: 20px;\n margin-left: 20px;\n justify-content: center;\n }\n`\n\nconst Icon = styled.img`\n height: 90px;\n`\n\nconst CenterIcon = styled.div`\n margin-left: auto;\n margin-right: auto;\n`\n\nconst SourceLink = styled.a`\n font-family: Roboto;\n font-weight: 500;\n font-size: 20px;\n color: #000;\n text-decoration: none;\n`\n\nconst Title = styled.div`\n padding-left: 20px;\n padding-right: 20px;\n`\n\nexport default function Source(props: Source) {\n return (\n {\n trackEvent(`homeprospecto:links:${props.label}`)\n window.open(props.href, '_blank');\n }}\n >\n \n \n \n \n <SourceLink>{props.title}</SourceLink>\n \n \n )\n}\n","import Webinars from \"../../../images/img-webinars.png\"\nimport EconomicCalendar from \"../../../images/img-economic-calendar.png\"\nimport Youtube from \"../../../images/img-youtube.png\"\n\nconst sourcesList: Source[] = [\n {\n icon: Webinars,\n title: \"No te pierdas nuestros webinars\",\n href: \"https://www.blog.capitaria.com/eventos-trading-capitaria\",\n label: \"webinars\",\n },\n {\n icon: EconomicCalendar,\n title: \"Atento al calendario económico\",\n href: \"https://www.blog.capitaria.com/calendario-economico\",\n label: \"calendario\",\n },\n {\n icon: Youtube,\n title: \"Visita nuestro canal de Youtube\",\n href: \"https://www.youtube.com/c/Capitaria\",\n label: \"youtube\",\n },\n]\n\nexport default sourcesList\n","export default \"data:image/png;base64,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\"","export default __webpack_public_path__ + \"static/media/img-economic-calendar.b463d078.png\";","export default __webpack_public_path__ + \"static/media/img-youtube.da4e29ba.png\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport Source from \"./source\"\nimport sourcesList from \"./sources-list\"\nimport \"slick-carousel/slick/slick.css\"\nimport \"slick-carousel/slick/slick-theme.css\"\n\nconst Wrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 22px;\n margin-bottom: 30px;\n padding-left: 30px;\n padding-right: 30px;\n flex-direction: row;\n @media (max-width: 812px) {\n flex-direction: column;\n }\n`\n\n\nconst DesktopCarousel = styled.div`\n display: grid;\n gap: 11px;\n grid-auto-columns: min-content;\n @media (max-width: 812px) {\n display: flow;\n }\n`\n\n\nexport default function DisplaySources() {\n return (\n \n \n {sourcesList.map((source: Source, index: number) => )}\n \n \n )\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport DisplaySources from \"./display-sources\"\n\nconst Container = styled.div`\n text-align: center;\n margin-top: 35px;\n`\n\nconst Title = styled.div`\n font-family: 'Work Sans';\n font-weight: 700;\n font-size: 32px;\n @media (max-width: 812px) {\n font-size: 22px;\n }\n`\n\nexport default function DiscoverOpportunities() {\n return (\n \n \n ¿Cómo me entero de más oportunidades?\n \n \n \n )\n}\n","import styled from '@emotion/styled'\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n`\n\nconst Title = styled.div`\n font-size: 20px;\n font-family: Roboto;\n font-weight: 700;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #2BA770;\n text-align: center;\n @media (max-width: 812px) {\n font-size: 17px;\n }\n`\n\nconst SubTitle = styled.div`\n width: 344px;\n text-align: center;\n font-family: Roboto;\n margin-top: 20px;\n font-size: 13px;\n @media (max-width: 812px) {\n margin-top: 20px;\n margin-bottom: 15px;\n padding-bottom: 20px;\n padding-right: 35px;\n padding-left: 35px;\n }\n`\n\nexport { Container, Title, SubTitle }\n","import { useCallback } from 'react';\n\ntype Wistia = {\n setShowModal: (showModal: boolean) => void\n setWistia: (wistia: any) => void\n}\n\nconst useLoadWistia = ({ setShowModal, setWistia }: Wistia) => {\n const loadWistia = useCallback(\n id => {\n // @ts-ignore\n const _wistia = Wistia.embed(id, {\n videoFoam: true,\n popover: true,\n popoverAnimateThumbnail: true,\n })\n setWistia(_wistia)\n _wistia.bind(\"end\", function() {\n _wistia.popover.hide()\n setShowModal(true)\n })\n },\n [setShowModal, setWistia]\n )\n\n return loadWistia\n}\n\nexport default useLoadWistia;\n","import { API, graphqlOperation } from \"aws-amplify\"\nimport { createEvent } from \"../../../graphql/mutations\"\nimport * as Sentry from \"@sentry/browser\"\n\ntype VideoEvent = {\n id: string\n event: {\n element: string\n column: string\n value: boolean\n }\n}\n\nexport default async function trackEventPq(event: VideoEvent) {\n try {\n await API.graphql(graphqlOperation(createEvent, event))\n } catch (e) {\n console.error(e)\n Sentry.captureException(e)\n }\n}\n","\nimport React, { useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { Container, Title, SubTitle } from \"./styles\"\nimport useLoadWistia from \"./helper\"\nimport trackEventPq from \"../trackEventPq\"\n\nconst VideoAnalytics = styled.span`\n display: inline-block;\n height: 200px;\n position: relative;\n width: 400px;\n border-radius: 5px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst Button = styled.div`\n background-color: #30AB76;\n color: #fff;\n padding-top: 5px;\n padding-bottom: 5px;\n padding-left: 55px;\n padding-right: 55px;\n border-radius: 5px;\n border: none;\n height: 40px;\n font-family: \"Roboto\";\n font-weight: 500;\n font-size: 14px;\n text-decoration: none;\n margin-left: 3rem;\n cursor: pointer;\n display: flex;\n align-items: center;\n @media (max-width: 812px) {\n margin-left: 0;\n }\n `\n\nconst DemoWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n margin-bottom: 1rem;\n @media (max-width: 812px) {\n margin-top: 0;\n margin-bottom: 1.4rem;\n }\n`\n\nconst link = () => {\n window.open(\n window.matchMedia(\"(max-width: 700px)\").matches\n ? \"https://mobile.capitaria.com\"\n : \"https://www.capitaria.com/mt5-capitaria.html\",\n \"_blank\"\n )\n}\n\n\nexport default function DiscoverPlatform({\n setShowModal,\n setWistia,\n salesforceId,\n}: SliderProps) {\n const loadWistia = useLoadWistia({ setShowModal, setWistia })\n\n useEffect(() => {\n loadWistia(\"1fj8nrq657\")\n }, [loadWistia])\n\n return (\n \n Conoce la Plataforma\n {\n trackEventPq({\n id: salesforceId,\n event: {\n element: \"video3\",\n column: \"played\",\n value: true\n },\n })\n }}\n id=\"wistia_1fj8nrq657\"\n >\n  \n \n \n Crea tu cuenta demo y conoce como funciona una de las mejores\n plataformas de trading del mundo\n \n \n \n \n \n )\n}\n","import React, { useEffect } from \"react\"\n\nimport styled from \"@emotion/styled\"\n\nimport { Container, Title, SubTitle } from \"./styles\"\nimport useLoadWistia from \"./helper\"\nimport trackEventPq from \"../trackEventPq\"\n\nconst VideoAnalytics = styled.span`\n display: inline-block;\n height: 200px;\n position: relative;\n width: 400px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nconst FirstTrade = ({\n showModal,\n setShowModal,\n wistia,\n setWistia,\n salesforceId,\n}: SliderProps) => {\n const loadWistia = useLoadWistia({ setShowModal, setWistia })\n\n useEffect(() => {\n loadWistia(\"snutl4cjcc\")\n }, [loadWistia])\n\n return (\n \n Tu primera operación\n {\n trackEventPq({\n id: salesforceId,\n event: {\n element: \"video4\",\n column: \"played\",\n value: true\n },\n })\n }}\n id=\"wistia_snutl4cjcc\"\n >\n  \n \n \n ¿Cómo abrir y cerrar una operación? ¿En que tengo que fijarme antes de\n abrir una operación? Todo lo que necesitas saber para entrar en el\n mercado y tomar oportunidades\n \n \n )\n}\n\nexport default FirstTrade\n","import React, { useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { Container, Title, SubTitle } from \"./styles\"\nimport useLoadWistia from \"./helper\"\nimport trackEventPq from \"../trackEventPq\"\n\nconst VideoAnalytics = styled.span`\n display: inline-block;\n height: 200px;\n position: relative;\n width: 400px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nexport default function Concepts({\n setShowModal,\n setWistia,\n salesforceId,\n}: SliderProps) {\n const loadWistia = useLoadWistia({ setShowModal, setWistia })\n\n useEffect(() => {\n loadWistia(\"ei280c3qda\")\n }, [loadWistia])\n\n return (\n \n Conceptos básicos\n {\n trackEventPq({\n id: salesforceId,\n event: {\n element: \"video2\",\n column: \"played\",\n value: true\n },\n })\n }}\n id=\"wistia_ei280c3qda\"\n >\n  \n \n \n ¿Qué es un CFD? ¿Que es un lote?¿Cómo funciona el apalancamiento?\n Descubre todo lo necesario para entender el fascinante mundo del trading\n \n \n )\n}\n","import React, { useEffect } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { Container, Title, SubTitle } from \"./styles\"\nimport useLoadWistia from \"./helper\"\nimport trackEventPq from \"../trackEventPq\"\n\nconst VideoAnalytics = styled.span`\n display: inline-block;\n height: 200px;\n position: relative;\n width: 400px;\n @media (max-width: 812px) {\n width: 300px;\n }\n`\n\nexport default function TradingVsInvesting({\n setShowModal,\n setWistia,\n salesforceId,\n}: SliderProps) {\n const loadWistia = useLoadWistia({ setShowModal, setWistia })\n\n useEffect(() => {\n loadWistia(\"6t6nlj7x27\")\n }, [loadWistia])\n\n return (\n \n Trading vs Inversiones\n {\n trackEventPq({\n id: salesforceId,\n event: {\n element: \"video1\",\n column: \"played\",\n value: true\n },\n })\n }}\n id=\"wistia_6t6nlj7x27\"\n >\n  \n \n \n ¿Qué es el trading? ¿En que se diferencia de una inversión tradicional?\n Dale play y descubre si el trading es realmente para ti.\n \n \n )\n}\n","import DiscoverPlatform from \"./discover-plataform\"\nimport FirstTrade from \"./first-trade\"\nimport Concepts from \"./concepts\"\nimport TradingVsInvesting from \"./trading-vs-investing\"\n\nconst steps: StepSlider[] = [\n {\n title: \"1. Trading vs Inversiones\",\n component: TradingVsInvesting,\n question:\n \"Una de las ventajas del trading por sobre una inversión tradicional es\",\n options: [\n \"Por lo general se abre una operación y se esperan años para poder tomar utilidades\",\n \"Se puede operar tanto al alza como a la baja. Esto duplica las posibles oportunidades que se pueden encontrar\",\n \"Existen mitigadores de riesgo\",\n \"Respuesta 2 y 3\",\n ],\n correctAnswer: 4,\n },\n {\n title: \"2. Conceptos básicos\",\n component: Concepts,\n question: \"Un tipo de mitigador de riesgo en el trading es:\",\n options: [\"Stop Loss\", \"Seguro contra pérdida\", \"No abrir una operación\"],\n correctAnswer: 1,\n },\n {\n title: \"3. Conoce la plataforma\",\n component: DiscoverPlatform,\n question: \"¿Que es la equidad?\",\n options: [\n \"Equidad muestra el dinero real que tienes en tu cuenta considerando operaciones abiertas y cerradas\",\n \"Equidad son las garantías que tienes tomadas\",\n \"Equidad es lo que depositaste\",\n ],\n correctAnswer: 1,\n },\n {\n title: \"4. Tu primera operación\",\n component: FirstTrade,\n question: \"Para abrir una operación, es muy importante:\",\n options: [\n \"Hacer un análisis previo\",\n \"Fijarme bien en la cantidad de lotes que voy a operar\",\n \"Definir un stop loss y take profit\",\n \"Todas las anteriores\",\n ],\n correctAnswer: 4,\n },\n]\n\nexport default steps\n","import React from \"react\"\nimport \"./styles.css\"\n\ntype AppProps = {\n onSkipClick: () => void\n onSubmitClick: () => void\n question: string\n options: string[]\n setAnswer: (answer: number) => void\n}\n\nfunction ModalWistia(props: AppProps) {\n function handleSkipClick() {\n props.onSkipClick()\n }\n\n return (\n
\n
\n
Pregunta
\n
\n

\n {props.question}\n

\n
\n
\n {props.options.map((option, index) => (\n \n ))}\n
\n
\n
\n
\n \n \n
\n
\n
\n )\n}\n\nexport default ModalWistia\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport steps from \"./steps\"\nimport { trackEvent } from \"../../../helpers/tracker\"\nimport ModalWistia from \"./steps/modal\"\nimport trackEventPq from \"./trackEventPq\"\nimport { useAuth } from \"../../../hooks/auth-context\"\n\nconst lastStep = steps[steps.length - 1]\n\nconst Container = styled.div`\n width: 860px;\n margin: auto;\n margin-top: 40px;\n display: flex;\n flex-direction: row;\n background-color: #fff;\n box-shadow: 0px 5px 5px 0px #00000014;\n box-shadow: 0px 3px 14px 0px #0000000a;\n box-shadow: 0px 8px 10px 0px #0000000f;\n border-radius: 5px;\n margin-bottom: 50px;\n @media (max-width: 812px) {\n flex-direction: column;\n width: 90%;\n }\n`\n\nconst Steps = styled.div`\n display: none;\n @media (min-width: 812px) {\n display: block;\n }\n`\n\nconst NotActiveStep = ({ onClick, title }: any) => {\n const NotActiveStep = styled.div`\n padding-top: 40px;\n padding-bottom: 40px;\n padding-left: 30px;\n padding-right: 30px;\n border-left: 4px solid transparent;\n background-color: #f4f6f8;\n border-right: 0.7px solid #c4cdd5;\n cursor: pointer;\n border-bottom: 0.7px solid\n ${title === lastStep.title ? \"transparent\" : \"#C4CDD5\"};\n `\n\n return {title}\n}\n\nconst ActiveStep = ({ title }: any) => {\n const Active = styled.div`\n padding-top: 40px;\n padding-bottom: 40px;\n padding-left: 30px;\n padding-right: 30px;\n border-left: 4px solid #71c552;\n background-color: #fff;\n border-top: 0.7px solid transparent;\n cursor: pointer;\n border-bottom: 0.7px solid\n ${title === lastStep.title ? \"transparent\" : \"#C4CDD5\"};\n `\n\n return {title}\n}\n\nconst RenderComponent = styled.div`\n display: block;\n margin-left: auto;\n margin-right: auto;\n`\n\nconst StepsMobile = styled.div`\n background: #f4f6f8;\n display: flex;\n font-size: 11.3px;\n @media (min-width: 812px) {\n display: none;\n }\n`\n\nconst ActiveStepMobile = ({ title, onClick }: any) => {\n title = title.replace(/\\d\\./gi, \"\")\n const TitleMobile = styled.div`\n padding: 12px;\n background-color: #fff;\n border-top: 4px solid #71c552;\n border-right: 0.7px solid\n ${title === lastStep.title ? \"transparent\" : \"#C4CDD5\"};\n `\n\n return {title}\n}\n\nconst NotActiveStepMobile = ({ title, onClick }: any) => {\n title = title.replace(/\\d\\./gi, \"\")\n const TitleMobile = styled.div`\n padding: 12px;\n background-color: #f4f6f8;\n border-top: 4px solid transparent;\n border-right: 0.7px solid\n ${title === lastStep.title ? \"transparent\" : \"#C4CDD5\"};\n border-bottom: 0.7px solid #c4cdd5;\n `\n\n return {title}\n}\n\nconst CenterText = styled.div`\n text-align: center;\n`\n\nconst Title = styled.div`\n margin-top: 40px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n @media (max-width: 812px) {\n font-size: 22px;\n }\n`\n\nconst TitleWrapper = styled.div`\n font-family: \"Work Sans\";\n font-weight: 700;\n font-size: 32px;\n width: 860px;\n text-align: center;\n @media (max-width: 812px) {\n width: 90%;\n }\n`\n\nconst SliderWrapper = styled.div`\n margin-top: 70px;\n`\nconst TitleText = styled.h3`\n color: #1A2225;\n text-align: center;\n font-family: Work Sans;\n font-size: 85%;\n font-style: normal;\n font-weight: 700;\n line-height: 26px;\n letter-spacing: -1px;\n`\n\nexport default function Slider() {\n const { state } = useAuth()\n const user = state.user as User\n const [answer, setAnswer] = useState(null)\n const [currentStep, setCurrentStep] = useState(0)\n const [showModal, setShowModal] = useState(false)\n const [wistia, setWistia] = useState(\"\")\n const { component: Component, correctAnswer, question, options } = steps[\n currentStep\n ]\n const renderStep = ({ title }: StepSlider, index: number) =>\n index !== currentStep ? (\n {\n setAnswer(null)\n setCurrentStep(index)\n trackEvent(\"bienvenido:videos_pestaña\" + (index + 1))\n }}\n title={title}\n key={index}\n />\n ) : (\n \n )\n\n const renderStepMobile = (step: StepSlider, index: number) =>\n index !== currentStep ? (\n {\n setAnswer(null)\n setCurrentStep(index)\n trackEvent(\"bienvenido:videos_pestaña\" + (index + 1))\n }}\n key={index}\n />\n ) : (\n \n )\n\n return (\n \n \n <TitleWrapper>\n <TitleText>\n Te invitamos a ver nuestros videos introductorios al mundo del trading\n </TitleText>\n </TitleWrapper>\n \n \n \n {steps.map(renderStepMobile)}\n {steps.map(renderStep)}\n \n \n \n \n \n {showModal && (\n {\n trackEventPq({\n event: {\n element: `video${currentStep + 1}`,\n column: \"omit\",\n value: true\n },\n id: user.salesforceId || \"\",\n })\n trackEvent(`bienvenido:video${currentStep + 1}:omit`)\n setShowModal(false)\n }}\n onSubmitClick={() => {\n if (answer === null) return\n trackEvent(\n `bienvenido:video${currentStep + 1}:${answer === correctAnswer ? \"correct\" : \"incorrect\"\n }`\n )\n trackEventPq({\n event: {\n element: `video${currentStep + 1}`,\n column: \"answer\",\n value: answer === correctAnswer\n },\n id: user.salesforceId || \"\",\n })\n setShowModal(false)\n }}\n setAnswer={setAnswer}\n question={question}\n options={options}\n />\n )}\n \n )\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport PageLayout from \"../page-layout\"\nimport Opportunities from \"../shared/home/opportunities\"\nimport Simulator from \"../shared/home/simulator\"\nimport { ContextProvider } from \"../shared/home/simulator/context\"\nimport DiscoverOpportunities from \"./discover-opportunities\"\nimport Slider from \"./slider\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { navigate } from \"@reach/router\"\n\nconst Container = styled.div`\n display: block;\n width: 100%;\n`\n\nconst Content = styled.div`\n padding: 3rem 0;\n @media (max-width: 812px) {\n padding: 2rem 0;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n`\n\nconst Welcome = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n margin-bottom: 3rem;\n @media (max-width: 812px) {\n display: block;\n margin-top: 20px;\n padding-left: 40px;\n padding-right: 40px;\n width: 100%;\n }\n`\n\nconst WelcomeTitle = styled.h1`\n font-family: Work Sans;\n text-align: center;\n @media (max-width: 812px) {\n font-size: 24px;\n }\n`\n\nconst WelcomeSubtitle = styled.div`\n text-align: center;\n width: 516px;\n line-height: 20px;\n font-family: Roboto;\n @media (max-width: 812px) {\n width: 100%;\n padding-left: 10px;\n padding-right: 10px;\n margin-bottom: 30px;\n word-break: break-word;\n font-size: 14px;\n text-align: center;\n text-justify: auto;\n }\n`\n\nconst ContainerAllValidations = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n @media (max-width: 812px) {\n flex-direction: column;\n }\n`\nconst ContainerValidation = styled.div`\n width: 388px;\n height: 116px;\n flex-shrink: 0;\n border-radius: 5px;\n background: #1F2425;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 10px;\n`\n\nconst TitleValidation = styled.p`\n width: 376px;\n color: #FFF;\n text-align: center;\n font-family: Roboto;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n`\n\nconst Button = styled.button`\n background: #2ba770;\n border-radius: 5px;\n height: 48px;\n color: #ffffff;\n text-transform: none;\n cursor: pointer;\n border: 0;\n box-shadow: 0px 10px 30px rgba(0,0,0,0.15);\n padding: 16px 0px;\n font-family: \"Roboto\";\n margin-top: 1rem;\n height: 48px;\n width: 300px;\n color: #FFF;\n text-align: center;\n font-family: Roboto;\n font-size: 16px;\n font-weight: 400;\n line-height: 20px;\n margin: 0 0 10px 0;\n \"@media (max-width: 425px)\": {\n width: \"213px\",\n fontSize: 18px;\n line-height:138.889%;\n }\n`\n\n\nconst HomeView = (): JSX.Element => {\n const { state } = useAuth()\n const user = state.user as User\n\n return (\n \n \n \n \n {!user.wasPhoneValidate &&\n \n Es necesario que vuelvas a validar tu información\n {\n navigate(\"/phone-validation-status\")\n }}>\n Validar Teléfono\n \n \n }\n {!user.wasIdFileUploaded &&\n \n Es necesario que vuelvas a validar tu información\n {\n navigate(\"/documents-validation-status\")\n }}>\n Validar documento\n \n \n }\n {!user.wasLivenessFileUploaded &&\n \n Es necesario que vuelvas a validar tu información\n {\n navigate(\"/liveness-validation-status\")\n }}>\n Validar prueba de vida\n \n \n }\n \n \n Bienvenido a Capitaria\n \n Estamos en la misión de empoderar a las personas para que\n tomen el control de sus inversiones entregándoles educación\n constante, información oportuna y una plataforma para que en\n un click puedan acceder a los mercados del mundo\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default HomeView\n","export default __webpack_public_path__ + \"static/media/warning-icon.a230ac68.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport warningIcon from \"../../../images/warning-icon.svg\"\n\nconst WarningIconDiv = styled.div`\n background-image: url(${warningIcon});\n background-repeat: no-repeat;\n background-size: cover;\n width: 39px;\n height: 33.79px;\n`\n\nconst WarningIcon = () => \n\nexport default WarningIcon\n","import React from \"react\"\n\nconst IconComplete = () => (\n \n \n \n)\n\nexport default IconComplete\n","import { css } from \"@emotion/react\"\nimport styled from \"@emotion/styled\"\n\nconst buttonStyle = css`\n font-family: Roboto;\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n background: #2BA770;\n letter-spacing: 0.1px;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.06), 0px 1px 18px rgba(0, 0, 0, 0.04), 0px 3px 5px rgba(0, 0, 0, 0.08);\n width: 300px;\n`\n\nconst buttonStyleLoading = css`\n width: 300px;\n`\n\nconst ResendLink = styled.a`\n font-size: 13px;\n line-height: 140%;\n font-weight: bold;\n cursor: pointer;\n width: 300px;\n height: 45px;\n text-align: center;\n border: 1px solid #2BA770;\n background-color: #fff;\n border-radius: 6px;\n color: #2BA770;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n\n &.disabled {\n color: #a9a9a9;\n cursor: not-allowed;\n text-decoration: none;\n background-color: transparent;\n border: none;\n }\n`\n\nconst Title = styled.h1`\n max-width: 300px;\n color: #1F2425;\n text-align: center;\n font-family: Open Sans;\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n @media (max-width: 435px) {\n max-width: 205px;\n }\n`\n\nconst Paragraph = styled.p`\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n letter-spacing: 0.1px;\n text-align: center;\n margin: 12px 0px 30px;\n @media (max-width: 425px) {\n max-width: 284px;\n }\n`\n\nconst ContainerStep = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 10% auto;\n width: 90%;\n`\n\nconst Form = styled.form`\n height: 240px;\n display: flex;\n flex-direction: column;\n align-items: center;\n text-align: center;\n justify-content: space-evenly;\n\n .selected-flag {\n width: 62px;\n padding: 0;\n .flag {\n zoom: 1.25;\n right: 50%;\n margin-right: -5px;\n .arrow {\n border-left-width: 4px;\n border-right-width: 4px;\n border-top-width: 7px;\n border-top-color: #000000;\n }\n }\n }\n`\n\nexport {\n buttonStyle,\n buttonStyleLoading,\n ContainerStep,\n Paragraph,\n ResendLink,\n Title,\n Form,\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\nimport { navigate } from \"@reach/router\"\n\nimport WarningIcon from \"../../ui/images/warning-icon\"\nimport IconComplete from \"./../images/complete\"\nimport CustomButtonV2 from \"../../ui/custom-button-v2\"\nimport { buttonStyle, buttonStyleLoading, Title } from \"./styles\"\n\n\nconst ContainerValidatePhone = styled.div`\n text-align: center;\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n justify-content: space-evenly;\n height: 300px;\n margin: 60px auto;\n`\n\nconst TextValidationStatus = styled.div`\n margin: 3% 0;\n`\n\ntype StateValidatePhoneProps = {\n confirmPhone?: boolean\n}\n\nconst StateValidatePhone = ({ confirmPhone }: StateValidatePhoneProps) => (\n \n Numero telefónico\n
{confirmPhone ? : }
\n \n Numero telefónico {confirmPhone ? '' : 'no'} validado\n \n {\n !confirmPhone &&\n
Lo validaremos más adelante, por ahora continúa con el resto de las validaciones
\n }\n navigate('/home')}\n >\n Volver\n \n
\n)\n\nexport default StateValidatePhone\n","import PhoneInput from \"react-phone-input-2\"\nimport 'react-phone-input-2/lib/style.css'\nimport styled from \"@emotion/styled\"\n\nimport ErrorIcon from \"../ui/images/error-icon\"\n\nconst FormGroup = styled.div`\n display: flex;\n flex-direction: column;\n`\n\nconst LabelWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n width: 100%;\n`\n\nconst Label = styled.label`\n font-family: Nunito;\n font-weight: 600;\n font-size: 13.33px;\n line-height: 140%;\n color: #1f2425;\n`\n\nconst Error = styled.div`\n display: flex;\n align-content: center;\n align-items: center;\n color: #e76a6a;\n font-weight: 600;\n font-size: 13px;\n line-height: 140%;\n padding: 0.5rem 0;\n max-width: 352px;\n @media (max-width: 812px) {\n max-width: 300px;\n }\n`\n\nconst ErrorMessage = styled.span`\n padding-top: 3px;\n margin-left: 0.5rem;\n`\n\nconst CustomPhoneInput = (props: PropsCustomPhone) => {\n const othersProps: { tabIndex?: number } = {}\n\n if (props.tabIndex) othersProps.tabIndex = props.tabIndex\n\n return (\n \n \n \n {props.sublabel}\n \n \n {props.hasError && (\n \n {} {props.errors}\n \n )}\n \n )\n}\n\nexport default CustomPhoneInput\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nconst ContainerReasons = styled.div`\n max-width: 30%;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n @media (max-width: 425px) {\n max-width: 90%;\n }\n @media (max-width: 768px) {\n max-width: 60%;\n }\n @media (min-width: 1024px) {\n max-width: 30%;\n }\n`\n\nconst WhyQuestion = styled.p`\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n margin: 0;\n font-weight: 600;\n font-family: Roboto;\n`\n\nconst Reason = styled.p`\n font-weight: 400;\n font-size: 12px;\n line-height: 16px;\n font-family: Roboto;\n text-align: center;\n`\n\n\nconst ReasonExplain = () => (\n \n \n ¿Porque necesitamos validar tu teléfono?\n \n \n Tu teléfono es la forma más rápida de contactarnos contigo para ayudarte en todo momento y es parte fundamental para validar tu información personal.\n \n \n)\n\nexport default ReasonExplain\n","import React, { useState, useEffect } from 'react'\nimport { Formik } from 'formik'\nimport { fetchCountry } from \"@capitaria/capitaria-utms\"\nimport * as Yup from \"yup\"\n\nimport CustomPhoneInput from \"../../ui/custom-phone-input\"\nimport { trackEventMetamap } from \"../../../helpers/tracker\"\nimport CustomButtonV2 from '../../ui/custom-button-v2'\nimport { buttonStyle, buttonStyleLoading, ContainerStep, Form, Paragraph, ResendLink, Title } from './styles'\nimport ReasonExplain from './reason'\n\n\ntype EditPhoneProps = {\n user: User | null\n onSubmit: (values: { phone: string }) => Promise\n notCode: boolean\n isLoadingNotCode: boolean\n submitNotCode: () => Promise\n}\n\nconst schemaValidationPhone = Yup.object().shape({\n phone: Yup.string()\n .required(\"Este campo es requerido\")\n .matches(\n /^[+]*(\\d{1,4})?[-\\s\\\\./0-9]*$/,\n \"El número de teléfono solo puede incluir números, -, +, () y espacios\"\n )\n .min(\n 11,\n `El número de teléfono es muy corto`\n ),\n})\n\n\nconst EditPhone = ({\n user,\n onSubmit,\n notCode,\n isLoadingNotCode,\n submitNotCode,\n}: EditPhoneProps) => {\n const [isLoading, setIsLoading] = useState(false)\n const [countryValue, setCountryValue] = useState(\"cl\")\n\n useEffect(() => {\n const getCountryValue = async () => {\n const countryCode = await fetchCountry(true)\n const countryCodeLow = countryCode.countryCode.toLowerCase()\n\n if (countryCodeLow !== countryValue) {\n setCountryValue(countryCodeLow)\n }\n }\n getCountryValue()\n }, [countryValue])\n\n const savePhone = async (values: any) => {\n setIsLoading(true)\n trackEventMetamap('phone-confirmed')\n await onSubmit(values)\n setIsLoading(false)\n }\n\n return (\n \n Verifiquemos tu Teléfono\n \n Para continuar con la creación de tu cuenta es necesario que validemos tu teléfono para esto, enviaremos un código a tu teléfono mediante SMS\n \n \n {({\n values,\n setFieldValue,\n touched,\n errors,\n handleChange,\n handleBlur,\n handleSubmit,\n }) => {\n return (\n
\n {\n handleChange(e)\n setFieldValue(\"phone\", e)\n }}\n />\n \n Confirmar Teléfono\n \n {notCode && (\n \n {!isLoadingNotCode\n ? \"No he recibido el código\"\n : \"Un minuto por favor...\"}\n \n )}\n \n )\n }}\n \n \n
\n )\n}\n\nexport default EditPhone\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { Formik } from \"formik\"\nimport * as Yup from \"yup\"\n\nimport { trackEventMetamap } from \"../../../helpers/tracker\"\nimport { buttonStyle, buttonStyleLoading, ContainerStep, Form, Paragraph, ResendLink, Title } from \"./styles\"\nimport OtpInput from \"../../ui/otp-input\"\nimport CustomButtonV2 from \"../../ui/custom-button-v2\"\nimport ReasonExplain from \"./reason\"\nimport { css } from \"@emotion/react\"\n\nconst labelCSS = css`\n font-size: 18px;\n width: 100%;\n text-align: center;\n margin-bottom: 13px;\n`\n\nconst ContentInputsCodeConfirmPhone = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n width: 189px;\n margin-bottom: 5%;\n\n & > * {\n width: 42px;\n min-height: 43px;\n flex-shrink: 0;\n border-radius: 5px;\n }\n`\n\nconst BasicTextGray = styled.p`\n color: #363F41;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 140%;\n text-decoration: none !important ;\n`\n\nconst BoldText = styled.strong`\n color: #363F41;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 700;\n line-height: 140%;\n text-decoration-line: underline;\n`\n\ntype ConfirmCodeProps = {\n phoneState: string\n seconds: number\n isWaiting: boolean\n onClickResendCode: () => void\n onSendCode: (values: { code: string }) => Promise\n notCode: boolean\n isLoadingNotCode: boolean\n submitNotCode: () => Promise\n}\n\nconst ConfirmCode = ({\n phoneState,\n seconds,\n isWaiting,\n onClickResendCode,\n onSendCode,\n notCode,\n isLoadingNotCode,\n submitNotCode,\n}: ConfirmCodeProps) => {\n const [isLoading, setIsLoading] = useState(false)\n\n const sendCode = async (values: any) => {\n setIsLoading(true)\n trackEventMetamap('sending-verification-code')\n await onSendCode(values)\n setIsLoading(false)\n }\n\n return (\n \n Verifiquemos tu Teléfono\n \n Hemos enviado tu código via SMS al teléfono {phoneState}\n \n \n {({\n values,\n setFieldValue,\n touched,\n errors,\n handleSubmit,\n }) => {\n return (\n
\n \n { setFieldValue(\"code\", value) }}\n hasError={errors.code && touched.code}\n errorMessage={errors.code}\n />\n \n \n Confirmar Código\n \n
\n {!notCode && !isLoading && (\n \n {!isWaiting ? (\n <>\n ¿No has recibido ningún código?\n ¡Inténtalo de nuevo!\n \n ) : (\n <>Puedes volver a enviar tu código en {seconds} segundo\n {\n seconds !== 1 ? \"s\" : \"\"\n }\n \n )}\n \n )}\n {notCode && (\n \n {!isLoadingNotCode\n ? \"No he recibido el código\"\n : \"Un minuto por favor...\"}\n \n )}\n \n )\n }\n }\n \n \n
\n )\n}\n\nexport default ConfirmCode\n","import React, { useEffect, useState } from \"react\"\nimport { Global, css } from \"@emotion/react\"\nimport { navigate } from \"@reach/router\"\nimport { toast } from \"react-toastify\"\n\nimport { trackEventMetamap } from \"../../helpers/tracker\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport KYC from \"../../services/kyc\"\nimport StateValidatePhone from \"./phone/state-validate-phone\"\nimport EditPhone from \"./phone/edit-phone\"\nimport ConfirmCode from \"./phone/confirm-code\"\n\nconst styleCss = css`\n .input-telephone {\n width: 335px;\n @media (max-width: 450px) {\n width: 300px;\n }\n }\n\n div.react-tel-input input.tel-input {\n border: 1px solid #e8e8e8;\n border-radius: 5px;\n height: 48px;\n width: 265px;\n @media (max-width: 450px) {\n width: 230px;\n }\n }\n`\n\ntype EditPhoneProps = {\n user: User | null\n onSubmit: (values: { phone: string }) => Promise\n notCode: boolean\n isLoadingNotCode: boolean\n submitNotCode: () => Promise\n}\n\ntype ConfirmCodeProps = {\n phoneState: string\n seconds: number\n isWaiting: boolean\n onClickResendCode: () => void\n onSendCode: (values: { code: string }) => Promise\n notCode: boolean\n isLoadingNotCode: boolean\n submitNotCode: () => Promise\n}\n\ntype ConfirmPhoneProps = EditPhoneProps & ConfirmCodeProps & {\n updatePhone: boolean\n}\n\nconst ConfirmPhone = ({\n user,\n updatePhone,\n onSubmit,\n phoneState,\n seconds,\n isWaiting,\n onClickResendCode,\n onSendCode,\n notCode,\n isLoadingNotCode,\n submitNotCode,\n}: ConfirmPhoneProps) => {\n return (\n <>\n {\n updatePhone ?\n :\n \n }\n \n )\n}\n\nconst TIMER = 30\n\ntype Props = {\n kyc: boolean\n}\n\nconst ValidatePhone = ({ kyc }: Props) => {\n const { state } = useAuth()\n const { user, setUser } = state\n\n const [updatePhone, setUpdatePhone] = useState(false)\n const [phoneState, setPhoneState] = useState(\"\")\n\n const [seconds, setSeconds] = useState(TIMER)\n const [isWaiting, setIsWaiting] = useState(false)\n\n const [notCode, setNotCode] = useState(false)\n const [isLoadingNotCode, setIsLoadingNotCode] = useState(false)\n\n useEffect(() => {\n let interval: any = null\n\n if (isWaiting) {\n if (seconds === 0) {\n clearInterval(interval)\n setIsWaiting(false)\n setSeconds(TIMER)\n } else {\n interval = setInterval(() => setSeconds(seconds => seconds - 1), 1000)\n }\n }\n return () => clearInterval(interval)\n }, [isWaiting, seconds])\n\n const onClickResendCode = () => {\n if (!isWaiting) {\n setIsWaiting(true)\n trackEventMetamap('resend code validation phone number')\n onSubmit({ phone: phoneState })\n }\n }\n\n const onSubmit = async (values: { phone: string }) => {\n const phone: string = values.phone.replace('+', '')\n const result = await KYC.updatePhone(user as User, phone, kyc)\n setPhoneState(values.phone)\n if (result.updatedPhone) {\n setUser({\n ...(user as User),\n phone,\n })\n setUpdatePhone(true)\n } else {\n if (result.reload !== true) {\n toast.error(\n \"No se puede volver a enviar el código\"\n )\n setNotCode(true)\n }\n }\n }\n\n const onSendCode = async (values: { code: string }) => {\n try {\n const result = await KYC.confirmCode(user as User, values.code, kyc)\n console.log(result.confirmCode)\n if (result.wasPhoneValidate) {\n setUser({\n ...(user as User),\n confirmPhone: result.confirmCode,\n wasPhoneValidate: result.wasPhoneValidate,\n kycNextStep: result.kycNextStep,\n })\n if (kyc) {\n navigate(`/${result.kycNextStep}`)\n }\n }\n\n } catch (error) {\n console.log(error)\n }\n\n }\n\n const submitNotCode = async () => {\n if (!isLoadingNotCode) {\n setIsLoadingNotCode(true)\n trackEventMetamap('code-not-received')\n const result = await KYC.notReceivedCode(user as User, kyc)\n\n setUser(result.user)\n if (kyc) {\n navigate(`/${result.user.kycNextStep}`)\n }\n setIsLoadingNotCode(false)\n }\n }\n\n return (\n <>\n \n {\n user && user.wasPhoneValidate ?\n :\n \n\n }\n \n )\n}\n\nexport default ValidatePhone\n","import React from \"react\"\n\nimport ValidatePhone from \"./validate-phone\"\n\n\nconst ValidatePhoneKyc = () => \n\nexport default ValidatePhoneKyc\n","import React from \"react\"\n\nimport ValidatePhone from \"./validate-phone\"\n\n\nconst ValidatePhoneWithoutKyc = () => \n\nexport default ValidatePhoneWithoutKyc\n","import React from \"react\"\n\nconst IconComplete = () => (\n \n \n \n)\n\nexport default IconComplete\n","export default __webpack_public_path__ + \"static/media/qr-onboarding.31cb28fc.png\";","import { fetchCountry } from \"@capitaria/capitaria-utms\"\nimport styled from \"@emotion/styled\"\nimport React, { useEffect, useState } from \"react\"\n\nimport { trackEventMetamap } from \"../../helpers/tracker\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport { updateIdFileFlag } from \"../../services/verify-documents\"\nimport CustomButton from \"../ui/custom-button\"\nimport CustomCountryPicker, { OptionType } from \"../ui/custom-country-picker\"\nimport CustomModal from \"../ui/custom-modal\"\nimport IconComplete from \"./images/complete\"\nimport UploadFile from \"./upload-file\"\n\nimport imageQR from '../metamap/images/qr-onboarding.png'\nimport { navigate } from \"@reach/router\"\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\n\nconst IdWrapper = styled.div`\n font-size: 18px;\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 15px;\n @media (max-width: 812px) {\n flex-direction: column;\n font-size: 19px;\n }\n`\n\nconst HowToDo = styled.div`\n max-width: 350px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n margin-bottom: 1rem;\n`\n\nconst Title = styled.h3`\n font-family: \"Open Sans\";\n font-size: 27.65px;\n font-weight: 700;\n line-height: 116%;\n margin: 0;\n color: #1f2425;\n\n @media (max-width: 425px) {\n font-family: \"Open Sans\";\n font-size: 27.65px;\n font-style: normal;\n font-weight: 700;\n line-height: 116%;\n }\n @media (max-width: 320px) {\n font-size: 25px;\n }\n`\n\nconst Description = styled.p`\n font-family: \"Open Sans\";\n font-size: 12px;\n line-height: 110%;\n color: #1f2425;\n @media (max-width: 812px) {\n font-size: 14px;\n }\n`\n\nconst UploadContainer = styled.div`\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n`\n\nconst UploadRow = styled.div`\n display: flex;\n flex-direction: row;\n width: 320px;\n justify-content: space-between;\n`\n\nconst UploadFileWrapper = styled.div`\n width: 140px;\n flex-grow: 1;\n`\n\nconst SaveButtonWrapper = styled.div`\n display: flex;\n justify-content: center;\n`\n\nconst defaultSaveButtonStyle = css`\n margin-top: 1.5rem;\n padding: 12px 44px;\n font-size: 16px;\n width: 260px;\n height: 50px;\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n width: 260px;\n height: 50px;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonCss = buttonCSS\n\nconst LinkQR = styled.a`\n font-size: 12px;\n text-decoration: underline;\n line-height: 140%;\n font-weight: bold;\n padding-top: 10px;\n cursor: pointer;\n`\n\nconst WrapperQR = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: 60px;\n`\n\nconst ContainerTextQR = styled.div`\n font-family: 'Nunito';\n margin: 30px 40px;\n`\n\nconst ContainerImageQR = styled.img`\n width: 300px;\n margin-bottom: 30px;\n`\n\nconst TitleModalCSS = {\n display: \"none\"\n}\n\nconst CountryContainer = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n vertical-align: middle;\n align-items: center;\n`\n\nconst Indication = styled.p`\n max-width: 320px;\n text-align: center;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 18px;\n`\n\nconst ContainerSelectorTypeDocument = styled.div`\n width: 100%;\n`\n\nconst ContainerTypeDocument = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-around;\n`\n\nconst LabelTypeDocument = styled.div`\n font-family: \"Roboto\";\n font-weight: 500;\n font-size: 14px;\n line-height: 18px;\n color: #1f2425;\n margin: 14px auto 24px;\n`\n\nconst TypeDocument = styled.div`\n cursor: pointer;\n width: 127px;\n height: 64px;\n align-items: center;\n display: flex;\n font-size: 14px;\n text-align: center;\n line-height: 18px;\n font-weight: 500;\n font-family: 'Roboto';\n border: 1px solid #C4CDD5;\n border-radius: 5px;\n color: #919EAB;\n justify-content: center;\n background-color: transparent;\n\n &.selected {\n border: 1px solid #44D091;\n color: white;\n background-color: #2BA770;\n\n }\n`\n\nconst ContainerDocumentsUploaded = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-evenly;\n height: 300px;\n margin: 60px auto;\n`\n\ntype WrapperUploadFileProps = {\n type: string\n onChangeFrontSide: () => void\n onChangeBackSide: () => void\n onChangePassport: () => void\n}\n\nconst WrapperUploadFile = ({\n type,\n onChangeFrontSide,\n onChangeBackSide,\n onChangePassport,\n}: WrapperUploadFileProps) => {\n let listComponent = []\n if (type === 'dni') {\n listComponent.push(\n \n \n \n )\n listComponent.push(\n \n \n \n )\n } else if (type === 'passport') {\n listComponent.push(\n \n \n \n )\n\n }\n return <>{listComponent}\n}\n\ntype ValidateIdentityProps = {\n kyc: boolean\n}\n\nconst ValidateIdentityDocument = ({ kyc }: ValidateIdentityProps) => {\n const [frontSideUploaded, setFrontSideUploaded] = useState(false)\n const [backSideUploaded, setBackSideUploaded] = useState(false)\n const [passportUploaded, setPassportUploaded] = useState(false)\n const [showQR, setShowQR] = useState(false)\n const [defaultCountry, setDefaultCountry] = useState(undefined)\n const [showLinkQR, setShowLinkQR] = useState(false)\n const [countryDefault, setCountryDefault] = useState(undefined)\n const [selectedCountry, setSelectedCountry] = useState(undefined)\n const [isLoading, setIsLoading] = useState(false)\n const [typeDocumentSelected, setTypeDocumentSelected] = useState<\"dni\" | \"passport\">(\"dni\")\n\n const { state } = useAuth()\n\n const user = state.user as User\n\n useEffect(() => {\n const getCountryValue = async () => {\n const country = await fetchCountry(true)\n trackEventMetamap('country-value-retrieved', { countryName: country.countryName })\n\n const countryName = country.countryName\n if (countryName !== countryDefault) {\n setCountryDefault(countryName)\n }\n }\n if (countryDefault === undefined) {\n trackEventMetamap('country-default-not-defined')\n getCountryValue()\n }\n\n }, [countryDefault])\n\n\n useEffect(() => {\n const mediaQuery = window.matchMedia(\"(min-width: 1025px)\")\n\n const handleMediaChange = (e: any) => {\n setShowLinkQR(e.matches)\n }\n\n handleMediaChange(mediaQuery)\n\n mediaQuery.addEventListener(\"change\", handleMediaChange)\n\n return () => {\n mediaQuery.removeEventListener(\"change\", handleMediaChange)\n }\n }, [])\n\n let disabledButton = true\n if (typeDocumentSelected === \"passport\") {\n disabledButton = !passportUploaded\n }\n if (typeDocumentSelected === \"dni\") {\n disabledButton = !(frontSideUploaded && backSideUploaded)\n }\n\n const onClick = async () => {\n setIsLoading(true)\n\n try {\n const country = selectedCountry !== undefined ? selectedCountry : defaultCountry\n\n if (country) {\n const result = await updateIdFileFlag(user, country, typeDocumentSelected, kyc)\n\n if (result.user) {\n state.setUser(result.user)\n\n if (result.user.wasIdFileUploaded) {\n state.setUser({\n ...(result.user as User),\n wasIdFileUploaded: result.user.wasIdFileUploaded,\n kycNextStep: result.user.kycNextStep,\n })\n if (kyc) {\n navigate(`/${result.user.kycNextStep}`)\n }\n }\n }\n }\n\n setIsLoading(false)\n } catch (error) {\n setIsLoading(false)\n }\n }\n\n const onChangeFrontSide = () => {\n setFrontSideUploaded(true)\n trackEventMetamap('upload-complete-idfront')\n }\n\n const onChangeBackSide = () => {\n setBackSideUploaded(true)\n trackEventMetamap('upload-complete-idback')\n }\n\n const onChangePassport = () => {\n setPassportUploaded(true)\n trackEventMetamap('upload-complete-passport')\n }\n\n const onSave = () => {\n trackEventMetamap('send-documents-to-be-validated')\n onClick()\n }\n\n const onClickQR = () => {\n setShowQR(true)\n trackEventMetamap('open-QR-Option-id-document')\n }\n\n const onClickTypeDocument = (type: \"dni\" | \"passport\") => () => {\n if (type !== typeDocumentSelected) {\n if (type === \"passport\") {\n setFrontSideUploaded(false)\n setBackSideUploaded(false)\n }\n if (type === \"dni\") {\n setPassportUploaded(false)\n }\n }\n setTypeDocumentSelected(type)\n trackEventMetamap('change-in-document-type')\n }\n\n return (\n \n \n Documento de identidad\n \n Para crear tu cuenta es necesario validar tu identidad a través de tu ID de país\n \n {\n if (defaultCountry === undefined)\n setDefaultCountry(prevValue => value)\n\n trackEventMetamap('default-change-in-document-country', value)\n }}\n onChange={(value: OptionType) => {\n setCountryDefault(value.value)\n setSelectedCountry(value)\n trackEventMetamap('change-in-document-country')\n }}\n />\n \n {defaultCountry !== undefined &&\n <>\n \n \n Selecciona el tipo de documento\n \n \n Documento de identidad\n \n \n Pasaporte\n \n \n \n\n \n Sube una fotografía {typeDocumentSelected === 'dni' ? \"por ambos lados de tu ID de país\" : \"de tu pasaporte\"}. Es importante que el documento esté vigente y que se vea claramente el nombre completo, el número de identificación y fecha de nacimiento\n \n {showLinkQR && (\n \n Continuar en el telefono\n \n )}\n \n\n \n \n \n \n\n \n \n Confirmar\n \n \n \n \n }\n { }}\n title=''\n closeOnEsc={false}\n closeOnOverlayClick={false}\n showCloseIcon={false}\n >\n \n \n Para continuar desde tu telefono movil, debes escanear el siguiente QR\n \n \n {\n window.location.reload()\n trackEventMetamap('press-reload-modal-id-document')\n }}\n >\n Terminé!\n \n \n \n \n )\n}\n\ntype Props = {\n kyc: boolean\n}\n\nconst ValidateDocuments = ({ kyc }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n\n return (\n <>\n {\n user.wasIdFileUploaded ?\n \n Documento de identidad\n
\n
Documento guardado exitosamente
\n navigate('/home')}\n >\n Volver\n \n
:\n \n \n \n }\n\n \n )\n}\n\nexport default ValidateDocuments\n","import React from \"react\"\nimport ValidateDocuments from \"./validate-documents\"\n\nconst ValidateDocumentsKyc = () => \n\nexport default ValidateDocumentsKyc\n","import React from \"react\"\nimport ValidateDocuments from \"./validate-documents\"\n\nconst ValidateDocumentsWithoutKyc = () => \n\nexport default ValidateDocumentsWithoutKyc\n","import React from \"react\"\n\nconst LivenessIcon = () => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \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 default LivenessIcon\n","type ErrorWithMessage = {\n message: string\n}\n\nconst isErrorWithMessage = (error: unknown): error is ErrorWithMessage => {\n return (\n typeof error === 'object' &&\n error !== null &&\n 'message' in error &&\n typeof (error as Record).message === 'string'\n )\n}\n\nconst toErrorWithMessage = (maybeError: unknown): ErrorWithMessage => {\n if (isErrorWithMessage(maybeError)) return maybeError\n\n try {\n return new Error(JSON.stringify(maybeError))\n } catch {\n // fallback in case there's an error stringifying the maybeError\n // like with circular references for example.\n return new Error(String(maybeError))\n }\n}\n\nconst getErrorMessage = (error: unknown) => {\n return toErrorWithMessage(error).message\n}\n\nexport default getErrorMessage\n","import React, { useState, useEffect, Dispatch, SetStateAction } from 'react'\nimport styled from '@emotion/styled'\nimport VideoRecorder from '@capitaria/react-video-recorder'\nimport { Storage } from \"aws-amplify\"\nimport { Global, css } from \"@emotion/react\"\nimport * as Sentry from \"@sentry/browser\"\nimport { toast } from \"react-toastify\"\nimport { navigate } from \"@reach/router\"\nimport { isFirefox, isMobile } from \"react-device-detect\"\n\nimport CustomModal from '../ui/custom-modal'\nimport { useAuth } from '../../hooks/auth-context'\nimport { updateLivenessFileFlag } from \"../../services/verify-documents\"\nimport IconComplete from '../verify-documents/images/complete'\nimport LivenessIcon from '../verify-documents/images/liveness'\nimport { trackEventMetamap } from '../../helpers/tracker'\nimport getErrorMessage from '../../helpers/get-message-from-error'\n\nimport imageQR from './images/qr-onboarding.png'\nimport CustomButtonV2 from '../ui/custom-button-v2'\n\nconst LoadingMessage = styled.div`\n font-family: Arial;\n`\n\nconst customStyles = {\n}\n\nconst TitleModalCSS = {\n display: \"none\"\n}\n\nconst InstructionVideoCSS = css`\n width: 339px;\n height: 411px;\n flex-shrink: 0;\n background-color: #f4f6f8;\n`\n\nconst VideoContainer = styled.div`\n width: 500px;\n height: 888.88px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background-color: #080F12;\n justify-content: center;\n @media (max-width: 450px) {\n width: 360px;\n height: 640px;\n }\n`\n\nconst acceptButtonStyle = css`\n font-size: 14px;\n padding: 14px 12px;\n font-weight: 500;\n font-family: 'Roboto';\n line-height: 19px;\n margin-top: 10px;\n margin-bottom: 20px;\n width: 182px;\n`\n\nconst cancelButtonStyle = css`\n border: 1px solid #2BA770;\n background: #F7F7F7;\n color: #454F5B;\n width: 182px;\n font-size: 14px;\n padding: 14px 12px;\n font-weight: 500;\n font-family: 'Roboto';\n line-height: 19px;\n margin-top: 10px;\n margin-bottom: 20px;\n`\n\nconst HowToDo = styled.div`\n text-align: center;\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Title = styled.h3`\n width: 308px;\n font-family: \"Open Sans\";\n font-size: 27.65px;\n font-weight: 700;\n line-height: 116%;\n margin: 0 0 10px;\n color: #1f2425;\n text-align: center;\n`\nconst SubTitle = styled.h4`\n width: 254px;\n color: #1F2425;\n text-align: center;\n font-family: \"Open Sans\";\n font-size: 18px;\n font-style: normal;\n font-weight: 700;\n line-height: 24px;\n letter-spacing: -0.28px;\n margin: 0;\n`\nconst Description = styled.p`\n max-width: 490px;\n font-family: \"Open Sans\";\n font-size: 14px;\n line-height: 16px;\n color: #1f2425;\n text-align: center;\n`\n\nconst IconWrapper = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 1rem 0 1.5rem;\n`\n\nconst PermissionDenied = styled.div`\n color: #fff;\n`\n\nconst ContainerWrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n vertical-align: middle;\n padding: 40px 0 50px 0;\n`\n\nconst VideoDemo = styled.video`\n border-radius: 50%;\n width: 180px;\n @media (max-width: 600px) {\n margin-top: 20px;\n }\n @media (max-width: 425px) {\n width: 145.12px;\n height: 145.008px;\n flex-shrink: 0;\n }\n`\n\nconst LinkQR = styled.a`\n font-size: 12px;\n text-decoration: underline;\n line-height: 140%;\n font-weight: bold;\n padding-top: 10px;\n cursor: pointer;\n`\n\nconst WrapperQR = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-bottom: 60px;\n`\n\nconst ContainerTextQR = styled.div`\n font-family: 'Nunito';\n margin: 30px 40px;\n`\n\nconst ContainerImageQR = styled.img`\n width: 300px;\n margin-bottom: 30px;\n`\n\nconst ContainerLiveness = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-top: 50px;\n width: 100%;\n`\n\nconst MessageImportant = styled.p`\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: 0;\n color: #1F2425;\n text-align: center;\n font-family: Open Sans;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 140%;\n max-width: 260px;\n`\nconst MessageImportantModal = styled.p`\n width: 214px;\n color: #1F2425;\n text-align: center;\n font-family: Roboto;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 15px;\n letter-spacing: 0.1px;\n`\n\nconst DescriptionModal = styled.p`\n width: 280px;\n color: #1F2425;\n text-align: center;\n font-family: Roboto;\n font-size: 14px;\n font-style: normal;\n font-weight: 400;\n line-height: 17.5px;\n margin: 5px 0 0;\n`\n\nconst SuccessMessage = styled.p`\n width: 173.039px;\n color: #1F2425;\n text-align: center;\n font-feature-settings: 'clig' off, 'liga' off;\n font-family: Roboto;\n font-size: 10px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px;\n letter-spacing: 0.1px;\n margin-bottom: 50px;\n`\n\nconst ContainerIcon = styled.div`\n margin-top: 45px;\n`\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n @media (max-width: 500px) {\n max-width: calc(100% - 100px);\n }\n`\n\nconst buttonCSS = css`\n margin-top: 1rem;\n width: 260px;\n height: 50px;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonCss = buttonCSS\n\nconst LoadingView = () => Cargando permisos y la camara\n\n\ntype VideoWrapperProps = {\n authorizedVideo: boolean\n loading: boolean\n setRecordedVideo: Dispatch>\n recordedVideo: boolean\n setExtensionValue: Dispatch>\n setVideoBlob: Dispatch\n uploadVideo: () => Promise\n closeVideo: () => void\n uploadingVideo: boolean\n}\n\ntype ActionsVideoProps = {\n showCancelButton: boolean\n closeVideo: () => void\n recordedVideo: boolean\n uploadVideo: () => Promise\n uploadingVideo: boolean\n}\n\ntype DiccionaryTextProps = {\n [key: string]: string\n}\n\nconst translateText = (text: string) => {\n const diccionaryText: DiccionaryTextProps = {\n \"Use another video\": \"Rehacer grabación\",\n }\n return text in diccionaryText ? diccionaryText[text] : text\n}\n\nconst renderActionsVideo = ({\n showCancelButton,\n closeVideo,\n recordedVideo,\n uploadVideo,\n uploadingVideo,\n}: ActionsVideoProps) => {\n\n const listActions = []\n\n if (showCancelButton) {\n listActions.push(\n {\n trackEventMetamap('cancel-video')\n closeVideo()\n }}\n style={cancelButtonStyle}\n >\n Cancelar grabación\n \n )\n }\n\n if (!showCancelButton && recordedVideo) {\n listActions.push(\n {\n trackEventMetamap('upload-video')\n uploadVideo()\n }}\n style={acceptButtonStyle}\n loadingStyle={acceptButtonStyle}\n loading={uploadingVideo}\n >\n Guardar grabación\n \n )\n }\n\n return listActions\n}\n\nconst VideoWrapper = ({\n authorizedVideo,\n loading,\n setRecordedVideo,\n recordedVideo,\n setExtensionValue,\n setVideoBlob,\n uploadVideo,\n closeVideo,\n uploadingVideo,\n}: VideoWrapperProps) => {\n\n const [showCancelButton, setShowCancelButton] = useState(true)\n\n const constraintsVideoConfig: any = {\n facingMode: 'user',\n width: { ideal: 720 },\n height: { ideal: 1280 },\n }\n\n if (!isFirefox) {\n constraintsVideoConfig['aspectRatio'] = 9 / 16\n }\n if (isMobile) {\n constraintsVideoConfig['width']['ideal'] = 1280\n constraintsVideoConfig['height']['ideal'] = 720\n }\n\n return (\n \n {loading ? (\n \n ) : authorizedVideo ? (\n <>\n {/* @ts-ignore */}\n {\n Sentry.captureException(error)\n trackEventMetamap(\"open-video-error\", { \"message-error\": getErrorMessage(error) })\n }}\n isCameraSwitcherDisabled={true}\n onOpenVideoInput={() => { console.error('abierto'); return }}\n onStartRecording={() => {\n trackEventMetamap('start-recording')\n setShowCancelButton(false)\n setRecordedVideo(false)\n }}\n onStopReplaying={() => {\n trackEventMetamap('replay-record')\n setRecordedVideo(false)\n setExtensionValue(\"\")\n setVideoBlob(null)\n setShowCancelButton(true)\n }}\n onStopRecording={() => {\n trackEventMetamap('stop-recording')\n setRecordedVideo(true)\n }}\n onSwitchCamera={() => trackEventMetamap('switch-camera')}\n onCameraOn={() => trackEventMetamap('camera-on')}\n onRecordingComplete={(videoBlob: any) => {\n setRecordedVideo(true)\n trackEventMetamap('recorded-video')\n\n if (Object.prototype.toString.call(videoBlob).slice(8, -1) === \"File\") {\n setShowCancelButton(false)\n const castFileToBlob = new Blob([videoBlob], { type: videoBlob.type })\n setVideoBlob(castFileToBlob)\n } else {\n setVideoBlob(videoBlob)\n }\n setExtensionValue(videoBlob.type)\n }}\n renderLoadingView={() => }\n timeLimit={12000} />\n {renderActionsVideo({ showCancelButton, closeVideo, recordedVideo, uploadVideo, uploadingVideo })}\n \n ) :\n <>\n Se requiere de permisos para acceder a la camara\n {\n trackEventMetamap('close-denied-video')\n closeVideo()\n }}\n style={cancelButtonStyle}\n >\n Cerrar\n \n \n }\n \n )\n}\n\ntype VideoProps = {\n kyc: boolean\n closeModal: () => void\n}\n\nconst Video = ({ kyc, closeModal }: VideoProps) => {\n const [showVideo, setShowVideo] = useState(false)\n const [loading, setLoading] = useState(true)\n const [uploadingVideo, setUploadingVideo] = useState(false)\n const [authorizedVideo, setAuthorizedVideo] = useState(false)\n const [showQR, setShowQR] = useState(false)\n const [recordedVideo, setRecordedVideo] = useState(false)\n const [videoBlob, setVideoBlob] = useState(null)\n const [extensionValue, setExtensionValue] = useState(\"\")\n const [showLinkQR, setShowLinkQR] = useState(false)\n const [waitingStatus, setWaitingStatus] = useState(true)\n\n const { state } = useAuth()\n const user = state.user as User\n\n type FileTypes = {\n [key: string]: string\n }\n\n const fileTypes: FileTypes = {\n 'video/quicktime': '.mov',\n 'video/webm': '.webm',\n 'video/xmatroska': '.mkv',\n }\n useEffect(() => {\n const mediaQuery = window.matchMedia(\"(min-width: 1025px)\")\n\n const handleMediaChange = (e: any) => {\n setShowLinkQR(e.matches)\n }\n\n handleMediaChange(mediaQuery)\n\n mediaQuery.addEventListener(\"change\", handleMediaChange)\n\n setTimeout(() => {\n setWaitingStatus(false)\n }, 5000)\n\n return () => {\n mediaQuery.removeEventListener(\"change\", handleMediaChange)\n }\n }, [])\n\n useEffect(() => {\n const getPermission = async () => {\n try {\n if (navigator && navigator.permissions && navigator.permissions.query) {\n // @ts-ignore\n const permissionStatus = await navigator.permissions.query({ 'name': 'camera' })\n setLoading(false)\n setAuthorizedVideo(permissionStatus.state !== 'denied')\n\n trackEventMetamap(\n \"permission-video\",\n {\n // @ts-ignore\n name: permissionStatus.name,\n state: permissionStatus.state,\n },\n )\n } else {\n setAuthorizedVideo(true)\n setLoading(false)\n trackEventMetamap(\"whitout-request-permission-video\")\n }\n\n } catch (error) {\n console.error(error)\n trackEventMetamap(\n \"error-permission-video\",\n {\n \"message-error\": getErrorMessage(error),\n },\n )\n }\n }\n\n getPermission()\n }, [])\n\n const uploadVideo = async () => {\n try {\n setUploadingVideo(true)\n const extension = !fileTypes.hasOwnProperty(extensionValue) ? '.mp4' : fileTypes[extensionValue]\n const fileName = \"liveness\"\n await Storage.put(`${fileName}${extension}`, videoBlob, {\n level: \"private\",\n contentType: extensionValue,\n progressCallback: (progress: any) => {\n console.log(\n Math.round((progress.loaded / progress.total) * 100)\n )\n },\n })\n await uploadComplete()\n setUploadingVideo(false)\n } catch (error) {\n console.error(error)\n Sentry.captureException(error)\n trackEventMetamap(\n \"error-uploaded-video\",\n {\n \"message-error\": getErrorMessage(error),\n },\n )\n }\n }\n\n const closeVideo = () => setShowVideo(false)\n\n const uploadComplete = async () => {\n try {\n const result = await updateLivenessFileFlag(user, kyc)\n\n if (result.user) {\n state.setUser(result.user)\n }\n\n closeVideo()\n if (!kyc) {\n closeModal()\n } else {\n if (result.user?.kycNextStep) {\n navigate(`/${result.user.kycNextStep}`)\n }\n }\n } catch (error) {\n toast.error(\n \"No se pudo subir el video. Inténtelo nuevamente más tarde.\"\n )\n Sentry.captureException(error)\n trackEventMetamap(\n \"error-uploaded-video\",\n {\n \"message-error\": getErrorMessage(error),\n },\n )\n }\n }\n\n const onClickQR = () => {\n setShowQR(true)\n trackEventMetamap('open-QR-Option-liveness')\n }\n\n return (\n <>\n \n \n Enciende tu cámara para poder validar tu identidad\n \n Es importante que no uses ningún accesorio que pueda\n dificultar tu validación de rostro\n \n \n \n Enciende la cámara y mueve tu cabeza como este ejemplo para validar que eres una persona real\n \n setShowVideo(true)}\n >\n Encender cámara\n \n {showLinkQR && (\n \n Continuar en el telefono\n \n )}\n \n \n \n \n Para continuar desde tu telefono movil, debes escanear el siguiente QR\n \n \n {\n window.location.reload()\n trackEventMetamap('press-reload-liveness')\n }}\n >\n Terminé!\n \n \n \n \n {showVideo && !user.wasLivenessFileUploaded && (\n \n \n \n )}\n \n )\n}\n\ntype Props = {\n kyc: boolean\n}\n\nconst ValidateLiveness = ({ kyc }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n const [showVideoModal, setShowVideoModal] = useState(false)\n\n useEffect(() => {\n const getPermission = async () => {\n try {\n if (navigator && navigator.permissions && navigator.permissions.query) {\n // @ts-ignore\n const permissionStatus = await navigator.permissions.query({ 'name': 'camera' })\n\n if (permissionStatus.state !== 'denied') {\n const medias = await navigator.mediaDevices.getUserMedia({\n video: {\n facingMode: 'user',\n }\n })\n if (medias.active) {\n const listTracks = medias.getTracks()\n listTracks.forEach(track => track.stop())\n }\n }\n\n trackEventMetamap(\n \"permission-video\",\n {\n // @ts-ignore\n name: permissionStatus.name,\n state: permissionStatus.state,\n },\n )\n } else {\n trackEventMetamap(\"whitout-request-permission-video\")\n }\n\n } catch (error) {\n console.error(error)\n trackEventMetamap(\n \"error-permission-video\",\n {\n \"message-error\": getErrorMessage(error),\n },\n )\n }\n }\n\n getPermission()\n }, [])\n\n const closeModal = () => setShowVideoModal(false)\n\n return (\n \n \n \n Verificación Visual\n \n Por temas de seguridad debes realizar una validación biométrica para asegurarnos que realmente eres tú y asi proteger tu inversión\n \n {user.wasLivenessFileUploaded ? (\n <>\n \n Grabación enviada exitosamente\n navigate('/home')}\n >\n Volver\n \n \n ) : (\n <>\n \n Es importante que no uses ningún accesorio que pueda dificultar tu validación de rostro\n \n \n \n \n setShowVideoModal(true)}\n >\n Verificar identidad\n \n \n )}\n \n {showVideoModal && (\n \n \n\n )\n}\n\nexport default ValidateLiveness\n","import React from 'react'\nimport ValidateLiveness from './validate-liveness'\n\nconst ValidateLivenessWithoutKyc = () => \n\nexport default ValidateLivenessWithoutKyc\n","import React from 'react'\nimport ValidateLiveness from './validate-liveness'\n\nconst ValidateLivenessKyc = () => \n\nexport default ValidateLivenessKyc\n","const formatAmount = (\n amount: string,\n thousand: string = '.',\n decimals: string = ',',\n removeDecimals: boolean = false\n) => {\n const parseAmount = parseFloat(amount)\n\n if (!isNaN(parseAmount)) {\n const splitedAmount = amount.split(/[,.]/)\n let valueFormat = parseInt(splitedAmount[0], 10).toLocaleString()\n\n if (thousand === '.') {\n valueFormat = valueFormat.replace(/,/g, '.')\n }\n\n let value = valueFormat\n\n if (!removeDecimals && splitedAmount[1]) {\n value = `${valueFormat}${decimals}${splitedAmount[1]}`\n }\n\n return value\n }\n\n return amount\n}\n\nexport {\n formatAmount\n}\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { formatAmount } from \"../../helpers/currency\"\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n padding: 3rem;\n @media (max-width: 812px) {\n padding: 3rem 0 5rem;\n width: 100%;\n }\n`\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 1rem 2rem;\n border-radius: 5px;\n box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.15);\n width: 560px;\n font-size: 14px;\n line-height: 140%;\n @media (max-width: 560px) {\n width: 100%;\n max-width: 560px;\n padding: 1rem 0;\n }\n`\n\nconst Title = styled.h4`\n font-size: 16px;\n line-height: 140%;\n text-align: center;\n color: #1f2425;\n margin: 0.25rem 0 1.5rem;\n`\n\nconst Table = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n`\n\nconst Row = styled.div`\n display: flex;\n &:first-of-type {\n font-weight: 600;\n align-items: center;\n @media (max-width: 560px) {\n display: none;\n }\n }\n @media (max-width: 560px) {\n flex-direction: column;\n margin-bottom: 20px;\n width: 100%;\n }\n @media (min-width: 561px) {\n &:nth-of-type(odd) {\n background-color: #e5e5e5;\n }\n }\n`\n\nconst Cell = styled.div`\n text-align: center;\n padding: 5px 0;\n @media (max-width: 560px) {\n &:nth-of-type(odd) {\n background-color: #e5e5e5;\n }\n }\n`\n\nconst Name = styled(Cell)`\n min-width: 100px;\n`\nconst Currency = styled(Cell)`\n min-width: 70px;\n`\nconst Deposit = styled(Cell)`\n min-width: 130px;\n`\nconst Ransom = styled(Cell)`\n min-width: 130px;\n`\n\nconst TextMobile = styled.div`\n display: none;\n font-size: 10px;\n font-weight: 600;\n @media (max-width: 560px) {\n display: block;\n }\n`\n\nconst renderSubAccount = (subaccount: SubAccount, idx: number) => {\n const currency = subaccount.currency.toLowerCase()\n\n const deposit = subaccount[`total_deposit_${currency}`]\n\n const ransom = subaccount[`total_ransom_${currency}`]\n\n return (\n \n \n {subaccount.name}\n Nombre\n \n \n {subaccount.currency}\n Moneda\n \n \n {formatAmount(deposit, \".\", \",\", currency === \"clp\")}\n Depositos\n \n \n {formatAmount(ransom, \".\", \",\", currency === \"clp\")}\n Rescates\n \n \n )\n}\n\nconst SubAccounts = ({ totalSubAccounts }: SubAccounts) => (\n \n \n Subcuentas\n \n \n Nombre\n Moneda\n Total Depositos\n Total Rescates\n \n {totalSubAccounts.map(renderSubAccount)}\n
\n
\n
\n)\n\nexport default SubAccounts\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { formatAmount } from \"../../helpers/currency\"\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n`\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 1rem 2rem;\n border-radius: 5px;\n box-shadow: 0px 15px 30px rgba(0, 0, 0, 0.15);\n width: 560px;\n font-size: 14px;\n line-height: 140%;\n margin-bottom: 50px;\n @media (max-width: 560px) {\n width: 100%;\n max-width: 560px;\n padding: 1rem 0;\n }\n`\n\nconst Title = styled.h4`\n font-size: 16px;\n line-height: 140%;\n text-align: center;\n color: #1f2425;\n margin: 0.25rem 0 1.5rem;\n`\n\nconst Table = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n`\n\nconst Row = styled.div`\n display: flex;\n &:first-of-type {\n font-weight: 600;\n align-items: center;\n @media (max-width: 560px) {\n display: none;\n }\n }\n @media (max-width: 560px) {\n flex-direction: column;\n margin-bottom: 20px;\n width: 100%;\n }\n @media (min-width: 561px) {\n &:nth-of-type(odd) {\n background-color: #e5e5e5;\n }\n }\n`\n\nconst Cell = styled.div`\n text-align: center;\n padding: 5px 0;\n @media (max-width: 560px) {\n &:nth-of-type(odd) {\n background-color: #e5e5e5;\n }\n }\n`\n\nconst DateText = styled(Cell)`\n min-width: 100px;\n`\nconst Currency = styled(Cell)`\n min-width: 70px;\n`\nconst SubAccount = styled(Cell)`\n min-width: 130px;\n`\nconst Amount = styled(Cell)`\n min-width: 130px;\n`\nconst Type = styled(Cell)`\n min-width: 100px;\n`\n\nconst TextMobile = styled.div`\n display: none;\n font-size: 10px;\n font-weight: 600;\n @media (max-width: 560px) {\n display: block;\n }\n`\n\nconst sortTransactions = (\n { date: dateA }: Transaction,\n { date: dateB }: Transaction\n) => {\n const [dayA, monthA, yearA] = dateA.split(\"-\")\n const [dayB, monthB, yearB] = dateB.split(\"-\")\n const timeB: Date = new Date(`${yearB}-${monthB}-${dayB}`)\n const timeA: Date = new Date(`${yearA}-${monthA}-${dayA}`)\n\n return timeB.getTime() - timeA.getTime()\n}\n\nconst TransactionList = ({ transactionsList }: TransactionsList) => {\n transactionsList.sort(sortTransactions)\n\n return (\n \n \n Transacciones\n \n \n Fecha\n Subcuenta\n Moneda\n Tipo\n Monto\n \n {transactionsList.map((transaction: Transaction, idx: number) => (\n \n \n {transaction.date}\n Fecha\n \n \n {transaction.subaccount}\n Subcuenta\n \n \n {transaction.currency}\n Moneda\n \n \n {transaction.transaction_type}\n Tipo\n \n \n {formatAmount(\n transaction.amount,\n \".\",\n \",\",\n transaction.currency === \"CLP\"\n )}\n Monto\n \n \n ))}\n
\n
\n
\n )\n}\n\nexport default TransactionList\n","import React, { useEffect, useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport * as Sentry from \"@sentry/browser\"\nimport { API, graphqlOperation } from \"aws-amplify\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport { getSubaccountsAndTransactions } from \"../../graphql/queries\"\n\nimport AlertBanner from \"../ui/alert-banner\"\nimport SubAccounts from \"./subaccounts\"\nimport TransactionList from \"./transactions-list\"\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 20px;\n`\nconst Alert = styled.p`\n font-size: 16px;\n line-height: 22px;\n`\n\nconst StyledLink = styled.span`\n color: #363f41;\n font-weight: bold;\n cursor: pointer;\n`\n\ntype Props = {\n goDeposit: () => void\n}\n\nconst Transactions = ({ goDeposit }: Props) => {\n const { state } = useAuth()\n const user = state.user as User\n\n const [subaccountsAndTransactions, setSubaccountsAndTransactions] = useState<\n SubaccountsAndTransactions\n >({} as SubaccountsAndTransactions)\n\n useEffect(() => {\n const callInfoAccount = async () => {\n const { cognitoId, givenName, familyName, email, customerType } = user\n\n try {\n const response = await API.graphql(\n graphqlOperation(getSubaccountsAndTransactions, {\n cognitoId: user.cognitoId,\n })\n )\n\n setSubaccountsAndTransactions(\n // @ts-ignore\n JSON.parse(response.data.getSubaccountsAndTransactions)\n )\n } catch (error) {\n Sentry.setExtra(\"cognitoID\", {\n cognitoId,\n givenName,\n familyName,\n email,\n customerType,\n })\n Sentry.captureException(\n \"Error al obtener las subcuentas y transacciones de un usuario\"\n )\n }\n }\n\n callInfoAccount()\n }, [user])\n\n let message = (\n \n Valores actualizados cada 24 horas, solo se muestran las últimas 30\n transacciones\n \n )\n\n const { subaccounts = [], transactions = [] } = subaccountsAndTransactions\n\n if (subaccounts.length === 0) {\n message = (\n \n Aún no tienes transacciones, para depositar{\" \"}\n pincha aquí. La lista de\n transacciones será actualizada en 24 horas\n \n )\n }\n return (\n \n \n {message}\n \n {subaccounts.length ? (\n <>\n \n \n \n ) : null}\n \n )\n}\n\nexport default Transactions\n","export default __webpack_public_path__ + \"static/media/withdraw.cf0d8a7c.svg\";","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport withdraw from \"../../../images/withdraw.svg\"\n\nconst Withdraw = styled.div`\n background-image: url(${withdraw});\n background-repeat: no-repeat;\n background-size: cover;\n width: 93px;\n height: 65px;\n`\n\nconst WithdrawIcon = () => \n\nexport default WithdrawIcon\n","import React from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport WithdrawIcon from \"../ui/images/withdraw-icon\"\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n padding: 3rem;\n @media (max-width: 812px) {\n padding: 3rem 1.5rem 5rem;\n }\n`\n\nconst Content = styled.div`\n background-color: #ffffff;\n padding: 1rem 2rem;\n border-radius: 5px;\n border: 1px solid #e0e0e0;\n max-width: 440px;\n font-size: 14px;\n line-height: 140%;\n`\n\nconst Logo = styled.div`\n display: flex;\n justify-content: center;\n`\n\nconst Title = styled.h4`\n font-size: 16px;\n line-height: 140%;\n text-align: center;\n color: #1f2425;\n margin: 0.25rem 0 1.5rem;\n`\n\nconst Withdraw = () => (\n \n \n \n \n \n ¿Cómo hacer un retiro?\n

\n Para realizar un retiro, escríbenos a{\" \"}\n rescates@capitaria.com, con la siguiente información:\n

\n\n
    \n
  • Usuario de MT5
  • \n
  • Nombre
  • \n
  • RUT
  • \n
  • Datos cuenta Corriente
  • \n
  • Monto a rescatar
  • \n
\n\n

\n *Importante: El email debe ser enviado desde el mismo\n correo con el que se creó la cuenta.\n
\n Más del 90% de los retiros se realizan en menos de 4 horas.\n
\n Lo máximo que nos podemos demorar son 2 días hábiles.\n
\n

\n
\n
\n)\n\nexport default Withdraw\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\n\nimport { trackEvent } from \"../../helpers/tracker\"\n\nimport { useAuth } from \"../../hooks/auth-context\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport PageLayout from \"../page-layout\"\n\nimport Transactions from \"./transactions\"\nimport UserCountryDepositOnboarding from \"./user-country-deposit-onboarding\"\nimport Withdraw from \"./withdraw\"\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst Tabs = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n padding-top: 5rem;\n background-color: #ffffff;\n @media (max-width: 812px) {\n background-color: transparent;\n }\n`\n\nconst Tab = styled.div`\n text-align: center;\n color: #1f2425;\n width: 217px;\n padding-bottom: 0.5rem;\n cursor: pointer;\n`\n\nconst activeTab = {\n fontWeight: 600,\n borderBottom: \"4px solid #30ab76\",\n}\n\nconst tabsList = {\n deposit: \"Depositar fondos\",\n withdraw: \"Retirar fondos\",\n transactions: \"Transacciones\",\n}\n\nconst DepositPage = () => {\n const [showSection, setShowSection] = useState(\"deposit\")\n const { state } = useAuth()\n\n const onClickTab = (tab: string) => () => {\n trackEvent(`deposit:tab:${tab}`)\n setShowSection(tab)\n }\n\n const goDeposit = () => setShowSection(\"deposit\")\n\n if (state.userIsLoading) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n {Object.entries(tabsList).map(([key, title], idx: number) => (\n \n {title}\n \n ))}\n \n {showSection === \"deposit\" && }\n {showSection === \"withdraw\" && }\n {showSection === \"transactions\" && }\n \n )\n}\n\nexport default DepositPage\n","import { API, graphqlOperation } from \"aws-amplify\"\nimport * as Sentry from \"@sentry/browser\"\nimport { toast } from \"react-toastify\"\n\nimport {\n createPreferenceMercadoPago,\n getPaymentMercadoPago,\n} from \"../graphql/mutations\"\n\nimport { trackEvent } from \"../helpers/tracker\"\n\nconst createPreference = async (\n user: User,\n amount: number\n): Promise => {\n trackEvent(\"mercadopago:create-preference\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(createPreferenceMercadoPago, {\n id: user.id,\n amount,\n salesforceId: user.salesforceId,\n })\n )\n\n // @ts-ignore\n const preference = response.data.createPreferenceMercadoPago\n console.log(\"🚀 ~ response:\", response)\n console.log(\"preference\", preference)\n return preference.preference_id\n } catch (error) {\n trackEvent(\"mercadopago:create-preference:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrio un error inesperado, por favor vuelve a intentarlo mas tarde\"\n )\n }\n\n return null\n}\n\ntype PaymentType = {\n amount: number\n payment_date: string\n payment_id: string\n}\n\nconst getPayment = async (\n paymentId: string,\n user: User\n): Promise => {\n trackEvent(\"mercadopago:get-payment\")\n\n try {\n const response = await API.graphql(\n graphqlOperation(getPaymentMercadoPago, {\n id: user.id,\n paymentId,\n salesforceId: user.salesforceId,\n })\n )\n\n // @ts-ignore\n const payment = response.data.getPaymentMercadoPago\n console.log(\"🚀 ~ response:\", response)\n console.log(\"payment\", payment)\n return payment\n } catch (error) {\n trackEvent(\"mercadopago:get-payment:error:generic\")\n Sentry.setExtra(\"error\", JSON.stringify(error))\n Sentry.captureException(error)\n toast.error(\n \"Ocurrio un error inesperado, por favor vuelve a intentarlo mas tarde\"\n )\n }\n return null\n}\n\nconst exportParams = {\n createPreference,\n getPayment,\n}\n\nexport default exportParams\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { initMercadoPago, Wallet } from \"@mercadopago/sdk-react\"\nimport { navigate } from \"@reach/router\"\n\nimport PageLayout from \"../page-layout\"\nimport { useAuth } from \"../../hooks/auth-context\"\nimport MP from \"../../services/mercadopago\"\n\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\nimport mercadoPagoLogo from \"../../images/mercadopago-logo.svg\"\nimport ButtonCustomV2 from \"../ui/custom-button-v2\"\nimport { css } from \"@emotion/react\"\nimport { useFeatureIsOn } from \"@growthbook/growthbook-react\"\n\n// PRODUCTION\ninitMercadoPago('APP_USR-f7f6ddd9-b8a2-4ee2-bb69-c8fe2510cb86')\n\nconst LoadingWrapper = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 5rem;\n`\n\nconst Layout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`\n\nconst Container = styled.div`\n min-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n > div {\n max-width: 414px;\n }\n`\n\nconst ContainerInput = styled.div`\n position: relative;\n display: table;\n border-collapse: separate;\n width: 100%;\n`\n\nconst WrapperInput = styled.div`\n display: flex;\n justify-content: center;\n width: 100%;\n`\n\nconst PrefixSpan = styled.span`\n padding: 6px 12px;\n font-size: 14px;\n font-weight: 400;\n line-height: 1;\n color: black;\n text-align: center;\n border: 1px solid #919eab;\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n display: table-cell;\n border-right: 0;\n border-radius: 8px 0px 0px 8px;\n`\n\nconst InputDeposit = styled.input`\n border: 1px solid #919eab;\n border-radius: 8px;\n width: 358px;\n height: 56px;\n border-radius: 0px 8px 8px 0px;\n border-left: none;\n`\n\nconst ContainerButton = styled(WrapperInput)`\n margin-top: 15px;\n`\n\nconst styleButton = css`\n background-color: #2BA770;\n color: white;\n border: none;\n border-radius: 8px;\n width: 100%;\n height: 50px;\n`\n\nconst disabledStyleButton = css`\n color: white;\n border: none;\n border-radius: 8px;\n width: 100%;\n height: 50px;\n`\n\nconst DepositAfter = styled.a`\n cursor: pointer;\n margin-top: 10px;\n text-decoration: underline;\n`\n\nconst LabelPayment = styled.div`\n background-color: #DDF2FA;\n width: 600px;\n color: black;\n padding-top: 17px;\n padding-bottom: 17px;\n font-size: 20px;\n line-height: 26px;\n display: flex;\n justify-content: center;\n`\n\nconst ContainerUpdatedCreditCard = styled.div`\n min-width: 600px;\n background-color: white;\n border-radius: 5px;\n padding: 25px;\n`\n\ntype Props = {\n kyc?: boolean\n}\n\nconst MercadoPagoView = ({ kyc = false }: Props) => {\n const { state } = useAuth()\n const { user } = state\n const [preferenceId, setPreferenceId] = useState(null)\n const [loadingMP, setLoadingMP] = useState(false)\n const [amount, setAmount] = useState(0)\n\n const isMercadoPagoEnabled = useFeatureIsOn(\"payment-mercadopago-chile\")\n\n if (!user) {\n return (\n \n \n \n )\n }\n\n const createPreference = async (user: User, amount: number) => {\n if (!isMercadoPagoEnabled) return\n\n setLoadingMP(true)\n\n if (loadingMP) return\n\n const preference = await MP.createPreference(user, amount)\n if (!preference) {\n setLoadingMP(false)\n return\n }\n setPreferenceId(preference)\n }\n\n const onBack = () => {\n setPreferenceId(null)\n navigate(`/${user.kycNextStep}`)\n }\n\n return (\n \n \n \"Mercado\n {!preferenceId && (\n \n {isMercadoPagoEnabled && (\n <>\n \n \n CLP\n setAmount(parseInt(e.target.value, 10))}\n />\n \n \n \n createPreference(user, amount)}\n >\n Depositar\n \n \n \n )}\n {!isMercadoPagoEnabled && (\n \n Estamos actualizando para que tengas una mejor experiencia con Capitaria\n \n )}\n \n )}\n {preferenceId && isMercadoPagoEnabled && (\n <>\n {loadingMP && }\n {!loadingMP && (\n \n Monto a depositar: ${amount}\n \n )}\n { setLoadingMP(false) }}\n />\n \n )}\n\n {kyc && {\"<-\"} Volver atras}\n \n \n )\n}\n\nexport default MercadoPagoView\n","import React from 'react'\nimport MercadoPagoView from './mercadopago'\n\nconst MercadoPagoKyc = () => \n\nexport default MercadoPagoKyc\n","import React from 'react'\nimport MercadoPagoView from './mercadopago'\n\nconst MercadoPagoWithoutKyc = () => \n\nexport default MercadoPagoWithoutKyc\n","import React, { useEffect, useState } from 'react'\n\nimport styled from \"@emotion/styled\"\nimport { css } from \"@emotion/react\"\nimport { useLocation, useNavigate } from '@reach/router'\n\nimport KYC from \"../../services/kyc\"\nimport { useAuth } from '../../hooks/auth-context'\nimport MP from \"../../services/mercadopago\"\n\nimport CustomButtonV2 from \"../ui/custom-button-v2\"\nimport LoadingScreenIcon from \"../ui/images/loading-screen\"\n\nimport successGif from \"../../images/success.gif\"\n\n\nconst ContainerStatus = styled.div`\n display: flex;\n justify-content: space-around;\n min-width: 600px;\n`\n\nconst ContainerNuvei = styled.div`\n max-width: 600px;\n background-color: white;\n border: 1px solid #c4cdd5;\n border-radius: 5px;\n padding: 25px;\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n`\n\nconst RowDetail = styled.div`\n display: flex;\n align-self: center;\n &>div:first-of-type {\n text-align: right;\n padding-right: 5px;\n }\n &>div:last-of-type {\n text-align: left;\n padding-left: 5px;\n }\n width: 100%;\n`\n\nconst CellDetail = styled.div`\n width: 100%;\n`\n\nconst DivWrapper = styled.div`\n text-align: center;\n margin: 0 auto;\n max-width: 556px;\n width: 100%;\n &.loading {\n display: flex;\n justify-content: center;\n }\n & * {\n font-family: \"Open Sans\";\n }\n`\n\nconst Title = styled.h1`\n font-family: \"Roboto\";\n color: black;\n font-size: 24px;\n font-weight: 400;\n line-height: 30px;\n margin-bottom: 30px;\n margin-top: 0px;\n text-align: center;\n`\n\nconst Info = styled.div`\n font-family: \"Roboto\";\n font-weight: 400;\n font-size: 14px;\n line-height: 18px;\n color: #080F12;\n text-align: center;\n`\n\nconst buttonStyle = css`\n margin-top: 1rem;\n width: 298px;\n height: 50px;\n margin: 0 auto;\n @media (max-width: 425px) {\n width: 213px;\n font-size: 18px;\n line-height: 138.889%;\n text-align: center;\n }\n`\n\nconst loadingButtonStyle = buttonStyle\n\ntype ApprovedComponentProps = {\n date: string\n amount: string\n currency: string\n paymentId: string\n email: string\n}\n\nconst ApprovedComponent = ({\n date,\n amount,\n currency,\n paymentId,\n email,\n}: ApprovedComponentProps) => {\n return (\n <>\n \"Depósito\n Depósito Exitoso\n \n \n N° Transacción: \n {paymentId}\n \n \n Fecha: \n {date}\n \n \n {currency} $: \n {amount}\n \n \n \n

\n Recuerde que se ha enviado automáticamente un comprobante de pago\n a su email {email}\n

\n

\n Importante: El monto depositado puede que demore\n un tiempo en verse reflejado en la plataforma. Ante cualquier duda\n puedes comunicarte con tu ejecutivo\n

\n
\n \n )\n}\n\ntype ErrorWithCreditCardProps = {\n paymentId: string\n}\n\nconst ErrorWithCreditCard = ({\n paymentId,\n}: ErrorWithCreditCardProps) => {\n return (\n <>\n Ocurrio un error al procesar el deposito\n \n \n ID de la Transacción: \n {paymentId}\n \n \n Hubo un error al procesar el pago.\n \n \n Consulta con tu ejecutivo para obtener mayor información\n \n \n \n )\n}\n\nconst PendingView = () => (\n <>\n Pago en progreso\n \n \n Si ya realizaste tu Pago, debes esperar unos minutos para que nos informe Mercado\n Pago.\n \n \n Te llegara un correo con la información correspondiente.\n \n \n \n)\n\ntype Props = {\n status?: string | null\n children?: React.ReactNode\n}\n\ntype CheckPendingProps = {\n status?: string | null\n date: string\n amount: number\n currency: string\n paymentId: string | null\n email: string\n pending: boolean\n isLoading: boolean\n onSubmit: () => void\n}\n\nconst CheckPending = ({\n status,\n date,\n amount,\n currency,\n paymentId,\n email,\n pending,\n isLoading,\n onSubmit,\n}: CheckPendingProps) => {\n\n let componentView = null\n\n if (status === 'success') {\n if (pending) {\n componentView = \n } else {\n componentView = (\n \n )\n }\n }\n\n if (status === 'pending') {\n componentView = \n }\n\n if (status === 'failure') {\n componentView = \n }\n\n return (\n <>\n {componentView}\n \n Continuar\n \n \n )\n}\n\nconst MercadoPagoBack = ({ status = null }: Props) => {\n const { state: { user, setUser } } = useAuth()\n const location = useLocation() // Obtiene la ubicación actual\n const navigate = useNavigate()\n const queryParams = new URLSearchParams(location.search) // Extrae los parámetros de consulta\n const paymentId = queryParams.get('payment_id') // Obtiene el valor de payment_id\n\n const [isLoading, setIsLoading] = useState(false)\n const [loadingView, setLoadingView] = useState(false)\n const [amount, setAmount] = useState(0)\n const [date, setDate] = useState('')\n const [pending, setPending] = useState(false)\n\n // Llamada directa a getStatus si paymentId está disponible\n useEffect(() => {\n const fetchStatus = async () => {\n setLoadingView(true)\n if (paymentId && user) {\n try {\n console.log(\"paymentId: \", paymentId)\n const payment = await MP.getPayment(paymentId, user)\n console.log(\"payment\", payment)\n setAmount(payment?.amount || 0)\n setDate(payment?.payment_date || '')\n if (payment == null) {\n setPending(true)\n }\n // console.log('Estado obtenido:', response)\n setLoadingView(false)\n } catch (error) {\n console.error('Error obteniendo el estado:', error)\n }\n }\n }\n\n fetchStatus()\n }, [paymentId, user])\n\n const onSubmit = async () => {\n if (!user) return\n\n setIsLoading(true)\n const result = await KYC.updateDeposit(user)\n setUser(result.user)\n setIsLoading(false)\n navigate(`/${result.user.kycNextStep}`)\n }\n\n const currency = \"CLP\"\n const email = user?.email || \"\"\n\n return (\n \n \n {loadingView && }\n {!loadingView && }\n\n \n \n )\n}\n\nexport default MercadoPagoBack\n","import React, {\n useState,\n useEffect,\n FunctionComponent,\n useCallback,\n} from \"react\"\nimport {\n useLocation,\n Router,\n RouteComponentProps,\n globalHistory,\n navigate,\n} from \"@reach/router\"\n\nimport { toast } from \"react-toastify\"\nimport \"react-toastify/dist/ReactToastify.css\"\nimport ReactGA from \"react-ga\"\n\nimport { useAuth } from \"./hooks/auth-context\"\n\nimport Login from \"./components/login/login\"\nimport ForgotPassword from \"./components/forgot-password/forgot-password\"\nimport Logout from \"./components/login/logout\"\n\nimport Layout from \"./components/layout\"\nimport PersonalInfo from \"./components/kyc/personal-info\"\nimport RiskProfile from \"./components/kyc/risk-profile\"\nimport KnowledgeProfile from \"./components/kyc/knowledge-profile\"\nimport Terms from \"./components/kyc/terms\"\n\nimport HelpPage from \"./components/help/help-page\"\nimport ValidateBankCard from \"./components/verify-documents/validate-bank-card\"\n\nimport \"normalize.css\"\nimport \"./app.css\"\nimport { QueryStringProvider, useQueryString } from \"@capitaria/capitaria-utms\"\nimport { trackPage, trackUserId, trackEvent } from \"./helpers/tracker\"\nimport { removeLastSlash } from \"./helpers/clean-pathname\"\nimport ThankYou from \"./components/typ/typ\"\nimport SignUpV2 from \"./components/sign-up/sign-up-v2\"\nimport ValidateEmailV2 from \"./components/sign-up/validate-email-v2\"\nimport CouserSelection from \"./components/course-selection/course-selection\"\nimport Deposit from \"./components/sign-up/deposit\"\nimport ValidationOnHold from \"./components/verify-documents/validation-on-hold\"\nimport DownloadMt5 from \"./components/sign-up/download-mt5\"\nimport BadTraderProfile from \"./components/home/bad-trader-profile-v2\"\nimport HomeView from \"./components/home/home-view\"\nimport ValidatePhoneKyc from \"./components/verify-documents-v2/validate-phone-kyc\"\nimport ValidatePhoneWithoutKyc from \"./components/verify-documents-v2/validate-phone-without-kyc\"\nimport listSteps from \"./helpers/list-steps\"\nimport ValidateDocumentsKyc from \"./components/verify-documents/validate-documents-kyc\"\nimport ValidateDocumentsWithoutKyc from \"./components/verify-documents/validate-documents-without-kyc\"\nimport ValidateLivenessWithoutKyc from \"./components/metamap/validate-liveness-without-kyc\"\nimport ValidateLivenessKyc from \"./components/metamap/validate-liveness-kyc\"\nimport DepositPage from \"./components/deposit/deposit-page\"\nimport MercadoPagoKyc from \"./components/mercadopago/mercado-pago-with-kyc\"\nimport MercadoPagoWithoutKyc from \"./components/mercadopago/mercado-pago-without-kyc\"\nimport MercadoPagoBack from \"./components/mercadopago/mercado-pago-back\"\n\ntype Props = { component: FunctionComponent } & RouteComponentProps\n\n\nglobalHistory.listen(({ location }) => {\n const pathname = removeLastSlash(location.pathname)\n ReactGA.pageview(pathname + location.search)\n})\n\nconst Route: FunctionComponent = ({ component: Component, ...rest }) => {\n const location = useLocation()\n const [trackPageView, setTrackPageView] = useState(false)\n const { parsedQueryString } = useQueryString()\n\n if (!trackPageView && parsedQueryString.mc_origen) {\n const pathname = removeLastSlash(location.pathname)\n trackPage(pathname, parsedQueryString.mc_origen, true)\n\n setTrackPageView(true)\n }\n\n useEffect(() => {\n const redirect = () => {\n if (location.pathname === \"/\") {\n window.location.href = `/login${location.search}`\n }\n }\n\n redirect()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n return \n}\n\nconst PrivateRoute: FunctionComponent = ({\n component: Component,\n ...rest\n}) => {\n const { state } = useAuth()\n const user = state.user as User\n const location = useLocation()\n const [tracked, setTracked] = useState(false)\n\n const trackUserPage = useCallback(async () => {\n const { pathname } = location\n const pathnameWithoutSlash = removeLastSlash(pathname)\n if (!tracked) {\n trackUserId(user.cognitoId)\n trackPage(pathnameWithoutSlash)\n setTracked(true)\n }\n\n if (user.kycNextStep !== \"home\") {\n const mercadoPagoPages = [\n \"mercadopago/success\",\n \"mercadopago/failure\",\n \"mercadopago/pending\",\n ]\n\n if (user.kycNextStep === \"kyc/deposit\") {\n const authorizedDepositPage = [\n \"kyc/deposit\",\n \"kyc/deposit/mercadopago\",\n ...mercadoPagoPages,\n ]\n if (!authorizedDepositPage.includes(location.pathname.slice(1))) {\n navigate(`/${user.kycNextStep}`)\n }\n\n } else {\n if (location.pathname !== `/${user.kycNextStep}`) {\n navigate(`/${user.kycNextStep}`)\n }\n }\n } else if (listSteps.includes(location.pathname.slice(1))) {\n navigate(`/home`)\n }\n\n }, [location, tracked, user.cognitoId, user.kycNextStep])\n\n useEffect(() => {\n trackUserPage()\n }, [trackUserPage])\n\n return \n}\n\nconst LogoutRoute: FunctionComponent = ({\n component: Component,\n ...rest\n}) => {\n useEffect(() => {\n trackEvent(\"logout:pageview\")\n }, [])\n\n return \n}\n\ntoast.configure({\n autoClose: 3000,\n hideProgressBar: true,\n})\n\ntype ParamRouteType = {\n component: FunctionComponent\n default?: boolean\n}\n\ntype PrivateRouteType = {\n [key: string]: ParamRouteType\n}\n\nconst listPrivateRoute: PrivateRouteType = {\n \"/home\": {\n component: HomeView,\n default: true\n },\n \"/deposit\": {\n component: DepositPage\n },\n \"/mercadopago/:status\": {\n component: MercadoPagoBack\n },\n \"/deposit/mercadopago\": {\n component: MercadoPagoWithoutKyc\n },\n \"/kyc/deposit/mercadopago\": {\n component: MercadoPagoKyc\n },\n \"/documentos\": {\n component: HomeView\n },\n \"/bienvenido\": {\n component: HomeView\n },\n \"/help\": {\n component: HelpPage\n },\n \"/phone-validation-status\": {\n component: ValidatePhoneWithoutKyc\n },\n \"/documents-validation-status\": {\n component: ValidateDocumentsWithoutKyc\n },\n \"/liveness-validation-status\": {\n component: ValidateLivenessWithoutKyc\n },\n \"/kyc/validate-phone\": {\n component: ValidatePhoneKyc\n },\n \"/kyc/validate-documents\": {\n component: ValidateDocumentsKyc\n },\n \"/kyc/validate-liveness\": {\n component: ValidateLivenessKyc\n },\n \"/kyc/select-course\": {\n component: CouserSelection\n },\n \"/kyc/personal-info\": {\n component: PersonalInfo\n },\n \"/kyc/deposit\": {\n component: Deposit\n },\n \"/kyc/document-credit-card\": {\n component: ValidateBankCard\n },\n \"/kyc/validate-deposit\": {\n component: ValidationOnHold\n },\n \"/kyc/platform\": {\n component: DownloadMt5\n },\n \"/kyc/risk-profile\": {\n component: RiskProfile\n },\n \"/kyc/knowledge-profile\": {\n component: KnowledgeProfile\n },\n \"/kyc/bad-trader-profile\": {\n component: BadTraderProfile\n },\n \"/kyc/terms\": {\n component: Terms\n },\n \"/kyc/good-trader-profile\": {\n component: Logout\n },\n \"/loading\": {\n component: ThankYou\n },\n}\n\nconst AuthenticatedApp = () => (\n \n \n {Object.entries(listPrivateRoute).map(\n ([path, { component: Component, default: isDefault }]) => (\n \n )\n )}\n \n \n \n \n)\n\nconst UnauthenticatedApp = () => (\n \n \n \n \n \n \n \n \n \n \n)\n\nconst App = () => {\n const {\n state: { user, userIsLoading },\n } = useAuth()\n\n if (userIsLoading) {\n return <>\n }\n\n return user ? : \n}\n\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React, { useEffect } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport awsConfig from \"./aws-exports\"\nimport AWS from \"aws-sdk\"\nimport { Amplify } from \"aws-amplify\"\nimport * as Sentry from \"@sentry/browser\"\nimport TagManager from \"react-gtm-module\"\nimport ReactGA from \"react-ga\"\nimport amplitude from \"amplitude-js\"\nimport { GrowthBook, GrowthBookProvider } from \"@growthbook/growthbook-react\"\n\nimport \"./index.css\"\nimport App from \"./app\"\nimport * as serviceWorker from \"./serviceWorker\"\nimport { removeLastSlash } from \"./helpers/clean-pathname\"\n\nimport { AuthProvider } from \"./hooks/auth-context\"\n\nconst environment = process.env.REACT_APP_ENV || \"development\"\nconst dsnSentry =\n process.env.REACT_APP_DSN_SENTRY ||\n \"https://a38f1cc5292240e7a4a5d75739e21b84@o363665.ingest.sentry.io/5201574\"\n/*\nEl DSN por defecto de Sentry es un proyecto llamado develop-project\nque se utilizara para los ambientes locales\n*/\n\nif (environment !== \"development\") {\n Sentry.init({\n dsn: dsnSentry,\n environment: environment,\n release: `${environment}@${process.env.REACT_APP_COMMIT_ID}`,\n tunnel: 'https://huc6h09v4j.execute-api.us-east-2.amazonaws.com/sentry'\n })\n}\n\nif (process.env.REACT_APP_GTM_ID) {\n const tagManagerArgs = {\n gtmId: process.env.REACT_APP_GTM_ID,\n }\n\n TagManager.initialize(tagManagerArgs)\n}\n\nconst pathname = removeLastSlash(window.location.pathname)\n\n/*\nInitialize Google Analytics\n*/\nif (process.env.REACT_APP_GA_ID) {\n ReactGA.initialize(process.env.REACT_APP_GA_ID)\n ReactGA.pageview(pathname + window.location.search)\n}\n\nAmplify.configure(awsConfig)\n\n/**\n * Inicialize Amplitude\n */\nlet amplitudeApiKey =\n process.env.REACT_APP_AMPLITUDE || \"5de9bb797d6f2a9b4e10ca55ecf9ae0b\"\n\nif (process.env.REACT_APP_ENV !== \"production\") {\n amplitudeApiKey = \"e96257973c17ff25ae00b237308e71f1\"\n}\n\namplitude.getInstance().init(\n amplitudeApiKey,\n undefined,\n {\n includeGclid: true,\n includeReferrer: true,\n includeUtm: true,\n apiEndpoint: 'g5ra0wepsa.execute-api.us-east-2.amazonaws.com/',\n },\n () => {\n let mainDomain = \".capitaria.com\"\n if (process.env.REACT_APP_ENV !== \"production\") {\n mainDomain = \".d281xtybzl4c9i.amplifyapp.com\"\n }\n amplitude.getInstance().setDomain(mainDomain)\n }\n)\n\n// Fix clockDrift error: https://github.com/aws-amplify/amplify-js/pull/4251#issuecomment-568915659\nAWS.config.correctClockSkew = true\n\nconst growthbook = new GrowthBook({\n apiHost: \"https://cdn.growthbook.io\",\n clientKey: \"sdk-vBTpmY8EiAyNeX3\",\n subscribeToChanges: true,\n})\n\nconst AppProviders = ({ children }: { children: React.ReactNode }) => {\n useEffect(() => {\n growthbook.loadFeatures()\n }, [])\n\n return (\n \n {children}\n \n )\n}\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister()\n"],"sourceRoot":""}