{"version":3,"sources":["styles/colors.js","styles/global.js","styles/theme.js","context/AppContext.js","context/ErrorContext.js","styles/mixins.js","styles/media.js","components/Header/styled.js","components/Icon/styled.js","components/Icon/Icon.js","components/Dropdown/styled.js","components/Backdrop/styled.js","components/Backdrop/Backdrop.js","components/Dropdown/Dropdown.js","components/Arrow/styled.js","components/Arrow/Arrow.js","components/Share/styled.js","config/environment.js","config/endpoints.js","hooks/useAuthToken.js","hooks/useCache.js","hooks/useAjaxRequest.js","hooks/useDeviceType.js","utils/formatters.js","utils/utils.js","hooks/useChatLink.js","hooks/useValidation.js","hooks/useInputState.js","hooks/useMaritalStates.js","hooks/useProfessions.js","hooks/useAddressQuery.js","hooks/useIncomeGroups.js","hooks/useUfs.js","hooks/useSaveCotation.js","hooks/useProposal.js","utils/lgpdConsentBody.js","hooks/useLgpdConsent.js","utils/masks.js","utils/constants.js","components/Share/Share.js","components/Header/Header.js","components/Footer/styled.js","components/Chat/styled.js","components/Chat/Chat.js","components/Footer/Footer.js","routes/PrivateRoute.js","components/PageContent/styled.js","components/NavigationInfo/styled.js","components/ProgressBar/styled.js","components/ProgressBar/ProgressBar.js","components/NavigationInfo/NavigationInfo.js","components/PageContent/PageContent.js","components/Section/styled.js","components/Section/Section.js","components/Section/SectionSmallText.js","components/Section/SectionFooter.js","components/StaticText/styled.js","components/StaticText/StaticText.js","components/Title/styled.js","components/Title/Title.js","components/Banner/styled.js","components/Banner/Banner.js","components/BannerContent/styled.js","components/BannerContent/BannerContent.js","components/RadioButton/styled.js","components/FinalValueBanner/styled.js","utils/inputEvents.js","components/RadioButton/RadioButton.js","styles/utils/Grid.js","components/Input/styled.js","components/Placeholder/styled.js","components/Placeholder/Placeholder.js","components/Input/Input.js","components/ValueSelector/styled.js","utils/inputValidation.js","components/ValueSelector/ValueSelector.js","components/Button/styled.js","components/Button/FlatButton.js","components/DataConsentQuestion/styled.js","components/DataConsentQuestion/DataConsentQuestion.js","components/TwoOptionsButton/styled.js","components/TwoOptionsButton/TwoOptionsButton.js","components/Autocomplete/styled.js","components/Autocomplete/Autocomplete.js","components/Autocomplete/MinLengthAutocomplete.js","components/PersonalDataPF/PersonalDataPF.js","components/PersonalDataPJ/PersonalDataPJ.js","components/ContactDataFooter/styled.js","components/ContactDataFooter/ContactDataFooter.js","components/ContactData/ContactData.js","components/Anchor/styled.js","components/Anchor/Anchor.js","components/AddressData/styled.js","components/AddressData/AddressData.js","web-components/switch-lgpd/index.js","components/SwitchLgpd/SwitchLgpd.js","components/ContactWay/ContactWay.js","components/Collapse/styled.js","components/Collapse/Collapse.js","components/Resolution/styled.js","components/Resolution/Resolution.js","pages/DesktopRegister.js","pages/MobileRegisterPersonal.js","components/TitledContent/styled.js","components/TitledContent/TitledContent.js","components/PlainButton/styled.js","components/PlainButton/PlainButton.js","components/Congratulations/styled.js","components/CongratulationsTitle/styled.js","components/CongratulationsTitle/CongratulationsTitle.js","components/Congratulations/Congratulations.js","components/CompanyContacts/styled.js","components/CompanyContacts/CompanyContacts.js","components/CongratulationEmail/styled.js","components/CongratulationEmail/CongratulationEmail.js","components/Modal/styled.js","components/ModalTitle/styled.js","components/ModalTitle/ModalTitle.js","components/Modal/Modal.js","components/ConfirmLeaveModal/ConfirmLeaveModal.js","pages/Final.js","pages/MobileAddressPage.js","pages/MobileContactPage.js","components/ProductSummaryBanner/styled.js","components/ProductSummaryBanner/ProductSummaryBanner.js","components/GeneralConditions/styled.js","components/GeneralConditions/GeneralConditions.js","components/ClientIdentification/ClientIdentification.js","components/ConfirmPersonalData/ConfirmPersonalData.js","components/ConfirmAddressData/ConfirmAddressData.js","components/ConfirmContactData/ConfirmContactData.js","pages/ConfirmData.js","components/Frame/styled.js","components/Frame/Frame.js","components/PaymentErrorModal/styled.js","components/PaymentErrorModal/PaymentErrorModal.js","pages/Payment.js","components/Navigator/Navigator.js","routes/QueryRedirect.js","components/DeactivationMessage/styled.js","components/DeactivationMessage/DeactivationMessage.js","routes/Routes.js","components/Loading/styled.js","components/Loading/Loading.js","components/ErrorModal/styled.js","components/ErrorModal/ErrorModal.js","components/EmbeddedChat/EmbeddedChat.js","web-components/modal-lgpd/index.js","components/ModalLgpd/ModalLgpd.js","App.js","index.js","assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-1.ttf","assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-1.ttf","assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-1.ttf","assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-1.ttf","assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-2.eot","assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-3.woff","assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-2.eot","assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-3.woff","assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-2.eot","assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-3.woff","assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-2.eot","assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-3.woff","assets/images/logo-caixaseguradora.png"],"names":["blue","white","createGlobalStyle","AlrightSansRegularTTF","AlrightSansRegularEOT","AlrightSansRegularWOFF","AlrightSansLightTTF","AlrightSansLightEOT","AlrightSansLightWOFF","AlrightSansMediumTTF","AlrightSansMediumEOT","AlrightSansMediumWOFF","AlrightSansBoldTTF","AlrightSansBoldEOT","AlrightSansBoldWOFF","buttonTheme","buttonBgColor","buttonBgColorLight","buttonBgColorInverse","buttonBgColorInverseLight","buttonBgHover","buttonBgDisabled","buttonTextColor","buttonTextColorInverse","buttonTextColorHoverInverse","buttonTextColorHover","buttonTextColorDisabled","buttonBorderColor","buttonBorderHoverColor","buttonBorderColorDisabled","buttonArrowColor","buttonArrowColorInverse","buttonIconColor","buttonIconColorInverse","buttonIconColorHover","modalTheme","modalBgColor","modalTitleColor","inputTheme","inputArrowColor","validInputBorder","inputTextColor","placeholderTheme","placeholderColor","placeholderActiveColor","placeholderDisabledColor","BannerTheme","bannerTextColor","bannerBorderColor","bannerBgColor","inlineBannerBgColor","selectTheme","selectTextColor","chatTheme","chatBgColor","chatTextColor","themes","default","colorText","smallPrintColor","bgColor","invalidColor","dividerColor","radioIconColor","prevTheme","primaryColor","icon","capTheme","secondaryColor","hoverColor","borderColor","divider","ibcTheme","AppContext","React","createContext","ErrorContext","fontSize","pixels","breakpoints","tablet","desktop","mobile","media","Object","keys","reduce","acc","label","css","HeaderContainer","styled","header","theme","TitleHeader","h1","Icon","i","className","rest","Dropdown","div","small","Backdrop","props","open","children","dropup","onClose","onClick","Base","size","UP","DOWN","LEFT","RIGHT","Arrow","direction","Container","getArrow","data-testid","ShareContainer","StyledDropdown","StyledArrow","DropdownList","ul","DropdownItem","li","ShareIcon","loadEnvironment","environment","process","filter","key","includes","forEach","replace","URL_ADDRESS_QUERY","cep","env","HOST","URL_TO_SHARE","window","location","origin","URL_WHATSAPP_SHARE","text","URL_TWITTER_SHARE","URL_BASE_CHAT","URL_LGPD_CONSENT","businessProcess","cpf","useAuthToken","useState","sessionStorage","getItem","token","setToken","error","setError","ibcLogged","useContext","refreshToken","useCallback","a","undefined","tokenRequestBody","grant_type","scope","SCOPE","client_id","CLIENT_ID_IBC","CLIENT_ID","client_secret","CLIENT_SECRET_IBC","CLIENT_SECRET","axios","post","querystring","stringify","headers","data","access_token","useEffect","setItem","useCache","itemName","isCached","setCached","putCache","cacheableEntity","requestData","JSON","metadata","createdAt","Date","getTime","getCache","parse","lgpdError","method","url","useAjaxRequest","cacheConfig","shouldCache","isCacheValid","options","initialValue","loading","response","setResponse","lastOptions","setLastOptions","setErrorContext","setContext","retry","setRetry","performRequest","asyncOptions","accessToken","request","Authorization","ROBOTS","status","parseInt","MAX_RETRY","show","matchMedia","useDeviceType","matches","setMobile","mediaChange","onchange","formatDate","value","split","day","month","year","dateToStringFormat","openPDF","productId","findContact","type","contacts","find","curr","tipo","valor","getQueryParamValue","query","param","buildParam","encodeURIComponent","useChatLink","userData","productData","getChatLink","currentDate","titleValue","titleAmount","personType","name","email","cellphone","residencePhone","commercialPhone","birthdate","sex","maritalState","profession","individualIncome","familyIncome","join","personParams","pessoa","identificacao","nome","comunicacao","parametros","codigo","dadosPessoaFisica","dataNascimento","sexo","estadoCivil","profissao","endereco","informacoesEconomicas","faixaRenda","descricao","paymentType","paymentValue","productParams","oferta","codigoProduto","itemCapitalizacao","titulos","planosTitulos","titulo","getDate","getMonth","getFullYear","getHours","getMinutes","getSeconds","getBaseParams","phone","baseParams","callChat","otherParams","host","chatHandler","chatURL","useValidation","ref","useRef","current","validate","useInputState","OPTIONAL_VALUE","state","invalid","errorMessage","useMaritalStates","maritalStates","useProfessions","professions","useAddressQuery","address","getAddress","useIncomeGroups","incomeGroups","useUfs","ufs","useSaveCotation","cotation","saveCotation","isIbc","agencyNumber","estruturaComercial","empresa","CNPJ","pontoVenda","codigoExterno","canal","clientes","tipoCliente","useProposal","proposal","getProposal","proposalId","codigoCotacao","cobranca","tpCaptura","confGateway","urlRetorno","versao","lgpdConsentBody","subprocess","consent","sistema","LGPD_SYSTEM_CODE","unidadeNegocio","BUSINESS_UNITY_CODE","processoNegocio","subProcesso","macroProcesso","MACRO_PROCESS_CODE","cliente","evidencia","consentimento","useLgpdConsent","lgpdResponse","getLgpdConsent","params","postLgpdConsent","propsalId","lgpdConsent","unmask","mask","masks","cnpj","rg","date","dateMask","phoneMask","numberOnly","homePhone","length","substr","agency","substring","onlyNumber","trim","currency","parseFloat","toFixed","currencyInput","none","title","compareString","string","slice","headerShareText","confirmDataSubtitle","Share","toggle","setToggle","openSharePage","handleToggle","navigator","share","Header","headerConfig","config","data-blocoid","hideMobile","hideMobileTitle","FooterContainer","footer","FooterImage","img","Chat","button","showEmbeddedChat","minimized","urlChat","Footer","showFooterChat","src","logo","alt","PrivateRoute","Component","component","dependsOn","blockIf","reference","context","render","to","pathname","PageContent","main","TextWrapper","h2","InfoWrapper","section","ProgressBar","progress","total","max","NavigationInfo","pageAmount","currentPage","step","goBack","bundle","extraCare","others","SectionWrapper","displayGrid","flexEnd","rowDirection","bgTransparent","noPadding","columns","gridCol","InlineChildrenWrapper","fullWidth","SectionHeader","SectionTitle","SectionSubtitle","h3","SectionSmallText","p","smaller","Section","titleClassName","subTitle","inlineChildren","extraHeader","other","SectionFooter","StaticTextWrapper","margin","marginDesktop","StaticTextText","color","alignLeft","StaticText","TitleContent","Title","Banner","BannerTitle","subtitle","BannerSubtitle","bold","BannerContent","BannerContentTitle","RadioButtonWrapper","description","RadioButton","Check","StyledLabel","dark","Description","IconCheck","KEY","code","checkKey","event","keyCode","keyName","which","handleChange","setter","checked","onChange","tabIndex","onKeyDown","e","getFlex","col","Row","flexStart","hasBorderBottom","keepSize","growLast","Col","column","center","baseCss","createCol","growChild","InputContainer","msgFooter","zIndex","Input","input","ErrorMessage","Placeholder","active","disabled","forwardRef","placeholder","readOnly","validations","inputClassName","shouldValidate","inputRef","focused","setFocused","shouldScroll","invalidRule","v","validationState","scrollIntoView","validated","useImperativeHandle","focus","useMemo","onBlur","target","onFocus","ValueSelectorWrapper","RoundButton","StyledInput","minLength","required","hasSurname","test","lessThan","quantity","customMessage","callbackMask","greaterThan","validCnpj","strCnpj","getDigit","calc","digitCheck","cnpjSum","arrCnpj","map","digit","charAt","validCep","validCpf","strCPF","Soma","Resto","every","_","arr","validPhone","validHomePhone","validCommercialPhone","validPhoneLength","validCommercialPhoneLength","validHomePhoneLength","validBirthdate","validBirthdateDay","separated","y","m","d","1","8","3","5","10","daysInMonth","validBirthdateRange","validEmail","isAnyInvalidField","functions","reverse","OPERATION","SELECTOR_TYPE","ButtonContainer","minValue","maxValue","calculationValue","number","selectorType","errorLess","errorMore","selectorRef","validateSelector","message","setMessage","pressed","setPressed","longAction","setLongAction","validValue","handleButtonClick","operation","newValue","updateValue","useLayoutEffect","setTimeout","clearActions","clearTimeout","performOperation","onMouseUp","onMouseDown","onMouseLeave","inverse","hasArrow","arrowSize","up","down","left","right","whichArrow","arrowDirection","TextContainer","FlatButtonContainer","back","buttonColorHover","buttonBg","FlatTextContainer","FlatButton","role","StyledQuestion","marginRight","justifyContent","marginBottom","DataConsentQuestion","showLgpd","TwoOptionButtonContainer","baseButton","selected","ButtonLeft","ButtonRight","buttonRef","objectOptions","setObjectOptions","option","some","opt","Autocomplete","Select","AutocompleteContainer","getOptionLabel","getOptionValue","openMenuOnFocus","onInputChange","noAutoSelect","inputValue","setInputValue","setShouldValidate","validation","action","closeMenuOnScroll","classNamePrefix","isOptionSelected","noOptionsMessage","o","preventDefault","localValue","s1","s2","nS1","normalize","nS2","toUpperCase","normalizedCompare","MinLengthAutocomplete","autocompleteRef","setOpen","menuIsOpen","minAge","maxAge","personalData","setName","nameRef","validateName","setCPF","cpfRef","validateCpf","loadingProfessions","loadingIncomeGroups","setBirthdate","birthdateRef","validateBirthdate","setSex","sexRef","validateSex","setMaritalState","maritalStateRef","validateMaritalState","setProfession","professionRef","validateProfession","setIndividualIncome","individualIncomeRef","validateIndividualIncome","setFamilyIncome","familyIncomeRef","validateFamilyIncome","isInvalid","documento","ms","prof","obj_renda_familiar","ig","seq_faixa_renda","des_faixa_renda","tipoRenda","maxLength","currentYear","formatedDate","receivedDate","minDate","maxDate","setFullYear","corporateName","setCorporateName","corporateNameRef","validateCorporateName","setCnpj","cnpjRef","validateCnpj","activity","setActivity","activityRef","validateActivity","income","setIncome","incomeRef","validateIncome","onSelect","StyledSectionFooter","RadioButtonsWrapper","Text","contactWay","informationType","setInformationType","setInvalid","celular","contactData","mobilePhone","setMobilePhone","mobilePhoneRef","validateMobilePhone","setComercialPhone","comercialPhoneRef","validateComercialPhone","residentialPhone","setResidentialPhone","residentialPhoneRef","validateResidentialPhone","setEmail","emailRef","validateEmail","contactDataFooterRef","validateContactDataFooter","handleInputChange","noPhone","obj","invalidEmail","footerDataInfo","recebimento","ContactDataFooter","Anchor","StyledAnchor","addressData","shouldQuery","ufsLoading","setCep","cepRef","validateCep","previousCep","setPreviousCep","logradouro","setAddress","addressRef","validateAddress","numero","setNumber","numberRef","validateNumber","estado","uf","setUf","ufRef","validateUf","bairro","neighborhood","setNeighborhood","neighborhoodRef","validateNeighborhood","cidade","city","setCity","cityRef","validateCity","complemento","addition","setAddition","additionRef","validateAddition","onCepFilled","nome_bairro","indice_tipo_logradouro","nome_localidade","codigo_uf","document","activeElement","id","SwitchLgpd","_disabled","_defaultValue","_errorMessage","_shadowRoot","attachShadow","mode","innerHTML","template","this","getAttribute","handleDisabled","handleInputValue","oldValue","showErrorMessage","hiddenErrorMessage","querySelectorAll","addEventListener","handleOnChange","setAttribute","removeAttribute","stopImmediatePropagation","dispatchEvent","CustomEvent","detail","querySelector","classList","add","remove","HTMLElement","customElements","define","switchRef","handleEvent","elementRef","removeEventListener","default-value","error-message","setConsent","CollapseContainer","h5","animationTime","alreadyOpened","alreadyOpenedHeight","opened","offsetHeight","onStateChange","initialState","setOpened","useCollapse","animationCb","setAnimationCb","containerRef","style","maxHeight","overflow","handleTransition","onKeyPress","Children","count","padding","SubText","lineHeight","Resolution","DesktopRegister","setType","typeRef","validateType","personalDataPfRef","validatePersonalDataPf","personalDataPjRef","validatePersonalDataPj","addressDataRef","validateAddressData","contactDataRef","validateContactData","consentDataRef","validateConsentData","display","navigateTo","consentData","MobileRegisterPersonal","TitledContent","flex","twoColumns","Label","Content","wordBreakAll","content","StyledPlainButton","width","ContentWrapper","span","ButtonIcon","PlainButton","hideIcon","CongratsSection","ProposalTitledContent","ProductTitledContent","ProductButton","TitleWrapper","SubTitle","CongratulationsTitle","Congratulations","orderNum","IBC_URL","href","AREA_LOGADA_LOGIN","CompanyContactsSection","ContactTitledContent","CompanyContacts","desktopEmail","Email","desktopSection","StyledSection","CongratulationEmail","ModalContainer","Modal","ModalContent","CloseIcon","ModalFooter","ModalTitle","hasIcon","showFooter","acceptLabel","onAccept","onReject","ConfirmLeaveModal","skipNavigationControl","navigate","when","nextLocation","setNextLocation","Final","history","clearContext","codigoNegocio","push","MobileAddressPage","addressResgistered","MobileContactPage","BannerContentColumns","StyledBanner","ColumnWrapper","ColumnContent","TitledCurrency","ProductSummaryBanner","Wrapper","Button","GeneralConditions","onChangeBtn","productCode","ClientIdentification","clientType","ConfirmPersonalData","clientName","clientSex","clientCPF","clientBirthdate","clientMaritalState","clientProfession","clientIndividualIncome","clientFamilyIncome","ConfirmAddressData","clientCEP","clientAddress","clientNumber","clientAddition","clientNeighborhood","clientCity","clientState","ConfirmContactData","clientCellphone","clientResidencePhone","clientComercialPhone","clientEmail","clientInformationType","InfoTypeValue","allFalse","values","ConfirmData","isMobile","clientAccs","agreed","setAgreed","cotationLoading","proposalLoading","loadingLgpd","submit","sendLgpdConsent","promises","BUSINESS_PROCESS_CODE","BUSSINESS_SUBPROCESS_CAIXA_HOLDING_CODE","BUSSINESS_SUBPROCESS_CAIXA_HOLDING_PARTNERS_CODE","Promise","all","then","res","el","mensagem","StyledIframe","iframe","height","frameBorder","StyledModal","IconContainer","PaymentErrorModal","BoletoBancario","DebitoEmConta","CartaoCredito","getText","Payment","modalConfig","setModalConfig","frameLink","urlGateWay","acc1","acc2","acc3","queryParams","buildParams","index","account","dv","buildAdditionalParameters","scrollTo","scrolling","onLoad","acceptedPayment","contentWindow","search","dataLayer","time","ip","payed","decodeURIComponent","toLowerCase","withRouter","untrackedNavigateTo","QueryRedirect","keepQuery","StyledMessage","DeactivationMessage","Routes","basename","exact","path","from","LoadingContainer","Loading","ErrorTitleWrapper","ErrorText","ErrorModal","as","minimize","close","sandbox","EmbeddedChat","chatFloatRef","getElementById","bounds","ModalLgpd","_template","oldVal","newVal","_openModal","_closeModal","body","setShow","modalRef","modal","createPortal","getInitialContext","storedCtx","App","newCtx","errorContext","fullCtx","clearedContext","Provider","goals","ReactDOM","module","exports"],"mappings":"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","file":"static/js/main.99871d5e.chunk.js","sourcesContent":["export const blue = '#005fc8';\r\nexport const blueFooter = '#005ec8';\r\nexport const blueHover = '#4187d7';\r\nexport const blueVariant = '#0571e8';\r\nexport const blueLight = '#2b77cb';\r\nexport const blueSecondary = '#006bb6';\r\nexport const blueSecondaryLight = '#e2edf9';\r\nexport const blueLighter = '#ace9fa';\r\nexport const blueProgressBar = '#cfdeee';\r\nexport const bluePrimaryLight = '#0369B9';\r\n\r\nexport const gray = '#4d4f66';\r\nexport const grayLighter = '#67697c';\r\nexport const grayLight = '#e1e1e1';\r\nexport const grayVariant = '#7e7e7e';\r\nexport const graySecondary = '#898d8d';\r\nexport const graySecondaryDark = '#525252';\r\nexport const grayBG = '#f7f7f7';\r\nexport const grayBGLight = '#f5f5f5';\r\nexport const grayText = '#494949';\r\nexport const grayDivider = '#d1d1d1';\r\nexport const grayDividerLighter = '#d8d8d8';\r\nexport const grayDividerSecondary = '#e6e4e4';\r\nexport const grayCheckbox = '#b9b9b9';\r\nexport const grayDisabled = '#c8caca';\r\nexport const graySignature = '#5c5c5c';\r\nexport const grayDisabledSecondary = '#858585';\r\nexport const grayInformativeText = '#737373';\r\n\r\nexport const red = '#bb1f40';\r\n\r\nexport const green = '#c1d82f';\r\nexport const greenSecondary = '#0bbc7f';\r\n\r\nexport const orange = '#ff6d00';\r\nexport const orangeDark = '#f88a39';\r\nexport const orangeHover = '#ff9141';\r\nexport const orangeLight = '#ff9141';\r\n\r\nexport const white = '#ffffff';\r\nexport const transparent = 'transparent';\r\n","import { createGlobalStyle } from 'styled-components/macro';\r\n\r\nimport AlrightSansRegularTTF from '../assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-1.ttf';\r\nimport AlrightSansRegularEOT from '../assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-2.eot';\r\nimport AlrightSansRegularWOFF from '../assets/fonts/AlrightSansFamily/AlrightSansRegular/3166ad31-2182-4fd1-9d82-7f10d4b7643e-3.woff';\r\n\r\nimport AlrightSansMediumTTF from '../assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-1.ttf';\r\nimport AlrightSansMediumEOT from '../assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-2.eot';\r\nimport AlrightSansMediumWOFF from '../assets/fonts/AlrightSansFamily/AlrightSansMedium/5f0232d6-b8f7-4780-babe-eb4163b9484d-3.woff';\r\n\r\nimport AlrightSansBoldTTF from '../assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-1.ttf';\r\nimport AlrightSansBoldEOT from '../assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-2.eot';\r\nimport AlrightSansBoldWOFF from '../assets/fonts/AlrightSansFamily/AlrightSansBold/61992ac3-1582-4b76-9057-2e219552f837-3.woff';\r\n\r\nimport AlrightSansLightTTF from '../assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-1.ttf';\r\nimport AlrightSansLightEOT from '../assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-2.eot';\r\nimport AlrightSansLightWOFF from '../assets/fonts/AlrightSansFamily/AlrightSansThin/c088677c-ef3e-4a6e-ac49-3a0bdd785689-3.woff';\r\n\r\nimport { grayBG, grayText } from './colors';\r\nimport './icons.css';\r\n\r\nexport default createGlobalStyle`\r\n\r\n*,\r\n*::before,\r\n*::after {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\nbody, html, #root {\r\n height: 100%;\r\n}\r\n\r\n.App {\r\n flex-grow: 1;\r\n width: 100%;\r\n}\r\n\r\n#root {\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n}\r\n\r\n.sticky_sentinel {\r\n max-width: 0;\r\n}\r\n\r\n@font-face {\r\n font-family: \"AlrightSansRegular\";\r\n src: url(${AlrightSansRegularTTF});\r\n src: url(${AlrightSansRegularEOT}) format(\"embedded-opentype\"),\r\n url(${AlrightSansRegularWOFF}) format(\"woff\"),\r\n url(${AlrightSansRegularTTF}) format(\"truetype\");\r\n font-style: normal;\r\n font-weight: normal;\r\n}\r\n@font-face {\r\n font-family: \"AlrightSansRegular\";\r\n src: url(${AlrightSansLightTTF});\r\n src: url(${AlrightSansLightEOT}) format(\"embedded-opentype\"),\r\n url(${AlrightSansLightWOFF}) format(\"woff\"),\r\n url(${AlrightSansLightTTF}) format(\"truetype\");\r\n font-style: normal;\r\n font-weight: 300;\r\n}\r\n\r\n@font-face {\r\n font-family: \"AlrightSansRegular\";\r\n src: url(${AlrightSansMediumTTF});\r\n src: url(${AlrightSansMediumEOT}) format(\"embedded-opentype\"),\r\n url(${AlrightSansMediumWOFF}) format(\"woff\"),\r\n url(${AlrightSansMediumTTF}) format(\"truetype\");\r\n font-style: normal;\r\n font-weight: 500;\r\n}\r\n\r\n@font-face {\r\n font-family: \"AlrightSansRegular\";\r\n src: url(${AlrightSansBoldTTF});\r\n src: url(${AlrightSansBoldEOT}) format(\"embedded-opentype\"),\r\n url(${AlrightSansBoldWOFF}) format(\"woff\"),\r\n url(${AlrightSansBoldTTF}) format(\"truetype\");\r\n font-style: normal;\r\n font-weight: bold;\r\n}\r\n\r\n\r\nbody {\r\n font-family: \"AlrightSansRegular\", Arial, Helvetica, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n max-width: 100vw;\r\n background-color: ${grayBG};\r\n color: ${grayText};\r\n width: 100%;\r\n}\r\n`;\r\n","import {\r\n blue,\r\n blueHover,\r\n orange,\r\n graySecondaryDark,\r\n grayDividerSecondary,\r\n grayDividerLighter,\r\n grayDisabled,\r\n orangeLight,\r\n grayLight,\r\n red,\r\n white,\r\n transparent,\r\n orangeHover,\r\n blueSecondaryLight,\r\n grayInformativeText,\r\n orangeDark,\r\n bluePrimaryLight,\r\n graySecondary,\r\n} from './colors';\r\n\r\nconst buttonTheme = {\r\n buttonBgColor: transparent,\r\n buttonBgColorLight: white,\r\n buttonBgColorInverse: blue,\r\n buttonBgColorInverseLight: blueSecondaryLight,\r\n buttonBgHover: blueHover,\r\n buttonBgDisabled: grayDisabled,\r\n buttonTextColor: blue,\r\n buttonTextColorInverse: white,\r\n buttonTextColorHoverInverse: graySecondaryDark,\r\n buttonTextColorHover: blueHover,\r\n buttonTextColorDisabled: white,\r\n buttonBorderColor: blue,\r\n buttonBorderHoverColor: blueHover,\r\n buttonBorderColorDisabled: white,\r\n buttonArrowColor: blue,\r\n buttonArrowColorInverse: white,\r\n buttonIconColor: orange,\r\n buttonIconColorInverse: graySecondaryDark,\r\n buttonIconColorHover: orangeHover,\r\n};\r\n\r\nconst modalTheme = {\r\n modalBgColor: white,\r\n modalTitleColor: graySecondaryDark,\r\n};\r\n\r\nconst inputTheme = {\r\n inputArrowColor: blue,\r\n validInputBorder: grayLight,\r\n inputTextColor: blue,\r\n};\r\nconst placeholderTheme = {\r\n placeholderColor: blue,\r\n placeholderActiveColor: graySecondaryDark,\r\n placeholderDisabledColor: graySecondary,\r\n};\r\nconst BannerTheme = {\r\n bannerTextColor: white,\r\n bannerBorderColor: orangeDark,\r\n bannerBgColor: orangeHover,\r\n inlineBannerBgColor: orangeHover,\r\n};\r\n\r\nconst selectTheme = {\r\n selectTextColor: blue,\r\n};\r\n\r\nconst chatTheme = {\r\n chatBgColor: orange,\r\n chatTextColor: white,\r\n};\r\n\r\nexport const themes = {\r\n default: {\r\n ...buttonTheme,\r\n ...modalTheme,\r\n ...BannerTheme,\r\n ...inputTheme,\r\n ...selectTheme,\r\n ...chatTheme,\r\n ...placeholderTheme,\r\n colorText: graySecondaryDark,\r\n smallPrintColor: grayInformativeText,\r\n bgColor: grayDividerLighter,\r\n invalidColor: red,\r\n dividerColor: grayDividerSecondary,\r\n radioIconColor: blue,\r\n },\r\n prevTheme: {\r\n primaryColor: blue,\r\n icon: 'prev',\r\n },\r\n capTheme: {\r\n primaryColor: orange,\r\n secondaryColor: orangeLight,\r\n hoverColor: orangeHover,\r\n borderColor: grayDividerLighter,\r\n divider: grayDividerSecondary,\r\n icon: 'cap',\r\n },\r\n ibcTheme: {\r\n primaryColor: bluePrimaryLight,\r\n secondaryColor: bluePrimaryLight,\r\n bannerBorderColor: bluePrimaryLight,\r\n inlineBannerBgColor: bluePrimaryLight,\r\n },\r\n};\r\n","import React from 'react';\r\n\r\nconst AppContext = React.createContext();\r\n\r\nexport default AppContext;\r\n","import React from 'react';\r\n\r\nconst ErrorContext = React.createContext();\r\n\r\nexport default ErrorContext;\r\n","export const fontSize = pixels => `font-size: ${pixels / 16}rem`;\r\n\r\nconst hexToRgb = hex => {\r\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\r\n return result\r\n ? {\r\n r: parseInt(result[1], 16),\r\n g: parseInt(result[2], 16),\r\n b: parseInt(result[3], 16),\r\n }\r\n : null;\r\n};\r\n\r\nexport const toRGBA = (hex, alpha) => {\r\n const { r, g, b } = hexToRgb(hex);\r\n return `rgba(${r},${g},${b},${alpha})`;\r\n};\r\n","import { css } from 'styled-components';\r\n\r\nexport const breakpoints = {\r\n tablet: 960,\r\n desktop: 768,\r\n mobile: 550,\r\n};\r\n\r\nexport const slickBreakpoints = {\r\n iphone5: 350,\r\n mobile: 550,\r\n tablet: 960,\r\n};\r\n\r\nconst media = Object.keys(breakpoints).reduce((acc, label) => {\r\n acc[label] = (...args) => css`\r\n @media (min-width: ${breakpoints[label] / 16}em) {\r\n ${css(...args)}\r\n }\r\n `;\r\n return acc;\r\n}, {});\r\n\r\nexport default media;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const HeaderContainer = styled.header`\r\n position: absolute;\r\n border-top: ${({ theme }) => `6px solid ${theme.primaryColor}`};\r\n width: 100%;\r\n padding: 15px;\r\n display: flex;\r\n flex-direction: row-reverse;\r\n justify-content: space-between;\r\n align-items: top;\r\n > .icon {\r\n ${fontSize(22)};\r\n height: 25px;\r\n cursor: pointer;\r\n color: ${({ theme }) => theme.primaryColor};\r\n }\r\n > .logo {\r\n cursor: default;\r\n }\r\n ${media.desktop`\r\n padding: 15px 20px;\r\n `};\r\n`;\r\n\r\nexport const TitleHeader = styled.h1`\r\n display: none;\r\n color: ${({ theme }) => theme.primaryColor};\r\n ${fontSize(16)};\r\n font-weight: 500;\r\n letter-spacing: 0.5px;\r\n margin: auto;\r\n ${media.desktop`\r\n display: block;\r\n margin: auto 15px;\r\n flex: 1;\r\n `};\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const Icon = styled.i`\r\n cursor: pointer;\r\n color: inherit;\r\n display: 'block';\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Icon = ({ className, icon, ...rest }) => (\r\n \r\n);\r\n\r\nexport default Icon;\r\n","import styled from 'styled-components/macro';\r\nimport { white } from '../../styles/colors';\r\n\r\nexport const Dropdown = styled.div`\r\n position: absolute;\r\n background: ${white};\r\n z-index: 99;\r\n width: 100%;\r\n max-height: ${({ small }) => (small ? '150px' : '220px')};\r\n overflow-y: auto;\r\n box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.1),\r\n 4px 6px 7px 0 rgba(0, 0, 0, 0.14);\r\n\r\n &.dropup {\r\n bottom: 100%;\r\n top: auto;\r\n box-shadow: 1px -1px 1px 0 rgba(0, 0, 0, 0.1),\r\n 4px -6px 7px 0px rgba(0, 0, 0, 0.14);\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { transparent } from '../../styles/colors';\r\n\r\nexport const Backdrop = styled.div`\r\n background-color: ${transparent};\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n z-index: 1;\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Backdrop = props => ;\r\n\r\nexport default Backdrop;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport Backdrop from '../Backdrop';\r\n\r\nconst Dropdown = ({\r\n open,\r\n small = false,\r\n children,\r\n dropup,\r\n onClose,\r\n ...rest\r\n}) => {\r\n if (!open) {\r\n return null;\r\n }\r\n return (\r\n <>\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","import styled from 'styled-components/macro';\r\n\r\nconst Base = styled.div`\r\n height: ${({ size }) => `${size}px`};\r\n border-top: ${({ size }) => `${size}px solid transparent`};\r\n border-bottom: ${({ size }) => `${size}px solid transparent`};\r\n border-right: ${({ size }) => `${size}px solid transparent`};\r\n border-left: ${({ size }) => `${size}px solid transparent`};\r\n display: inline-block;\r\n`;\r\n\r\nexport const UP = styled(Base)`\r\n border-bottom-color: inherit;\r\n`;\r\n\r\nexport const DOWN = styled(Base)`\r\n border-top-color: inherit;\r\n`;\r\n\r\nexport const LEFT = styled(Base)`\r\n border-right-color: inherit;\r\n`;\r\n\r\nexport const RIGHT = styled(Base)`\r\n border-left-color: inherit;\r\n`;\r\n","import React from 'react';\r\n\r\nimport { UP, DOWN, LEFT, RIGHT } from './styled';\r\n\r\nconst getArrow = direction => {\r\n switch (direction) {\r\n case 'up':\r\n return UP;\r\n case 'down':\r\n return DOWN;\r\n case 'left':\r\n return LEFT;\r\n default:\r\n return RIGHT;\r\n }\r\n};\r\n\r\nconst Arrow = ({ direction, ...rest }) => {\r\n const Container = getArrow(direction);\r\n\r\n return ;\r\n};\r\n\r\nexport default Arrow;\r\n","import styled from 'styled-components/macro';\r\nimport { graySecondaryDark, grayLight } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport Icon from '../Icon';\r\nimport Dropdown from '../Dropdown';\r\nimport Arrow from '../Arrow';\r\n\r\nexport const ShareContainer = styled.div`\r\n position: relative;\r\n > .icon {\r\n ${fontSize(22)};\r\n height: 25px;\r\n cursor: pointer;\r\n }\r\n`;\r\n\r\nexport const StyledDropdown = styled(Dropdown)`\r\n width: 180px;\r\n right: 0;\r\n margin-top: 15px;\r\n border-radius: 5px;\r\n overflow-y: visible;\r\n`;\r\n\r\nexport const StyledArrow = styled(Arrow)`\r\n position: absolute;\r\n right: 10px;\r\n top: -20px;\r\n border-bottom-color: white;\r\n`;\r\n\r\nexport const DropdownList = styled.ul`\r\n list-style: none;\r\n`;\r\n\r\nexport const DropdownItem = styled.li`\r\n ${fontSize(14)};\r\n margin: 0px 25px;\r\n padding: 10px 5px;\r\n color: ${graySecondaryDark};\r\n border-bottom: solid 1px #e6e4e4;\r\n font-weight: bold;\r\n cursor: pointer;\r\n &:first-child {\r\n font-weight: normal;\r\n cursor: auto;\r\n }\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n &:active:not(:first-child) {\r\n color: ${grayLight};\r\n }\r\n`;\r\n\r\nexport const ShareIcon = styled(Icon)`\r\n ${({ header }) => (header ? fontSize(25) : fontSize(18))};\r\n position: relative;\r\n z-index: 4;\r\n display: inline-block;\r\n cursor: pointer;\r\n margin-right: 10px;\r\n vertical-align: middle;\r\n color: ${({ theme }) => theme.primaryColor};\r\n`;\r\n","const loadEnvironment = () => {\r\n const environment = {};\r\n Object.keys(process.env)\r\n .filter(key => key.includes('REACT_APP_'))\r\n .forEach(key => {\r\n environment[key.replace('REACT_APP_', '')] = process.env[key];\r\n });\r\n\r\n return environment;\r\n};\r\n\r\nexport default loadEnvironment();\r\n","import env from './environment';\r\n\r\nexport const URL_AUTH_TOKEN = () => `${env.HOST}/oauth-end/oauth2/token`;\r\nexport const URL_ADDRESS_QUERY = cep =>\r\n `${env.HOST}/rs/v1.0/corporativo/cep/${cep}`;\r\nexport const URL_SAVE_COTATION = () =>\r\n `${env.HOST}/rs/v1.0.3/cotacao/capitalizacao`;\r\nexport const URL_UFS = () =>\r\n `${env.HOST}/rs/v1.0/corporativo/dominios/unidade-federativa `;\r\nexport const URL_MARITAL_STATES = () =>\r\n `${env.HOST}/rs/v1.0/corporativo/dominios/estado-civil`;\r\nexport const URL_PROFESSIONS = () =>\r\n `${env.HOST}/rs/v2/corporativo/profissoes?unidade=CBO`;\r\nexport const URL_COUNTRIES = () =>\r\n `${env.HOST}/rs/v1.0/corporativo/dominios/nacionalidade`;\r\nexport const URL_INCOME_GROUP = () =>\r\n `${env.HOST}/rs/v1.0/corporativo/faixa/renda/origem?des_origem=CORPORATIVO`;\r\nexport const URL_PAYMENT = () => `${env.HOST}/rs/v2/propostas`;\r\nexport const URL_DOC_LIST = (process, product) =>\r\n `${env.HOST}/rs/v1.0/documentos/processos/${process}?produto=${product}`;\r\nexport const URL_DOC_UPLOAD = process =>\r\n `${env.HOST}/rs/v1.0/documentos/processos/${process}/upload`;\r\nexport const URL_PERSON_QUERY = cpf =>\r\n `${env.HOST}/rs/visao360/v1/pessoa/${cpf}`;\r\nexport const URL_LOGIN = () => `${env.HOST}/public/oauth2/token`;\r\nexport const URL_PHONE_TOKEN = () => `${env.HOST}/rs/v1/token/sms`;\r\nexport const URL_PHONE_TOKEN_VALIDATION = () =>\r\n `${env.HOST}/rs/v1/token/validacao`;\r\nexport const URL_TO_SHARE = () => `${window.location.origin}/capitalizacao`;\r\nexport const URL_WHATSAPP_SHARE = text =>\r\n `https://api.whatsapp.com/send?text=${text} ${URL_TO_SHARE()}`;\r\nexport const URL_FACEBOOK_SHARE = text =>\r\n `https://www.facebook.com/sharer/sharer.php?u=${URL_TO_SHARE()}"e=${text}`;\r\nexport const URL_TWITTER_SHARE = text =>\r\n `https://twitter.com/intent/tweet?url=${URL_TO_SHARE()}&via=caixaseguradora&text=${text}`;\r\nexport const URL_UNIT_PRODUCT = () =>\r\n `${env.HOST}/rs/v1.0/produto/unidades-negocios/${env.SYSTEM_UNIT}/produtos`;\r\nexport const URL_TITLES = (product, version) =>\r\n `${env.HOST}/rs/v1.0/produtos/unidades-negocios/${env.SYSTEM_UNIT}/produtos/${product}/versoes/${version}/ofertas/titulos`;\r\nexport const URL_BASE_CHAT =\r\n 'https://caixaseguradora.secure.force.com/LiveAgentDirectChat?button_id=5731R000000fxd7';\r\nexport const URL_PROPOSAL = () =>\r\n `${env.HOST}/rs/v1.0.2/proposta/capitalizacao`;\r\nexport const URL_IBC = token =>\r\n `${env.HOST}/rs/v1.0/ibc/usuario/informacao/${token}`;\r\n\r\nexport const URL_PDF = productCode =>\r\n `https://lojaonline.caixaseguradora.com.br/Docs Condicoes Gerais/${\r\n productCode === 225\r\n ? 'Cap-Ganhador-Condicoes-Gerais-Pagamento-Mensal-PM225.pdf'\r\n : 'Cap-Ganhador-Condicoes-Gerais-Pagamento-Unico-PU417.pdf '\r\n }`;\r\n\r\nexport const URL_LGPD_CONSENT = (businessProcess, cpf) =>\r\n `${env.HOST}/lgpd/v1/consentimentos/processo-negocio/${businessProcess}/pessoas/${cpf}`;\r\n","import { useState, useContext, useEffect, useCallback } from 'react';\r\nimport axios from 'axios';\r\nimport querystring from 'querystring';\r\nimport env from '../config/environment';\r\nimport { URL_AUTH_TOKEN } from '../config/endpoints';\r\nimport { AppContext } from '../context';\r\n\r\nconst useAuthToken = () => {\r\n const [token, setToken] = useState(sessionStorage.getItem('oauth_token'));\r\n const [error, setError] = useState(null);\r\n const { ibcLogged } = useContext(AppContext);\r\n const refreshToken = useCallback(async () => {\r\n if (ibcLogged === undefined) {\r\n return '';\r\n }\r\n const tokenRequestBody = {\r\n grant_type: 'client_credentials',\r\n scope: env.SCOPE,\r\n client_id: ibcLogged ? env.CLIENT_ID_IBC : env.CLIENT_ID,\r\n client_secret: ibcLogged ? env.CLIENT_SECRET_IBC : env.CLIENT_SECRET,\r\n };\r\n try {\r\n const { data } = await axios.post(\r\n URL_AUTH_TOKEN(),\r\n querystring.stringify(tokenRequestBody),\r\n {\r\n headers: {\r\n 'content-type': 'application/x-www-form-urlencoded',\r\n },\r\n }\r\n );\r\n setToken(data.access_token);\r\n return data.access_token;\r\n } catch (err) {\r\n setError(err);\r\n }\r\n return '';\r\n }, [ibcLogged]);\r\n useEffect(() => {\r\n if (token) {\r\n sessionStorage.setItem('oauth_token', token);\r\n } else {\r\n refreshToken();\r\n }\r\n }, [token, refreshToken]);\r\n return { error, refreshToken, token };\r\n};\r\nexport default useAuthToken;\r\n","import { useState } from 'react';\r\n\r\nconst useCache = itemName => {\r\n const [isCached, setCached] = useState(itemName in sessionStorage);\r\n\r\n const putCache = (cacheableEntity, requestData) => {\r\n sessionStorage.setItem(\r\n itemName,\r\n JSON.stringify({\r\n data: cacheableEntity,\r\n metadata: {\r\n createdAt: new Date().getTime(),\r\n ...requestData,\r\n },\r\n })\r\n );\r\n setCached(true);\r\n };\r\n\r\n const getCache = () => JSON.parse(sessionStorage.getItem(itemName));\r\n\r\n return { isCached, putCache, getCache };\r\n};\r\n\r\nexport default useCache;\r\n","/* eslint react-hooks/exhaustive-deps: 0 */\r\nimport { useState, useEffect, useCallback, useContext } from 'react';\r\nimport axios from 'axios';\r\nimport useAuthToken from './useAuthToken';\r\nimport env from '../config/environment';\r\nimport { ErrorContext, AppContext } from '../context';\r\nimport useCache from './useCache';\r\nimport {} from '../config/endpoints';\r\n\r\nconst lgpdError = ({ method, url }) =>\r\n method === 'get' && url.includes('consentimentos/processo-negocio');\r\n\r\nconst useAjaxRequest = (\r\n itemName,\r\n cacheConfig = {\r\n shouldCache: false,\r\n isCacheValid: () => false,\r\n },\r\n options = '',\r\n initialValue = {}\r\n) => {\r\n const [response, setResponse] = useState({\r\n data: initialValue,\r\n loading: !!options,\r\n error: null,\r\n });\r\n const [lastOptions, setLastOptions] = useState(options);\r\n const { token, refreshToken } = useAuthToken();\r\n const { setContext: setErrorContext } = useContext(ErrorContext);\r\n const { ibcLogged } = useContext(AppContext);\r\n const [retry, setRetry] = useState(0);\r\n const { isCached, putCache, getCache } = useCache(itemName);\r\n const performRequest = useCallback(\r\n async (asyncOptions = options, accessToken = token) => {\r\n if (ibcLogged === undefined) {\r\n return {};\r\n }\r\n setLastOptions(asyncOptions);\r\n try {\r\n if (!accessToken) {\r\n return {};\r\n }\r\n if (\r\n isCached &&\r\n cacheConfig.isCacheValid(getCache(), asyncOptions, token)\r\n ) {\r\n const { data } = getCache();\r\n setResponse({\r\n data,\r\n loading: false,\r\n });\r\n return data;\r\n }\r\n\r\n setResponse({\r\n ...response,\r\n loading: true,\r\n });\r\n const { data } = await axios.request({\r\n ...asyncOptions,\r\n headers: {\r\n ...asyncOptions.headers,\r\n Authorization: `Bearer ${accessToken}`,\r\n 'x-ibm-client-id': ibcLogged ? env.CLIENT_ID_IBC : env.CLIENT_ID,\r\n 'content-type': 'application/json',\r\n 'X-Robots-Tag': env.ROBOTS,\r\n },\r\n });\r\n\r\n if (cacheConfig.shouldCache) {\r\n putCache(data, {\r\n ...asyncOptions,\r\n });\r\n }\r\n\r\n setResponse({\r\n data,\r\n loading: false,\r\n });\r\n\r\n return data;\r\n } catch (err) {\r\n if (\r\n err.response &&\r\n err.response.status === 401 &&\r\n retry < parseInt(env.MAX_RETRY, 10)\r\n ) {\r\n setRetry(retry + 1);\r\n return refreshToken();\r\n }\r\n setResponse({\r\n ...response,\r\n loading: false,\r\n error: err,\r\n });\r\n if (!lgpdError(asyncOptions)) {\r\n setErrorContext({\r\n show: true,\r\n });\r\n }\r\n }\r\n return {};\r\n },\r\n [options, token, refreshToken, isCached, ibcLogged]\r\n );\r\n\r\n useEffect(() => {\r\n if (options || lastOptions) {\r\n performRequest(lastOptions);\r\n }\r\n }, [performRequest, options]);\r\n\r\n return { performRequest, response };\r\n};\r\nexport default useAjaxRequest;\r\n","import { useState, useEffect } from 'react';\r\n\r\nimport { breakpoints } from '../styles/media';\r\n\r\nconst media = window.matchMedia(`(max-width: ${breakpoints.desktop}px)`);\r\n\r\nconst useDeviceType = () => {\r\n const [mobile, setMobile] = useState(media.matches);\r\n\r\n const mediaChange = () => {\r\n setMobile(media.matches);\r\n };\r\n\r\n useEffect(() => {\r\n media.onchange = mediaChange;\r\n return () => {\r\n media.onchange = null;\r\n };\r\n }, []);\r\n\r\n return { mobile };\r\n};\r\n\r\nexport default useDeviceType;\r\n","export const formatDate = value => {\r\n const [day, month, year] = value.split('/');\r\n return `${year}-${month}-${day}`;\r\n};\r\nexport const formatReverseDate = value => {\r\n if (!value) {\r\n return '';\r\n }\r\n const year = value.substring(0, 4);\r\n const month = value.substring(4, 6);\r\n const day = value.substring(6);\r\n\r\n return `${year}-${month}-${day}`;\r\n};\r\nexport const dateToStringFormat = value => {\r\n if (value === '') {\r\n return value;\r\n }\r\n return value\r\n .replace(/\\D/g, '')\r\n .replace(/(0){6}/g, '')\r\n .replace(/(\\d{4})(\\d{2})(\\d{2})/g, '$3/$2/$1');\r\n};\r\n\r\nexport const emptyIfNull = value => value || '';\r\n\r\nexport const currencyTagFormat = value => value.toFixed(2).replace(/\\./g, ',');\r\n\r\nexport const capitalizeFirst = value =>\r\n `${value.charAt(0).toUpperCase()}${value.toLowerCase().substr(1)}`;\r\n\r\nexport const undefinedIfEmpty = value => (value === '' ? undefined : value);\r\n\r\nexport const formatCivilState = code =>\r\n ({\r\n '1': { codigo: 'S', valor: 'Solteiro' },\r\n '2': { codigo: 'C', valor: 'Casado' },\r\n '3': { codigo: 'D', valor: 'Divorciado' },\r\n '4': { codigo: 'J', valor: 'Separado Judicialmente' },\r\n '5': { codigo: 'V', valor: 'Viúvo' },\r\n default: { codigo: '', valor: '' },\r\n }[code]);\r\n","import { URL_PDF } from '../config/endpoints';\r\n\r\nexport const openPDF = async productId => {\r\n window.open(\r\n URL_PDF(productId),\r\n '_blank',\r\n 'width=795, height=590, top=100, left=699, status=no, toolbar=no, menubar=no, resizable=no, fullscreen=no'\r\n );\r\n};\r\n\r\nexport const findContact = (type, contacts) =>\r\n contacts?.find(curr => curr.tipo === type)?.valor ?? '';\r\n\r\nexport const filterContactArray = contacts =>\r\n contacts.filter(curr => curr.valor !== '');\r\n\r\nexport const getQueryParamValue = (query, param) =>\r\n query\r\n .split('&')\r\n ?.find(a => a.includes(param))\r\n ?.split('=')[1];\r\n\r\nexport const checkIfTrue = (condition, ifTrue, ifFalse = () => {}) => {\r\n ({\r\n true: ifTrue,\r\n false: ifFalse,\r\n }[!!condition]());\r\n};\r\n\r\nexport const firstTitle = titles => titles.quantidade && titles.quantidade[0];\r\nexport const lastTitle = titles =>\r\n titles.quantidade && titles.quantidade[titles.quantidade.length - 1];\r\n","import { useContext } from 'react';\r\nimport { AppContext } from '../context';\r\nimport { URL_BASE_CHAT } from '../config/endpoints';\r\nimport { dateToStringFormat } from '../utils/formatters';\r\nimport { findContact } from '../utils/utils';\r\n\r\nconst buildParam = (key, value) => `${encodeURIComponent(`${key}: `)}${value}`;\r\n\r\nconst getProductLabel = productId => {\r\n if (!productId) {\r\n return '';\r\n }\r\n if (productId === 225){\r\n return 'Mensal';\r\n }\r\n return 'Único';\r\n};\r\nconst getPaymentValue = (titleValue, titleAmount) => {\r\n if (!titleValue || !titleAmount) {\r\n return '';\r\n }\r\n\r\n return parseInt(titleValue, 10) * parseInt(titleAmount, 10);\r\n};\r\n\r\nconst chatHandler = (baseParams, otherParams, host) => {\r\n window.open(\r\n `${host}${baseParams}&cotacao=${otherParams}`,\r\n '_blank',\r\n 'width=795, height=590, top=100, left=699, status=no, toolbar=no, menubar=no, resizable=no, fullscreen=no'\r\n );\r\n};\r\n\r\nconst baseParams = (\r\n name = 'VISITANTE',\r\n email = 'VISITANTE@VISITANTE.COM.BR',\r\n phone = '111111111'\r\n) =>\r\n [\r\n buildParam('name', name),\r\n buildParam('email', email),\r\n buildParam('phone', phone),\r\n ].join(encodeURIComponent('; '));\r\nconst personParams = (\r\n personType = '',\r\n name = '',\r\n email = '',\r\n cellphone = '',\r\n residencePhone = '',\r\n commercialPhone = '',\r\n cpf = '',\r\n birthdate = '',\r\n sex = '',\r\n maritalState = '',\r\n profession = '',\r\n cep = '',\r\n individualIncome = '',\r\n familyIncome = ''\r\n) =>\r\n [\r\n buildParam('Tipo de pessoa', personType),\r\n buildParam('Nome', name),\r\n buildParam('E-mail', email),\r\n buildParam('Telefone Celular', cellphone),\r\n buildParam('Telefone Residencial', residencePhone),\r\n buildParam('Telefone Comercial', commercialPhone),\r\n buildParam('CPF', cpf),\r\n buildParam('Data Nascimento', birthdate),\r\n buildParam('Sexo', sex),\r\n buildParam('Estado Civil', maritalState),\r\n buildParam('Profissao', profession),\r\n buildParam('CEP', cep),\r\n buildParam('Renda Individual', individualIncome),\r\n buildParam('Renda Familiar', familyIncome),\r\n ].join(encodeURIComponent('; '));\r\n\r\nconst productParams = (\r\n productId = '',\r\n paymentType = '',\r\n titleValue = '',\r\n titleAmount = '',\r\n paymentValue = ''\r\n) =>\r\n [\r\n buildParam('Codigo do Produto', productId),\r\n buildParam('Tipo de pagamento', paymentType),\r\n buildParam('Valor do titulo', titleValue),\r\n buildParam('Qtd de titulos', titleAmount),\r\n buildParam('Valor a pagar', paymentValue),\r\n ].join(encodeURIComponent('; '));\r\n\r\nconst simulationParams = currentDate =>\r\n [\r\n buildParam(\r\n 'Data da simluacao',\r\n `${currentDate.getDate()}/${currentDate.getMonth() +\r\n 1}/${currentDate.getFullYear()}`\r\n ),\r\n buildParam(\r\n 'Hora da simulacao',\r\n `${currentDate.getHours()}:${currentDate.getMinutes()}:${currentDate.getSeconds()}`\r\n ),\r\n ].join(encodeURIComponent('; '));\r\nconst useChatLink = () => {\r\n const { userData, productData } = useContext(AppContext);\r\n\r\n const getChatLink = () =>\r\n `${personParams(\r\n userData?.pessoa?.identificacao.tipo,\r\n userData?.pessoa?.nome,\r\n findContact('PES', userData?.pessoa?.comunicacao.parametros),\r\n findContact('CEL', userData?.pessoa?.comunicacao.parametros),\r\n findContact('RES', userData?.pessoa?.comunicacao.parametros),\r\n findContact('COM', userData?.pessoa?.comunicacao.parametros),\r\n userData?.pessoa?.identificacao?.codigo,\r\n dateToStringFormat(\r\n userData?.pessoa?.dadosPessoaFisica.dataNascimento ?? ''\r\n ),\r\n userData?.pessoa?.dadosPessoaFisica.sexo.codigo,\r\n userData?.pessoa?.dadosPessoaFisica.estadoCivil.valor,\r\n userData?.pessoa?.dadosPessoaFisica.profissao.valor,\r\n userData?.pessoa?.endereco.cep,\r\n userData?.pessoa?.informacoesEconomicas.faixaRenda[1].descricao,\r\n userData?.pessoa?.informacoesEconomicas.faixaRenda[0].descricao\r\n )}${encodeURIComponent('; ')}${buildParam(\r\n 'Pagina de origem',\r\n 'Autocompra CAP Ganhador'\r\n )}${encodeURIComponent('; ')}${productParams(\r\n productData?.oferta.identificacao.codigoProduto,\r\n getProductLabel(productData?.oferta.identificacao.codigoProduto),\r\n productData?.itemCapitalizacao.titulos[0].planosTitulos.valor,\r\n productData?.itemCapitalizacao.titulos[0].planosTitulos.titulo,\r\n getPaymentValue(\r\n productData?.itemCapitalizacao.titulos[0].planosTitulos.valor,\r\n productData?.itemCapitalizacao.titulos[0].planosTitulos.titulo\r\n )\r\n )}${encodeURIComponent('; ')}${simulationParams(new Date())}`;\r\n\r\n const getBaseParams = () =>\r\n `${baseParams(\r\n userData?.pessoa?.nome,\r\n findContact('PES', userData?.pessoa?.comunicacao.parametros),\r\n findContact('CEL', userData?.pessoa?.comunicacao.parametros)\r\n )}`;\r\n\r\n const callChat = () => {\r\n chatHandler(getBaseParams(), getChatLink(), URL_BASE_CHAT);\r\n };\r\n const chatURL = () =>\r\n `${URL_BASE_CHAT}${getBaseParams()}&cotacao=${getChatLink()}`;\r\n return { callChat, chatURL };\r\n};\r\nexport default useChatLink;\r\n","import { useRef } from 'react';\r\n\r\nconst useValidation = () => {\r\n const ref = useRef(null);\r\n const validate = () => ref.current.validate();\r\n return [ref, validate];\r\n};\r\n\r\nexport default useValidation;\r\n","import { useState } from 'react';\r\nimport useValidation from './useValidation';\r\n\r\nconst useInputState = (OPTIONAL_VALUE = '') => {\r\n const state = useState({\r\n invalid: false,\r\n errorMessage: '',\r\n value: OPTIONAL_VALUE,\r\n });\r\n const ref = useValidation();\r\n return [...state, ...ref];\r\n};\r\n\r\nexport default useInputState;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_MARITAL_STATES } from '../config/endpoints';\r\n\r\nconst options = {\r\n method: 'get',\r\n url: URL_MARITAL_STATES(),\r\n};\r\nconst cacheConfig = {\r\n shouldCache: true,\r\n isCacheValid: () => true,\r\n};\r\nconst useMaritalStates = () => {\r\n const {\r\n response: { error, loading, data: maritalStates },\r\n } = useAjaxRequest('maritalState', cacheConfig, options, []);\r\n\r\n return { error, loading, maritalStates };\r\n};\r\n\r\nexport default useMaritalStates;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_PROFESSIONS } from '../config/endpoints';\r\n\r\nconst options = {\r\n method: 'get',\r\n url: URL_PROFESSIONS(),\r\n};\r\nconst cacheConfig = {\r\n shouldCache: true,\r\n isCacheValid: () => true,\r\n};\r\nconst useProfessions = () => {\r\n const {\r\n response: { error, loading, data: professions },\r\n } = useAjaxRequest('professions', cacheConfig, options, []);\r\n\r\n return { error, loading, professions };\r\n};\r\n\r\nexport default useProfessions;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_ADDRESS_QUERY } from '../config/endpoints';\r\n\r\nconst useAddressQuery = () => {\r\n const {\r\n response: { error, loading, data: address },\r\n performRequest,\r\n } = useAjaxRequest('addressQuery', {\r\n shouldCache: true,\r\n isCacheValid: ({ metadata }, { url }) => metadata.url === url,\r\n });\r\n\r\n const getAddress = cep =>\r\n performRequest({ method: 'get', url: URL_ADDRESS_QUERY(cep) });\r\n\r\n return { error, loading, address, getAddress };\r\n};\r\n\r\nexport default useAddressQuery;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_INCOME_GROUP } from '../config/endpoints';\r\n\r\nconst options = {\r\n method: 'get',\r\n url: URL_INCOME_GROUP(),\r\n};\r\n\r\nconst cacheConfig = {\r\n shouldCache: true,\r\n isCacheValid: () => true,\r\n};\r\n\r\nconst useIncomeGroups = () => {\r\n const {\r\n response: { error, loading, data: incomeGroups },\r\n } = useAjaxRequest('incomeGroups', cacheConfig, options);\r\n\r\n return { error, loading, incomeGroups };\r\n};\r\n\r\nexport default useIncomeGroups;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_UFS } from '../config/endpoints';\r\n\r\nconst options = {\r\n method: 'get',\r\n url: URL_UFS(),\r\n};\r\n\r\nconst cacheConfig = {\r\n shouldCache: true,\r\n isCacheValid: () => true,\r\n};\r\nconst useUfs = () => {\r\n const {\r\n response: { error, loading, data: ufs },\r\n } = useAjaxRequest('ufs', cacheConfig, options, []);\r\n\r\n return { error, loading, ufs };\r\n};\r\n\r\nexport default useUfs;\r\n","import useAjaxRequest from './useAjaxRequest';\r\nimport { URL_SAVE_COTATION } from '../config/endpoints';\r\n\r\nconst useSaveCotation = () => {\r\n const {\r\n response: { error, loading, data: cotation },\r\n performRequest,\r\n } = useAjaxRequest();\r\n\r\n const saveCotation = (productData, userData, isIbc, agencyNumber) =>\r\n performRequest({\r\n method: 'post',\r\n url: URL_SAVE_COTATION(),\r\n\r\n data: {\r\n estruturaComercial: isIbc\r\n ? [\r\n {\r\n empresa: {\r\n CNPJ: '360305000104',\r\n nome: 'CAIXA',\r\n pontoVenda: {\r\n tipo: 'AGENCIA',\r\n codigoExterno: agencyNumber,\r\n canal: {\r\n codigo: 'IBC',\r\n nome: 'INTERNET BANKING',\r\n },\r\n },\r\n },\r\n },\r\n ]\r\n : [\r\n {\r\n empresa: {\r\n CNPJ: '34020354000110',\r\n nome: 'CAIXA SEGURADORA S.A.',\r\n },\r\n },\r\n ],\r\n clientes: [\r\n {\r\n tipoCliente: {\r\n codigo: 'TITUL',\r\n descricao: 'Titular',\r\n },\r\n ...userData,\r\n },\r\n ],\r\n ...productData,\r\n },\r\n });\r\n\r\n return { error, loading, cotation, saveCotation };\r\n};\r\n\r\nexport default useSaveCotation;\r\n","import { useCallback } from 'react';\r\nimport useAjaxRequest from './useAjaxRequest';\r\nimport { URL_PROPOSAL } from '../config/endpoints';\r\n\r\nconst useProposal = () => {\r\n const {\r\n response: { loading, data: proposal },\r\n performRequest,\r\n } = useAjaxRequest();\r\n\r\n const getProposal = useCallback(\r\n proposalId =>\r\n performRequest({\r\n method: 'post',\r\n url: URL_PROPOSAL(),\r\n headers: {\r\n 'X-Remetente': 'LOJA',\r\n 'X-Evento-Versao': '2.0',\r\n },\r\n data: {\r\n identificacao: {\r\n codigoCotacao: `${proposalId}`,\r\n },\r\n cobranca: {\r\n tpCaptura: 'GATEWAY',\r\n confGateway: {\r\n urlRetorno: `${window.location.origin}/capitalizacao/pagamento`,\r\n versao: 'v1',\r\n },\r\n },\r\n },\r\n }),\r\n [performRequest]\r\n );\r\n return { loading, getProposal, proposal };\r\n};\r\n\r\nexport default useProposal;\r\n","import env from '../config/environment';\r\n\r\nexport const lgpdConsentBody = (proposalId, cpf, subprocess, consent) => {\r\n return {\r\n sistema: {\r\n codigo: env.LGPD_SYSTEM_CODE,\r\n },\r\n unidadeNegocio: {\r\n codigo: parseInt(env.BUSINESS_UNITY_CODE),\r\n },\r\n processoNegocio: {\r\n subProcesso: {\r\n codigo: parseInt(subprocess),\r\n },\r\n macroProcesso: {\r\n codigo: parseInt(env.MACRO_PROCESS_CODE),\r\n },\r\n },\r\n cliente: {\r\n codigo: cpf,\r\n },\r\n evidencia: {\r\n codigo: proposalId, // Número da proposta gerada.\r\n },\r\n consentimento: {\r\n tipo: parseInt(consent), // Indica tipo consentimento 1-Ativo 0-Inativo\r\n },\r\n };\r\n};\r\n","import { useCallback } from 'react';\r\nimport useAjaxRequest from './useAjaxRequest';\r\nimport { URL_LGPD_CONSENT } from '../config/endpoints';\r\nimport { lgpdConsentBody } from '../utils/lgpdConsentBody';\r\nimport env from '../config/environment';\r\n\r\nconst useLgpdConsent = () => {\r\n const {\r\n response: { error, loading, data: lgpdResponse },\r\n performRequest,\r\n } = useAjaxRequest();\r\n\r\n const getLgpdConsent = useCallback(\r\n (businessProcess, subprocess, cpf) =>\r\n performRequest({\r\n method: 'get',\r\n url: URL_LGPD_CONSENT(businessProcess, cpf),\r\n params: {\r\n 'macro-processo-negocio': env.MACRO_PROCESS_CODE,\r\n 'sub-processo-negocio': subprocess,\r\n },\r\n }),\r\n [performRequest]\r\n );\r\n\r\n const postLgpdConsent = useCallback(\r\n (businessProcess, cpf, propsalId, lgpdConsent, subprocess) =>\r\n performRequest({\r\n method: 'post',\r\n url: URL_LGPD_CONSENT(businessProcess, cpf),\r\n data: lgpdConsentBody(propsalId, cpf, subprocess, lgpdConsent),\r\n }),\r\n [performRequest]\r\n );\r\n\r\n return { error, loading, lgpdResponse, getLgpdConsent, postLgpdConsent };\r\n};\r\n\r\nexport default useLgpdConsent;\r\n","/* eslint-disable */\r\n\r\nfunction unmask(mask) {\r\n return mask.replace(/(\\.)?(-)?([/])?/g, '');\r\n}\r\n\r\nconst compareString = (text, string) => {\r\n if (string === '') {\r\n return false;\r\n }\r\n if (text === string) {\r\n return true;\r\n }\r\n return compareString(text, string.slice(0, -1));\r\n};\r\n\r\nconst masks = {\r\n cpf: {\r\n mask(cpf) {\r\n return cpf\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d)/, '$1.$2')\r\n .replace(/(\\d{3})(\\d{1,2})$/, '$1-$2');\r\n },\r\n unmask,\r\n },\r\n cnpj: {\r\n mask(cnpj) {\r\n return cnpj\r\n .replace(/\\D/g, '')\r\n .replace(/^(\\d{2})(\\d)/, '$1.$2')\r\n .replace(/^(\\d{2})\\.(\\d{3})(\\d)/, '$1.$2.$3')\r\n .replace(/\\.(\\d{3})(\\d)/, '.$1/$2')\r\n .replace(/(\\d{4})(\\d)/, '$1-$2');\r\n },\r\n unmask,\r\n },\r\n rg: {\r\n mask(rg) {\r\n return rg\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d{3})(\\d{3})(\\d{1})$/, '$1.$2.$3-$4');\r\n },\r\n unmask,\r\n },\r\n cep: {\r\n mask(cep) {\r\n return cep\r\n .replace(/\\D/g, '')\r\n .replace(/(.{8})(.)/g, '$1')\r\n .replace(/^(\\d{5})(\\d)/, '$1-$2');\r\n },\r\n unmask,\r\n },\r\n\r\n date: {\r\n mask(dateMask) {\r\n return dateMask\r\n .replace(/\\D/g, '')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2')\r\n .replace(/(\\d{2})(\\d)/, '$1/$2');\r\n },\r\n unmask: text => text,\r\n },\r\n\r\n phone: {\r\n mask(phoneMask) {\r\n return phoneMask\r\n .replace(/\\D/g, '')\r\n .replace(/^(\\d)/, '($1')\r\n .replace(/^(\\(\\d{2})(\\d)/, '$1) $2')\r\n .replace(/(\\d{5})(\\d{4})/, '$1-$2')\r\n .replace(/(-\\d{4})\\d+?$/, '$1');\r\n },\r\n unmask: text => masks.numberOnly.mask(text, 11),\r\n },\r\n name: {\r\n mask(value) {\r\n return value.replace(/\\d/g, '');\r\n },\r\n unmask,\r\n },\r\n homePhone: {\r\n mask(phoneMask) {\r\n return phoneMask\r\n .replace(/\\D/g, '')\r\n .replace(/^(\\d)/, '($1')\r\n .replace(/^(\\(\\d{2})(\\d)/, '$1) $2')\r\n .replace(/(\\d{4})(\\d{4})/, '$1-$2')\r\n .replace(/(-\\d{4})\\d+?$/, '$1');\r\n },\r\n unmask: text => masks.numberOnly.mask(text, 10),\r\n },\r\n commercialPhone: {\r\n mask(phoneMask) {\r\n return phoneMask\r\n .replace(/\\D/g, '')\r\n .replace(/^(\\d)/, '($1')\r\n .replace(/^(\\(\\d{2})(\\d)/, '$1) $2')\r\n .replace(/(\\d{4,5})(\\d{4})/, '$1-$2')\r\n .replace(/(-\\d{4})\\d+?$/, '$1');\r\n },\r\n unmask: text => masks.numberOnly.mask(text, 11),\r\n },\r\n numberOnly: {\r\n mask(value, length = 200) {\r\n if (!value) {\r\n return '';\r\n }\r\n return value.replace(/\\D/g, '').substr(0, length);\r\n },\r\n unmask: text => text.replace(/\\D/g, ''),\r\n },\r\n agency: {\r\n mask(value) {\r\n if (value === '') {\r\n return value;\r\n }\r\n\r\n return value.replace(/\\D/g, '').replace(/(\\d{4})(\\d)/g, '$1-$2');\r\n },\r\n unmask,\r\n },\r\n year: {\r\n mask(value) {\r\n if (value === '') {\r\n return value;\r\n }\r\n\r\n value = value.replace(/\\D/g, '');\r\n\r\n if (value.length >= 2) {\r\n value = value.substring(0, 2);\r\n }\r\n\r\n return `${value} anos`;\r\n },\r\n unmask(value) {\r\n const onlyNumber = value.replace(/\\D/g, '');\r\n if (value.length > 3 && value.substr(2).trim() === 'ano') {\r\n return onlyNumber.substr(0, onlyNumber.length - 1);\r\n }\r\n return onlyNumber.substr(0, 2);\r\n },\r\n },\r\n currency: {\r\n mask(value) {\r\n if (value === '') {\r\n return value;\r\n }\r\n return parseFloat(value)\r\n .toFixed(2)\r\n .replace('.', ',')\r\n .replace(/\\d(?=(\\d{3})+,)/g, '$&.');\r\n },\r\n unmask(mask) {\r\n return mask.replace(/\\D/g, '');\r\n },\r\n },\r\n currencyInput: {\r\n mask(value) {\r\n value = `${value}`.replace(/\\R\\$/g, '');\r\n value = value\r\n .replace(',', '')\r\n .split('.')\r\n .join('');\r\n return value === '' ? '' : `R$ ${masks.currency.mask(value / 100)}`;\r\n },\r\n unmask(mask) {\r\n return mask.replace(/\\D/g, '');\r\n },\r\n },\r\n none: {\r\n mask(text) {\r\n return text;\r\n },\r\n unmask(text) {\r\n return text;\r\n },\r\n },\r\n\r\n title: {\r\n mask(text) {\r\n if (text === '') {\r\n return text;\r\n }\r\n\r\n text = `${text}`.replace(/\\D/g, '');\r\n\r\n if (text.length >= 2) {\r\n text = text.substring(0, 2);\r\n }\r\n if (text === '1') {\r\n return `${text} titulo`;\r\n }\r\n return `${text} titulos`;\r\n },\r\n unmask(text) {\r\n const onlyNumber = text.replace(/\\D/g, '');\r\n if (text.length > 3 && compareString(text.substr(2).trim(), 'titulo')) {\r\n return onlyNumber.substr(0, onlyNumber.length - 1);\r\n }\r\n return onlyNumber.substr(0, 2);\r\n },\r\n },\r\n};\r\n\r\nexport default masks;\r\n","import masks from './masks';\r\n\r\nexport const headerShareText =\r\n 'A chance de ficar milionário está a um clique de você. Faça como eu e tenha uma Capitalização da Caixa Seguradora, é fácil e rápido.';\r\nexport const headerShareGuideName = '_system';\r\nexport const headerShareGuideSettings =\r\n 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=800';\r\nexport const homeStaticText = `É proibida a venda de título de capitalização a menores de dezesseis anos. - Art. 3º, I do Código Civil.\r\n CNPJ: 01.559.296/0001-71. Processo SUSEP 15414.900329/2019-04 Cap Ganhador Pagamento Único - Processo SUSEP 15414.900328/2019-51 Cap\r\n Ganhador Pagamento Mensal. A aprovação deste título pela SUSEP não implica, por parte da Autarquia, em incentivo ou recomendação,\r\n representando, exclusivamente, sua adequação às normas em vigor.`;\r\nexport const homeBannerTitle = 'Entenda quanto vai custar o seu produto';\r\nexport const homeStoringSectionTitle = 'Como prefere guardar o seu dinheiro?';\r\nexport const homeMothlyPaymentText = 'Pagamento mensal';\r\nexport const homeMonthlyPaymentDescription = (min = 0, max = 0) =>\r\n `Você escolhe entre R$ ${masks.currency.mask(min)} e R$ ${masks.currency.mask(\r\n max\r\n )} por mês, paga com cartão de crédito ou débito em conta Caixa durante 72 meses e concorre enquanto estiver pagando.`;\r\nexport const homeUniquePaymentText = 'Pagamento único';\r\nexport const homeUniquePaymentDescription = (min = 0, max = 0) =>\r\n `Você escolhe entre R$ ${masks.currency.mask(min)} e R$ ${masks.currency.mask(\r\n max\r\n )} e pode pagar com cartão de crédito, débito em conta Caixa ou boleto.`;\r\nexport const ibcHomeUniquePaymentDescription = (min = 0, max = 0) =>\r\n `Você escolhe entre R$ ${masks.currency.mask(min)} e R$ ${masks.currency.mask(\r\n max\r\n )}, paga com cartão de crédito ou débito em conta Caixa uma única vez e concorre durante 48 meses.`;\r\nexport const homePaymentSectionTitle = 'Quanto você quer pagar?';\r\nexport const homeTitleSectionTitle = 'Quantos títulos você quer comprar?';\r\nexport const homeValueSelectorFooterText = (difference = 0) =>\r\n `Valores de R$${difference},00 em R$${difference},00`;\r\nexport const registerBannerTitle = 'É hora de preencher seus dados pessoais';\r\nexport const registerNewsletterText =\r\n 'Como deseja receber informações do Cap Ganhador?';\r\nexport const documentsCongratulationsTitle = 'Parabéns';\r\nexport const documentsCongratulationsSubTitle =\r\n 'Você acaba de adquirir o seu Cap Ganhador';\r\nexport const documentsProposalNumberLabel = 'Anote o número da sua proposta:';\r\nexport const documentsProductLabel = 'Acompanhar seu produto';\r\nexport const documentsProductButtonText = 'Serviços ao Cliente';\r\nexport const ibcDocumentsProductButtonText =\r\n 'Voltar ao Internet Banking da Caixa';\r\nexport const documentsFileSectionTitle =\r\n 'Enviamos um email para você com os seguintes arquivos';\r\nexport const documentsFileAccessionLabel = 'Proposta de adesão';\r\nexport const documentsFileAccessionDescription =\r\n 'Com ela poderá consulta-la sempre que tiver dúvidas sobre seu produto';\r\nexport const documentsFileBilletLabel = 'Boleto bancário';\r\nexport const documentsFileBilletDescription =\r\n 'Consulte as regras, condições e cobertura do seu produto';\r\nexport const documentsFileConditionsLabel = 'Condições gerais';\r\nexport const documentsFileConditionsDescrition =\r\n 'Consulte as regras, condições e cobertura do seu produto';\r\nexport const documentsFileButtonText = 'Baixar';\r\nexport const documentsCompanyContactSectionTitle =\r\n 'Em caso de dúvida, entre em contato com um dos nossos canais de atendimento:';\r\nexport const documentsCompanyContactServicesTitle = `Central de Serviços e\r\nRelacionamento`;\r\nexport const documentsCompanyContactServicesContent = '3004- 4000';\r\nexport const documentsCompanyContactSACTitle =\r\n 'SAC - Sugestões, dúvidas, reclamações e cancelamentos';\r\nexport const documentsCompanyContactSACContent = '0800 702 4280';\r\nexport const documentsCompanyContactombudsmanTitle = 'Ouvidoria';\r\nexport const documentsCompanyContactombudsmanContent = '0800 702 4240';\r\nexport const documentsCompanyContactCASTitle =\r\n 'CAS - Central de Atendimento ao Surdo';\r\nexport const documentsCompanyContactCASContent = '0800 702 4260';\r\nexport const footerAddress =\r\n 'Edifício Sede: SHN Quadra 01, Conj. A, Bl. E Brasília/DF - CEP: 70.701-050';\r\nexport const footerCNPJ = 'Caixa Capitalização - 34.020.354/001-10';\r\nexport const footerCopyright = '© Copyright 2020 Caixa Seguradora';\r\nexport const footerRightsReserved = 'Todos os direitos reservados.';\r\nexport const registerTypePersonTitle = 'Você é uma pessoa:';\r\nexport const personalDataTitle = 'Dados pessoais';\r\nexport const nameInputPlaceholder = 'Nome completo';\r\nexport const sexInputPlaceholder = 'Sexo';\r\nexport const cpfInputPlaceholder = 'CPF';\r\nexport const birthdatePlaceholder = 'Data de nascimento';\r\nexport const maritalStatePlaceholder = 'Estado civil';\r\nexport const professionPlaceholder = 'Profissão';\r\nexport const individualIncomePlaceholder = 'Faixa de renda individual';\r\nexport const familyIncomePlaceholder = 'Faixa de renda familiar';\r\nexport const addressDataTitle = 'Endereço';\r\nexport const addressDataSubtitle =\r\n 'Insira seu CEP e em seguida o endereço será exibido. Complete o que precisar!';\r\nexport const cepPlaceholder = 'CEP';\r\nexport const addressPlaceholder = 'Endereço';\r\nexport const numberPlaceholder = 'Número';\r\nexport const additionPlaceholder = 'Complemento';\r\nexport const neighborhoodPlaceholder = 'Bairro';\r\nexport const cityPlaceholder = 'Cidade';\r\nexport const ufPlaceholder = 'UF';\r\nexport const contactDataTitle = 'Contato';\r\nexport const mobilePhonePlaceholder = 'Telefone celular';\r\nexport const commercialPhonePlaceholder = 'Telefone comercial';\r\nexport const residentialPhonePlaceholder = 'Telefone residencial';\r\nexport const emailPlaceholder = 'Email';\r\nexport const forgotCepText = 'Esqueceu seu cep?';\r\nexport const paymentTitle = 'Falta pouco para cuidar do seu futuro';\r\nexport const confirmDataTitle = 'Verifique seus dados e finalize sua compra.';\r\nconst confirmDataSubtitleOne =\r\n 'A Caixa Seguradora pode solicitar cópias dos seus documentos pessoais no momento de devolução dos valores do seu título.';\r\nconst confirmDataSubtitleTwo =\r\n ' Antes de finalizar a compra do seu produto, verifique se seus dados estão corretos.';\r\nexport const confirmDataSubtitle = `${confirmDataSubtitleOne}${confirmDataSubtitleTwo}`;\r\nexport const congratulationEmailTitle =\r\n 'Por aqui é só! Após identificarmos o pagamento, o seu Cap Ganhador já estará valendo.';\r\nexport const congratulationEmailSubtitle =\r\n 'Para sua segurança, enviamos a proposta para o seu e-mail. Assine de forma digital e fique tranquilo!';\r\nexport const noPhoneErrorMessage = 'Informe pelo menos um telefone válido';\r\nexport const individualIncomeError =\r\n 'A renda individual não deve ser maior que a familiar';\r\n","import React, { useState } from 'react';\r\nimport * as S from './styled';\r\nimport { useDeviceType } from '../../hooks';\r\nimport Icon from '../Icon';\r\nimport {\r\n headerShareText,\r\n headerShareGuideName,\r\n headerShareGuideSettings,\r\n} from '../../utils/constants';\r\nimport {\r\n URL_TO_SHARE,\r\n URL_WHATSAPP_SHARE,\r\n URL_FACEBOOK_SHARE,\r\n URL_TWITTER_SHARE,\r\n} from '../../config/endpoints';\r\n\r\nconst Share = () => {\r\n const [toggle, setToggle] = useState(false);\r\n const { mobile } = useDeviceType();\r\n\r\n const openSharePage = url => () => {\r\n window.open(url, headerShareGuideName, headerShareGuideSettings);\r\n };\r\n\r\n const handleToggle = () => setToggle(!toggle);\r\n\r\n return mobile ? (\r\n {\r\n if (navigator.share) {\r\n navigator.share({ url: URL_TO_SHARE(), text: headerShareText });\r\n }\r\n }}\r\n />\r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n Compartilhe com:\r\n \r\n \r\n Facebook\r\n \r\n \r\n \r\n Twitter\r\n \r\n \r\n \r\n Whatsapp\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Share;\r\n","import React, { useContext } from 'react';\r\nimport * as S from './styled';\r\nimport AppContext from '../../context/AppContext';\r\nimport Icon from '../Icon';\r\nimport Share from '../Share';\r\n\r\nconst Header = ({ icon }) => {\r\n const { headerConfig: config = {} } = useContext(AppContext);\r\n\r\n return (\r\n \r\n \r\n \r\n Cap Ganhador\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Header;\r\n","import styled from 'styled-components/macro';\r\nimport { white, grayVariant } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const FooterContainer = styled.footer`\r\n position: relative;\r\n justify-content: flex-start;\r\n align-items: initial;\r\n background-color: ${white};\r\n padding: 15px 15px 20px;\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n\r\n ${media.desktop`\r\n flex-direction: row;\r\n padding-left: 5%;\r\n padding-right: 5%;\r\n margin: 0 auto;\r\n `};\r\n\r\n article {\r\n :nth-child(3) {\r\n order: 2;\r\n margin-bottom: 9px;\r\n }\r\n :nth-child(2) {\r\n order: 3;\r\n }\r\n ${media.desktop`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-around;\r\n margin-left: 35px;\r\n :nth-child(3) {\r\n order: 3;\r\n }\r\n :nth-child(2) {\r\n order: 2;\r\n }\r\n `};\r\n p {\r\n text-align: initial;\r\n color: ${grayVariant};\r\n ${fontSize(10)};\r\n\r\n ${media.desktop`\r\n ${fontSize(12)};\r\n `};\r\n }\r\n p:first-child {\r\n margin-bottom: 5px;\r\n }\r\n }\r\n`;\r\n\r\nexport const FooterImage = styled.img`\r\n max-width: 70px;\r\n align-self: flex-start;\r\n margin-bottom: 15px;\r\n height: auto;\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const Chat = styled.button`\r\n position: absolute;\r\n color: ${({ theme }) => theme.chatTextColor};\r\n padding: 10px;\r\n background-color: ${({ theme }) => theme.chatBgColor};\r\n border-radius: 5px 5px 3px 3px;\r\n cursor: pointer;\r\n border: 0;\r\n right: 20px;\r\n top: 10px;\r\n ${fontSize(12)};\r\n font-weight: bold;\r\n\r\n .dots {\r\n margin-left: 5px;\r\n letter-spacing: 3px;\r\n }\r\n\r\n &::after {\r\n content: '';\r\n width: 0;\r\n height: 0;\r\n border-style: solid;\r\n border-width: 8px 0 0 8px;\r\n border-color: transparent transparent transparent\r\n ${({ theme }) => theme.chatBgColor};\r\n position: absolute;\r\n right: -5px;\r\n bottom: 0px;\r\n }\r\n\r\n ${media.desktop`\r\n top: 25px;\r\n right: 150px;\r\n `};\r\n`;\r\n","import React, { useContext } from 'react';\r\nimport { useChatLink } from '../../hooks';\r\nimport * as S from './styled';\r\nimport { AppContext } from '../../context';\r\n\r\nconst Chat = () => {\r\n const { chatURL } = useChatLink();\r\n const { setContext, showEmbeddedChat, minimized } = useContext(AppContext);\r\n\r\n const handleChat = () => {\r\n if (!showEmbeddedChat) {\r\n setContext({\r\n urlChat: chatURL(),\r\n showEmbeddedChat: true,\r\n minimized: false,\r\n });\r\n } else {\r\n setContext({\r\n minimized: false,\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {(minimized || !showEmbeddedChat) && (\r\n {\r\n handleChat();\r\n }}\r\n >\r\n Chat ---\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default Chat;\r\n","import React, { useContext } from 'react';\r\nimport { FooterContainer, FooterImage } from './styled';\r\nimport {\r\n footerAddress,\r\n footerCNPJ,\r\n footerCopyright,\r\n footerRightsReserved,\r\n} from '../../utils/constants';\r\nimport logo from '../../assets/images/logo-caixaseguradora.png';\r\nimport Chat from '../Chat';\r\nimport { AppContext } from '../../context';\r\n\r\nconst Footer = ({ showFooterChat }) => {\r\n const { ibcLogged } = useContext(AppContext);\r\n return (\r\n \r\n \r\n
\r\n

{footerAddress}

\r\n

{footerCNPJ}

\r\n
\r\n
\r\n

{footerCopyright}

\r\n

{footerRightsReserved}

\r\n
\r\n {showFooterChat && !ibcLogged && }\r\n
\r\n );\r\n};\r\n\r\nexport default Footer;\r\n","import React, { useContext } from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { AppContext } from '../context';\r\n\r\nconst PrivateRoute = ({\r\n component: Component,\r\n dependsOn = 'setContext',\r\n blockIf = '',\r\n reference: ref,\r\n ...rest\r\n}) => {\r\n const context = useContext(AppContext);\r\n\r\n return (\r\n \r\n !context[blockIf] && context[dependsOn] ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import styled from 'styled-components/macro';\r\nimport media from '../../styles/media';\r\n\r\nexport const PageContent = styled.main`\r\n padding: ${({ header }) => (header ? '25px' : '50px')} 15px 25px;\r\n z-index: 1;\r\n width: 100%;\r\n margin: auto;\r\n ${media.desktop`\r\n max-width: ${({ size }) => `${size}px`};\r\n padding-top: 60px;\r\n padding-bottom: 60px;\r\n `};\r\n\r\n .NavigationInfo {\r\n margin-bottom: 15px;\r\n ${media.desktop`\r\n margin-bottom: 45px;\r\n `}\r\n }\r\n\r\n .Banner {\r\n margin-bottom: 10px;\r\n\r\n ${media.desktop`\r\n margin-bottom: 20px;\r\n `}\r\n }\r\n\r\n .Section {\r\n margin-bottom: 10px;\r\n\r\n ${media.desktop`\r\n margin-bottom: 20px;\r\n `}\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { grayText } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const TextWrapper = styled.h2`\r\n display: flex;\r\n justify-content: center;\r\n width: 100%;\r\n align-items: center;\r\n margin-bottom: 12px;\r\n font-weight: 400;\r\n color: ${grayText};\r\n ${fontSize(16)};\r\n ${media.desktop`\r\n ${fontSize(32)};\r\n margin-bottom: 45px;\r\n `}\r\n`;\r\n\r\nexport const InfoWrapper = styled.section`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n position: relative;\r\n justify-content: center;\r\n align-items: center;\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { blueProgressBar } from '../../styles/colors';\r\nimport media from '../../styles/media';\r\n\r\nexport const ProgressBar = styled.progress`\r\n width: 100%;\r\n height: 4px;\r\n appearance: none;\r\n background-color: ${blueProgressBar};\r\n border-radius: 2px;\r\n border-color: ${blueProgressBar};\r\n border-width: 0;\r\n\r\n ::-webkit-progress-bar {\r\n background-color: ${blueProgressBar};\r\n border-radius: 2px;\r\n }\r\n ::-webkit-progress-value {\r\n border-radius: 2px;\r\n background-color: ${({ theme }) => theme.secondaryColor};\r\n transition: width 0.5s ease;\r\n }\r\n ::-moz-progress-bar {\r\n border-radius: 2px;\r\n background-color: ${({ theme }) => theme.secondaryColor};\r\n transition: width 0.5s ease;\r\n }\r\n ::-ms-fill {\r\n background-color: ${({ theme }) => theme.secondaryColor};\r\n border: 0;\r\n }\r\n\r\n ${media.desktop`\r\n margin: auto;\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst ProgressBar = ({ total, current, ...rest }) => (\r\n \r\n);\r\n\r\nexport default ProgressBar;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport ProgressBar from '../ProgressBar';\r\n\r\nconst NavigationInfo = ({ pageAmount = 4, currentPage }) => (\r\n \r\n {`Passo ${currentPage} de ${pageAmount}`}\r\n \r\n \r\n);\r\nexport default NavigationInfo;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport NavigationInfo from '../NavigationInfo';\r\nimport { useDeviceType } from '../../hooks/index';\r\n\r\nconst PageContent = ({\r\n size = '768',\r\n title,\r\n step,\r\n goBack,\r\n children,\r\n bundle,\r\n extraCare,\r\n theme = 'default',\r\n ...others\r\n}) => {\r\n const { mobile } = useDeviceType();\r\n return (\r\n \r\n {step && (\r\n <>\r\n \r\n \r\n )}\r\n\r\n {children}\r\n \r\n );\r\n};\r\nexport default PageContent;\r\n","import styled, { css } from 'styled-components/macro';\r\nimport {\r\n white,\r\n graySecondaryDark,\r\n grayDividerSecondary,\r\n graySecondary,\r\n} from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const SectionWrapper = styled.section`\r\n display: ${({ displayGrid }) => (displayGrid ? `grid` : `flex`)};\r\n justify-content: space-between;\r\n ${({ flexEnd }) =>\r\n flexEnd &&\r\n css`\r\n align-content: flex-end;\r\n `};\r\n ${({ rowDirection }) => (rowDirection ? `row` : `column`)};\r\n flex-wrap: wrap;\r\n flex-direction: ${({ rowDirection }) => (rowDirection ? `row` : `column`)};\r\n background-color: ${({ bgTransparent }) =>\r\n bgTransparent ? `transparent` : `${white}`};\r\n border-radius: 3px;\r\n box-shadow: ${({ bgTransparent }) =>\r\n bgTransparent ? `none` : `1px 1px 1px 0 rgba(0, 0, 0, 0.1)`};\r\n\r\n padding: ${({ noPadding }) => (noPadding ? `0` : `40px 20px`)};\r\n ${({ columns }) =>\r\n columns &&\r\n css`\r\n > section {\r\n flex: 0 1 calc(100%);\r\n margin-bottom: 10px;\r\n ${media.desktop`\r\n margin-bottom: 0;\r\n flex: 0 1 calc(${100 / columns}% - 10px);\r\n `}\r\n }\r\n `}\r\n ${({ displayGrid }) =>\r\n displayGrid &&\r\n css`\r\n grid-template-columns: repeat(2, 1fr);\r\n grid-auto-columns: 100%;\r\n grid-column-gap: 15px;\r\n grid-row-gap: 25px;\r\n > h2 {\r\n grid-column: span 2;\r\n margin-bottom: 0;\r\n }\r\n ${media.desktop`\r\n padding: ${({ noPadding }) => (noPadding ? `0` : `40px 20px`)};\r\n grid-template-columns: ${({ gridCol }) =>\r\n gridCol ? `repeat(${gridCol}, 1fr)` : `repeat(3, 1fr)`};\r\n\r\n > h2 {\r\n grid-column: ${({ gridCol }) =>\r\n gridCol ? `span ${gridCol}` : `span 3`};\r\n }\r\n\r\n `}\r\n `}\r\n`;\r\n\r\nexport const InlineChildrenWrapper = styled.div`\r\n display: inline-flex;\r\n ${({ fullWidth }) => fullWidth && 'width: 100%;'}\r\n`;\r\n\r\nexport const SubsectionWrapper = styled.section`\r\n padding: 10px 20px;\r\n background-color: ${white};\r\n box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n border-radius: 3px;\r\n ${media.desktop`\r\n padding: 18px 29px;\r\n `}\r\n border-bottom: ${({ border }) =>\r\n border && `1px solid ${grayDividerSecondary}`};\r\n`;\r\n\r\nexport const SectionHeader = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding: 20px;\r\n ${fontSize(12)};\r\n ${media.desktop`\r\n ${fontSize(14)}\r\n padding: 40px 29px 0 29px;\r\n `}\r\n`;\r\n\r\nexport const SectionContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: space-between;\r\n`;\r\n\r\nexport const SectionTitle = styled.h2`\r\n margin-bottom: 15px;\r\n ${fontSize(14)};\r\n color: ${graySecondaryDark};\r\n`;\r\n\r\nexport const SectionSubtitle = styled.h3`\r\n margin-bottom: 16px;\r\n ${fontSize(12)};\r\n color: ${graySecondaryDark};\r\n margin-bottom: 15px;\r\n font-weight: normal;\r\n`;\r\n\r\nexport const SubsectionHeader = styled(SectionHeader)`\r\n padding: 0;\r\n ${media.desktop`\r\n padding: 0;\r\n `}\r\n`;\r\nexport const SectionSmallText = styled.p`\r\n ${fontSize(10)};\r\n margin: 5px 0;\r\n line-height: 1.2;\r\n color: ${graySecondary};\r\n ${media.desktop`\r\n ${({ smaller }) => (smaller ? fontSize(10) : fontSize(12))};\r\n `}\r\n`;\r\n\r\nexport const Footer = styled.div`\r\n display: flex;\r\n\r\n align-items: center;\r\n`;\r\n\r\nexport const FooterText = styled.p`\r\n ${fontSize(11)};\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Section = ({\r\n title,\r\n titleClassName,\r\n subTitle,\r\n children,\r\n extraHeader,\r\n mobile,\r\n inlineChildren,\r\n fullWidth,\r\n className,\r\n ...other\r\n}) => (\r\n \r\n {title && (\r\n {title}\r\n )}\r\n {subTitle && {subTitle}}\r\n {inlineChildren ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n children\r\n )}\r\n \r\n);\r\n\r\nexport default Section;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst SectionSmallText = ({ children, smaller, ...other }) => (\r\n \r\n {children}\r\n \r\n);\r\nexport default SectionSmallText;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst SectionFooter = ({ children, ...rest }) => (\r\n {children}\r\n);\r\n\r\nexport default SectionFooter;\r\n","import styled from 'styled-components/macro';\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const StaticTextWrapper = styled.section`\r\n margin: ${({ margin }) => margin};\r\n ${media.desktop`\r\n margin: ${({ marginDesktop }) => marginDesktop};\r\n `};\r\n`;\r\n\r\nexport const StaticTextText = styled.p`\r\n color: ${({ color }) => color};\r\n ${({ size }) => (size ? fontSize(size) : fontSize(10))};\r\n font-weight: normal;\r\n font-style: normal;\r\n line-height: 1.5;\r\n text-align: ${({ alignLeft }) => (alignLeft ? 'initial' : 'center')};\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst StaticText = ({ children, ...rest }) => (\r\n \r\n {children}\r\n \r\n);\r\n\r\nexport default StaticText;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const TitleContent = styled.h1`\r\n width: 100%;\r\n font-weight: bold;\r\n ${fontSize(12)};\r\n ${media.desktop`\r\n ${fontSize(18)};\r\n `};\r\n`;\r\n","import React from 'react';\r\nimport { TitleContent } from './styled';\r\n\r\nconst Title = ({ children, ...rest }) => (\r\n {children}\r\n);\r\n\r\nexport default Title;\r\n","import styled from 'styled-components/macro';\r\nimport Title from '../Title';\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const Banner = styled.section`\r\n display: flex;\r\n flex-direction: column;\r\n width: 100%;\r\n`;\r\n\r\nexport const BannerTitle = styled(Title)`\r\n margin-bottom: 16px;\r\n ${media.desktop`\r\n margin-bottom: ${({ subtitle }) => (subtitle ? '13px' : '25px')} ;\r\n `}\r\n`;\r\n\r\nexport const BannerSubtitle = styled.h2`\r\n ${fontSize(12)};\r\n color: ${({ theme }) => theme.colorText};\r\n font-weight: ${({ bold }) => (bold ? `bold` : `normal`)};\r\n line-height: 1.2;\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Banner = ({\r\n children,\r\n title,\r\n subtitle,\r\n bold = true,\r\n className,\r\n ...rest\r\n}) => (\r\n \r\n {title && {title}}\r\n {subtitle && {subtitle}}\r\n {children}\r\n \r\n);\r\n\r\nexport default Banner;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport { white } from '../../styles/colors';\r\nimport media from '../../styles/media';\r\n\r\nexport const BannerContent = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n flex-grow: 1;\r\n padding-top: 24px;\r\n padding-bottom: 13px;\r\n color: ${white};\r\n background-color: ${({ theme }) => theme.secondaryColor};\r\n border-radius: 3px;\r\n`;\r\n\r\nexport const BannerContentTitle = styled.h3`\r\n ${fontSize(14)};\r\n font-weight: normal;\r\n\r\n ${media.desktop`\r\n ${fontSize(18)};\r\n `};\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst BannerContent = ({ title, children, ...rest }) => (\r\n \r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n {children}\r\n \r\n);\r\n\r\nexport default BannerContent;\r\n","import styled from 'styled-components/macro';\r\nimport {\r\n blue,\r\n white,\r\n blueSecondary,\r\n graySecondaryDark,\r\n} from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\nimport Icon from '../Icon';\r\n\r\nexport const RadioButtonWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: ${({ alignLeft, description }) =>\r\n alignLeft || description ? 'flex-start' : 'center'};\r\n min-width: 25px;\r\n min-height: 25px;\r\n ${media.desktop`\r\n margin-bottom: 0;\r\n `}\r\n`;\r\n\r\nexport const RadioButton = styled.div`\r\n border: 1px solid\r\n ${({ theme, invalid }) => (invalid ? theme.invalidColor : blue)};\r\n width: 25px;\r\n height: 25px;\r\n cursor: pointer;\r\n background-color: ${white};\r\n padding: 2px;\r\n margin-right: 18px;\r\n border-radius: 6px;\r\n text-align: center;\r\n`;\r\n\r\nexport const Check = styled.div`\r\n background-color: ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : blueSecondary};\r\n min-width: 19px;\r\n min-height: 19px;\r\n border-radius: 6px;\r\n`;\r\n\r\nexport const StyledLabel = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n ${fontSize(12)};\r\n color: ${({ dark }) => (dark ? graySecondaryDark : blueSecondary)};\r\n${({ theme, invalid }) => invalid && `color: ${theme.invalidColor};`}\r\n font-weight: ${({ bold }) => bold && 'bold'};\r\n cursor: pointer;\r\n ${media.desktop`\r\n ${fontSize(14)}\r\n `}\r\n > span {\r\n margin-top: 8px;\r\n }\r\n`;\r\n\r\nexport const Description = styled.p`\r\n color: ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : theme.colorText};\r\n ${fontSize(12)};\r\n margin-top: 10px;\r\n margin: 10px 10px 0 45px;\r\n line-height: 1.4;\r\n ${media.desktop`\r\n ${fontSize(14)}\r\n `}\r\n`;\r\n\r\nexport const IconCheck = styled(Icon)`\r\n font-size: 20px;\r\n color: ${({ theme }) => theme.radioIconColor};\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport Banner from '../Banner';\r\nimport BannerContent from '../BannerContent';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const StyledBanner = styled(Banner)`\r\n ${fontSize(38)};\r\n ${media.desktop`\r\n ${fontSize(48)};\r\n padding: 10 0;\r\n `}\r\n`;\r\n\r\nexport const StyledBannerContent = styled(BannerContent)`\r\n h2 {\r\n margin-bottom: 10px;\r\n ${media.desktop`\r\n margin-bottom: 0;\r\n `}\r\n }\r\n\r\n p {\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: center;\r\n small {\r\n width: 100%;\r\n text-align: center;\r\n ${media.desktop`\r\n width: auto;\r\n line-height: 4;\r\n `}\r\n }\r\n\r\n ${media.desktop`\r\n `}\r\n font-weight: bold;\r\n ${media.desktop`\r\n margin-left: 15px;\r\n `}\r\n small {\r\n font-weight: normal;\r\n ${fontSize(14)};\r\n ${media.desktop`\r\n ${fontSize(16)};\r\n `}\r\n }\r\n strong {\r\n ${fontSize(38)};\r\n ${media.desktop`\r\n ${fontSize(48)};\r\n `}\r\n }\r\n }\r\n justify-content: center;\r\n ${media.desktop`\r\n flex-direction: row;\r\n justify-content: center;\r\n align-items: baseline;\r\n `};\r\n`;\r\n","export const KEY = {\r\n ENTER: {\r\n code: 13,\r\n name: 'enter',\r\n },\r\n SPACE: {\r\n code: 32,\r\n name: 'space',\r\n },\r\n DOWN: {\r\n code: 40,\r\n name: 'arrowdown',\r\n },\r\n UP: {\r\n code: 38,\r\n name: 'arrowup',\r\n },\r\n ESC: {\r\n code: 27,\r\n name: 'esc',\r\n },\r\n TAB: {\r\n code: 9,\r\n name: 'tab',\r\n },\r\n BACKSPACE: {\r\n code: 8,\r\n name: 'backspace',\r\n },\r\n};\r\nexport const checkKey = (event, keyCode, keyName) =>\r\n event.which === keyCode || event.keyCode === keyCode || event.key === keyName;\r\n\r\nexport const handleChange = setter => value => setter(value);\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport { checkKey, KEY } from '../../utils/inputEvents';\r\n\r\nconst RadioButton = ({\r\n text,\r\n checked,\r\n onChange,\r\n bold,\r\n dark,\r\n description,\r\n icon,\r\n alignLeft,\r\n invalid,\r\n}) => {\r\n const handleKeyPress = e => {\r\n if (\r\n checkKey(e, KEY.ENTER.code, KEY.ENTER.name) ||\r\n checkKey(e, KEY.SPACE.code, KEY.SPACE.name)\r\n ) {\r\n onChange();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {checked &&\r\n (icon ? (\r\n \r\n ) : (\r\n \r\n ))}\r\n \r\n {text}\r\n \r\n {description && (\r\n {description}\r\n )}\r\n \r\n );\r\n};\r\nexport default RadioButton;\r\n","import styled, { css } from 'styled-components/macro';\r\nimport media from '../media';\r\n\r\nfunction getFlex(col) {\r\n switch (col) {\r\n case col > 60 && col < 70:\r\n return `flex: 0 1 calc(${col}% - 2px);`;\r\n\r\n case 33:\r\n return `flex: 0 1 calc(33.33% - 16px);`;\r\n\r\n default:\r\n return `flex: 0 1 calc(${col}% - 16px);`;\r\n }\r\n}\r\n\r\nfunction createCol(col) {\r\n const baseCss = `\r\n flex-basis: 100%;\r\n margin: 7px 0;\r\n min-width: 0;\r\n `;\r\n if (!col) {\r\n return css`\r\n ${baseCss}\r\n max-width: 100%;\r\n `;\r\n }\r\n if (col < 60) {\r\n return css`\r\n ${baseCss}\r\n ${media.desktop`\r\n ${getFlex(col)}`}\r\n `;\r\n }\r\n return css`\r\n ${baseCss}\r\n max-width: 100%\r\n ${media.desktop`\r\n ${getFlex(col)};\r\n `};\r\n `;\r\n}\r\n\r\nexport const Row = styled.div`\r\n padding: 0;\r\n margin: ${({ margin }) => margin || '0'};\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: wrap;\r\n justify-content: ${({ flexStart }) =>\r\n flexStart ? 'flex-start' : 'space-between'};\r\n\r\n &:last-child {\r\n margin-bottom: 0;\r\n }\r\n ${({ hasBorderBottom }) =>\r\n hasBorderBottom &&\r\n css`\r\n &:after {\r\n content: '';\r\n border-bottom: 1px solid ${({ theme }) => theme.divider};\r\n width: 100%;\r\n margin-bottom: 30px;\r\n padding-top: 15px;\r\n }\r\n `}\r\n\r\n ${({ flexStart }) =>\r\n flexStart &&\r\n css`\r\n > div:not(:last-child) {\r\n ${({ keepSize }) => keepSize || 'margin-right: 25px'};\r\n ${media.desktop`\r\n margin-right: 25px;\r\n `}\r\n }\r\n `}\r\n ${media.desktop`\r\n ${({ growLast, columns }) =>\r\n growLast &&\r\n `\r\n > div:last-child {\r\n flex: 0 1 calc(${(100 / columns) * 2}% - 20px);\r\n }\r\n `}\r\n `}\r\n fieldset {\r\n max-width: 100%;\r\n }\r\n ${media.desktop`\r\n flex-direction: row;\r\n `};\r\n &:not(:last-child) {\r\n }\r\n > div {\r\n margin-bottom: 20px;\r\n\r\n ${({ columns }) =>\r\n columns &&\r\n css`\r\n flex: 0 1 calc(100%);\r\n ${({ keepSize }) => keepSize && `flex: 0 1 calc(${100 / columns}%);`}\r\n ${media.desktop`\r\n flex: 0 1 calc(${100 / columns}% - 20px);\r\n `}\r\n `}\r\n }\r\n`;\r\n\r\nexport const Col = styled.div`\r\n display: flex;\r\n ${({ column }) => column && 'flex-direction: column;'}\r\n ${({ center }) => center && 'align-items: center'};\r\n ${({ col }) => createCol(col)};\r\n > * {\r\n flex-grow: ${({ growChild = true }) => (growChild ? '1' : '0')};\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport { blue } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const InputContainer = styled.div`\r\n display: flex;\r\n height: ${({ msgFooter, invalid }) =>\r\n msgFooter || invalid ? '72px' : '50px'};\r\n\r\n ${({ msgFooter, invalid }) => msgFooter && invalid && 'height: 106px;'}\r\n max-height: 120px;\r\n color: ${blue};\r\n position: relative;\r\n width: 100%;\r\n z-index: ${({ zIndex }) => zIndex};\r\n flex-direction: column;\r\n`;\r\n\r\nexport const Input = styled.input`\r\n flex-grow: 1;\r\n width: 100%;\r\n font-family: inherit;\r\n padding: 10px 8px 0;\r\n min-height: 50px;\r\n color: ${({ invalid, theme }) => (invalid ? theme.invalidColor : 'inherit')};\r\n font-weight: 500;\r\n letter-spacing: 0.4px;\r\n ${fontSize(12)};\r\n border: 1px solid\r\n ${({ invalid, theme }) =>\r\n invalid ? theme.invalidColor : theme.validInputBorder};\r\n ${media.desktop`\r\n padding: 15px 19px 0;\r\n ${fontSize(14)};\r\n `};\r\n &:disabled {\r\n background-color: #ccc;\r\n }\r\n`;\r\n\r\nexport const ErrorMessage = styled.p`\r\n color: ${({ theme }) => theme.invalidColor};\r\n padding-top: 10px;\r\n ${fontSize(10)};\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const Placeholder = styled.label`\r\n pointer-events: none;\r\n color: ${({ theme, invalid, active, disabled }) =>\r\n (invalid && theme.invalidColor) ||\r\n (active && theme.placeholderActiveColor) ||\r\n (disabled && theme.placeholderDisabledColor) ||\r\n theme.placeholderColor};\r\n font-weight: ${({ active }) => (active ? 'normal' : '500')};\r\n letter-spacing: 0.4px;\r\n ${({ active }) => fontSize(active ? 10 : 14)};\r\n position: absolute;\r\n left: 10px;\r\n top: ${({ active }) => (active ? '6px' : '16px')};\r\n transition: 0.2s ease all;\r\n\r\n ${media.desktop`\r\n left: 20px;\r\n top: ${({ active }) => (active ? '10px' : '18px')};\r\n `};\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Placeholder = ({ children, ...rest }) => (\r\n {children}\r\n);\r\n\r\nexport default Placeholder;\r\n","/* eslint react-hooks/exhaustive-deps: 0 */\r\nimport React, {\r\n useState,\r\n useMemo,\r\n useRef,\r\n useImperativeHandle,\r\n forwardRef,\r\n} from 'react';\r\n\r\nimport scrollIntoView from 'scroll-into-view';\r\nimport { SectionSmallText } from '../Section';\r\nimport * as S from './styled';\r\nimport masks from '../../utils/masks';\r\nimport Placeholder from '../Placeholder';\r\n\r\nconst Input = (\r\n {\r\n placeholder,\r\n value,\r\n invalid,\r\n errorMessage,\r\n onChange,\r\n zIndex = 0,\r\n readOnly,\r\n mask = masks.none,\r\n validations = [],\r\n name = '',\r\n className,\r\n inputClassName,\r\n msgFooter,\r\n disabled,\r\n shouldValidate = true,\r\n ...others\r\n },\r\n ref\r\n) => {\r\n const inputRef = useRef();\r\n\r\n const [focused, setFocused] = useState(false);\r\n\r\n const validate = (shouldScroll = true) => {\r\n if (!shouldValidate) {\r\n return false;\r\n }\r\n const invalidRule = validations.find(v => v.validate(value));\r\n\r\n const validationState = invalidRule\r\n ? {\r\n invalid: true,\r\n errorMessage: invalidRule.errorMessage,\r\n }\r\n : {\r\n invalid: false,\r\n errorMessage: '',\r\n };\r\n\r\n if (validationState.invalid && shouldScroll) {\r\n scrollIntoView(inputRef.current);\r\n }\r\n\r\n onChange({ ...validationState, value, validated: true });\r\n return validationState.invalid;\r\n };\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate,\r\n focus: () => inputRef.current.focus(),\r\n }),\r\n [value, validations]\r\n );\r\n\r\n return useMemo(\r\n () => (\r\n <>\r\n \r\n \r\n {placeholder}\r\n \r\n {\r\n setFocused(false);\r\n if (!readOnly) {\r\n validate(false);\r\n }\r\n }}\r\n value={mask.mask(value)}\r\n invalid={invalid && !disabled}\r\n readOnly={readOnly}\r\n onChange={e => {\r\n onChange({\r\n invalid: false,\r\n value: mask.unmask(e.target.value),\r\n errorMessage: '',\r\n });\r\n }}\r\n name={name}\r\n className={inputClassName}\r\n disabled={disabled}\r\n onFocus={() => setFocused(true)}\r\n data-testid=\"input\"\r\n {...others}\r\n />\r\n {invalid && !disabled && (\r\n {errorMessage}\r\n )}\r\n {msgFooter && (\r\n {msgFooter} \r\n )}\r\n \r\n \r\n ),\r\n [\r\n placeholder,\r\n value,\r\n invalid,\r\n zIndex,\r\n readOnly,\r\n disabled,\r\n focused,\r\n msgFooter,\r\n errorMessage,\r\n ]\r\n );\r\n};\r\nexport default forwardRef(Input);\r\n","import styled from 'styled-components/macro';\r\nimport { white } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport Input from '../Input';\r\n\r\nexport const ValueSelectorWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: flex-start;\r\n justify-content: space-around;\r\n border-color: red;\r\n`;\r\n\r\nexport const RoundButton = styled.button`\r\n background-color: ${({ theme }) => theme.buttonBgColorInverse};\r\n width: 22px;\r\n height: 22px;\r\n border-radius: 100%;\r\n border: 0;\r\n color: ${white};\r\n ${fontSize(25)};\r\n cursor: pointer;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n margin-top: 10px;\r\n > span {\r\n ${fontSize(14)};\r\n height: 20px;\r\n }\r\n`;\r\nexport const StyledInput = styled(Input)`\r\n width: calc(100% - 120px);\r\n\r\n > p[class*='SectionSmallText'] {\r\n text-align: center;\r\n }\r\n > p[class*='ErrorMessage'] {\r\n padding-top: 10px;\r\n text-align: center;\r\n }\r\n\r\n input {\r\n text-align: center;\r\n padding: 0;\r\n }\r\n`;\r\n","/* eslint-disable */\r\nimport masks from './masks';\r\nimport { formatDate } from './formatters';\r\nimport ddds from './ddd';\r\n\r\nconst daysInMonth = (m, y) =>\r\n ({\r\n 1: (y % 4 == 0 && y % 100) || y % 400 == 0 ? 29 : 28,\r\n 8: 30,\r\n 3: 30,\r\n 5: 30,\r\n 10: 30,\r\n }[m] ?? 31);\r\n\r\nexport const minLength = size => ({\r\n validate: value => value.length < size,\r\n errorMessage: `Preencha com no mínimo ${size} caracteres`,\r\n});\r\n\r\nexport const maxLength = size => ({\r\n validate: value => value.length > size,\r\n errorMessage: `Preencha com no máximo ${size} caracteres`,\r\n});\r\n\r\nexport const required = {\r\n validate: value => `${value}`.length === 0,\r\n errorMessage: 'Campo obrigatório',\r\n};\r\nexport const hasSurname = {\r\n validate: value => !/(\\w{3,})\\s(\\w{2,})/.test(value),\r\n errorMessage: 'Sobrenome obrigatório',\r\n};\r\nexport const lessThan = (\r\n quantity,\r\n customMessage,\r\n callbackMask = text => text\r\n) => ({\r\n validate: value => parseFloat(value) > quantity,\r\n errorMessage:\r\n customMessage ||\r\n `Informe valor menor ou igual a ${callbackMask(`${quantity}`)}`,\r\n});\r\n\r\nexport const greaterThan = (\r\n quantity,\r\n customMessage,\r\n callbackMask = text => text\r\n) => ({\r\n validate: value => parseFloat(value) < quantity,\r\n errorMessage:\r\n customMessage ||\r\n `Informe valor maior ou igual a ${callbackMask(`${quantity}`)}`,\r\n});\r\nexport const validCnpj = {\r\n validate: strCnpj => {\r\n if (strCnpj.length < 14) {\r\n return true;\r\n }\r\n\r\n const key = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n const key2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];\r\n\r\n const getDigit = calc => {\r\n const digitCheck = calc % 11;\r\n return digitCheck < 2 ? 0 : 11 - digitCheck;\r\n };\r\n const cnpjSum = (arrCnpj, key) =>\r\n arrCnpj\r\n .map((digit, i) => digit * key[i])\r\n .reduce((acc, digit) => acc + digit, 0);\r\n\r\n const sum = cnpjSum(strCnpj.substring(0, 12).split(''), key);\r\n\r\n const firstDigit = getDigit(sum);\r\n\r\n if (firstDigit !== parseInt(strCnpj.charAt(12))) {\r\n return true;\r\n }\r\n\r\n const lastSum = cnpjSum(strCnpj.substring(0, 13).split(''), key2);\r\n\r\n const lastDigit = getDigit(lastSum);\r\n\r\n if (lastDigit !== parseInt(strCnpj.charAt(13))) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n errorMessage: 'cnpj inválido',\r\n};\r\n\r\nexport const validCep = {\r\n validate: value => value.length !== 8,\r\n errorMessage: 'Informe um CEP válido',\r\n};\r\n\r\n\r\nexport const validCpf = {\r\n validate: strCPF => {\r\n let Soma;\r\n let Resto;\r\n Soma = 0;\r\n\r\n if (strCPF.split('').every((curr,_,arr) => curr === arr[0])) {\r\n return true;\r\n }\r\n for (let i = 1; i <= 9; i++) {\r\n Soma += parseInt(strCPF.substring(i - 1, i)) * (11 - i);\r\n }\r\n Resto = (Soma * 10) % 11;\r\n\r\n if (Resto === 10 || Resto === 11){\r\n Resto = 0;\r\n }\r\n if (Resto !== parseInt(strCPF.substring(9, 10))) {\r\n return true;\r\n }\r\n\r\n Soma = 0;\r\n for (let i = 1; i <= 10; i++) {\r\n Soma += parseInt(strCPF.substring(i - 1, i)) * (12 - i);\r\n }\r\n Resto = (Soma * 10) % 11;\r\n\r\n if (Resto === 10 || Resto === 11){\r\n Resto = 0;\r\n }\r\n return Resto !== parseInt(strCPF.substring(10, 11));\r\n },\r\n errorMessage: 'CPF inválido',\r\n};\r\n\r\nconst invalidPhoneMessage = 'Telefone inválido';\r\nconst invalidDateMessage = 'Data inválida';\r\n\r\nexport const validPhone = {\r\n validate: value => !/^([0])?[1-9]{2}(9)([0-9]{4})[0-9]{4}$/.test(value),\r\n errorMessage: invalidPhoneMessage,\r\n};\r\nexport const validHomePhone = {\r\n validate: value => !/^([0])?[1-9]{2}([0-9]{4})[0-9]{4}$/.test(value),\r\n errorMessage: invalidPhoneMessage,\r\n};\r\nexport const validCommercialPhone = {\r\n validate: value => !/^([0])?[1-9]{2}([0-9]{4})[0-9]{4}$/.test(value) && !/^([0])?[1-9]{2}(9)([0-9]{4})[0-9]{4}$/.test(value),\r\n errorMessage: invalidPhoneMessage,\r\n};\r\nexport const validDDD = {\r\n validate: value => {\r\n const ddd = parseInt(value.substring(0, 2));\r\n\r\n return !ddds.includes(ddd);\r\n },\r\n errorMessage: 'DDD inválido',\r\n};\r\n\r\nexport const validPhoneLength = {\r\n validate: minLength(11).validate,\r\n errorMessage: invalidPhoneMessage,\r\n};\r\n\r\nexport const validCommercialPhoneLength = {\r\n validate: minLength(11).validate && minLength(10).validate,\r\n errorMessage: invalidPhoneMessage,\r\n}\r\n\r\n\r\nexport const validHomePhoneLength = {\r\n validate: minLength(10).validate,\r\n errorMessage: invalidPhoneMessage,\r\n};\r\n\r\nexport const validBirthdate = {\r\n validate: value =>\r\n !/^([0-2][0-9]|(3)[0-1])(\\/)(((0)[0-9])|((1)[0-2]))(\\/)\\d{4}$/.test(\r\n masks.date.mask(value)\r\n ),\r\n\r\n errorMessage: invalidDateMessage,\r\n};\r\nexport const validBirthdateDay = {\r\n validate: value => {\r\n const separated = value.split('/');\r\n const y = parseInt(separated[2], 10);\r\n const m = parseInt(separated[1], 10) - 1;\r\n const d = parseInt(separated[0], 10);\r\n\r\n return !(m >= 0 && m < 12 && d > 0 && d <= daysInMonth(m, y));\r\n },\r\n errorMessage: invalidDateMessage,\r\n};\r\n\r\nexport const validBirthdateRange = {\r\n validate: value => new Date() < new Date(formatDate(value)),\r\n errorMessage: invalidDateMessage,\r\n};\r\n\r\nexport const validAge = (minAge,maxAge) => ({\r\n validate: value => {\r\n const currentYear = new Date().getFullYear()\r\n const formatedDate = `${formatDate(value)}T00:00:00`\r\n\r\n const receivedDate = new Date(formatedDate)\r\n const minDate = new Date()\r\n const maxDate = new Date()\r\n\r\n minDate.setFullYear(currentYear - minAge)\r\n maxDate.setFullYear((currentYear - maxAge) -1 )\r\n\r\n return receivedDate >= minDate || receivedDate <= maxDate\r\n\r\n },\r\n errorMessage: 'Só é permitido a venda para maiores de 16 anos e menores de 100',\r\n})\r\n\r\nexport const validEmail = {\r\n validate: value => {\r\n return !/(^\\w.*@[\\w-]+\\.\\w)/.test(value);\r\n },\r\n errorMessage: 'E-mail inválido',\r\n};\r\n\r\nexport const lettersOnly = {\r\n validate: value => {\r\n return !/^[a-zA-Z\\s]+$/.test(value);\r\n },\r\n errorMessage: 'Caracteres especiais e/ou números não permitidos',\r\n};\r\n\r\nexport const agency = {\r\n validate: value => {\r\n return value.length < 5;\r\n },\r\n errorMessage: 'Agência inválida',\r\n};\r\n\r\nexport const account = {\r\n validate: value => {\r\n return value.length < 4;\r\n },\r\n errorMessage: 'Conta inválida',\r\n};\r\n\r\nexport const isAnyInvalidField = (functions, value = '') => () => ({\r\n validate: () => {\r\n const invalid = functions\r\n .reverse()\r\n .reduce((acc, validate) => validate() || acc, false);\r\n return {\r\n invalid,\r\n value,\r\n };\r\n },\r\n});\r\n\r\nexport const lessThanUnknownValue = (\r\n unknown,\r\n quantity,\r\n errorMessage = 'Valor inválido'\r\n) => ({\r\n validate: () => unknown > quantity,\r\n errorMessage,\r\n});\r\n","/* eslint react-hooks/exhaustive-deps: 0 */\r\nimport React, {\r\n useImperativeHandle,\r\n forwardRef,\r\n useState,\r\n useEffect,\r\n useLayoutEffect,\r\n} from 'react';\r\nimport { useValidation } from '../../hooks';\r\nimport * as S from './styled';\r\n\r\nimport {\r\n required,\r\n lessThan,\r\n greaterThan,\r\n isAnyInvalidField,\r\n} from '../../utils/inputValidation';\r\n\r\nconst OPERATION = {\r\n PLUS: '+',\r\n LESS: '-',\r\n};\r\n\r\nexport const SELECTOR_TYPE = {\r\n CURRENCY: 100,\r\n DEFAULT: 1,\r\n};\r\n\r\nconst ValueSelector = (\r\n {\r\n minValue = 0,\r\n maxValue = 0,\r\n calculationValue,\r\n className,\r\n number,\r\n onChange,\r\n selectorType = SELECTOR_TYPE.DEFAULT,\r\n errorLess = 'Valor indisponivel',\r\n errorMore = 'Valor indisponivel',\r\n msgFooter,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const [selectorRef, validateSelector] = useValidation();\r\n const [message, setMessage] = useState(msgFooter);\r\n const [pressed, setPressed] = useState('');\r\n const [longAction, setLongAction] = useState();\r\n const validValue = value =>\r\n value >= minValue * selectorType && value <= maxValue * selectorType;\r\n\r\n const updateValue = (operation, value) => {\r\n let newValue = value;\r\n switch (operation) {\r\n case OPERATION.PLUS:\r\n newValue += calculationValue * selectorType;\r\n break;\r\n case OPERATION.LESS:\r\n newValue -= calculationValue * selectorType;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return newValue;\r\n };\r\n\r\n const handleButtonClick = operation => {\r\n if (minValue === 0 && maxValue === 0) {\r\n return;\r\n }\r\n if (validValue(number.value)) {\r\n const newValue = updateValue(operation, number.value);\r\n\r\n if (validValue(newValue)) {\r\n setMessage(msgFooter);\r\n onChange({ ...number, value: newValue });\r\n } else if (newValue > maxValue * selectorType) {\r\n setMessage('Valor máximo');\r\n } else {\r\n setMessage('Valor mínimo');\r\n }\r\n } else if (number.value > maxValue * selectorType) {\r\n onChange({\r\n ...number,\r\n value: maxValue * selectorType,\r\n invalid: validateSelector().invalid,\r\n });\r\n } else {\r\n onChange({\r\n ...number,\r\n value: minValue * selectorType,\r\n invalid: validateSelector().invalid,\r\n });\r\n }\r\n };\r\n useLayoutEffect(() => setMessage(msgFooter), [msgFooter]);\r\n useImperativeHandle(\r\n ref,\r\n isAnyInvalidField([validateSelector], number.value),\r\n [validateSelector, number, isAnyInvalidField]\r\n );\r\n useEffect(() => {\r\n if (pressed) {\r\n setLongAction(setTimeout(() => handleButtonClick(pressed), 100));\r\n }\r\n }, [number.value]);\r\n\r\n const clearActions = () => {\r\n setPressed('');\r\n clearTimeout(longAction);\r\n };\r\n\r\n const performOperation = operation => e => {\r\n if (e.button === 0) {\r\n handleButtonClick(operation);\r\n setPressed(operation);\r\n }\r\n };\r\n return (\r\n \r\n \r\n -\r\n \r\n onChange(value)}\r\n validations={[\r\n required,\r\n lessThan(maxValue * selectorType, errorLess),\r\n greaterThan(minValue * selectorType, errorMore),\r\n ]}\r\n invalid={number.invalid}\r\n errorMessage={number.errorMessage}\r\n />\r\n \r\n +\r\n \r\n \r\n );\r\n};\r\n\r\nexport default forwardRef(ValueSelector);\r\n","import styled, { css } from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nconst whichArrow = (direction, inverse, theme) =>\r\n ({\r\n up: `border-bottom-color:\r\n ${inverse ? theme.buttonArrowColorInverse : theme.buttonArrowColor}`,\r\n down: `border-top-color:\r\n ${inverse ? theme.buttonArrowColorInverse : theme.buttonArrowColor}`,\r\n left: `border-right-color:\r\n ${inverse ? theme.buttonArrowColorInverse : theme.buttonArrowColor}`,\r\n right: `border-left-color:\r\n ${inverse ? theme.buttonArrowColorInverse : theme.buttonArrowColor}`,\r\n }[direction]);\r\n\r\nexport const ButtonContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n height: 70px;\r\n width: 140px;\r\n background-color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonBgColorInverseLight : theme.buttonBgColorLight};\r\n border: 1px solid\r\n ${({ inverse, theme }) =>\r\n inverse ? theme.buttonBgColorInverseLight : theme.buttonBgColorLight};\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonTextColorInverse : theme.buttonTextColor};\r\n border-radius: 3px;\r\n box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, 0.1);\r\n padding: 8px;\r\n cursor: pointer;\r\n &::before {\r\n ${({ hasArrow }) =>\r\n hasArrow &&\r\n css`\r\n content: '';\r\n border-color: transparent;\r\n border-width: ${({ arrowSize }) => `${arrowSize}px`};\r\n border-style: solid;\r\n ${({ arrowDirection, inverse, theme }) =>\r\n whichArrow(arrowDirection, inverse, theme)};\r\n width: 0;\r\n height: 0;\r\n `};\r\n }\r\n\r\n i {\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonIconColorInverse : theme.buttonIconColor};\r\n }\r\n\r\n &:hover {\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonTextColorHoverInverse : theme.buttonTextColorHover};\r\n\r\n i {\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonIconColorInverse : theme.buttonIconColorHover};\r\n }\r\n }\r\n\r\n &.disabled,\r\n &.disabled:hover {\r\n color: ${({ theme }) => theme.buttonTextColorDisabled};\r\n background-color: ${({ theme }) => theme.buttonBgDisabled};\r\n cursor: not-allowed;\r\n border-color: ${({ theme }) => theme.buttonBorderColorDisabled};\r\n }\r\n\r\n ${media.desktop`\r\n width: 180px;\r\n height: 90px;\r\n padding-top: 15px;\r\n padding-bottom: 10px;\r\n `};\r\n`;\r\n\r\nexport const IconsContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-grow: 1;\r\n justify-content: space-between;\r\n\r\n i {\r\n ${fontSize(25)};\r\n\r\n ${media.desktop`\r\n ${fontSize(33)};\r\n `};\r\n }\r\n\r\n .arrow {\r\n margin-top: 7px;\r\n }\r\n`;\r\n\r\nexport const TextContainer = styled.p`\r\n ${fontSize(14)};\r\n font-weight: normal;\r\n`;\r\n\r\nexport const FlatButtonContainer = styled(ButtonContainer)`\r\n background-color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonBgColorInverse : theme.buttonBgColor};\r\n box-shadow: 0;\r\n border: 1px solid ${({ theme }) => theme.buttonBorderColor};\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonTextColorInverse : theme.buttonTextColor};\r\n flex-direction: ${({ column }) => (column ? 'column' : 'row')};\r\n ${({ margin }) => margin && 'margin-right: 12px;'}\r\n padding-right: 15px;\r\n padding-left: 15px;\r\n ${media.desktop`\r\n ${({ margin }) => margin && 'margin-right: 40px;'}\r\n padding-bottom: 15px;\r\n `};\r\n padding-bottom: 20px;\r\n ${({ back }) => back && 'flex-direction: row-reverse;'}\r\n &:hover {\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonTextColorInverse : theme.buttonColorHover};\r\n background-color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonBgHover : theme.buttonBg};\r\n border-color: ${({ theme }) => theme.buttonBorderHoverColor};\r\n\r\n i {\r\n color: ${({ inverse, theme }) =>\r\n inverse ? theme.buttonIconColorInverse : theme.buttonIconColorHover};\r\n }\r\n }\r\n &::before {\r\n ${({ back }) => (back ? 'right: 100%;' : 'left: 100%;')}\r\n position: relative;\r\n }\r\n`;\r\n\r\nexport const FlatTextContainer = styled(TextContainer)`\r\n font-weight: normal;\r\n max-width: 50%;\r\n margin-top: auto;\r\n ${fontSize(16)};\r\n ${({ back }) => back && 'text-align: end;'}\r\n ${media.desktop`\r\n padding-right: 35px;\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport { FlatButtonContainer, FlatTextContainer } from './styled';\r\n\r\nconst FlatButton = ({\r\n children,\r\n arrowDirection,\r\n inverse,\r\n back,\r\n disabled,\r\n className = '',\r\n onClick,\r\n arrowSize = 5,\r\n margin,\r\n ...rest\r\n}) => (\r\n {\r\n if (!disabled && onClick) {\r\n onClick(e);\r\n }\r\n }}\r\n data-testid=\"flatbutton\"\r\n arrowSize={arrowSize}\r\n arrowDirection={arrowDirection}\r\n margin={margin}\r\n {...rest}\r\n >\r\n \r\n {children}\r\n \r\n \r\n);\r\n\r\nexport default FlatButton;\r\n","import styled from 'styled-components/macro';\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const StyledQuestion = styled.p`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n ${fontSize(14)};\r\n font-weight: 400;\r\n i {\r\n ${fontSize(18)};\r\n margin-right: 8px;\r\n ${media.desktop({\r\n marginRight: '4px',\r\n })}\r\n }\r\n ${media.desktop({\r\n justifyContent: 'flex-start',\r\n })}\r\n ${({ marginBottom }) => marginBottom && 'margin-bottom: 20px'}\r\n ${({ marginRight }) => marginRight && 'margin-right: auto'}\r\n`;\r\n","import React, { useContext } from 'react';\r\nimport * as S from './styled';\r\nimport { AppContext } from '../../context';\r\nimport Icon from '../Icon';\r\n\r\nconst DataConsentQuestion = ({ marginBottom, marginRight }) => {\r\n const { setContext } = useContext(AppContext);\r\n return (\r\n setContext({ showLgpd: true })}\r\n >\r\n \r\n Como meus dados pessoais são usados?\r\n \r\n );\r\n};\r\n\r\nexport default DataConsentQuestion;\r\n","import styled from 'styled-components/macro';\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const TwoOptionButtonContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n flex-grow: 1;\r\n`;\r\nconst baseButton = styled.button`\r\n background: ${({ selected, theme }) =>\r\n selected ? theme.buttonBgColorInverseLight : theme.buttonBgColorLight};\r\n border: 1px solid\r\n ${({ selected, invalid, theme }) =>\r\n (invalid && theme.invalidColor) ||\r\n (selected && theme.buttonBorderColor) ||\r\n theme.buttonBorderColor};\r\n color: ${({ selected, invalid, theme }) =>\r\n (invalid && theme.invalidColor) ||\r\n (selected && theme.colorText) ||\r\n theme.buttonTextColor};\r\n flex-grow: 1;\r\n flex-basis: 100px;\r\n font-weight: 500;\r\n max-width: 160px;\r\n ${fontSize(14)};\r\n height: 40px;\r\n ${media.desktop`\r\n height: 50px;\r\n `};\r\n cursor: pointer;\r\n &:hover {\r\n border-color: ${({ theme }) => theme.buttonBgHover};\r\n color: ${({ theme }) => theme.buttonBgHover};\r\n }\r\n`;\r\nexport const ButtonLeft = styled(baseButton)`\r\n border-top-left-radius: 100px;\r\n border-bottom-left-radius: 100px;\r\n border-right: 0;\r\n`;\r\nexport const ButtonRight = styled(baseButton)`\r\n border-top-right-radius: 100px;\r\n border-bottom-right-radius: 100px;\r\n`;\r\n","/* eslint react-hooks/exhaustive-deps: 0 */\r\n\r\nimport React, {\r\n useState,\r\n useEffect,\r\n forwardRef,\r\n useRef,\r\n useImperativeHandle,\r\n} from 'react';\r\nimport scrollIntoView from 'scroll-into-view';\r\n\r\nimport * as S from './styled';\r\n\r\nconst TwoOptionsButton = (\r\n {\r\n options,\r\n value,\r\n onClick,\r\n invalid,\r\n errorMessage,\r\n validations = [],\r\n ...other\r\n },\r\n ref\r\n) => {\r\n const buttonRef = useRef(null);\r\n const [objectOptions, setObjectOptions] = useState(['', '']);\r\n useEffect(() => {\r\n if (options) {\r\n setObjectOptions(\r\n options.map(option => ({\r\n value: option.value || option,\r\n label: option.label || option,\r\n }))\r\n );\r\n }\r\n }, [options]);\r\n\r\n const validate = () => {\r\n const invalidRule = validations.find(v =>\r\n v.validate(objectOptions.some(opt => opt.value === value) ? value : '')\r\n );\r\n const validationState = invalidRule\r\n ? {\r\n invalid: true,\r\n errorMessage: invalidRule.errorMessage,\r\n }\r\n : {\r\n invalid: false,\r\n errorMessage: '',\r\n };\r\n\r\n if (validationState.invalid) {\r\n scrollIntoView(buttonRef.current);\r\n }\r\n onClick({ ...validationState, value });\r\n return validationState.invalid;\r\n };\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate,\r\n }),\r\n [value, options]\r\n );\r\n\r\n return (\r\n \r\n \r\n onClick({\r\n invalid: false,\r\n errorMessage: '',\r\n value: objectOptions[0].value,\r\n })\r\n }\r\n selected={value === objectOptions[0].value}\r\n {...other}\r\n invalid={invalid}\r\n data-testid=\"left-button\"\r\n >\r\n {objectOptions[0].label}\r\n \r\n \r\n onClick({\r\n invalid: false,\r\n errorMessage: '',\r\n value: objectOptions[1].value,\r\n })\r\n }\r\n selected={value === objectOptions[1].value}\r\n {...other}\r\n invalid={invalid}\r\n data-testid=\"right-button\"\r\n >\r\n {objectOptions[1].label}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default forwardRef(TwoOptionsButton);\r\n","import styled from 'styled-components/macro';\r\nimport Select from 'react-select';\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const Autocomplete = styled(Select)`\r\n .autocomplete__control {\r\n max-height: 120px;\r\n height: 50px;\r\n border-radius: 0;\r\n padding-left: 10px;\r\n ${media.desktop`\r\n padding-left: 19px;\r\n `}\r\n border: 1px solid\r\n ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : theme.validInputBorder};\r\n :hover {\r\n border: 1px solid ${({ theme }) => theme.validInputBorder};\r\n }\r\n }\r\n\r\n .autocomplete__value-container {\r\n padding: 0;\r\n ${fontSize(12)};\r\n ${media.desktop`\r\n ${fontSize(14)};\r\n `}\r\n top: 7px;\r\n }\r\n .autocomplete__single-value {\r\n color: ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : theme.placeholderColor};\r\n font-weight: 500;\r\n margin: 0;\r\n }\r\n .autocomplete__input{\r\n color: ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : theme.inputTextColor};\r\n\r\n }\r\n .autocomplete__indicator-separator {\r\n display: none;\r\n }\r\n .autocomplete__indicator {\r\n color: ${({ theme, invalid }) =>\r\n invalid ? theme.invalidColor : theme.placeholderColor};\r\n }\r\n .autocomplete__menu {\r\n margin-top: 2px;\r\n }\r\n`;\r\n\r\nexport const AutocompleteContainer = styled.div`\r\n position: relative;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: baseline;\r\n`;\r\n\r\nexport const ErrorMessage = styled.p`\r\n color: ${({ theme }) => theme.invalidColor};\r\n padding-top: 10px;\r\n ${fontSize(10)};\r\n`;\r\n","import React, {\r\n useImperativeHandle,\r\n forwardRef,\r\n useState,\r\n useEffect,\r\n useCallback,\r\n} from 'react';\r\nimport * as S from './styled';\r\nimport { checkKey, KEY } from '../../utils/inputEvents';\r\nimport Placeholder from '../Placeholder';\r\n\r\nconst normalizedCompare = (s1, s2) => {\r\n const nS1 = s1.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n const nS2 = s2.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n return nS1.toUpperCase() === nS2.toUpperCase();\r\n};\r\n\r\nconst Autocomplete = (\r\n {\r\n placeholder,\r\n options,\r\n setter,\r\n getOptionLabel,\r\n getOptionValue,\r\n value,\r\n validations,\r\n invalid,\r\n errorMessage,\r\n openMenuOnFocus = true,\r\n onInputChange,\r\n noAutoSelect,\r\n ...rest\r\n },\r\n ref\r\n) => {\r\n const [focused, setFocused] = useState(false);\r\n const [inputValue, setInputValue] = useState('');\r\n const [shouldValidate, setShouldValidate] = useState(false);\r\n\r\n const autoSelect = () =>\r\n setter(() => ({\r\n invalid,\r\n value:\r\n getOptionValue(\r\n options.find(o => normalizedCompare(getOptionLabel(o), inputValue)) ||\r\n ''\r\n ) || value,\r\n errorMessage,\r\n }));\r\n\r\n const handleSelected = (option, { action }) => {\r\n if (action === 'select-option') {\r\n setter({\r\n invalid: false,\r\n errorMessage: '',\r\n value: getOptionValue(option),\r\n });\r\n }\r\n };\r\n const handleInputChange = (localValue, { action }) => {\r\n if (action === 'input-change' && !noAutoSelect) {\r\n setInputValue(localValue);\r\n }\r\n if (action === 'menu-close' && !noAutoSelect) {\r\n if (inputValue.length > 2) {\r\n autoSelect();\r\n }\r\n setInputValue('');\r\n }\r\n if (onInputChange) {\r\n onInputChange(localValue, action);\r\n }\r\n };\r\n\r\n const validate = useCallback(() => {\r\n const invalidRule = validations.find(validation =>\r\n validation.validate(value)\r\n );\r\n\r\n setter({\r\n invalid: !!invalidRule,\r\n errorMessage: invalidRule?.errorMessage,\r\n value,\r\n });\r\n return !!invalidRule;\r\n }, [validations, value, setter]);\r\n\r\n useEffect(() => {\r\n if (shouldValidate) {\r\n validate();\r\n setShouldValidate(false);\r\n }\r\n }, [shouldValidate, validate]);\r\n useImperativeHandle(ref, () => ({\r\n validate,\r\n }));\r\n\r\n return (\r\n \r\n false}\r\n noOptionsMessage={() => 'Nenhum item encontrado'}\r\n value={options.find(o => getOptionValue(o) === value)}\r\n onKeyDown={e => {\r\n if (value === '' && checkKey(e, KEY.TAB.code, KEY.TAB.name)) {\r\n e.preventDefault();\r\n }\r\n }}\r\n onFocus={() => setFocused(true)}\r\n onBlur={() => {\r\n setFocused(false);\r\n setShouldValidate(true);\r\n }}\r\n onInputChange={handleInputChange}\r\n {...rest}\r\n />\r\n \r\n {placeholder}\r\n \r\n {invalid && {errorMessage}}\r\n \r\n );\r\n};\r\n\r\nexport default forwardRef(Autocomplete);\r\n","import React, { useState } from 'react';\r\nimport Autocomplete from './Autocomplete';\r\n\r\nconst MinLengthAutocomplete = ({\r\n placeholder,\r\n options,\r\n setter,\r\n getOptionLabel,\r\n getOptionValue,\r\n value,\r\n validations,\r\n invalid,\r\n errorMessage,\r\n autocompleteRef,\r\n minLength = 2,\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = useState(false);\r\n const handleInputChange = (input, action) => {\r\n if (action === 'input-change') {\r\n if (input.length > minLength) {\r\n setOpen(true);\r\n } else {\r\n setOpen(false);\r\n }\r\n return;\r\n }\r\n if (action === 'set-value' || action === 'input-blur') {\r\n setOpen(false);\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default MinLengthAutocomplete;\r\n","/* eslint react-hooks/exhaustive-deps: 0 */\r\nimport React, {\r\n useImperativeHandle,\r\n forwardRef,\r\n useEffect,\r\n useLayoutEffect,\r\n useContext,\r\n} from 'react';\r\n\r\nimport Section from '../Section';\r\nimport Input from '../Input';\r\nimport { Row } from '../../styles/utils/Grid';\r\nimport {\r\n useInputState,\r\n useMaritalStates,\r\n useProfessions,\r\n useIncomeGroups,\r\n} from '../../hooks';\r\nimport masks from '../../utils';\r\nimport { handleChange } from '../../utils/inputEvents';\r\nimport Autocomplete, { MinLengthAutocomplete } from '../Autocomplete';\r\nimport { formatDate, dateToStringFormat } from '../../utils/formatters';\r\nimport {\r\n required,\r\n validCpf,\r\n validBirthdate,\r\n validBirthdateRange,\r\n validBirthdateDay,\r\n minLength,\r\n hasSurname,\r\n validAge,\r\n} from '../../utils/inputValidation';\r\nimport {\r\n personalDataTitle,\r\n nameInputPlaceholder,\r\n sexInputPlaceholder,\r\n cpfInputPlaceholder,\r\n birthdatePlaceholder,\r\n maritalStatePlaceholder,\r\n professionPlaceholder,\r\n individualIncomePlaceholder,\r\n familyIncomePlaceholder,\r\n individualIncomeError,\r\n} from '../../utils/constants';\r\nimport { AppContext } from '../../context';\r\n\r\nconst PersonalDataPF = ({ setContext, personalData }, ref) => {\r\n const { ibcLogged } = useContext(AppContext);\r\n const [name, setName, nameRef, validateName] = useInputState(\r\n personalData?.nome\r\n );\r\n const [cpf, setCPF, cpfRef, validateCpf] = useInputState(\r\n personalData?.identificacao.codigo\r\n );\r\n const { loading, maritalStates } = useMaritalStates();\r\n const { loading: loadingProfessions, professions } = useProfessions();\r\n const { loading: loadingIncomeGroups, incomeGroups } = useIncomeGroups();\r\n const [\r\n birthdate,\r\n setBirthdate,\r\n birthdateRef,\r\n validateBirthdate,\r\n ] = useInputState(\r\n dateToStringFormat(personalData?.dadosPessoaFisica.dataNascimento ?? '')\r\n );\r\n const [sex, setSex, sexRef, validateSex] = useInputState(\r\n personalData?.dadosPessoaFisica.sexo.codigo\r\n );\r\n const [\r\n maritalState,\r\n setMaritalState,\r\n maritalStateRef,\r\n validateMaritalState,\r\n ] = useInputState(personalData?.dadosPessoaFisica.estadoCivil.codigo);\r\n const [\r\n profession,\r\n setProfession,\r\n professionRef,\r\n validateProfession,\r\n ] = useInputState(\r\n personalData?.dadosPessoaFisica.profissao.codigo &&\r\n parseInt(personalData.dadosPessoaFisica.profissao.codigo, 10)\r\n );\r\n const [\r\n individualIncome,\r\n setIndividualIncome,\r\n individualIncomeRef,\r\n validateIndividualIncome,\r\n ] = useInputState(personalData?.informacoesEconomicas.faixaRenda[1].codigo);\r\n const [\r\n familyIncome,\r\n setFamilyIncome,\r\n familyIncomeRef,\r\n validateFamilyIncome,\r\n ] = useInputState(personalData?.informacoesEconomicas.faixaRenda[0].codigo);\r\n useLayoutEffect(() => {\r\n setContext({\r\n loading: loading || loadingProfessions || loadingIncomeGroups,\r\n });\r\n }, [loading, loadingProfessions, loadingIncomeGroups, setContext]);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate: () => {\r\n const isInvalid = [\r\n validateName,\r\n validateBirthdate,\r\n validateCpf,\r\n validateFamilyIncome,\r\n validateIndividualIncome,\r\n validateProfession,\r\n validateSex,\r\n validateMaritalState,\r\n ]\r\n .reverse()\r\n .reduce((acc, v) => {\r\n const invalid = v();\r\n return acc || invalid;\r\n }, false);\r\n\r\n return {\r\n invalid: isInvalid,\r\n value: isInvalid\r\n ? ''\r\n : {\r\n identificacao: {\r\n tipo: 'F',\r\n documento: 'CPF',\r\n codigo: cpf.value,\r\n },\r\n nome: name.value,\r\n dadosPessoaFisica: {\r\n dataNascimento: formatDate(birthdate.value),\r\n sexo: {\r\n codigo: sex.value,\r\n },\r\n estadoCivil: {\r\n codigo: maritalState.value,\r\n valor: maritalStates.find(\r\n ms => ms.codigo === maritalState.value\r\n ).descricao,\r\n },\r\n profissao: {\r\n codigo: `${profession.value}`,\r\n valor: professions.find(\r\n prof => prof.codigo === profession.value\r\n ).nome,\r\n },\r\n },\r\n informacoesEconomicas: {\r\n faixaRenda: [\r\n {\r\n codigo: familyIncome.value,\r\n descricao: incomeGroups.obj_renda_familiar.find(\r\n ig => ig.seq_faixa_renda === familyIncome.value\r\n ).des_faixa_renda,\r\n tipoRenda: 'familiar',\r\n },\r\n {\r\n codigo: individualIncome.value,\r\n descricao: incomeGroups.obj_renda_familiar.find(\r\n ig => ig.seq_faixa_renda === individualIncome.value\r\n ).des_faixa_renda,\r\n tipoRenda: 'individual',\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n }),\r\n [\r\n validateName,\r\n validateBirthdate,\r\n validateCpf,\r\n validateFamilyIncome,\r\n validateIndividualIncome,\r\n validateProfession,\r\n validateSex,\r\n validateMaritalState,\r\n birthdate,\r\n cpf,\r\n individualIncome,\r\n familyIncome,\r\n maritalState,\r\n name,\r\n profession,\r\n sex,\r\n maritalStates,\r\n professions,\r\n incomeGroups.obj_renda_familiar,\r\n ]\r\n );\r\n\r\n useEffect(() => {\r\n if (\r\n parseInt(individualIncome.value, 10) > parseInt(familyIncome.value, 10)\r\n ) {\r\n setFamilyIncome({\r\n ...familyIncome,\r\n invalid: true,\r\n errorMessage: individualIncomeError,\r\n });\r\n return;\r\n }\r\n setFamilyIncome({\r\n ...familyIncome,\r\n invalid: false,\r\n });\r\n }, [individualIncome.value, setFamilyIncome]);\r\n\r\n useEffect(() => {\r\n if (individualIncome.value === '') {\r\n return;\r\n }\r\n\r\n if (\r\n parseInt(individualIncome.value, 10) > parseInt(familyIncome.value, 10)\r\n ) {\r\n setIndividualIncome({\r\n ...individualIncome,\r\n invalid: true,\r\n errorMessage: individualIncomeError,\r\n });\r\n return;\r\n }\r\n setIndividualIncome({\r\n ...individualIncome,\r\n invalid: false,\r\n });\r\n }, [familyIncome, setIndividualIncome]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n option.descricao}\r\n getOptionValue={option => option.codigo}\r\n ref={sexRef}\r\n invalid={sex.invalid}\r\n errorMessage={sex.errorMessage}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n \r\n option.descricao}\r\n getOptionValue={option => option.codigo}\r\n ref={maritalStateRef}\r\n invalid={maritalState.invalid}\r\n errorMessage={maritalState.errorMessage}\r\n />\r\n\r\n option.nome}\r\n getOptionValue={option => option.codigo}\r\n autocompleteRef={professionRef}\r\n invalid={profession.invalid}\r\n errorMessage={profession.errorMessage}\r\n />\r\n \r\n \r\n option.des_faixa_renda}\r\n getOptionValue={option => option.seq_faixa_renda}\r\n ref={individualIncomeRef}\r\n invalid={individualIncome.invalid}\r\n errorMessage={individualIncome.errorMessage}\r\n readOnly\r\n />\r\n\r\n option.des_faixa_renda}\r\n getOptionValue={option => option.seq_faixa_renda}\r\n ref={familyIncomeRef}\r\n invalid={familyIncome.invalid}\r\n errorMessage={familyIncome.errorMessage}\r\n />\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default forwardRef(PersonalDataPF);\r\n","import React, { useImperativeHandle, forwardRef } from 'react';\r\nimport Section from '../Section';\r\nimport Input from '../Input';\r\nimport { Row, Col } from '../../styles/utils/Grid';\r\nimport { useInputState } from '../../hooks';\r\nimport Autocomplete from '../Autocomplete';\r\nimport { handleChange } from '../../utils/inputEvents';\r\nimport { required, validCnpj } from '../../utils/inputValidation';\r\nimport masks from '../../utils';\r\n\r\nconst PersonalDataPJ = (props, ref) => {\r\n const [\r\n corporateName,\r\n setCorporateName,\r\n corporateNameRef,\r\n validateCorporateName,\r\n ] = useInputState();\r\n const [cnpj, setCnpj, cnpjRef, validateCnpj] = useInputState();\r\n const [\r\n activity,\r\n setActivity,\r\n activityRef,\r\n validateActivity,\r\n ] = useInputState();\r\n const [income, setIncome, incomeRef, validateIncome] = useInputState();\r\n\r\n useImperativeHandle(ref, () => ({\r\n validate: () => {\r\n const isInvalid = [\r\n validateCorporateName,\r\n validateIncome,\r\n validateCnpj,\r\n validateActivity,\r\n ]\r\n .reverse()\r\n .reduce((acc, v) => {\r\n const invalid = v();\r\n return acc || invalid;\r\n }, false);\r\n\r\n return {\r\n invalid: isInvalid,\r\n value: {},\r\n };\r\n },\r\n }));\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default forwardRef(PersonalDataPJ);\r\n","import styled from 'styled-components/macro';\r\nimport { SectionFooter } from '../Section';\r\nimport media from '../../styles/media';\r\nimport { grayDividerLighter } from '../../styles/colors';\r\n\r\nexport const StyledSectionFooter = styled(SectionFooter)`\r\n flex-wrap: wrap;\r\n ${media.desktop`\r\n border-top: 1px solid ${grayDividerLighter};\r\n padding-top:20px;\r\n margin-top: 20px;\r\n `}\r\n`;\r\n\r\nexport const RadioButtonsWrapper = styled.div`\r\n display: flex;\r\n\r\n flex: 0 1 100%;\r\n ${media.desktop`\r\n flex: 0 1 50%;\r\n `}\r\n\r\n > div {\r\n flex-grow: 1;\r\n }\r\n`;\r\n\r\nexport const Text = styled.p`\r\n flex-grow: 1;\r\n flex: 0 1 100%;\r\n margin-bottom: 10px;\r\n ${media.desktop`\r\n flex: 0 1 50%;\r\n margin-bottom: 0;\r\n `}\r\n`;\r\n","import React, { useState, forwardRef, useImperativeHandle } from 'react';\r\nimport RadioButton from '../RadioButton';\r\nimport * as S from './styled';\r\n\r\nconst ContacDataFooter = ({ contactWay }, ref) => {\r\n const [informationType, setInformationType] = useState(contactWay);\r\n const [invalid, setInvalid] = useState(false);\r\n useImperativeHandle(ref, () => ({\r\n validate: () => {\r\n if (informationType?.celular || informationType?.email) {\r\n return { invalid: false, value: informationType };\r\n }\r\n setInvalid(true);\r\n return { invalid: true, value: informationType };\r\n },\r\n }));\r\n\r\n return (\r\n \r\n Como deseja receber informações do Cap Ganhador?\r\n \r\n {\r\n setInformationType({\r\n ...informationType,\r\n celular: !informationType?.celular,\r\n });\r\n setInvalid(false);\r\n }}\r\n icon=\"check-p\"\r\n alignLeft\r\n invalid={invalid}\r\n />\r\n {\r\n setInformationType({\r\n ...informationType,\r\n email: !informationType?.email,\r\n });\r\n setInvalid(false);\r\n }}\r\n icon=\"check-p\"\r\n alignLeft\r\n invalid={invalid}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default forwardRef(ContacDataFooter);\r\n","import React, { useImperativeHandle, forwardRef } from 'react';\r\nimport { Row } from '../../styles/utils/Grid';\r\nimport Section from '../Section';\r\nimport Input from '../Input';\r\nimport {\r\n required,\r\n validPhone,\r\n validPhoneLength,\r\n validEmail,\r\n validHomePhone,\r\n validHomePhoneLength,\r\n validCommercialPhoneLength,\r\n validCommercialPhone,\r\n} from '../../utils/inputValidation';\r\nimport masks from '../../utils/masks';\r\nimport { useValidation, useInputState } from '../../hooks';\r\nimport ContactDataFooter from '../ContactDataFooter';\r\nimport {\r\n contactDataTitle,\r\n mobilePhonePlaceholder,\r\n commercialPhonePlaceholder,\r\n residentialPhonePlaceholder,\r\n emailPlaceholder,\r\n noPhoneErrorMessage,\r\n} from '../../utils/constants';\r\nimport { filterContactArray, findContact } from '../../utils/utils';\r\n\r\nconst ContactData = ({ contactData }, ref) => {\r\n const [\r\n mobilePhone,\r\n setMobilePhone,\r\n mobilePhoneRef,\r\n validateMobilePhone,\r\n ] = useInputState(findContact('CEL', contactData?.parametros));\r\n const [\r\n commercialPhone,\r\n setComercialPhone,\r\n comercialPhoneRef,\r\n validateComercialPhone,\r\n ] = useInputState(findContact('COM', contactData?.parametros));\r\n const [\r\n residentialPhone,\r\n setResidentialPhone,\r\n residentialPhoneRef,\r\n validateResidentialPhone,\r\n ] = useInputState(findContact('RES', contactData?.parametros));\r\n const [email, setEmail, emailRef, validateEmail] = useInputState(\r\n findContact('PES', contactData?.parametros)\r\n );\r\n\r\n const [contactDataFooterRef, validateContactDataFooter] = useValidation();\r\n const handleInputChange = setter => value => {\r\n setter(value);\r\n };\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate: () => {\r\n const phones = [mobilePhone, commercialPhone, residentialPhone];\r\n const noPhone = phones.every(obj => !obj.value);\r\n\r\n const invalidEmail = validateEmail();\r\n const footerDataInfo = validateContactDataFooter();\r\n if (noPhone) {\r\n setMobilePhone({\r\n ...mobilePhone,\r\n invalid: true,\r\n errorMessage: noPhoneErrorMessage,\r\n });\r\n setResidentialPhone({\r\n ...residentialPhone,\r\n invalid: true,\r\n errorMessage: noPhoneErrorMessage,\r\n });\r\n setComercialPhone({\r\n ...commercialPhone,\r\n invalid: true,\r\n errorMessage: noPhoneErrorMessage,\r\n });\r\n\r\n return { invalid: true, value: '' };\r\n }\r\n\r\n setMobilePhone({\r\n ...mobilePhone,\r\n invalid: false,\r\n });\r\n setResidentialPhone({\r\n ...residentialPhone,\r\n invalid: false,\r\n });\r\n setComercialPhone({\r\n ...commercialPhone,\r\n invalid: false,\r\n });\r\n const isInvalid =\r\n [\r\n validateMobilePhone,\r\n validateComercialPhone,\r\n validateResidentialPhone,\r\n ]\r\n .reverse()\r\n .reduce((acc, v) => {\r\n const invalid = v();\r\n return acc || invalid;\r\n }, false) ||\r\n invalidEmail ||\r\n footerDataInfo.invalid;\r\n\r\n return {\r\n invalid: isInvalid,\r\n value: isInvalid\r\n ? ''\r\n : {\r\n comunicacao: {\r\n parametros: filterContactArray([\r\n {\r\n codigo: 'email',\r\n tipo: 'PES',\r\n valor: email.value,\r\n },\r\n {\r\n codigo: 'telefone',\r\n tipo: 'CEL',\r\n valor: mobilePhone.value,\r\n },\r\n {\r\n codigo: 'telefone',\r\n tipo: 'COM',\r\n valor: commercialPhone.value,\r\n },\r\n {\r\n codigo: 'telefone',\r\n tipo: 'RES',\r\n valor: residentialPhone.value,\r\n },\r\n ]),\r\n recebimento: [\r\n {\r\n celular: footerDataInfo.value?.celular ?? false,\r\n email: footerDataInfo.value?.email ?? false,\r\n },\r\n ],\r\n },\r\n },\r\n };\r\n },\r\n }),\r\n [\r\n validateMobilePhone,\r\n email.value,\r\n mobilePhone,\r\n residentialPhone,\r\n validateComercialPhone,\r\n validateEmail,\r\n validateResidentialPhone,\r\n commercialPhone,\r\n validateContactDataFooter,\r\n setComercialPhone,\r\n setResidentialPhone,\r\n setMobilePhone,\r\n ]\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default forwardRef(ContactData);\r\n","import styled from 'styled-components/macro';\r\nimport { blue, blueHover } from '../../styles/colors';\r\n\r\nexport const Anchor = styled.div`\r\n color: ${blue};\r\n cursor: pointer;\r\n text-decoration: none;\r\n display: inline-block;\r\n &:hover {\r\n color: ${blueHover};\r\n }\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Anchor = props => ;\r\n\r\nexport default Anchor;\r\n","import styled from 'styled-components';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport Anchor from '../Anchor';\r\n\r\nexport const StyledAnchor = styled(Anchor)`\r\n display: flex;\r\n ${fontSize(12)};\r\n font-weight: bold;\r\n align-items: center;\r\n`;\r\n","/* eslint-disable camelcase */\r\n/* eslint react-hooks/exhaustive-deps: 0 */\r\nimport React, {\r\n forwardRef,\r\n useImperativeHandle,\r\n useEffect,\r\n useCallback,\r\n useLayoutEffect,\r\n useState,\r\n} from 'react';\r\nimport Section from '../Section';\r\nimport { useInputState, useAddressQuery, useUfs } from '../../hooks';\r\nimport { Row } from '../../styles/utils/Grid';\r\nimport Input from '../Input';\r\nimport masks from '../../utils/masks';\r\nimport { required, validCep } from '../../utils/inputValidation';\r\nimport * as S from './styled';\r\nimport Autocomplete from '../Autocomplete';\r\nimport {\r\n addressDataTitle,\r\n addressDataSubtitle,\r\n cepPlaceholder,\r\n addressPlaceholder,\r\n numberPlaceholder,\r\n additionPlaceholder,\r\n neighborhoodPlaceholder,\r\n cityPlaceholder,\r\n ufPlaceholder,\r\n forgotCepText,\r\n} from '../../utils/constants';\r\n\r\nconst AddressData = ({ addressData, setContext, shouldQuery }, ref) => {\r\n const { loading: ufsLoading, ufs } = useUfs();\r\n const [cep, setCep, cepRef, validateCep] = useInputState(addressData?.cep);\r\n const [previousCep, setPreviousCep] = useState(addressData?.cep);\r\n const [address, setAddress, addressRef, validateAddress] = useInputState(\r\n addressData?.logradouro\r\n );\r\n const [number, setNumber, numberRef, validateNumber] = useInputState(\r\n addressData?.numero\r\n );\r\n const [uf, setUf, ufRef, validateUf] = useInputState(addressData?.estado);\r\n const [\r\n neighborhood,\r\n setNeighborhood,\r\n neighborhoodRef,\r\n validateNeighborhood,\r\n ] = useInputState(addressData?.bairro);\r\n const [city, setCity, cityRef, validateCity] = useInputState(\r\n addressData?.cidade\r\n );\r\n const [addition, setAddition, additionRef, validateAddition] = useInputState(\r\n addressData?.complemento\r\n );\r\n const { getAddress, loading } = useAddressQuery();\r\n const forgotCep = () => {\r\n window.open(\r\n 'http://www.buscacep.correios.com.br/sistemas/buscacep/',\r\n '_blank',\r\n 'width=795, height=590, top=100, left=699, status=no, toolbar=no, menubar=no, resizable=no, fullscreen=no'\r\n );\r\n };\r\n\r\n const handleInputChange = setter => value => {\r\n setter(value);\r\n };\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate: () => {\r\n const isInvalid = [\r\n validateCep,\r\n validateAddress,\r\n validateNumber,\r\n validateAddition,\r\n validateNeighborhood,\r\n validateCity,\r\n validateUf,\r\n ]\r\n .reverse()\r\n .reduce((acc, v) => {\r\n const invalid = v();\r\n return acc || invalid;\r\n }, false);\r\n return {\r\n invalid: isInvalid,\r\n value: isInvalid\r\n ? ''\r\n : {\r\n endereco: {\r\n cep: cep.value,\r\n estado: uf.value,\r\n cidade: city.value,\r\n bairro: neighborhood.value,\r\n logradouro: address.value,\r\n numero: number.value,\r\n complemento: addition.value,\r\n },\r\n },\r\n };\r\n },\r\n }),\r\n [validateCep]\r\n );\r\n\r\n useLayoutEffect(() => {\r\n setContext({\r\n loading: [loading, ufsLoading].some(current => current),\r\n });\r\n }, [loading, setContext, ufsLoading]);\r\n\r\n const onCepFilled = useCallback(async () => {\r\n if (cep.value === previousCep && !shouldQuery) {\r\n return;\r\n }\r\n setPreviousCep(cep.value);\r\n const {\r\n nome_bairro,\r\n indice_tipo_logradouro,\r\n nome_localidade,\r\n codigo_uf,\r\n } = await getAddress(cep.value);\r\n\r\n if (indice_tipo_logradouro == null) {\r\n setCep({\r\n value: '',\r\n invalid: true,\r\n errorMessage: 'CEP inválido',\r\n });\r\n setNumber({ ...number, value: '' });\r\n setNeighborhood({ ...neighborhood, value: '' });\r\n setCity({ ...city, value: '' });\r\n setAddress({ ...address, value: '' });\r\n setUf({ ...uf, value: '' });\r\n } else {\r\n setUf({ invalid: false, errorMessage: '', value: codigo_uf });\r\n setNeighborhood({ invalid: false, errorMessage: '', value: nome_bairro });\r\n setCity({ invalid: false, errorMessage: '', value: nome_localidade });\r\n setAddress({\r\n invalid: false,\r\n errorMessage: '',\r\n value: indice_tipo_logradouro,\r\n });\r\n if (document.activeElement.id === 'cep') {\r\n numberRef.current.focus();\r\n }\r\n }\r\n }, [cep.value]);\r\n\r\n useEffect(() => {\r\n if (cep.value.length === 8) {\r\n onCepFilled();\r\n }\r\n }, [cep.value, onCepFilled]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n forgotCep()}>\r\n {forgotCepText}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n option.codigo}\r\n getOptionValue={option => option.codigo}\r\n setter={setUf}\r\n ref={ufRef}\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default forwardRef(AddressData);\r\n","/* eslint-disable no-unused-expressions */\r\n/* eslint-disable no-underscore-dangle */\r\n/* eslint-disable class-methods-use-this */\r\n\r\nconst ATTR_DISABLED = 'disabled';\r\nconst ATTR_NAME = 'default-value';\r\nconst ATTR_ERROR_MESSAGE = 'error-message';\r\n\r\nclass SwitchLgpd extends HTMLElement {\r\n get css() {\r\n return `\r\n .container {\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: flex-start;\r\n margin: 8px 0px;\r\n text-align: left;\r\n }\r\n .container h2 {\r\n width: 100%;\r\n font-size: 14px;\r\n font-weight: bold;\r\n font-style: normal;\r\n margin: 5px 0;\r\n color: #525252;\r\n line-height: 14px;\r\n }\r\n .container p {\r\n font-size: 12;\r\n font-weight: normal;\r\n font-style: normal;\r\n margin: 8px 0;\r\n color: #525252;\r\n line-height: 18px;\r\n }\r\n .container .switch {\r\n display: flex;\r\n flex-grow: 1;\r\n flex-direction: row;\r\n align-items: space-around;\r\n justify-content: center;\r\n border: 1px solid #005FC8;\r\n border-radius: 30px;\r\n margin: 13px 0;\r\n width: 250px;\r\n height: 45px;\r\n }\r\n .container .switch input {\r\n display: none;\r\n }\r\n .divider {\r\n display: flex;\r\n flex-grow: 1;\r\n flex-direction: column;\r\n border: 0.5px solid #005FC8;\r\n background: #005FC8;\r\n width: 1px;\r\n height: 99%;\r\n }\r\n .container .switch #yes-button:checked+label {\r\n border-radius: 25px 0px 0px 25px;\r\n background: #005FC8;\r\n color: #FFFFFF;\r\n }\r\n .container .switch #no-button:checked+label {\r\n border-radius: 0px 25px 25px 0px;\r\n background: #005FC8;\r\n color: #FFFFFF;\r\n }\r\n .container .switch label {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: space-around;\r\n justify-content: space-around;\r\n text-align: center;\r\n cursor: pointer;\r\n background: transparent;\r\n color: #005FC8;\r\n user-select: none;\r\n width: 100%;\r\n }\r\n .footer {\r\n display: none;\r\n position: relative;\r\n bottom: 0;\r\n width: 100%;\r\n text-align: left;\r\n }\r\n .show {\r\n display: block;\r\n }\r\n .error {\r\n color: red;\r\n font-size(11);\r\n text-align: left;\r\n }\r\n @media (max-width: 767px) {\r\n .container .switch {\r\n width: 100%;\r\n }\r\n }\r\n `;\r\n }\r\n\r\n get template() {\r\n return `\r\n
\r\n

Quer receber novidades?

\r\n

Sempre que houver novidades, ofertas e promoções de nossos serviços, sejam das\r\n empresas do nosso grupo ou de parceiros, gostaríamos de te avisar através dos seus contatos\r\n cadastrados. Assim, você não perde nenhuma oportunidade.

\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n Campo Obrigatório\r\n
\r\n
\r\n `;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._disabled = false;\r\n this._defaultValue = null;\r\n this._errorMessage = null;\r\n this._shadowRoot = this.attachShadow({ mode: 'open' });\r\n this._shadowRoot.innerHTML = this.template;\r\n }\r\n\r\n static get observedAttributes() {\r\n return [ATTR_DISABLED, ATTR_NAME, ATTR_ERROR_MESSAGE];\r\n }\r\n\r\n connectedCallback() {\r\n this._disabled = this.getAttribute(ATTR_DISABLED) !== null;\r\n this._defaultValue = this.getAttribute(ATTR_NAME);\r\n this._errorMessage = this.getAttribute(ATTR_ERROR_MESSAGE);\r\n\r\n if (this._disabled) {\r\n this.handleDisabled();\r\n }\r\n\r\n this.handleInputValue();\r\n }\r\n\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n if (name === ATTR_NAME) {\r\n this._defaultValue = newValue;\r\n this.handleInputValue();\r\n }\r\n\r\n if (name === ATTR_DISABLED) {\r\n this._disabled = newValue !== null;\r\n this.handleDisabled();\r\n }\r\n\r\n if (name === ATTR_ERROR_MESSAGE) {\r\n this._errorMessage = newValue;\r\n if (this._errorMessage) {\r\n this.showErrorMessage();\r\n } else {\r\n this.hiddenErrorMessage();\r\n }\r\n }\r\n }\r\n\r\n handleInputValue() {\r\n this._shadowRoot.querySelectorAll('input').forEach(input => {\r\n input.addEventListener('change', e => this.handleOnChange(e));\r\n\r\n input.getAttribute('value') === this._defaultValue\r\n ? input.setAttribute('checked', true)\r\n : input.removeAttribute('checked');\r\n });\r\n }\r\n\r\n handleOnChange(event) {\r\n if (this._disabled) {\r\n event.stopImmediatePropagation();\r\n } else {\r\n this.dispatchEvent(\r\n new CustomEvent('onChange', {\r\n detail: { value: event.target.value },\r\n })\r\n );\r\n }\r\n }\r\n\r\n handleDisabled() {\r\n this._shadowRoot\r\n .querySelectorAll('input')\r\n .forEach(input =>\r\n this._disabled\r\n ? input.setAttribute(ATTR_DISABLED)\r\n : input.removeAttribute(ATTR_DISABLED)\r\n );\r\n }\r\n\r\n showErrorMessage() {\r\n this._shadowRoot.querySelector('.footer').classList.add('show');\r\n }\r\n\r\n hiddenErrorMessage() {\r\n this._shadowRoot.querySelector('.footer').classList.remove('show');\r\n }\r\n}\r\n\r\nwindow.customElements.define('switch-lgpd', SwitchLgpd);\r\n","import React, { useRef, useEffect, useCallback } from 'react';\r\nimport '../../web-components/switch-lgpd';\r\n\r\nconst SwitchLgpd = ({ type, error, onChange }) => {\r\n const switchRef = useRef();\r\n\r\n const handleEvent = useCallback(\r\n e => {\r\n e.preventDefault();\r\n onChange(e.detail);\r\n },\r\n [onChange]\r\n );\r\n\r\n useEffect(() => {\r\n const elementRef = switchRef.current;\r\n elementRef.addEventListener(\r\n 'onChange',\r\n e => {\r\n handleEvent(e);\r\n },\r\n false\r\n );\r\n\r\n return () =>\r\n elementRef.removeEventListener(\r\n 'onChange',\r\n e => {\r\n handleEvent(e);\r\n },\r\n false\r\n );\r\n }, [handleEvent]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SwitchLgpd;\r\n","import React, {\r\n useEffect,\r\n useContext,\r\n useImperativeHandle,\r\n forwardRef,\r\n} from 'react';\r\nimport { AppContext } from '../../context';\r\nimport Section from '../Section';\r\nimport { useInputState } from '../../hooks';\r\nimport SwitchLgpd from '../SwitchLgpd';\r\n\r\nconst ContactWay = (_, ref) => {\r\n const { lgpdConsent, setContext } = useContext(AppContext);\r\n const [consent, setConsent] = useInputState(lgpdConsent || '');\r\n\r\n const setConsentChange = value => ({\r\n invalid: false,\r\n value,\r\n });\r\n\r\n useEffect(() => {\r\n setContext({\r\n lgpdConsent: consent.value,\r\n });\r\n }, [consent, setContext]);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n validate: () => {\r\n if (consent.value !== '1' && consent.value !== '0') {\r\n const state = {\r\n invalid: true,\r\n value: consent.value,\r\n };\r\n setConsent({\r\n ...state,\r\n ...consent,\r\n errorMessage: 'Campo obrigatório',\r\n });\r\n return state;\r\n }\r\n\r\n setConsent({ ...consent });\r\n setContext({ lgpdConsent: consent.value });\r\n return setConsentChange(consent.value);\r\n },\r\n }),\r\n [consent, setConsent, setContext]\r\n );\r\n\r\n const handleInputChange = setter => value => {\r\n setter(value);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default forwardRef(ContactWay);\r\n","import styled from 'styled-components';\r\nimport { blue } from '../../styles/colors';\r\n\r\nexport const CollapseContainer = styled.div``;\r\n\r\nexport const Title = styled.h5`\r\n font-size: 16px;\r\n padding: 0 5px;\r\n margin: 13px 0 10px 0;\r\n padding-right: 25px;\r\n position: relative;\r\n cursor: pointer;\r\n font-weight: normal;\r\n outline: none;\r\n\r\n i {\r\n position: absolute;\r\n pointer-events: none;\r\n color: ${blue};\r\n right: 10px;\r\n top: 0;\r\n top: ${({ center }) => (center ? 'calc(50% - 8px)' : '3px')};\r\n }\r\n`;\r\n\r\nexport const Container = styled.div`\r\n transition: max-height ${({ animationTime }) => animationTime}ms ease;\r\n height: auto;\r\n overflow: hidden;\r\n padding: 0 5px;\r\n`;\r\n","/* eslint-disable no-param-reassign */\r\n/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useRef,\r\n useImperativeHandle,\r\n forwardRef,\r\n} from 'react';\r\nimport * as S from './styled';\r\n\r\nconst useCollapse = initialState => {\r\n const [opened, setOpened] = useState(initialState);\r\n const toggle = () => setOpened(!opened);\r\n return [opened, toggle];\r\n};\r\n\r\nlet alreadyOpened = false;\r\nconst alreadyOpenedHeight = (opened, ref) =>\r\n opened ? `${ref.current.children[0].offsetHeight}px` : '0px';\r\n\r\nconst handleTransition = (\r\n opened,\r\n containerRef,\r\n animationCb,\r\n setAnimationCb,\r\n animationTime\r\n) => {\r\n if (opened) {\r\n containerRef.current.style.maxHeight = `${containerRef.current.children[0].offsetHeight}px`;\r\n alreadyOpened = true;\r\n setAnimationCb(\r\n setTimeout(() => {\r\n containerRef.current.style.maxHeight = 'unset';\r\n containerRef.current.style.overflow = 'unset';\r\n }, animationTime)\r\n );\r\n } else {\r\n containerRef.current.style.maxHeight = alreadyOpenedHeight(\r\n alreadyOpened,\r\n containerRef\r\n );\r\n clearTimeout(animationCb);\r\n const handleTimeout = () => {\r\n if (containerRef.current == null) {\r\n return;\r\n }\r\n containerRef.current.style.maxHeight = '0px';\r\n containerRef.current.style.overflow = 'hidden';\r\n };\r\n setTimeout(handleTimeout, 20);\r\n }\r\n};\r\n\r\nconst Collapse = (\r\n { title, children, animationTime = 300, onStateChange, ...rest },\r\n ref\r\n) => {\r\n const [opened, toggle] = useCollapse(false);\r\n const [animationCb, setAnimationCb] = useState(null);\r\n const containerRef = useRef(null);\r\n\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n toggle,\r\n }),\r\n [toggle]\r\n );\r\n\r\n useEffect(() => {\r\n if (opened) {\r\n if (!containerRef.current) {\r\n return;\r\n }\r\n containerRef.current.style.maxHeight = `${containerRef.current.children[0].offsetHeight}px`;\r\n alreadyOpened = true;\r\n setAnimationCb(\r\n setTimeout(() => {\r\n containerRef.current.style.maxHeight = 'unset';\r\n containerRef.current.style.overflow = 'unset';\r\n }, animationTime)\r\n );\r\n } else {\r\n containerRef.current.style.maxHeight = alreadyOpenedHeight(\r\n alreadyOpened,\r\n containerRef\r\n );\r\n clearTimeout(animationCb);\r\n setTimeout(() => {\r\n containerRef.current.style.maxHeight = '0px';\r\n containerRef.current.style.overflow = 'hidden';\r\n }, 20);\r\n }\r\n handleTransition(\r\n opened,\r\n containerRef,\r\n animationCb,\r\n setAnimationCb,\r\n animationTime\r\n );\r\n if (onStateChange) {\r\n onStateChange(opened);\r\n }\r\n }, [opened]);\r\n\r\n return (\r\n \r\n {\r\n if (event.which === 13 || event.keyCode === 13) {\r\n toggle();\r\n }\r\n }}\r\n tabIndex={0}\r\n onClick={toggle}\r\n >\r\n {title}\r\n \r\n \r\n\r\n \r\n {React.Children.count(children) > 1 ?
{children}
: children}\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default forwardRef(Collapse);\r\n","import styled from 'styled-components';\r\nimport Section from '../Section';\r\n\r\nexport const Container = styled(Section)({\r\n padding: '10px 20px',\r\n});\r\n\r\nexport const SubText = styled.p({\r\n marginBottom: '0',\r\n fontSize: '12px',\r\n lineHeight: '14px',\r\n});\r\n","import React from 'react';\r\nimport Collapse from '../Collapse';\r\nimport * as S from './styled';\r\n\r\nconst Resolution = () => (\r\n \r\n \r\n \r\n Nos termos da Resolução CNSP nº 382/2020, a Caixa Capitalização S.A.\r\n informa que a CAIXA, por meio de sua subsidiária integral Caixa\r\n Seguridade Participações S.A., detém participação societária direta\r\n sobre a Caixa Seguros Holding S.A., no percentual de 48,21% e, indireta\r\n sobre a Wiz Soluções e Corretagem de Seguros S.A., no percentual de\r\n 12,05%. Informamos ainda que a Caixa Seguros Holding S.A. detém\r\n participação societária direta sobre a Wiz Soluções e Corretagem de\r\n Seguros S.A., com percentual de 25%. A Caixa Capitalização S.A. remunera\r\n seus intermediários entre 113% e 150% pela comercialização do título Cap\r\n Ganhador - pagamento mensal e entre 3,55% e 3,8% pela comercialização do\r\n título Cap Ganhador - pagamento único.\r\n \r\n \r\n \r\n);\r\n\r\nexport default Resolution;\r\n","import React, { useContext } from 'react';\r\nimport PageContent from '../components/PageContent';\r\nimport Banner from '../components/Banner';\r\nimport Section from '../components/Section';\r\nimport { useInputState, useValidation, useDeviceType } from '../hooks';\r\nimport TwoOptionsButton from '../components/TwoOptionsButton';\r\nimport PersonalDataPF from '../components/PersonalDataPF';\r\nimport PersonalDataPJ from '../components/PersonalDataPJ/PersonalDataPJ';\r\nimport { FlatButton } from '../components/Button';\r\nimport { AppContext } from '../context';\r\nimport { handleChange } from '../utils/inputEvents';\r\nimport { required } from '../utils/inputValidation';\r\nimport ContactData from '../components/ContactData';\r\nimport AddressData from '../components/AddressData';\r\nimport ContactWay from '../components/ContactWay';\r\nimport {\r\n registerBannerTitle,\r\n registerTypePersonTitle,\r\n} from '../utils/constants';\r\nimport DataConsentQuestion from '../components/DataConsentQuestion';\r\nimport Resolution from '../components/Resolution';\r\n\r\nconst DesktopRegister = () => {\r\n const [type, setType, typeRef, validateType] = useInputState('Física');\r\n const [personalDataPfRef, validatePersonalDataPf] = useValidation();\r\n const [personalDataPjRef, validatePersonalDataPj] = useValidation();\r\n const [addressDataRef, validateAddressData] = useValidation();\r\n const [contactDataRef, validateContactData] = useValidation();\r\n const [consentDataRef, validateConsentData] = useValidation();\r\n const { setContext, userData, ibcLogged } = useContext(AppContext);\r\n const { mobile } = useDeviceType();\r\n const submit = () => {\r\n let personalData = {};\r\n const validType = validateType();\r\n\r\n if (validType) {\r\n return;\r\n }\r\n\r\n const contactData = validateContactData();\r\n const addressData = validateAddressData();\r\n const consentData = validateConsentData();\r\n\r\n if (type.value === 'Física') {\r\n personalData = validatePersonalDataPf();\r\n } else {\r\n personalData = validatePersonalDataPj();\r\n }\r\n\r\n if (\r\n personalData.invalid ||\r\n addressData.invalid ||\r\n contactData.invalid ||\r\n consentData.invalid\r\n ) {\r\n return;\r\n }\r\n\r\n setContext({\r\n userData: {\r\n pessoa: {\r\n ...personalData.value,\r\n ...addressData.value,\r\n ...contactData.value,\r\n },\r\n },\r\n navigateTo: '/confirmacao',\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n {type.value && (\r\n <>\r\n {type.value === 'Física' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n
\r\n {mobile || }\r\n {\r\n setContext({\r\n navigateTo: '/objetivo',\r\n });\r\n }}\r\n margin\r\n >\r\n Voltar\r\n \r\n \r\n Continuar\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default DesktopRegister;\r\n","import React, { useContext } from 'react';\r\nimport PageContent from '../components/PageContent';\r\nimport Banner from '../components/Banner';\r\nimport Section from '../components/Section';\r\nimport { Row, Col } from '../styles/utils/Grid';\r\nimport TwoOptionsButton from '../components/TwoOptionsButton';\r\nimport { useInputState, useValidation } from '../hooks';\r\nimport PersonalDataPJ from '../components/PersonalDataPJ/PersonalDataPJ';\r\nimport PersonalDataPF from '../components/PersonalDataPF';\r\nimport { AppContext } from '../context';\r\nimport { FlatButton } from '../components/Button';\r\nimport { handleChange } from '../utils/inputEvents';\r\nimport { required } from '../utils/inputValidation';\r\nimport { registerBannerTitle } from '../utils/constants';\r\nimport DataConsentQuestion from '../components/DataConsentQuestion';\r\n\r\nconst MobileRegisterPersonal = () => {\r\n const [type, setType, typeRef, validateType] = useInputState('Física');\r\n const [personalDataPfRef, validatePersonalDataPf] = useValidation();\r\n const [personalDataPjRef, validatePersonalDataPj] = useValidation();\r\n const { setContext, userData = {} } = useContext(AppContext);\r\n\r\n const submit = () => {\r\n let personalData = {};\r\n const validType = validateType();\r\n if (validType) {\r\n return;\r\n }\r\n if (type.value === 'Física') {\r\n personalData = validatePersonalDataPf();\r\n } else {\r\n personalData = validatePersonalDataPj();\r\n }\r\n\r\n if (personalData.invalid) {\r\n return;\r\n }\r\n\r\n setContext({\r\n userData: {\r\n pessoa: {\r\n ...userData?.pessoa,\r\n ...personalData.value,\r\n },\r\n },\r\n navigateTo: '/endereco',\r\n });\r\n };\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n {type?.value === 'Física' ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n {\r\n setContext({\r\n navigateTo: '/objetivo',\r\n });\r\n }}\r\n margin\r\n >\r\n Voltar\r\n \r\n \r\n Continuar\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MobileRegisterPersonal;\r\n","import styled, { css } from 'styled-components/macro';\r\nimport { graySecondaryDark } from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const TitledContent = styled.div`\r\n display: ${({ flex }) => (flex ? 'flex' : 'grid')};\r\n\r\n ${({ flex }) =>\r\n flex\r\n ? css`\r\n justify-content: center;\r\n flex-direction: column;\r\n `\r\n : css`\r\n ${({ fullWidth }) =>\r\n fullWidth &&\r\n css`\r\n display: grid;\r\n justify-content: start;\r\n grid-column: span 2;\r\n ${media.desktop`\r\n grid-column: span 3;\r\n `}\r\n `}\r\n ${({ twoColumns }) =>\r\n twoColumns &&\r\n css`\r\n ${media.desktop`\r\n grid-column: span 2;\r\n `}\r\n `}\r\n `};\r\n`;\r\n\r\nexport const Label = styled.label`\r\n color: ${graySecondaryDark};\r\n ${fontSize(12)};\r\n margin-bottom: 6px;\r\n`;\r\n\r\nexport const Content = styled.p`\r\n font-weight: bold;\r\n margin-bottom: ${({ marginBottom }) => (marginBottom ? '15px' : '0')};\r\n word-break: ${({ wordBreakAll }) => wordBreakAll && 'break-all'};\r\n ${fontSize(14)};\r\n ${media.desktop`\r\n ${fontSize(16)};\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst TitledContent = ({ title, content, component, flex, ...rest }) => (\r\n \r\n {title}\r\n {component ? content : {content || '-'}}\r\n \r\n);\r\n\r\nexport default TitledContent;\r\n","import styled from 'styled-components/macro';\r\nimport Icon from '../Icon';\r\nimport {\r\n white,\r\n blue,\r\n blueHover,\r\n blueSecondaryLight,\r\n graySecondaryDark,\r\n grayDisabled,\r\n} from '../../styles/colors';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const StyledPlainButton = styled.button`\r\n display: flex;\r\n background: ${({ selected, inverse }) =>\r\n (inverse && blue) || (selected && blueSecondaryLight) || white};\r\n border-radius: 30px;\r\n border: 1px solid ${blue};\r\n color: ${({ selected, inverse }) =>\r\n (inverse && white) || (selected && graySecondaryDark) || blue};\r\n cursor: pointer;\r\n min-height: 40px;\r\n height: 50px;\r\n width: ${({ width }) => width || '140px'};\r\n align-items: center;\r\n position: relative;\r\n ${({ center }) => center && 'margin: 0 auto;'}\r\n\r\n :hover {\r\n border-color: ${blueHover};\r\n background: ${({ selected, inverse }) =>\r\n (inverse && blueHover) || (selected && blueSecondaryLight) || white};\r\n color: ${({ selected, inverse }) =>\r\n (inverse && white) || (selected && graySecondaryDark) || blueHover};\r\n }\r\n :active {\r\n color: ${graySecondaryDark};\r\n background: ${blueSecondaryLight};\r\n }\r\n\r\n &.disabled,\r\n &.disabled:hover {\r\n background-color: ${grayDisabled};\r\n color: ${white};\r\n border-color: ${white};\r\n cursor: not-allowed;\r\n }\r\n\r\n ${media.desktop`\r\n height: 50px;\r\n width: ${({ icon }) => (icon ? '180px' : '60px')};\r\n `};\r\n`;\r\n\r\nexport const ContentWrapper = styled.span`\r\n width: 100%;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 0 10px;\r\n font-weight: ${({ bold }) => (bold ? 'bold' : 500)};\r\n margin: auto;\r\n ${fontSize(14)};\r\n letter-spacing: 0.34px;\r\n`;\r\n\r\nexport const ButtonIcon = styled(Icon)`\r\n ${fontSize(14)};\r\n margin-left: 10px;\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst PlainButton = ({\r\n children,\r\n icon,\r\n hideIcon = false,\r\n disabled,\r\n className = '',\r\n width,\r\n center,\r\n bold,\r\n ...rest\r\n}) => (\r\n \r\n \r\n {children}\r\n {icon && !hideIcon && }\r\n \r\n \r\n);\r\n\r\nexport default PlainButton;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\nimport TitledContent from '../TitledContent';\r\nimport PlainButton from '../PlainButton';\r\nimport Section from '../Section';\r\n\r\nexport const CongratsSection = styled(Section)`\r\n padding-bottom: 5px;\r\n ${media.desktop`\r\n padding-bottom: 15px;\r\n `}\r\n`;\r\n\r\nexport const ProposalTitledContent = styled(TitledContent)`\r\n margin-top: 20px;\r\n align-items: center;\r\n > label {\r\n ${fontSize(10)}\r\n }\r\n > p {\r\n ${fontSize(20)}\r\n }\r\n ${media.desktop`\r\n &&{\r\n margin-bottom: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ProductTitledContent = styled(TitledContent)`\r\n align-items: center;\r\n > label {\r\n font-weight: 500;\r\n ${fontSize(14)}\r\n }\r\n ${media.desktop`\r\n &&{\r\n margin-bottom: 0;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ProductButton = styled(PlainButton)`\r\n width: 60%;\r\n height: 40px;\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const TitleWrapper = styled.header`\r\n display: flex;\r\n flex-direction: column;\r\n align-self: center;\r\n align-items: center;\r\n text-align: center;\r\n border-bottom: solid 1px ${({ theme }) => theme.dividerColor};\r\n padding-top: 25px;\r\n padding-bottom: 15px;\r\n padding-right: 45px;\r\n padding-left: 45px;\r\n width: 100%;\r\n ${media.desktop`\r\n padding-top: 35px;\r\n padding-bottom: 28px;\r\n width: 90%;\r\n `}\r\n`;\r\n\r\nexport const Title = styled.h1`\r\n color: ${({ theme }) => theme.primaryColor};\r\n ${fontSize(18)};\r\n font-weight: normal;\r\n ${media.desktop`\r\n ${fontSize(32)};\r\n margin-bottom: 10px;\r\n `}\r\n`;\r\n\r\nexport const SubTitle = styled.h2`\r\n color: ${({ theme }) => theme.primaryColor};\r\n ${fontSize(18)};\r\n font-weight: normal;\r\n ${media.desktop`\r\n ${fontSize(24)}\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst CongratulationsTitle = ({ title, subtitle, ...rest }) => (\r\n \r\n {title}\r\n {subtitle}\r\n \r\n);\r\n\r\nexport default CongratulationsTitle;\r\n","import React, { useContext } from 'react';\r\nimport * as S from './styled';\r\nimport {\r\n documentsCongratulationsTitle,\r\n documentsCongratulationsSubTitle,\r\n documentsProposalNumberLabel,\r\n documentsProductLabel,\r\n documentsProductButtonText,\r\n ibcDocumentsProductButtonText,\r\n} from '../../utils/constants';\r\nimport { Row } from '../../styles/utils/Grid';\r\nimport CongratulationsTitle from '../CongratulationsTitle';\r\nimport { AppContext } from '../../context';\r\nimport env from '../../config/environment';\r\n\r\nconst Congratulations = ({ orderNum }) => {\r\n const { ibcLogged } = useContext(AppContext);\r\n const handleClick = () => {\r\n if (ibcLogged) {\r\n window.open(env.IBC_URL, '_blank');\r\n } else {\r\n window.location.href = env.AREA_LOGADA_LOGIN;\r\n }\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {ibcLogged\r\n ? ibcDocumentsProductButtonText\r\n : documentsProductButtonText}\r\n \r\n }\r\n flex\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Congratulations;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\nimport Section from '../Section';\r\nimport TitledContent from '../TitledContent';\r\n\r\nexport const CompanyContactsSection = styled(Section)`\r\n padding-top: 25px;\r\n padding-bottom: 25px;\r\n padding-left: 15px;\r\n padding-right: 30px;\r\n > h2 {\r\n ${fontSize(14)};\r\n line-height: 1.29;\r\n font-weight: bold;\r\n }\r\n ${media.desktop`\r\n padding-top: 40px;\r\n padding-bottom: 40px;\r\n padding-right: 45px;\r\n padding-left: 45px;\r\n > h2 {\r\n ${fontSize(18)};\r\n line-height: 1.33;\r\n }\r\n `}\r\n`;\r\n\r\nexport const ContactTitledContent = styled(TitledContent)`\r\n justify-content: space-between;\r\n\r\n > p {\r\n ${fontSize(14)};\r\n }\r\n ${media.desktop`\r\n > label {\r\n ${fontSize(16)};\r\n line-height: 1.5;\r\n }\r\n > p {\r\n ${fontSize(18)};\r\n }\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport {\r\n documentsCompanyContactSectionTitle,\r\n documentsCompanyContactServicesTitle,\r\n documentsCompanyContactServicesContent,\r\n documentsCompanyContactSACTitle,\r\n documentsCompanyContactSACContent,\r\n documentsCompanyContactombudsmanTitle,\r\n documentsCompanyContactombudsmanContent,\r\n documentsCompanyContactCASTitle,\r\n documentsCompanyContactCASContent,\r\n} from '../../utils/constants';\r\nimport * as S from './styled';\r\n\r\nconst CompanyContacts = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default CompanyContacts;\r\n","import styled from 'styled-components/macro';\r\nimport { white } from '../../styles/colors';\r\nimport Section from '../Section';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nconst desktopEmail = media.desktop`\r\n width: 70%;\r\n`\r\nexport const Email = styled.label`\r\n background-color: ${({ theme }) => theme.inlineBannerBgColor};\r\n color: ${white};\r\n margin: 0;\r\n padding: 20px 0;\r\n width: 100%;\r\n overflow-wrap: break-word;\r\n text-align: center;\r\n ${desktopEmail};\r\n`;\r\n\r\nconst desktopSection = media.desktop`\r\n padding: 40px 45px;\r\n`\r\nexport const StyledSection = styled(Section)`\r\n padding: 40px 30px;\r\n h2 {\r\n ${fontSize(18)};\r\n margin-bottom: 25px;\r\n }\r\n h3 {\r\n ${fontSize(16)};\r\n margin-bottom: 20px;\r\n }\r\n ${desktopSection};\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport {\r\n congratulationEmailTitle,\r\n congratulationEmailSubtitle,\r\n} from '../../utils/constants';\r\n\r\nconst CongratulationEmail = ({ email }) => (\r\n \r\n {email}\r\n \r\n);\r\n\r\nexport default CongratulationEmail;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport media from '../../styles/media';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nimport Icon from '../Icon';\r\n\r\nexport const ModalContainer = styled.div`\r\n background-color: rgba(0, 0, 0, 0.8);\r\n position: fixed;\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n z-index: 99;\r\n`;\r\n\r\nexport const Modal = styled.div`\r\n background-color: ${({ theme }) => theme.modalBgColor};\r\n z-index: 99;\r\n display: flex;\r\n flex-direction: column;\r\n position: sticky;\r\n margin: auto;\r\n width: 100%;\r\n height: 100%;\r\n padding: 20px 30px;\r\n border-top: 3px solid ${({ theme }) => theme.primaryColor};\r\n overflow-y: auto;\r\n\r\n ${media.desktop`\r\n width: 768px;\r\n height: unset;\r\n `};\r\n`;\r\n\r\nexport const ModalContent = styled.div`\r\n margin-top: 30px;\r\n flex-grow: 1;\r\n`;\r\n\r\nexport const CloseIcon = styled(Icon)`\r\n color: ${({ theme }) => theme.primaryColor};\r\n ${fontSize(20)};\r\n position: absolute;\r\n right: 20px;\r\n top: 20px;\r\n\r\n &:hover {\r\n color: ${({ theme }) => theme.hoverColor};\r\n }\r\n`;\r\n\r\nexport const ModalFooter = styled.footer`\r\n display: flex;\r\n flex-direction: column;\r\n margin-top: 30px;\r\n\r\n ${media.desktop`\r\n flex-direction: row;\r\n justify-content: center;\r\n margin-top: 50px;\r\n `};\r\n\r\n .modalButton {\r\n width: 100%;\r\n margin-bottom: 20px;\r\n\r\n ${media.desktop`\r\n width: 40%;\r\n margin-right: 20px;\r\n\r\n &:last-child {\r\n margin-right: 0;\r\n }\r\n `};\r\n }\r\n`;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\n\r\nexport const ModalTitle = styled.h1`\r\n ${({ hasIcon }) => (hasIcon ? fontSize(26) : fontSize(16))};\r\n ${({ hasIcon }) => hasIcon || 'font-weight: 500;'}\r\n ${({ hasIcon }) => hasIcon || 'line-height: 2.13;'}\r\n color: ${({ theme, hasIcon }) =>\r\n hasIcon ? theme.primaryColor : theme.modalTitleColor};\r\n ${media.desktop`\r\n ${({ hasIcon }) => (hasIcon ? fontSize(26) : fontSize(20))};\r\n\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\n\r\nconst ModalTitle = ({ title, ...rest }) => (\r\n {title}\r\n);\r\n\r\nexport default ModalTitle;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport PlainButton from '../PlainButton';\r\nimport ModalTitle from '../ModalTitle';\r\nimport Backdrop from '../Backdrop';\r\n\r\nconst Modal = ({\r\n showFooter,\r\n title,\r\n acceptLabel,\r\n onAccept,\r\n onReject,\r\n children,\r\n ...others\r\n}) => (\r\n \r\n \r\n \r\n {title && }\r\n \r\n {children}\r\n {showFooter && (\r\n \r\n {acceptLabel && (\r\n \r\n {acceptLabel}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n);\r\n\r\nexport default Modal;\r\n","import React, { useState } from 'react';\r\nimport { Prompt } from 'react-router-dom';\r\nimport Modal from '../Modal';\r\n\r\nconst ConfirmLeaveModal = ({\r\n skipNavigationControl = () => false,\r\n navigate,\r\n when = true,\r\n children,\r\n title,\r\n acceptLabel,\r\n onAccept,\r\n}) => {\r\n const [open, setOpen] = useState(false);\r\n const [nextLocation, setNextLocation] = useState('');\r\n\r\n const handleWarnNavigation = location => {\r\n if (open || skipNavigationControl()) {\r\n setOpen(false);\r\n return true;\r\n }\r\n setNextLocation(location);\r\n setOpen(true);\r\n return false;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {open && (\r\n setOpen(false)}\r\n onAccept={() => {\r\n if (onAccept) {\r\n onAccept();\r\n }\r\n navigate(nextLocation);\r\n }}\r\n >\r\n {children}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ConfirmLeaveModal;\r\n","import React, { useContext } from 'react';\r\nimport PageContent from '../components/PageContent';\r\nimport Congratulations from '../components/Congratulations';\r\n\r\nimport CompanyContacts from '../components/CompanyContacts';\r\nimport CongratulationEmail from '../components/CongratulationEmail';\r\nimport ConfirmLeaveModal from '../components/ConfirmLeaveModal';\r\nimport { AppContext } from '../context';\r\n\r\nconst Final = ({ history }) => {\r\n const { userData, proposal, clearContext } = useContext(AppContext);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {\r\n history.push('/objetivo');\r\n }}\r\n onAccept={() => clearContext()}\r\n >\r\n

Deseja voltar ao início e fazer um novo plano?

\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Final;\r\n","import React, { useContext } from 'react';\r\nimport { AppContext } from '../context';\r\nimport PageContent from '../components/PageContent';\r\nimport AddressData from '../components/AddressData';\r\nimport Section from '../components/Section';\r\nimport { FlatButton } from '../components/Button';\r\nimport { useValidation } from '../hooks';\r\nimport DataConsentQuestion from '../components/DataConsentQuestion';\r\n\r\nconst MobileAddressPage = () => {\r\n const { userData, setContext, ibcLogged } = useContext(AppContext);\r\n const [addressDataRef, validateAddressData] = useValidation();\r\n\r\n const submit = () => {\r\n const addressData = validateAddressData();\r\n\r\n if (addressData.invalid) {\r\n return;\r\n }\r\n\r\n setContext({\r\n userData: {\r\n pessoa: {\r\n ...userData.pessoa,\r\n ...addressData.value,\r\n },\r\n },\r\n addressResgistered: true,\r\n navigateTo: '/contato',\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {\r\n setContext({\r\n navigateTo: '/cadastro',\r\n });\r\n }}\r\n margin\r\n >\r\n Voltar\r\n \r\n \r\n Continuar\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MobileAddressPage;\r\n","import React, { useContext } from 'react';\r\nimport { AppContext } from '../context';\r\nimport PageContent from '../components/PageContent';\r\nimport ContactData from '../components/ContactData';\r\nimport Section from '../components/Section';\r\nimport { FlatButton } from '../components/Button';\r\nimport { useValidation } from '../hooks';\r\nimport ContactWay from '../components/ContactWay';\r\nimport DataConsentQuestion from '../components/DataConsentQuestion';\r\nimport Resolution from '../components/Resolution';\r\n\r\nconst MobileContactPage = () => {\r\n const { userData, setContext } = useContext(AppContext);\r\n const [contactDataRef, validateContactData] = useValidation();\r\n const [consentDataRef, validateConsentData] = useValidation();\r\n\r\n const submit = () => {\r\n const contactData = validateContactData();\r\n const consentData = validateConsentData();\r\n\r\n if (contactData.invalid || consentData.invalid) {\r\n return;\r\n }\r\n\r\n setContext({\r\n userData: {\r\n pessoa: {\r\n ...userData.pessoa,\r\n ...contactData.value,\r\n },\r\n },\r\n navigateTo: '/confirmacao',\r\n });\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n setContext({\r\n navigateTo: '/endereco',\r\n });\r\n }}\r\n margin\r\n >\r\n Voltar\r\n \r\n \r\n Continuar\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default MobileContactPage;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport TitledContent from '../TitledContent';\r\nimport BannerContent from '../BannerContent';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport media from '../../styles/media';\r\nimport Banner from '../Banner';\r\n\r\nexport const BannerContentColumns = styled(BannerContent)`\r\n flex-direction: row;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n padding: 25px;\r\n color: ${({ theme }) => theme.bannerBgColor};\r\n\r\n height: 100%;\r\n`;\r\nexport const StyledBanner = styled(Banner)`\r\n & h2 {\r\n margin-bottom: 30px;\r\n }\r\n`;\r\nexport const ColumnWrapper = styled.div`\r\n display: flex;\r\n flex-grow: 1;\r\n align-items: flex-start;\r\n flex-basis: 33.3%;\r\n min-height: 55px;\r\n height: 100%;\r\n &:not(:nth-child(1)) {\r\n margin-left: 25px;\r\n }\r\n &:not(:last-child) {\r\n padding-right: 25px;\r\n border-right: 1px solid ${({ theme }) => theme.bannerBorderColor};\r\n }\r\n`;\r\n\r\nexport const ColumnContent = styled(TitledContent)`\r\n label,\r\n p {\r\n color: ${({ theme }) => theme.bannerTextColor};\r\n }\r\n label {\r\n ${fontSize(10)};\r\n }\r\n p {\r\n ${fontSize(12)};\r\n ${media.desktop`\r\n ${fontSize(18)};\r\n `}\r\n }\r\n &.biggerContent {\r\n p {\r\n ${media.desktop`\r\n ${fontSize(32)};\r\n `}\r\n }\r\n }\r\n`;\r\n\r\nexport const TitledCurrency = styled(ColumnContent)`\r\n p {\r\n ${fontSize(18)};\r\n small {\r\n ${fontSize(10)};\r\n ${media.desktop`\r\n ${fontSize(22)};\r\n `}\r\n }\r\n span {\r\n font-weight: normal;\r\n ${fontSize(10)};\r\n ${media.desktop`\r\n ${fontSize(16)};\r\n `}\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\n\r\nimport * as S from './styled';\r\n\r\nconst ProductSummaryBanner = ({ data, title, subtitle }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.titulo * data.valor}\r\n ,00 /mês\r\n \r\n }\r\n className=\"biggerContent\"\r\n text\r\n flex\r\n />\r\n \r\n \r\n \r\n);\r\n\r\nexport default ProductSummaryBanner;\r\n","import styled from 'styled-components';\r\nimport PlainButton from '../PlainButton';\r\nimport media from '../../styles/media';\r\n\r\nexport const Wrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n border-bottom: 1px solid ${({ theme }) => theme.borderColor};\r\n padding-bottom: 30px;\r\n margin-bottom: 30px;\r\n ${media.desktop`\r\n flex-direction: row;\r\n `}\r\n`;\r\n\r\nexport const Button = styled(PlainButton)`\r\n width: 100%;\r\n margin-top: 30px;\r\n display: flex;\r\n flex-direction: column;\r\n max-width: 255px;\r\n ${media.desktop`\r\n margin-left: 20px;\r\n margin-top: 0;\r\n `}\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport StaticText from '../StaticText';\r\nimport RadioButton from '../RadioButton';\r\nimport { openPDF } from '../../utils/utils';\r\n\r\nconst GeneralConditions = ({ checked, onChangeBtn, text, productCode }) => (\r\n <>\r\n \r\n \r\n É superimportante que você leia as condições gerais e aceite as regras\r\n do seu plano de Capitalização.\r\n \r\n openPDF(productCode)}>\r\n Condições gerais - PDF\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default GeneralConditions;\r\n","import React from 'react';\r\nimport Section from '../Section';\r\nimport TitledContent from '../TitledContent';\r\n\r\nconst ClientIdentification = ({ clientType }) => (\r\n
\r\n \r\n
\r\n);\r\n\r\nexport default ClientIdentification;\r\n","import React from 'react';\r\nimport Section from '../Section';\r\nimport TitledContent from '../TitledContent';\r\nimport masks from '../../utils';\r\nimport { dateToStringFormat } from '../../utils/formatters';\r\n\r\nconst ConfirmPersonalData = ({\r\n clientName,\r\n clientSex,\r\n clientCPF,\r\n clientBirthdate,\r\n clientMaritalState,\r\n clientProfession,\r\n clientIndividualIncome,\r\n clientFamilyIncome,\r\n}) => (\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n);\r\n\r\nexport default ConfirmPersonalData;\r\n","import React from 'react';\r\nimport Section from '../Section';\r\nimport TitledContent from '../TitledContent';\r\nimport masks from '../../utils';\r\n\r\nconst ConfirmAddressData = ({\r\n clientCEP,\r\n clientAddress,\r\n clientNumber,\r\n clientAddition,\r\n clientNeighborhood,\r\n clientCity,\r\n clientState,\r\n}) => (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n);\r\n\r\nexport default ConfirmAddressData;\r\n","import React from 'react';\r\nimport Section from '../Section';\r\nimport TitledContent from '../TitledContent';\r\nimport masks from '../../utils/masks';\r\n\r\nconst ConfirmContactData = ({\r\n clientCellphone,\r\n clientResidencePhone,\r\n clientComercialPhone,\r\n clientEmail,\r\n clientInformationType,\r\n}) => (\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n
\r\n);\r\n\r\nexport default ConfirmContactData;\r\n","import React, {\r\n useContext,\r\n useState,\r\n useLayoutEffect,\r\n useEffect,\r\n useCallback,\r\n} from 'react';\r\nimport { AppContext } from '../context';\r\nimport env from '../config/environment';\r\nimport Section from '../components/Section';\r\nimport PageContent from '../components/PageContent';\r\nimport { FlatButton } from '../components/Button';\r\nimport ProductSummaryBanner from '../components/ProductSummaryBanner';\r\nimport { useSaveCotation, useProposal, useLgpdConsent } from '../hooks';\r\nimport GeneralConditions from '../components/GeneralConditions';\r\nimport ClientIdentification from '../components/ClientIdentification';\r\nimport ConfirmPersonalData from '../components/ConfirmPersonalData';\r\nimport ConfirmAddressData from '../components/ConfirmAddressData';\r\nimport ConfirmContactData from '../components/ConfirmContactData';\r\nimport { confirmDataTitle, confirmDataSubtitle } from '../utils/constants';\r\nimport { findContact } from '../utils/utils';\r\n\r\nconst InfoTypeValue = userData => {\r\n const contactWay = userData.pessoa.comunicacao.recebimento[0];\r\n const allFalse = Object.values(contactWay).every(\r\n i => contactWay[i] === false\r\n );\r\n\r\n return contactWay.celular && contactWay.email\r\n ? `Celular e Email`\r\n : (contactWay.celular && `Celular`) ||\r\n (contactWay.email && `Email`) ||\r\n (allFalse && `-`);\r\n};\r\n\r\nconst ConfirmData = ({ history }) => {\r\n const {\r\n userData,\r\n productData,\r\n isMobile,\r\n setContext,\r\n ibcLogged,\r\n clientAccs,\r\n lgpdConsent,\r\n } = useContext(AppContext);\r\n const [agreed, setAgreed] = useState(false);\r\n const {\r\n saveCotation,\r\n loading: cotationLoading,\r\n cotation,\r\n } = useSaveCotation();\r\n const { getProposal, loading: proposalLoading, proposal } = useProposal();\r\n const { loading: loadingLgpd, postLgpdConsent } = useLgpdConsent();\r\n const submit = async () => {\r\n const agencyNumber = clientAccs && clientAccs[0]?.agency;\r\n await saveCotation(productData, userData, ibcLogged, agencyNumber);\r\n };\r\n\r\n const sendLgpdConsent = useCallback(async () => {\r\n if (proposal.clientes) {\r\n const cpf = proposal.clientes[0].pessoa.identificacao.codigo;\r\n const promises = [\r\n postLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n cpf,\r\n proposal.identificacao.codigoNegocio,\r\n lgpdConsent,\r\n env.BUSSINESS_SUBPROCESS_CAIXA_HOLDING_CODE\r\n ),\r\n postLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n cpf,\r\n proposal.identificacao.codigoNegocio,\r\n lgpdConsent,\r\n env.BUSSINESS_SUBPROCESS_CAIXA_HOLDING_PARTNERS_CODE\r\n ),\r\n ];\r\n Promise.all(promises).then(res => {\r\n if (res.every(el => el.mensagem)) {\r\n setContext({\r\n proposal,\r\n navigateTo: '/pagamento',\r\n });\r\n }\r\n });\r\n }\r\n }, [lgpdConsent, proposal, setContext, postLgpdConsent]);\r\n\r\n useEffect(() => {\r\n if (cotation?.[0]?.identificacao) {\r\n getProposal(parseInt(cotation[0].identificacao.codigo, 10));\r\n }\r\n }, [cotation, getProposal]);\r\n\r\n useEffect(() => {\r\n sendLgpdConsent();\r\n }, [proposal, setContext, sendLgpdConsent]);\r\n\r\n useLayoutEffect(() => {\r\n setContext({\r\n loading: proposalLoading || cotationLoading || loadingLgpd,\r\n });\r\n }, [proposalLoading, cotationLoading, loadingLgpd, setContext]);\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n setAgreed(!agreed)}\r\n text=\"Li o regulamento e estou ciente das regras do plano.\"\r\n productCode={productData.oferta.identificacao.codigoProduto}\r\n />\r\n
\r\n
\r\n {\r\n history.goBack();\r\n }}\r\n margin\r\n >\r\n Voltar\r\n \r\n \r\n Continuar\r\n \r\n
\r\n
\r\n );\r\n};\r\nexport default ConfirmData;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledIframe = styled.iframe`\r\n width: 100%;\r\n height: 1200px;\r\n border: 0;\r\n overflow: hidden;\r\n`;\r\n","import React, { forwardRef } from 'react';\r\nimport * as S from './styled';\r\n\r\nconst Frame = (props, ref) => (\r\n \r\n);\r\n\r\nexport default forwardRef(Frame);\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\nimport Modal from '../Modal';\r\n\r\nexport const Text = styled.h2`\r\n ${fontSize(14)};\r\n text-align: center;\r\n font-weight: 500;\r\n`;\r\nexport const StyledModal = styled(Modal)`\r\n padding: 60px 30px;\r\n > div {\r\n margin: 0;\r\n }\r\n`;\r\nexport const IconContainer = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n\r\n i {\r\n ${fontSize(70)};\r\n color: ${({ theme }) => theme.primaryColor};\r\n cursor: default;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport * as S from './styled';\r\nimport Icon from '../Icon';\r\n\r\nconst getText = type =>\r\n ({\r\n BoletoBancario:\r\n 'Não foi possível gerar o boleto, tente novamente mais tarde.',\r\n DebitoEmConta: 'Dados da conta ou agência inválidos',\r\n CartaoCredito:\r\n 'Pagamento não autorizado. Informe os dados de outro cartão para concluir a compra',\r\n }[type] ??\r\n 'Ops! Nossos serviços estão temporariamente indisponíveis. Tente novamente mais tarde.');\r\n\r\nconst PaymentErrorModal = ({ onReject, type }) => (\r\n \r\n \r\n \r\n \r\n {getText(type)}\r\n \r\n);\r\n\r\nexport default PaymentErrorModal;\r\n","import React, {\r\n useContext,\r\n useRef,\r\n useLayoutEffect,\r\n useState,\r\n useEffect,\r\n} from 'react';\r\nimport { AppContext } from '../context';\r\nimport PageContent from '../components/PageContent';\r\nimport Frame from '../components/Frame';\r\nimport Section from '../components/Section';\r\nimport { FlatButton } from '../components/Button';\r\nimport PaymentErrorModal from '../components/PaymentErrorModal';\r\nimport { getQueryParamValue } from '../utils/utils';\r\n\r\nconst buildAdditionalParameters = clientAccs => {\r\n if (clientAccs && clientAccs.length > 0) {\r\n const [acc1, acc2, acc3] = clientAccs;\r\n let queryParams = '';\r\n\r\n const buildParams = (acc, index) => {\r\n if (acc) {\r\n return `&conta${index}=${acc.account}&agencia${index}=${acc.agency}&digito${index}=${acc.dv}&operacao${index}=${acc.operation}`;\r\n }\r\n return '';\r\n };\r\n\r\n queryParams += buildParams(acc1, 1);\r\n queryParams += buildParams(acc2, 2);\r\n queryParams += buildParams(acc3, 3);\r\n\r\n return queryParams;\r\n }\r\n return '';\r\n};\r\n\r\nconst isValidCreditCardError = error =>\r\n [\r\n 'card expired',\r\n 'not authorized',\r\n 'blocked card',\r\n 'card canceled',\r\n 'problems with creditcard',\r\n 'token expirado',\r\n ].find(curr => curr === decodeURIComponent(error).toLowerCase());\r\n\r\nconst Payment = ({ history }) => {\r\n const [modalConfig, setModalConfig] = useState({\r\n show: false,\r\n type: '',\r\n });\r\n const { proposal, clientAccs, isMobile, setContext } = useContext(AppContext);\r\n\r\n const ref = useRef();\r\n\r\n const frameLink = `${\r\n proposal.cobranca.confGateway.urlGateWay\r\n }${buildAdditionalParameters(clientAccs)}`;\r\n\r\n useLayoutEffect(\r\n () =>\r\n setContext({\r\n loading: true,\r\n }),\r\n [setContext]\r\n );\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {modalConfig.show && (\r\n setModalConfig({ ...modalConfig, show: false })}\r\n type={modalConfig.type}\r\n />\r\n )}\r\n\r\n \r\n
\r\n {\r\n setContext({ loading: false });\r\n const acceptedPayment = getQueryParamValue(\r\n ref.current.contentWindow.location.search,\r\n 'situacaoRetorno'\r\n );\r\n if (acceptedPayment === 'true') {\r\n window.dataLayer.push({\r\n event: 'id-transacao',\r\n id: proposal.identificacao.codigoNegocio,\r\n location: window.location.href,\r\n time: new Date(),\r\n ip: window.ip,\r\n });\r\n\r\n setContext({\r\n payed: acceptedPayment,\r\n navigateTo: '/final',\r\n });\r\n } else if (acceptedPayment === 'false') {\r\n const type = getQueryParamValue(\r\n ref.current.contentWindow.location.search,\r\n 'tpPagamento'\r\n );\r\n if (\r\n type === 'CartaoCredito' &&\r\n !isValidCreditCardError(\r\n getQueryParamValue(\r\n ref.current.contentWindow.location.search,\r\n 'descricaoRetorno'\r\n )\r\n )\r\n ) {\r\n setModalConfig({\r\n show: true,\r\n type: 'unknown',\r\n });\r\n ref.current.contentWindow.history.back();\r\n return;\r\n }\r\n\r\n setModalConfig({\r\n show: true,\r\n type,\r\n });\r\n ref.current.contentWindow.history.back();\r\n }\r\n ref.current.contentWindow.addEventListener(\r\n 'beforeunload',\r\n () => setContext({ loading: true }),\r\n false\r\n );\r\n }}\r\n src={frameLink}\r\n ref={ref}\r\n />\r\n
\r\n
\r\n history.goBack()}\r\n margin\r\n >\r\n Voltar\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Payment;\r\n","import { useEffect, useContext } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { AppContext } from '../../context';\r\n\r\nconst Navigator = ({ location, history }) => {\r\n const { navigateTo, untrackedNavigateTo, setContext } = useContext(\r\n AppContext\r\n );\r\n useEffect(() => {\r\n if (navigateTo && location.pathname !== navigateTo) {\r\n setContext({ navigateTo: null });\r\n history.push(navigateTo);\r\n } else if (\r\n untrackedNavigateTo &&\r\n location.pathname !== untrackedNavigateTo\r\n ) {\r\n setContext({ untrackedNavigateTo: null });\r\n history.replace(untrackedNavigateTo);\r\n }\r\n }, [history, location.pathname, navigateTo, setContext, untrackedNavigateTo]);\r\n\r\n return null;\r\n};\r\n\r\nexport default withRouter(Navigator);\r\n","import React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n\r\nconst QueryRedirect = ({ location, to, keepQuery, ...rest }) => (\r\n \r\n);\r\nexport default QueryRedirect;\r\n","import styled from 'styled-components/macro';\r\n\r\nexport const StyledMessage = styled.p`\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n margin-right: -50%;\r\n transform: translate(-50%, -50%);\r\n font-weight: bold;\r\n padding: 20px;\r\n`;\r\n","import React from 'react';\r\nimport { StyledMessage } from './styled';\r\n\r\nconst DeactivationMessage = () => {\r\n return (\r\n \r\n Importante: A venda do Cap Ganhador foi encerrada em 16/07/2021. Se você\r\n já tem um Cap Ganhador, nada muda com o seu contrato e serviços.\r\n \r\n );\r\n};\r\n\r\nexport default DeactivationMessage;\r\n","import React, { useContext } from 'react';\r\nimport { BrowserRouter, Switch } from 'react-router-dom';\r\nimport PrivateRoute from './PrivateRoute';\r\n\r\nimport {\r\n DesktopRegister,\r\n MobileRegisterPersonal,\r\n Final,\r\n MobileAddressPage,\r\n MobileContactPage,\r\n ConfirmData,\r\n Payment,\r\n} from '../pages';\r\nimport Navigator from '../components/Navigator';\r\nimport { AppContext } from '../context';\r\nimport QueryRedirect from './QueryRedirect';\r\nimport DeactivationMessage from '../components/DeactivationMessage';\r\n\r\nconst Routes = () => {\r\n const { isMobile } = useContext(AppContext);\r\n return (\r\n \r\n \r\n \r\n \r\n {isMobile && (\r\n \r\n )}\r\n {isMobile && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Routes;\r\n","import styled from 'styled-components/macro';\r\n\r\nimport { white, blue, graySecondaryDark } from '../../styles/colors';\r\n\r\nexport const Backdrop = styled.div`\r\n background-color: ${graySecondaryDark};\r\n position: fixed;\r\n width: 100%;\r\n height: 100%;\r\n opacity: 0.9;\r\n z-index: 1098;\r\n top: 0;\r\n left: 0;\r\n`;\r\n\r\nexport const LoadingContainer = styled.div`\r\n position: fixed;\r\n top: 50%;\r\n left: 0;\r\n width: 100%;\r\n text-align: center;\r\n z-index: 1099;\r\n .bouncer {\r\n width: 18px;\r\n height: 18px;\r\n margin: 5px;\r\n background-color: ${white};\r\n display: inline-block;\r\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\r\n &.bounce1 {\r\n animation-delay: -0.32s;\r\n }\r\n &.bounce2 {\r\n animation-delay: -0.16s;\r\n }\r\n }\r\n\r\n @keyframes sk-bouncedelay {\r\n 0% {\r\n background-color: ${white};\r\n }\r\n 40% {\r\n background-color: ${blue};\r\n }\r\n 80% {\r\n background-color: ${white};\r\n }\r\n 100% {\r\n background-color: ${white};\r\n }\r\n }\r\n`;\r\n","import React from 'react';\r\nimport { Backdrop, LoadingContainer } from './styled';\r\n\r\nconst Loading = () => (\r\n <>\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n);\r\n\r\nexport default Loading;\r\n","import styled from 'styled-components/macro';\r\nimport { fontSize } from '../../styles/mixins';\r\n\r\nexport const ErrorTitleWrapper = styled.header`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n color: ${({ theme }) => theme.primaryColor};\r\n * {\r\n }\r\n i {\r\n position: relative;\r\n ${fontSize(30)};\r\n margin-right: 15px;\r\n }\r\n`;\r\n\r\nexport const ErrorText = styled.p`\r\n color: ${({ theme }) => theme.colorText};\r\n ${fontSize(14)};\r\n text-align: center;\r\n margin: 20px 0;\r\n`;\r\n","import React from 'react';\r\nimport Modal from '../Modal';\r\nimport * as S from './styled';\r\nimport Icon from '../Icon';\r\nimport ModalTitle from '../ModalTitle';\r\n\r\nconst ErrorModal = ({ text, title, ...rest }) => (\r\n \r\n \r\n \r\n \r\n \r\n {text}\r\n \r\n);\r\n\r\nexport default ErrorModal;\r\n","/* eslint-disable jsx-a11y/anchor-is-valid */\r\n/* eslint-disable jsx-a11y/no-static-element-interactions */\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\nimport React, { useContext, useEffect } from 'react';\r\nimport './styled.css';\r\nimport Draggable from 'react-draggable';\r\nimport { AppContext } from '../../context';\r\n\r\nconst Chat = ({ minimize, close, urlChat, className, ...rest }) => (\r\n
\r\n
\r\n

Chat

\r\n \r\n
\r\n \r\n
\r\n);\r\n\r\nconst EmbeddedChat = ({ isMobile }) => {\r\n const { urlChat, showEmbeddedChat, minimized, setContext } = useContext(\r\n AppContext\r\n );\r\n\r\n const chatFloatRef = state => {\r\n document.getElementById('chat-float').style.display = state;\r\n };\r\n\r\n useEffect(() => {\r\n if (!showEmbeddedChat) {\r\n return;\r\n }\r\n if (minimized) {\r\n chatFloatRef('none');\r\n } else {\r\n chatFloatRef('block');\r\n }\r\n }, [minimized, showEmbeddedChat]);\r\n\r\n const minimize = () => {\r\n setContext({\r\n minimized: true,\r\n });\r\n };\r\n\r\n const close = () => {\r\n setContext({\r\n urlChat: '',\r\n showEmbeddedChat: false,\r\n });\r\n chatFloatRef('none');\r\n };\r\n\r\n if (!showEmbeddedChat) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {!isMobile ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default EmbeddedChat;\r\n","/* eslint-disable class-methods-use-this */\r\n/* eslint-disable no-underscore-dangle */\r\nclass ModalLgpd extends HTMLElement {\r\n get css() {\r\n return `\r\n :host {\r\n position: relative;\r\n }\r\n *, *::after, *::before{\r\n box-sizing: border-box;\r\n }\r\n .backdrop {\r\n position: fixed;\r\n display: none;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n z-index: 99;\r\n }\r\n .active {\r\n display: block;\r\n }\r\n .modal {\r\n position: relative;\r\n top: 10%;\r\n overflow: auto;\r\n margin: auto;\r\n width: 75%;\r\n height: auto;\r\n max-width: 600px;\r\n min-width: 360px;\r\n max-height: 88%;\r\n z-index: 100;\r\n background-color: #fefefe;\r\n padding: 30px;\r\n }\r\n .header {\r\n background-color: #fefefe;\r\n color: #2D2926;\r\n border-radius: 10px 10px 0 0;\r\n z-index: 10;\r\n }\r\n .header h4 {\r\n font-style: normal;\r\n font-weight: 500;\r\n font-size: 26px;\r\n color: #005FC8;\r\n }\r\n .content p {\r\n font-style: normal;\r\n font-weight: 300;\r\n font-size: 16px;\r\n line-height: 22px;\r\n color: #494949;\r\n }\r\n .footer {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n flex-direction: column;\r\n justify-content: center;\r\n bottom: 0;\r\n bottom: 0;\r\n width: 100%;\r\n }\r\n .btn {\r\n border: 1px #ddd solid;\r\n padding: 0.8em 1.5em;\r\n width: 70%;\r\n max-width: 250px;\r\n border: none;\r\n background-color: #005FC8;\r\n cursor: pointer;\r\n color: white;\r\n }\r\n .btn:hover {\r\n background-color: #005FC8;\r\n color: white;\r\n }\r\n .okBtn {\r\n font-size: 12px;\r\n font-weight: bold;\r\n }\r\n .fadeInDown {\r\n animation-name: fadeInDown;\r\n animation-duration: 0.35s;\r\n animation-fill-mode: both;\r\n }\r\n @keyframes fadeInDown {\r\n 0% {\r\n opacity: 0;\r\n transform: translateY(-5%);\r\n }\r\n 100% {\r\n opacity: 1;\r\n transform: translateY(0%);\r\n }\r\n }\r\n @media (max-width: 767px) {\r\n .modal {\r\n min-width: 88%;\r\n padding: 20px;\r\n }\r\n .footer {\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n .btn {\r\n width: 100%;\r\n }\r\n }\r\n `;\r\n }\r\n\r\n constructor() {\r\n super();\r\n this._template = `\r\n \r\n
\r\n
\r\n
\r\n \r\n

Proteção dos seus dados

\r\n
\r\n
\r\n
\r\n \r\n

\r\n É importante saber que iremos coletar alguns dados seus,\r\n eles servem para ativar, simular ou cotar os produtos em que você tem interesse.\r\n

\r\n

\r\n Em algumas dessas ações, como cotar um produto, por exemplo, nós podemos usar\r\n seus dados para te oferecer alguma oportunidade que combine com o seu perfil ou\r\n até para tirar alguma dúvida.\r\n

\r\n

\r\n Saiba mais detalhes de como utilizamos seus dados pessoais em nossa\r\n Política de Privacidade.\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n `;\r\n this._shadowRoot = this.attachShadow({ mode: 'open' });\r\n this._shadowRoot.innerHTML = this._template;\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['show'];\r\n }\r\n\r\n connectedCallback() {\r\n const confirmButton = this._shadowRoot.querySelector('.btn');\r\n confirmButton.addEventListener('click', e => {\r\n this.dispatchEvent(new CustomEvent('ok'));\r\n e.preventDefault();\r\n });\r\n }\r\n\r\n attributeChangedCallback(name, oldVal, newVal) {\r\n if (!this._shadowRoot.querySelector('.backdrop')) {\r\n return;\r\n }\r\n\r\n if (name === 'show') {\r\n if ([true, 'true'].includes(newVal)) {\r\n this._openModal();\r\n } else if ([false, 'false'].includes(newVal)) {\r\n this._closeModal();\r\n }\r\n }\r\n }\r\n\r\n _openModal() {\r\n document.body.style.overflow = 'hidden';\r\n this._shadowRoot.querySelector('.backdrop').classList.add('active');\r\n }\r\n\r\n _closeModal() {\r\n document.body.style.overflow = 'unset';\r\n this._shadowRoot.querySelector('.backdrop').classList.remove('active');\r\n }\r\n}\r\n\r\nwindow.customElements.define('modal-lgpd', ModalLgpd);\r\n","import React, { useRef, useEffect, useState } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport '../../web-components/modal-lgpd';\r\n\r\nconst ModalLgpd = ({ open, onClick }) => {\r\n const [show, setShow] = useState(open);\r\n const modalRef = useRef();\r\n\r\n useEffect(() => {\r\n setShow(open);\r\n }, [open, setShow]);\r\n\r\n useEffect(() => {\r\n const elementRef = modalRef.current;\r\n const handleEvent = e => {\r\n e.preventDefault();\r\n setShow(false);\r\n onClick(e);\r\n };\r\n\r\n elementRef.addEventListener(\r\n 'ok',\r\n e => {\r\n handleEvent(e);\r\n },\r\n false\r\n );\r\n\r\n return () =>\r\n elementRef.removeEventListener(\r\n 'ok',\r\n e => {\r\n handleEvent(e);\r\n },\r\n false\r\n );\r\n }, [show, onClick]);\r\n\r\n const modal = ;\r\n return createPortal(modal, document.body);\r\n};\r\n\r\nexport default ModalLgpd;\r\n","import React, { useState } from 'react';\r\nimport { ThemeProvider } from 'styled-components';\r\n\r\nimport GlobalStyle from './styles/global';\r\nimport { themes } from './styles/theme';\r\n\r\nimport { AppContext, ErrorContext } from './context';\r\nimport Header from './components/Header';\r\nimport Footer from './components/Footer';\r\nimport Routes from './routes/Routes';\r\nimport Loading from './components/Loading';\r\nimport ErrorModal from './components/ErrorModal';\r\nimport { useDeviceType } from './hooks';\r\nimport EmbeddedChat from './components/EmbeddedChat';\r\nimport ModalLgpd from './components/ModalLgpd';\r\n\r\nconst capTheme = () => ({\r\n ...themes.default,\r\n ...themes.capTheme,\r\n});\r\nconst ibcTheme = {\r\n ...themes.default,\r\n ...themes.capTheme,\r\n ...themes.ibcTheme,\r\n};\r\nconst getInitialContext = () => {\r\n const storedCtx = sessionStorage.getItem('context');\r\n if (storedCtx) {\r\n return JSON.parse(storedCtx);\r\n }\r\n return {\r\n urlChat: '',\r\n showEmbeddedChat: false,\r\n showFooterChat: true,\r\n showLgpd: false,\r\n };\r\n};\r\n\r\nfunction App() {\r\n const theme = capTheme();\r\n const { mobile } = useDeviceType();\r\n const [errorContext, setErrorContext] = useState({\r\n show: false,\r\n setContext: newCtx => {\r\n setErrorContext({\r\n message:\r\n 'Nossos serviços estão temporariamente indisponíveis. Tente novamente mais tarde. ',\r\n title: 'Ops! Algo deu errado.',\r\n ...newCtx,\r\n setContext: errorContext.setContext,\r\n });\r\n },\r\n });\r\n const [context, setContext] = useState({\r\n ...getInitialContext(),\r\n isMobile: mobile,\r\n\r\n setContext: newCtx => {\r\n const fullCtx = {\r\n ...getInitialContext(),\r\n isMobile: mobile,\r\n ...newCtx,\r\n setContext: context.setContext,\r\n clearContext: context.clearContext,\r\n };\r\n sessionStorage.setItem('context', JSON.stringify(fullCtx));\r\n setContext(fullCtx);\r\n },\r\n clearContext: () => {\r\n const clearedContext = {\r\n setContext: context.setContext,\r\n clearContext: context.clearContext,\r\n };\r\n sessionStorage.setItem('context', JSON.stringify(clearedContext));\r\n setContext(clearedContext);\r\n },\r\n });\r\n\r\n const handleConfirm = () => {\r\n context.setContext({ showLgpd: false });\r\n sessionStorage.setItem('lgpd', true);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n <>\r\n \r\n
\r\n
\r\n \r\n
\r\n