{"version":3,"sources":["components/ui/Input/CurrencyInput/CurrencyInput.module.sass","containers/Offers/Offers.module.sass","components/ui/ExpandArea/ExpandArea.module.sass","components/Alert/Alert.module.sass","components/SliderPrice/SliderPrice.module.sass","components/AccountList/accountList.module.sass","components/ui/Input/RadioInput/RadioInput.module.sass","components/OfferSimulation/DesktopOfferSimulation.module.sass","containers/NewUser/NewUser.module.sass","containers/Signature/Signature.module.sass","components/DocumentsType/DocumentsType.module.sass","components/Chat/Chat.module.sass","components/ui/Card/Card.module.sass","components/SimulationDetail/SimulationDetail.module.sass","components/ui/KeyValueItem/KeyValueItem.module.sass","containers/Identification/Identification.module.sass","components/FooterChat/FooterChat.module.sass","components/SignatureBillet/SignatureBillet.module.sass","components/OfferDetails/OfferDetails.module.sass","components/SimulationChooser/SimulationChooser.module.sass","components/ui/Button/Button.module.sass","components/TitleSection/TitleSection.module.sass","components/ui/AccordionList/AccordionList.module.sass","components/IdentificationChooser/IdentificationChooser.module.sass","components/UserData/UserData.module.sass","components/ImportantInfos/ImportantInfos.module.sass","components/UserForms/Address/Address.module.sass","components/UserForms/CompanyData/CompanyData.module.sass","components/ChooseItem/ChooseItem.module.sass","App.module.sass","components/DataConsentQuestion/DataConsentQuestion.module.sass","components/OfferCard/OfferCard.module.sass","assets/images/logo-caixaseguradora.png","containers/Products/Products.module.sass","components/ProductChooser/ProductChooser.module.sass","assets/veiculo.svg","assets/imovel.svg","components/Title/Title.module.sass","components/ui/Input/Input.module.sass","components/ui/RadioGroup/RadioGroup.module.sass","assets/svgs/seguro.svg","components/Reminder/Reminder.module.sass","components/SignatureType/SignatureType.module.sass","containers/Documents/Documents.module.sass","components/MaintenanceModal/MaintenanceModal.module.sass","components/Breadcrumb/Breadcrumb.module.sass","components/PaymentDetails/PaymentDetails.module.sass","components/Header/Header.module.sass","components/ui/Input/AutocompleteInput/AutocompleteInput.module.sass","components/AjaxSpinner/AjaxSpinner.js","components/Breadcrumb/Breadcrumb.js","contexts/appContext.js","hoc/RouterWrapper.js","components/DataConsentQuestion/DataConsentQuestion.js","components/Header/Header.js","components/Footer/Footer.js","utils/api.js","utils/currency.js","components/ui/Card/Card.js","utils/ga-tags.js","components/ProductCard/ProductCard.js","components/ProductChooser/ProductChooser.js","components/ui/Button/Button.js","components/Title/Title.js","components/SimulationChooser/SimulationChooser.js","components/ui/Input/CurrencyInput/CurrencyInput.js","utils/creditCardUtils.js","utils/masks.js","utils/mediaQuery.js","components/ui/Tooltip/Tooltip.js","components/ui/Form/Input/Input.js","components/ui/DropdownToggle/DropdownToggle.js","components/ui/DropdownMenu/DropdownMenu.js","components/ui/Input/DropdownInput/DropdownInput.js","components/ui/Input/RadioInput/RadioInput.js","components/ui/Input/AutocompleteInput/AutocompleteInput.js","components/ui/Input/Input.js","components/SimulationDetail/SimulationDetail.js","containers/Products/Products.js","components/OfferType/OfferType.js","components/ui/KeyValueItem/KeyValueItem.js","utils/formatters.js","components/ui/ExpandArea/ExpandArea.js","components/ui/Table/Table.js","components/TitleSection/TitleSection.js","utils/ordering.js","components/ui/RadioGroup/RadioGroup.js","utils/validation.js","components/OfferSimulation/OfferSimulation.js","components/OfferSimulation/DesktopOfferSimulation.js","components/Alert/Alert.js","components/ui/AccordionList/Accordion/Accordion.js","components/ui/AccordionList/AccordionList.js","utils/frequentlyAskedQuestions.js","components/OfferDetails/OfferDetails.js","utils/date.js","hooks/useChatUrl.js","components/OfferCard/OfferCard.js","components/SliderPrice/SliderPrice.js","components/OfferFilter/OfferFilter.js","components/OfferData/OfferData.js","containers/Offers/Offers.js","hooks/useSticky.js","components/FooterContent/FooterContent.js","containers/ConfirmOffer/ConfirmOffer.js","components/IdentificationChooser/IdentificationChooser.js","components/UserData/UserData.js","components/IncomeIdentifier/IncomeIdentifier.js","components/ImportantInfos/ImportantInfos.js","components/FooterChat/FooterChat.js","containers/Identification/Identification.js","components/PurchaseDetailsCard/PurchaseDetailsCard.js","components/UserForms/ExposedPerson/ExposedPerson.js","utils/select-formatters.js","components/UserForms/Fatca/Fatca.js","components/UserForms/PersonalData/PersonalData.js","components/UserForms/Address/Address.js","web-components/switch-lgpd/index.js","components/SwitchLgpd/SwitchLgpd.js","hooks/useValidation.js","hooks/useInputState.js","components/ContactWay/ContactWay.js","components/UserForms/CompanyData/CompanyData.js","components/UserForms/PartnerData/PartnerData.js","components/UserForms/UserForm.js","containers/NewUser/NewUser.js","containers/Insurance/Insurance.js","components/UserDataSummary/UserDataSummary.js","components/ui/SelectableButton/selectableButton.js","components/PaymentMethods/PaymentMethods.js","utils/accounts.js","components/AccountList/accountList.js","components/Reminder/Reminder.js","config/environment.js","components/PaymentDetails/PaymentDetails.js","utils/lgpd-api.js","utils/lgpd-consent-body.js","containers/Payment/Payment.js","components/DragAndDrop/DragAndDrop.js","components/DragAndDrop/MobileDragAndDrop.js","components/ChooseItem/ChooseItem.js","components/SignatureType/SignatureType.js","components/SignatureBillet/SignatureBillet.js","containers/Signature/Signature.js","components/DocumentsType/DocumentsType.js","containers/Documents/Documents.js","components/Chat/Chat.js","components/ErrorModal/ErrorModal.js","web-components/modal-lgpd/index.js","components/ModalLgpd/ModalLgpd.js","utils/ibcParser.js","containers/IBCInterceptor/IBCInterceptor.js","utils/checkIf.js","utils/maintenance.js","components/MaintenanceModal/MaintenanceModal.js","App.js","serviceWorker.js","auth/AuthService.js","index.js","components/ScrollTop/ScrollTop.js","components/DragAndDrop/MobileDragAndDrop.module.sass","components/Footer/Footer.module.sass","components/UserForms/UserForm.module.sass","components/PurchaseDetailsCard/PurchaseDetailsCard.module.sass","containers/Insurance/Insurance.module.sass","components/UserDataSummary/UserDataSummary.module.sass","components/ui/Form/Input/Input.module.sass","components/UserForms/PersonalData/PersonalData.module.sass","components/PaymentMethods/PaymentMethods.module.sass","components/DragAndDrop/DragAndDrop.module.sass","components/ui/Tooltip/Tooltip.module.sass","components/OfferType/OfferType.module.sass","components/OfferData/OfferData.module.sass","containers/ConfirmOffer/ConfirmOffer.module.sass","components/IncomeIdentifier/IncomeIdentifier.module.sass","components/UserForms/PartnerData/PartnerData.module.sass","containers/Payment/Payment.module.sass","components/ui/SelectableButton/selectableButton.module.sass","components/ErrorModal/ErrorModal.module.sass","components/AjaxSpinner/AjaxSpinner.module.sass","components/ProductCard/ProductCard.module.sass","components/ui/Table/Table.module.sass","components/OfferSimulation/OfferSimulation.module.sass","components/ui/AccordionList/Accordion/Accordion.module.sass","components/OfferFilter/OfferFilter.module.sass","components/FooterContent/FooterContent.module.sass"],"names":["module","exports","inputGroup","error","input","inputDetail","detail","Offers","newSimulation","OffersGrid","noOffers","detailsLink","ExpandArea","open","container","Title","alert","alertContent","title","text","titleSlider","price","slideValue","sliderContent","sliderContainer","btnSlider","AccountList","AccountItem","AccountButton","radioContainer","RadioInput","selected","checkMark","OfferSimulation","simulationForm","simulationType","content","dataContent","card","sectionForm","docsList","button","subHeader","buttonsList","buttonItem","chat","detached","textChat","subtextChat","dots","dot","Card","cardHeader","SimulationDetail","divider","LimitsLabel","Key","Value","contentIdentification","footerContent","link","subtext","OfferDetails","dispInfo","simulationHeader","simulationTitle","value","buttonSimulation","blueDivider","OfferTypeWrapper","situacao","simulation","parcelasInfo","bottomInfo","discountNew","totalColumn","subtitle","spacingAdminTax","tableOffer","discount","discountOld","oldValue","tableEmphasis","noEmphasis","simulationChooser","listButtons","titleSection","ListItem","Item","identificationChooser","userDataContainer","userDataContent","ImportantInfos","InfosList","cepRow","cepLink","inputLabel","chooseItems","backLabel","footerForm","main","header","ibc","innerContent","radioOptions","row","col","col10","col20","col25","col30","col33","col40","col50","col60","col66","col70","contentColumns","mainContent","cardColumn","alertError","consentQuestion","HiddenOffer","OfferCard","fadeInUp","cardFooter","groupStatus","Icon","complement","bold","discountBanner","bannerTitle","bannerText","contentProducts","Products","__webpack_require__","p","titleContent","InputGroup","Error","RadioGroup","chooseContent","modalDialog","progressBar","breadcrumb","item","textNav","itemContent","active","PaymentDetails","accountSubtitle","debitInfo","details","moreDetails","expandedArea","parcelas","totalInfo","accountInfo","accountDigits","headerMain","planType","planText","headerText","lineBold","InputContainer","Typeahead","inputItem","floatLabel","readOnly","focus","errorMsg","invalid","ajaxSpinner","props","spinner","loading","react_default","a","createElement","Fragment","data-html2canvas-ignore","className","styles","Backdrop","bouncer","bounce1","bounce2","shouldShowInsurance","personType","getInsuranceOffset","showInsurance","getActiveStyle","isActive","getIBCStyle","Breadcrumb","insuranceOffset","activeIndex","join","numberNav","AppContext","React","createContext","productData","routerWrapper","WrappedComponent","withRouter","_React$Component","RouterWrapper","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","apply","arguments","inherits","createClass","key","Component","DataConsentQuestion","_ref","marginBottom","marginRight","context","useContext","onClick","setContext","objectSpread","showLgpd","getHeaderText","condition","component","Header","state","prevProps","prevState","prevContext","location","pathname","updateIndex","selectedIndex","setState","headerIBC","headerProducts","components_DataConsentQuestion_DataConsentQuestion","headerOffers","headerConfirmOffers","headerIdentification","product","id","headerNewUserPF","headerNewUserPJ","headerInsurance","headerPayment","headerSignature","proposalCode","headerDocuments","replace","selectedIdentifier","search","includes","theme","Breadcrumb_Breadcrumb","contextType","footer","footerImg","src","logo","alt","contact","textBold","copyright","isIbc","contextStr","sessionStorage","getItem","JSON","parse","hasOwnProperty","api","CODIGO_COMISSIONADO","CODIGO_EMPRESA","CODIGO_UNIDADE","CODIGO_USUARIO","RENDA_TOTAL","endpoints","TOKEN","PRODUCTS","OFFERS","OFFERS_DETAILS","SAVE_CLIENT","CIVIL_STATE","PROFESSION","COUNTRY","ACCESSIBILITY","CITY","CEP","DDD","STATES","NATUREZA_JURIDICA","RAMO_ATIVIDADE","PROPOSTA","LISTA_DOCUMENTOS","DOC_UPLOAD","ASSINATURA","DOWNLOAD_BOLETO","DOWNLOAD_PROPOSTA","DOWNLOAD_CONTRATO","SIMULATION","INSURANCE","AGE_VALIDATION","INCOME_VALIDATION","DIRECT_CHAT","imovel","veiculo","SAVE_COTATION","USER_XML","get","endpoint","urlParams","queryParams","config","url","formatUrl","param","concat","slice","axios","process","post","requestBody","stringifyPost","querystring","stringify","headers","content-type","params","match","token","extend","obj","keys","forEach","currency","numberToCurrency","isNaN","toFixed","objNumberToCurrency","prop","currencyToNumber","length","number","split","NaN","parseFloat","shiftComma","str","pos","strArray","commaIndex","indexOf","splice","numberToPercentage","showHeader","children","gaTags","class","categoryDefault","categoryFlow","type","typeFlow","typeFlow2","productCard","icon","parseInt","houseIcon","carIcon","gaTypeName","allClasses","ProductCard","push","grayScale","event","clicked","window","dataLayer","gacategory","target","getAttribute","gatype","gafunc","data-category","data-gatype","data-gafunc","ui_Card_Card","nome","ProductIcon","href","ProductChooser","_this","products","map","prod","productClicked","selectedProduct","assign","tooltip","SimulationChooser","targetDiv","createRef","scrollToDiv","scrollIntoView","behavior","block","_this2","ref","el","classes","components_Title_Title","Button","simulationClicked","PARCELA","selectedSimulation","data-gacategory","CREDITO","currencyInput","tabIndex","valid","placeholder","onChange","maxLength","getCreditCardType","creditNumber","test","name","digits","masks","cpf","cnpj","cep","date","dateMask","phone","phoneMask","numberOnly","creditValidity","creditCard","substr","mediaQuery","query","watchIfDesktop","mediaChange","matchMedia","onchange","matches","unsubscribe","_useState","useState","e","setDesktop","_useState2","slicedToArray","desktop","_useState3","_useState4","showModal","setShowModal","useEffect","OverlayTrigger","trigger","placement","flip","popperConfig","modifiers","preventOverflow","enabled","boundariesElement","overlay","Popover","tooltipContent","iconTooltip","Modal","centered","dialogClassName","show","onHide","closeButton","Body","modalMsg","additionalInfo","actions","getErrorMessageClass","isValid","validation","getInputItemClass","getInputStyle","as","select","memo","setValidation","validationTrigger","validate","onChangeHandler","mask","callOnChange","validationResult","validationRules","find","rule","msg","validateInitializer","inputContainer","required","onBlur","readonly","onKeyPress","disabled","typeDocument","Tooltip","DropdownToggle","call","handleClick","bind","assertThisInitialized","preventDefault","innerRef","Input","forwardRef","DropdownToggle_DropdownToggle","DropdownMenu","handleChange","toLowerCase","trim","_this$props","style","labeledBy","aria-labelledby","FormControl","autoFocus","Children","toArray","filter","child","startsWith","DropdownMenu_DropdownMenu","dropdownInput","options","optionsHandler","optionsUrl","then","result","data","formatter","opts","Dropdown","Toggle","Menu","role","index","onSelect","valueHandler","eventKey","radioInput","onSelected","AutocompleteInput","hasFocus","isLoading","optionsUpdated","defaultSelected","typeAhead","isOpen","setTimeout","getInstance","clear","findSelected","selectedValue","selectedOption","codigo","onSearch","queryKey","filterBy","Array","isArray","normalizedIncludeCompare","updateChangeState","renderTypeahead","es","onMenuToggle","onFocus","allowNew","inputProps","onInputChange","labelKey","emptyLabel","renderAsyncTypeahead","minLength","promptText","searchText","async","formattedOptions","ibcValue","s1","s2","nS1","normalize","nS2","toUpperCase","snapshot","_this3","normalizedCompare","valor","inputType","CURRENCY","DROPDOWN","RADIO","AUTOCOMPLETE","CurrencyInput","DropdownInput","Input_AutocompleteInput_AutocompleteInput","typeString","limits","minVal","maxVal","Input_Input","valueChanged","simulate","productClickHandler","simulationChooserClickHandler","simulationValueHandler","startSimulationHandler","isParcela","simulationValue","produto","codigoComissionado","codigoEmpresa","creditoFinal","parcelaInicial","parcelaFinal","rendaTotal","creditoInicial","redirectToPayment","priceValues","getLimits","groups","bem","grupos","history","catch","produtos","components_ProductChooser_ProductChooser","components_SimulationChooser_SimulationChooser","components_SimulationDetail_SimulationDetail","getFormatedLimits","offerType","inline","InlineLabel","OfferLabel","OfferType","large","showIcon","GroupContainer","GroupLabel","groupLabel","GroupNumber","groupNumber","keyValueItem","column","noDivider","emptyIfNull","expandArea","Collapse","in","table","Table","responsive","tableHeader","emphasis","rowInfo","customEmphasis","info","tableBody","rows","TitleSection","ordering","quotas","sort","q1","q2","inicio","radioGroup","onChanged","textDetails","strCPF","Soma","Resto","i","substring","tamanho","numeros","digitos","soma","charAt","resultado","maxPercentageValue","val","hasLastName","parts","numbersOnly","ddd","dddOptions","vCpf","lettersOnly","email","greaterThan","limit","lessThan","credicCard","cardType","some","d","nCheck","bEven","n","cDigit","nDigit","checkCCValidity","month","year","now","Date","currentYear","getFullYear","currentMonth","getMonth","checkDateFormat","openedIndex","simulationRef","simulateHandler","divToFocus","document","getElementById","validForm","blur","codigoBem","oferta","codigoGrupo","identificacao","codigoPlano","dados","plano","codigoVenda","codigoTaxa","tipoOferta","simulationTypeHandler","porcentagemLanceFixo","detailHandler","newSimulationHandler","fim","KeyValueItem","radioSimulation","credito","DesktopOfferSimulation","typeSimulationRef","TitleSection_TitleSection","Table_Table","interval","comLance","semLance","Alert","alertRef","Accordion","showContent","setShowContent","Open","IconSelected","Content","Display","AccordionList","listItem","contentArray","setContentArray","AccordionList_Accordion_Accordion","itemIndex","newContentArray","newItem","onClickShowItem","getFrequentlyAskedQuestions","isIBC","undefined","fontSize","ADM_LABEL","flexColumn","getParcelText","begin","end","getTooltipFundoComum","getTooltipTaxaAdm","getTooltipFundoReserva","vlrParcela","vlrCredito","taxaAdministracao","lanceMedio","showDesktopSimulation","getOfferText","desconto","getOfferClassName","renderOfferComponent","mobile","taxaAdministracaoOld","getDuration","offer","group","prazo","restante","grupo","codigoPlanoVenda","codigoTaxaPlano","valorLanceMedio","valorParcela","valorCredito","taxaAdministracaoAnterior","lance","detalhes","adminTax","internalError","Alert_Alert","isDesktop","enumSituacao","productType","Col","md","total","fundoComum","porcentagem","percentual","fundoReserva","textSimulation","OfferSimulation_DesktopOfferSimulation","components_OfferSimulation_OfferSimulation","ui_AccordionList_AccordionList","A","F","dateUtils","format","padStart","getDate","toString","format2Service","day","formatToChat","buildParam","encodeURIComponent","formatParameter","useChatUrl","isClient","client","pessoa","page","pop","getChatLink","identifier","creditValue","term","situationGroup","CPFCNPJ","incomeOrRevenues","spouseIncome","birthDateOrFoundationDate","maritalStatus","sex","profession","motherName","insurance","paymentMethods","proposal","legalNature","branchActivity","capitalValue","associatesCPF","consortiumDatas","selectedOffer","codigoNegocio","incomeValue","secondaryIncomeValue","copyPerson","dadosPessoaJuridica","documento","dadosPessoaFisica","dataNascimento","dataFundacao","estadoCivil","sexo","profissao","filiacao","mae","endereco","paymentType","ocupacao","atividade","informacoesEconomicas","valorCapital","socios","comunicacao","telefones","numero","callChat","basicParams","otherParams","chatHandler","offerCard","hidden","getGaTypeName","offerChosen","rel","sliderWrapper","customInput","Math","max","step","min","rc_slider_es","activeElement","tagName","handleStyle","borderColor","backgroundColor","height","width","marginTop","trackStyle","railStyle","OfferFilter","filterOptions","selectFilters","orderLabel","selectedSort","sortChanged","SliderPrice","minValue","maxValue","hasChanged","reSimulate","filterOffers","filterContent","OfferData","itemsOffer","itemTitle","typePlan","values","Link","to","showOfferCount","orderBy","simulatedValue","offerChosenHandler","backButtonListener","modalOpen","pushState","goBack","showMoreHandler","sortHandler","sortCards","cards","offers","b","calcDistance","toConsumableArray","p1","p2","abs","reSimulateHandler","fetchCards","_callee","_queryString$parse","tipo_bem","tipo_simulacao","averageValue","regenerator_default","wrap","_context","prev","next","queryString","getProducts","sent","stop","addEventListener","removeEventListener","valor_minimo","valor_maximo","offersToShow","hasOffers","countOffers","sortedCards","hasMoreOffers","hiddenElementsCount","noOffersDisplay","components_OfferData_OfferData","components_OfferFilter_OfferFilter","detailsButton","numberValue","useSticky","margin","sentinel","setSentinel","sticky","setSticky","elementRef","useCallback","classList","add","parentElement","appendChild","observer","IntersectionObserver","records","record","targetInfo","boundingClientRect","rootBoundsInfo","rootBounds","bottom","threshold","root","rootMargin","observe","unobserve","_useSticky","_useSticky2","canSticky","path","textFooter","mainText","Options","savePdfHandler","offerConfirmedHandler","print","pdf","confirm","ConfirmOffer","appRef","getElementsByClassName","appStyles","offsetWidth","offsetHeight","xOffset","scrollX","getBoundingClientRect","left","yOffset","scrollY","top","html2canvas","scale","x","y","logging","canvas","jsPDF","imgData","toDataURL","addImage","save","_this4","AjaxSpinner","components_OfferDetails_OfferDetails","ConfirmOffer_Options","FooterContent_FooterContent","desktopOptions","identifierType","CPF","CNPJ","UserData","selectedIdentifierChange","resetInput","notSpecified","IncomeIdentifier","_Component","_getPrototypeOf2","_len","args","_key","partnerIncome","hasPartner","hasPartnerHandler","checkValidity","onConfirmHandler","onConfirm","primaryValue","secondaryValue","typePerson","IncomeIdentifierDetail","Identification","userData","userDataHandler","origem","al","cotista","nw","identifierChooserClickHandler","confirmHandler","incomes","requestParams","renda","valida","showChat","ibcUser","components_ImportantInfos_ImportantInfos","components_UserData_UserData","components_IncomeIdentifier_IncomeIdentifier","react","faixaRenda","valorFaturamento","purchaseDetailsCard","_useContext","objectWithoutProperties","cardForm","offerTypeForm","cardItem","exposedPerson","setExposedPerson","ExposedPersonText","pf","cj","formatters","default","selectVal","selectCity","selectState","sigla","Fatca","fatca","paisNascimento","flagPaisObrigacao","paisObrigacaoFiscal","paisResidenciaFiscal","nif","PersonalData","emissor","nascimento","estadocivil","estadocivilName","nacionalidade","estado","naturalidade","acessibilidade","profissaoName","income","celular","fixo","exposed","conjuge","secondaryIncome","showFields","ddds","person","_this$setState","dddInfo","defineProperty","uf","city","cidade","fetchDDDs","fixoDetails","celularDetails","forceUpdate","onChangeConj","partnerDataHandler","emissorCode","emissorUF","orgaoEmissor","formGroup","dropdown","formLabel","col100","UserForms_Fatca_Fatca","fatcaData","ExposedPerson","PureComponent","Address","street","district","invalidCep","newInfo","fillAddress","logradouro","bairro","personAddress","complemento","SwitchLgpd","_disabled","_defaultValue","_errorMessage","_shadowRoot","attachShadow","mode","innerHTML","template","css","handleDisabled","handleInputValue","newValue","showErrorMessage","hiddenErrorMessage","querySelectorAll","handleOnChange","setAttribute","removeAttribute","stopImmediatePropagation","dispatchEvent","CustomEvent","querySelector","remove","HTMLElement","customElements","define","switchRef","useRef","handleEvent","current","default-value","error-message","useValidation","useInputState","OPTIONAL_VALUE","errorMessage","_","_useInputState","lgpdConsent","_useInputState2","consent","setConsent","useImperativeHandle","setter","components_SwitchLgpd_SwitchLgpd","didMount","companyData","valuesBuffer","socialName","emitter","foundationDate","activityType","capitalSocialValue","anualRevenues","cellPhone","phoneNumber","setValues","nomeFantasia","setDDDs","_objectSpread2","setupOnChange","parametros","cellPhoneDetails","phoneNumberDetails","mCNPJ","partnerData","partners","setPartners","setExposed","_useState5","birthDate","gender","participation","_useState6","newPartner","setNewPartner","form","sectionPartner","contentPartner","partnerTable","nameColumn","participationColumn","partner","participationValue","updatedPartners","removePartner","_step","formElement","inputs","from","getElementsByTagName","_iterator","_createForOfIteratorHelper","s","done","err","f","_step2","_iterator2","pj","UserForm","formInfo","user","address","clientData","razaoSocial","gaTypeNamePJ","formContainer","UserForms_PersonalData_PersonalData","UserForms_Address_Address","CompanyData","company","PartnerData","components_ContactWay_ContactWay","consentDataRef","onSubmit","PAYMENT_URL","NewUser","submitHandler","validateLgpdConsent","getAllInputs","_i","_Array$from","_i2","_Array$from2","submit","click","getPFRequestBody","getPJRequestBody","cotationRequestBody","tipo","descricao","codigoProduto","codigoSubProduto","cliente","saveClientEndpoint","postSaveCotation","saveCotationEndpoint","cotationCode","cotationBusinessCode","getAgeValidation","ageValidationEndpoint","allowInsurance","UserForms_UserForm","PurchaseDetailsCard","participacao","qualificadores","naturezaJuridica","pais","country","UF","pai","qualificador","Insurance","percentage","advanceClickHandler","insuranceChangeHandler","cpfCnpj","insuranceName","formStyles","textInsurance","imageInsurance","insuranceIcon","titleRadio","userDataSummary","dataSummary","dataItem","dataDesc","selectableButton","buttonContainer","leftIcon","SelectedButton","buttonClass","blue","showCheckmark","additionalPadding","allowCC","chooser","SelectableButton_selectableButton","paymentButton","innerButton","selectedMethod","fullText","parseCC","cc","agency","operation","account","dv","accountList","accounts","accountIndex","anotherAccount","digit","loadEnvironment","environment","getSelectedStyle","tableHeaders","tableRows","method","creditInfo","cardNumber","validity","ccv","titular","titularCPF","PFDebitOptions","PJDebitOptions","getDebitOptions","getInfo","onSelectedValue","textBolAuto","textDebitAuto","textBolResidence","textDebitResidence","textCreditCard","PaymentMethods","env","ENABLE_CC","secondary","Reminder_Reminder","AccountList_accountList","parcelaMedia","onEntered","lgpdEndpoint","businessProcess","getLgpdConsent","subprocess","macro-processo-negocio","MACRO_PROCESS_CODE","sub-processo-negocio","postLgpdConsent","propsalId","proposalId","sistema","LGPD_SYSTEM_CODE","unidadeNegocio","BUSINESS_UNITY_CODE","processoNegocio","subProcesso","macroProcesso","evidencia","consentimento","lgpdConsentBody","ChatLink","handleError","response","code","httpMessage","additionalMsg","Payment_ChatLink","onHideHandler","body","erro","Payment","paymentInfo","secondaryPaymentInfo","getBasePayload","codigoUsuario","codigoCotacao","corporativo","quantidadeParticipantes","vagas","codigoTipoVenda","pagamento","condicao","seguro","prestamista","snOfertaOutroProduto","snOfertaOutroProdutoParceiro","formatAccountInfo","agencia","digito","conta","operacao","favorecido","ibcAccount","debito","cartaoCredito","numeroCartao","digitoVerificador","dataValidade","bandeira","demaisParcelas","proposta","sendLgpdConsent","checkPaymentDisabled","getPaymentLabel","getContinuousPaymentLabel","promises","lgpdApi","BUSINESS_PROCESS_CODE","BUSINESS_SUBPROCESS_CAIXA_HOLDING_CODE","BUSINESS_SUBPROCESS_CAIXA_HOLDING_PARTNERS_CODE","Promise","all","res","every","status","time","ip","methodType","section","UserDataSummary","components_PaymentDetails_PaymentDetails","DragAndDrop","files","resetKey","random","onDrop","formData","FormData","append","numeroProposta","numeroContrato","tipoDocumento","processCode","Content-Type","onDropRejected","rejectedFile","size","dropzoneRef","dist_es","accept","maxSize","multiple","getRootProps","getInputProps","isDragActive","acceptedFiles","isDragReject","rejectedFiles","docItem","drag","dropzone","titleItem","iconDoc","textContent","docType","MobileDragAndDrop","file","uploading","filesList","withFileClasses","dropContainer","fileName","ChooseItem","SignatureType","ChooseItem_ChooseItem","signatureChosen","SignatureBillet","bb","filename","cotacao","cpfcnpj","responseType","blob","URL","createObjectURL","download","Signature","documents","signStarted","signatureType","showOptions","onBack","onCancel","signatureHandler","urlRetorno","codUsuario","urlAssinatura","documentos","Nproposta","titleNumbers","nextTitleNum","components_SignatureBillet_SignatureBillet","components_SignatureType_SignatureType","doc","components_DragAndDrop_DragAndDrop","apelidoDocumento","DragAndDrop_MobileDragAndDrop","DocumentsType","downloadHandler","Documents","components_DocumentsType_DocumentsType","ErrorModal","hideHandler","iconClassname","modalType","warning","Chat_Chat","ModalLgpd","_template","oldVal","newVal","_openModal","_closeModal","overflow","setShow","modalRef","modal","createPortal","ibcParser","parseCivilState","IBCInterceptor","setLoading","showError","go2Products","fetchLgpdConsent","asyncToGenerator","mark","updateUser","_result$data$cliente","ccs","cpf_cnpj","rg","org_emis","uf_org_emis","org_emis_sigla","dt_nasc","est_civ","no_prof","ddd_celular","tel_celular","ddd_res","tel_res","ddd_com","tel_com","gen","logr","comp","bair","cid","tp_pes","isMaintenancePeriod","MaintenanceModal","maintenanceAccepted","App","lgpd","handleOnCloseLgpdModal","setItem","previousState","endsWith","contextObject","pagename","appContext","Provider","components_Header_Header","Switch","Route","render","containers_Products_Products","exact","Redirect","Footer","components_ModalLgpd_ModalLgpd","components_ErrorModal_ErrorModal","components_MaintenanceModal_MaintenanceModal","Boolean","hostname","AuthService","tokenRequestBody","grant_type","scope","client_id","client_secret","accessToken","fetchAuthToken","resolve","reject","access_token","configureRequest","request","ScrollTop","scrollTo","interceptors","use","abrupt","_x","scroll","ReactDOM","BrowserRouter","basename","components_ScrollTop_ScrollTop","src_App","app","navigator","serviceWorker","ready","registration","unregister","iconClose","contentMsg","errorDoc","detailsTxt","fieldData","docName","iconOffer","legalText","chatText","chatLink","sk-bouncedelay","alterOffer"],"mappings":"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","file":"static/js/main.1e77e6f5.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputGroup\":\"CurrencyInput_inputGroup__EdwuB\",\"error\":\"CurrencyInput_error__1ZCRz\",\"input\":\"CurrencyInput_input__2DDKW\",\"inputDetail\":\"CurrencyInput_inputDetail__2VpDL\",\"detail\":\"CurrencyInput_detail__36BK0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Offers\":\"Offers_Offers__2vM1c\",\"newSimulation\":\"Offers_newSimulation__3Mo_q\",\"OffersGrid\":\"Offers_OffersGrid__fvSZ3\",\"noOffers\":\"Offers_noOffers__2MtKZ\",\"detailsLink\":\"Offers_detailsLink__2TtzF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ExpandArea\":\"ExpandArea_ExpandArea__1vd6K\",\"open\":\"ExpandArea_open__2774u\",\"container\":\"ExpandArea_container__BlOhR\",\"Title\":\"ExpandArea_Title__2z0Yz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"Alert_alert__AgG02\",\"error\":\"Alert_error__2r-Yp\",\"alertContent\":\"Alert_alertContent__2TFLE\",\"title\":\"Alert_title__1Fl4r\",\"text\":\"Alert_text__YMNW8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleSlider\":\"SliderPrice_titleSlider__2g7Kb\",\"price\":\"SliderPrice_price__1tB2T\",\"slideValue\":\"SliderPrice_slideValue__23kL6\",\"sliderContent\":\"SliderPrice_sliderContent__HOcZs\",\"sliderContainer\":\"SliderPrice_sliderContainer__o8Nm2\",\"btnSlider\":\"SliderPrice_btnSlider__2CYNL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"AccountList\":\"accountList_AccountList__3xQdr\",\"AccountItem\":\"accountList_AccountItem__2oK0Z\",\"AccountButton\":\"accountList_AccountButton__3icbC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radioContainer\":\"RadioInput_radioContainer__3P7EC\",\"RadioInput\":\"RadioInput_RadioInput__2kOSP\",\"selected\":\"RadioInput_selected__1I6zH\",\"checkMark\":\"RadioInput_checkMark__2COyi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"OfferSimulation\":\"DesktopOfferSimulation_OfferSimulation__VSXFD\",\"simulationForm\":\"DesktopOfferSimulation_simulationForm__1VBB4\",\"title\":\"DesktopOfferSimulation_title__3pJ6R\",\"simulationType\":\"DesktopOfferSimulation_simulationType__2HUea\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"NewUser_content__3LugS\",\"dataContent\":\"NewUser_dataContent__3sZ7d\",\"card\":\"NewUser_card__1R0Ko\",\"sectionForm\":\"NewUser_sectionForm__30u4F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"docsList\":\"Signature_docsList__2ThZp\",\"button\":\"Signature_button__2LqNq\",\"newSimulation\":\"Signature_newSimulation__1zg0s\",\"subHeader\":\"Signature_subHeader__2YEfY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonsList\":\"DocumentsType_buttonsList__57EHq\",\"buttonItem\":\"DocumentsType_buttonItem__1H7Cb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chat\":\"Chat_chat__3mD6k\",\"detached\":\"Chat_detached__2xl-y\",\"textChat\":\"Chat_textChat__V7jeu\",\"subtextChat\":\"Chat_subtextChat__2Xydw\",\"dots\":\"Chat_dots__1jYIw\",\"dot\":\"Chat_dot__3m_KA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Card\":\"Card_Card__3Vq_y\",\"cardHeader\":\"Card_cardHeader__16XgI\",\"content\":\"Card_content__1a7eK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"SimulationDetail\":\"SimulationDetail_SimulationDetail__viF-4\",\"divider\":\"SimulationDetail_divider__1Zy0_\",\"LimitsLabel\":\"SimulationDetail_LimitsLabel__3hE9S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Key\":\"KeyValueItem_Key__3wWTB\",\"Value\":\"KeyValueItem_Value__3MpvD\",\"divider\":\"KeyValueItem_divider__2ML2j\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentIdentification\":\"Identification_contentIdentification__1nYyd\",\"divider\":\"Identification_divider__3lq-_\",\"button\":\"Identification_button__1bIbH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footerContent\":\"FooterChat_footerContent__2RAni\",\"link\":\"FooterChat_link__fJ-y2\",\"subtext\":\"FooterChat_subtext__1vR3S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonsList\":\"SignatureBillet_buttonsList__JzfyM\",\"buttonItem\":\"SignatureBillet_buttonItem__2JnMv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"OfferDetails\":\"OfferDetails_OfferDetails__2AkRt\",\"dispInfo\":\"OfferDetails_dispInfo__2Wfy1\",\"divider\":\"OfferDetails_divider__12Nyg\",\"simulationHeader\":\"OfferDetails_simulationHeader__2u5Tu\",\"simulationTitle\":\"OfferDetails_simulationTitle__2uQfF\",\"value\":\"OfferDetails_value__1lZqg\",\"buttonSimulation\":\"OfferDetails_buttonSimulation__zU5mO\",\"blueDivider\":\"OfferDetails_blueDivider__3O0jF\",\"OfferTypeWrapper\":\"OfferDetails_OfferTypeWrapper__1NIhg\",\"situacao\":\"OfferDetails_situacao__25LYK\",\"simulation\":\"OfferDetails_simulation__3srGJ\",\"parcelasInfo\":\"OfferDetails_parcelasInfo__d36WP\",\"bottomInfo\":\"OfferDetails_bottomInfo__2ikwe\",\"discountNew\":\"OfferDetails_discountNew__1U8Rp\",\"totalColumn\":\"OfferDetails_totalColumn__3T3SZ\",\"subtitle\":\"OfferDetails_subtitle__1OVwA\",\"spacingAdminTax\":\"OfferDetails_spacingAdminTax__3CN3C\",\"tableOffer\":\"OfferDetails_tableOffer__1nERn\",\"discount\":\"OfferDetails_discount__1hRQ6\",\"discountOld\":\"OfferDetails_discountOld__1C4UL\",\"oldValue\":\"OfferDetails_oldValue__2QLoK\",\"tableEmphasis\":\"OfferDetails_tableEmphasis__i3tsu\",\"noEmphasis\":\"OfferDetails_noEmphasis__2JEj6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"simulationChooser\":\"SimulationChooser_simulationChooser__DLI7t\",\"listButtons\":\"SimulationChooser_listButtons__12SwW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"Button_button__1elgC\",\"selected\":\"Button_selected__1vPAG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleSection\":\"TitleSection_titleSection__2VX2Q\",\"title\":\"TitleSection_title__8hIgr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ListItem\":\"AccordionList_ListItem__1FOKg\",\"Item\":\"AccordionList_Item__1wDnv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"identificationChooser\":\"IdentificationChooser_identificationChooser__2jU2Z\",\"listButtons\":\"IdentificationChooser_listButtons__1WS68\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userDataContainer\":\"UserData_userDataContainer__1Vmmq\",\"userDataContent\":\"UserData_userDataContent__1_xWU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ImportantInfos\":\"ImportantInfos_ImportantInfos__1qyfX\",\"InfosList\":\"ImportantInfos_InfosList__1uS1U\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionForm\":\"Address_sectionForm__1WH9Q\",\"cepRow\":\"Address_cepRow__2M9K-\",\"cepLink\":\"Address_cepLink__2rHhV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionForm\":\"CompanyData_sectionForm__3e12C\",\"inputLabel\":\"CompanyData_inputLabel__wxUc_\",\"radioContainer\":\"CompanyData_radioContainer__3k1Xa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chooseItems\":\"ChooseItem_chooseItems__b8YMW\",\"listButtons\":\"ChooseItem_listButtons__2Hsoo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"App_link__1WdFY\",\"backLabel\":\"App_backLabel__kBKyK\",\"footerForm\":\"App_footerForm__1VoZk\",\"main\":\"App_main__1-ATB\",\"header\":\"App_header__38JyJ\",\"ibc\":\"App_ibc__10SiX\",\"button\":\"App_button__q3KAC\",\"container\":\"App_container__1iMxK\",\"content\":\"App_content__2l9Cc\",\"innerContent\":\"App_innerContent__2GtpB\",\"radioOptions\":\"App_radioOptions__3x5g-\",\"row\":\"App_row__gjPuF\",\"col\":\"App_col__1lS1-\",\"col10\":\"App_col10__27RyN\",\"col20\":\"App_col20__2Pg8q\",\"col25\":\"App_col25__1ugBi\",\"col30\":\"App_col30__1Vfha\",\"col33\":\"App_col33__8K5f_\",\"col40\":\"App_col40__3c9Qc\",\"col50\":\"App_col50__1ymlk\",\"col60\":\"App_col60__3kEiJ\",\"col66\":\"App_col66__3tjj6\",\"col70\":\"App_col70__1NWQ4\",\"contentColumns\":\"App_contentColumns__3H0S6\",\"mainContent\":\"App_mainContent__2uJn-\",\"cardColumn\":\"App_cardColumn__40jPs\",\"sectionForm\":\"App_sectionForm__NY1Pw\",\"alertError\":\"App_alertError__1V40g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"consentQuestion\":\"DataConsentQuestion_consentQuestion__3RA4d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"HiddenOffer\":\"OfferCard_HiddenOffer__dOz1T\",\"OfferCard\":\"OfferCard_OfferCard__2icKT\",\"fadeInUp\":\"OfferCard_fadeInUp__92wYO\",\"cardFooter\":\"OfferCard_cardFooter__1T-Mu\",\"OfferTypeWrapper\":\"OfferCard_OfferTypeWrapper__2dJf4\",\"groupStatus\":\"OfferCard_groupStatus__1Kv76\",\"detailsLink\":\"OfferCard_detailsLink__DDTd6\",\"link\":\"OfferCard_link__1hKAr\",\"Icon\":\"OfferCard_Icon__2ke-F\",\"divider\":\"OfferCard_divider__1Vel7\",\"title\":\"OfferCard_title__1OnvL\",\"subtitle\":\"OfferCard_subtitle__2mHEq\",\"value\":\"OfferCard_value__JIMvq\",\"complement\":\"OfferCard_complement__2q-Mr\",\"bold\":\"OfferCard_bold__1nAl0\",\"col\":\"OfferCard_col__yeNMI\",\"discountBanner\":\"OfferCard_discountBanner__CGGkl\",\"bannerTitle\":\"OfferCard_bannerTitle__3-nOO\",\"bannerText\":\"OfferCard_bannerText__3-F_w\"};","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAArCAYAAAC0EFDbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzQ0OEQzN0IwODFDMTFFNzgyNjBGREIwNTNFN0Q0NTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzQ0OEQzN0MwODFDMTFFNzgyNjBGREIwNTNFN0Q0NTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NDQ4RDM3OTA4MUMxMUU3ODI2MEZEQjA1M0U3RDQ1OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NDQ4RDM3QTA4MUMxMUU3ODI2MEZEQjA1M0U3RDQ1OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhIkFFwAABd4SURBVHja7FwJeFTV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\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contentProducts\":\"Products_contentProducts__1-2BK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Products\":\"ProductChooser_Products__r1A37\"};","module.exports = __webpack_public_path__ + \"static/media/veiculo.647105eb.svg\";","module.exports = __webpack_public_path__ + \"static/media/imovel.0984940f.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleContent\":\"Title_titleContent__2BTk6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"Input_input__3qxPR\",\"InputGroup\":\"Input_InputGroup__1tuKN\",\"Error\":\"Input_Error__2C7rx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"RadioGroup\":\"RadioGroup_RadioGroup__2gGVf\"};","module.exports = __webpack_public_path__ + \"static/media/seguro.78026413.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"Reminder_content__3mrRa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chooseContent\":\"SignatureType_chooseContent__3zWd-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"docsList\":\"Documents_docsList__3npPW\",\"button\":\"Documents_button__rNoew\",\"newSimulation\":\"Documents_newSimulation__Q6d8q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"MaintenanceModal_modalDialog__1VOIw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"progressBar\":\"Breadcrumb_progressBar__3dFqJ\",\"breadcrumb\":\"Breadcrumb_breadcrumb__2fRSI\",\"item\":\"Breadcrumb_item__1FyPG\",\"textNav\":\"Breadcrumb_textNav__1Ti29\",\"itemContent\":\"Breadcrumb_itemContent__1oVL8\",\"active\":\"Breadcrumb_active__1Jtbk\",\"ibc\":\"Breadcrumb_ibc__1vM_d\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PaymentDetails\":\"PaymentDetails_PaymentDetails__lx-JR\",\"subtitle\":\"PaymentDetails_subtitle__BV2sD\",\"accountSubtitle\":\"PaymentDetails_accountSubtitle__1PT-S\",\"debitInfo\":\"PaymentDetails_debitInfo__1mqF2\",\"details\":\"PaymentDetails_details__2jlvu\",\"moreDetails\":\"PaymentDetails_moreDetails__3XxoW\",\"selected\":\"PaymentDetails_selected__3qwPN\",\"expandedArea\":\"PaymentDetails_expandedArea__3Mqdx\",\"parcelas\":\"PaymentDetails_parcelas__3DMi5\",\"totalInfo\":\"PaymentDetails_totalInfo__IA5NY\",\"bottomInfo\":\"PaymentDetails_bottomInfo__O1JFQ\",\"accountInfo\":\"PaymentDetails_accountInfo__3tdJW\",\"accountDigits\":\"PaymentDetails_accountDigits__3FteD\",\"divider\":\"PaymentDetails_divider__3winx\",\"row\":\"PaymentDetails_row__1D2E2\",\"complement\":\"PaymentDetails_complement__3LEGA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerMain\":\"Header_headerMain__1NRuR\",\"planType\":\"Header_planType__1Mxgm\",\"planText\":\"Header_planText__3tXQX\",\"headerText\":\"Header_headerText__1kGnN\",\"lineBold\":\"Header_lineBold__1rZnl\",\"subtitle\":\"Header_subtitle__17Si8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"InputContainer\":\"AutocompleteInput_InputContainer__30hUb\",\"Typeahead\":\"AutocompleteInput_Typeahead__2ns3N\",\"inputItem\":\"AutocompleteInput_inputItem__1XMXB\",\"floatLabel\":\"AutocompleteInput_floatLabel__1rYkq\",\"error\":\"AutocompleteInput_error__3axnu\",\"readOnly\":\"AutocompleteInput_readOnly__2zJMI\",\"focus\":\"AutocompleteInput_focus__kut3i\",\"errorMsg\":\"AutocompleteInput_errorMsg__1d8Bz\",\"invalid\":\"AutocompleteInput_invalid__yTtjN\"};","import React from 'react';\r\nimport styles from './AjaxSpinner.module.sass';\r\n\r\nconst ajaxSpinner = (props) => {\r\n let spinner = null;\r\n if (props.loading) {\r\n spinner = (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n return spinner;\r\n};\r\n\r\nexport default ajaxSpinner;","import React from \"react\";\r\nimport styles from \"./Breadcrumb.module.sass\";\r\n\r\nconst shouldShowInsurance = (ibc, personType) => !ibc && personType === \"cpf\"\r\nconst getInsuranceOffset = showInsurance => showInsurance ? 1 : 0\r\nconst getActiveStyle = isActive => isActive? styles.active : \"\"\r\nconst getIBCStyle = ibc => ibc ? styles.ibc : \"\"\r\n\r\nfunction Breadcrumb(props) {\r\n const showInsurance = shouldShowInsurance(props.ibc, props.personType );\r\n const insuranceOffset = getInsuranceOffset(showInsurance);\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default Breadcrumb;\r\n","import React from 'react';\r\n\r\nconst AppContext = React.createContext({\r\n error: {},\r\n productData: {}\r\n});\r\n\r\nexport default AppContext;\r\n","import React from 'react';\r\nimport {withRouter} from \"react-router\";\r\n\r\nconst routerWrapper = (WrappedComponent) => {\r\n return withRouter(\r\n class RouterWrapper extends React.Component {\r\n render() {\r\n return \r\n }\r\n }\r\n );\r\n};\r\n\r\nexport default routerWrapper;\r\n","import React, { useContext } from 'react';\r\nimport styles from './DataConsentQuestion.module.sass';\r\nimport AppContext from '../../contexts/appContext';\r\n\r\n\r\nconst DataConsentQuestion = ({ marginBottom, marginRight }) => {\r\n const context = useContext(AppContext);\r\n return (\r\n context.setContext({...context, showLgpd: true })}\r\n className={styles.consentQuestion}\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 React, { Component } from \"react\";\r\nimport theme from \"../../App.module.sass\";\r\nimport styles from \"./Header.module.sass\";\r\n\r\nimport Breadcrumb from \"../Breadcrumb/Breadcrumb\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport routerWrapper from \"../../hoc/RouterWrapper\";\r\nimport DataConsentQuestion from \"../DataConsentQuestion\";\r\n\r\nconst getHeaderText = (condition, component) => {\r\n if(!condition){\r\n return \"\"\r\n }\r\n return component\r\n}\r\nclass Header extends Component {\r\n state = {\r\n activeIndex: 0,\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n componentDidUpdate(prevProps, prevState, prevContext) {\r\n if (this.props.location.pathname !== prevProps.location.pathname) {\r\n this.context.setContext({\r\n ...this.context,\r\n pathname: this.props.location.pathname,\r\n });\r\n }\r\n\r\n this.updateIndex();\r\n }\r\n\r\n componentDidMount() {\r\n this.updateIndex();\r\n }\r\n\r\n updateIndex() {\r\n let selectedIndex = 0;\r\n switch (this.props.location.pathname) {\r\n case \"/confirmar-oferta\":\r\n selectedIndex = 1;\r\n break;\r\n case \"/identificacao\":\r\n selectedIndex = 2;\r\n break;\r\n case \"/dados-cliente\":\r\n selectedIndex = 3;\r\n break;\r\n case \"/seguro\":\r\n selectedIndex = 4;\r\n break;\r\n case \"/pagamento\":\r\n selectedIndex = 5;\r\n break;\r\n case \"/assinatura\":\r\n selectedIndex = 6;\r\n break;\r\n default:\r\n selectedIndex = 0;\r\n break;\r\n }\r\n if (this.state.activeIndex !== selectedIndex) {\r\n this.setState({ activeIndex: selectedIndex });\r\n }\r\n }\r\n\r\n render() {\r\n const headerIBC = (\r\n

\r\n Carregando os serviços de integração.\r\n

\r\n );\r\n\r\n const headerProducts = (\r\n <>\r\n

\r\n Veja como um consórcio pode ajudar a realizar seus sonhos e\r\n compre agora :)\r\n

\r\n \r\n \r\n );\r\n\r\n const headerOffers = (\r\n <>\r\n

\r\n {\" \"}\r\n {this.context.title ? (\r\n this.context.title\r\n ) : (\r\n \r\n Ofertas disponíveis pra você! \r\n \r\n )}\r\n

\r\n {this.context.subtitle ? (\r\n this.context.subtitle\r\n ) : (\r\n \r\n As cotas apresentadas estão sujeitas a disponibilidade\r\n \r\n )}\r\n

\r\n

\r\n \r\n \r\n );\r\n\r\n const headerConfirmOffers = (\r\n <>\r\n

\r\n {\" \"}\r\n Esta é a sua escolha: \r\n

\r\n \r\n \r\n );\r\n\r\n const headerIdentification = (\r\n <>\r\n

\r\n Do que você precisa saber para comprar o seu\r\n Consórcio {this.context.product.id === \"1\" ? \"Imobiliário\" : \"de Veículos\"}. \r\n

\r\n \r\n \r\n );\r\n\r\n const headerNewUserPF = (\r\n <>\r\n

\r\n Agora é necessário preencher seus dados e enviar alguns documentos\r\n

\r\n \r\n \r\n );\r\n\r\n const headerNewUserPJ = (\r\n

\r\n Agora é necessário preencher os dados da empresa e enviar alguns\r\n documentos\r\n

\r\n );\r\n\r\n const headerInsurance = (\r\n

Deixe sua família bem cuidada

\r\n );\r\n\r\n const headerPayment = (\r\n

\r\n Falta pouco :)
Escolha agora como deseja pagar\r\n

\r\n );\r\n\r\n const headerSignature = (\r\n

\r\n Parabéns! Seu pedido foi finalizado. O número da sua proposta é{\" \"}\r\n {this.context.proposalCode}\r\n

\r\n );\r\n\r\n const headerDocuments = (\r\n

\r\n Baixe aqui os documentos da sua proposta! \r\n

\r\n );\r\n\r\n const pathname = this.props.location.pathname.replace(\"/\", \"\");\r\n const personType =\r\n this.context.selectedIdentifier != null\r\n ? this.context.selectedIdentifier\r\n : \"\";\r\n\r\n const ibc =\r\n this.props.location.search.includes(\"token\") || this.context.ibc;\r\n\r\n return (\r\n
\r\n {pathname !== \"\" &&\r\n pathname !== \"produtos\" &&\r\n pathname !== \"ofertas\" &&\r\n !pathname.includes(\"documentos\") &&\r\n pathname !== \"sucesso\" ? (\r\n \r\n ) : null}\r\n\r\n
\r\n

\r\n \r\n Consórcios\r\n

\r\n
\r\n {getHeaderText(pathname === \"\", headerIBC)}\r\n {getHeaderText(pathname === \"produtos\", headerProducts)}\r\n {getHeaderText(pathname === \"ofertas\",headerOffers)}\r\n {getHeaderText(pathname === \"confirmar-oferta\", headerConfirmOffers)}\r\n {getHeaderText(pathname === \"identificacao\", headerIdentification)}\r\n {getHeaderText(pathname === \"dados-cliente\" && personType === \"cpf\", headerNewUserPF)}\r\n {getHeaderText(pathname === \"dados-cliente\" && personType === \"cnpj\", headerNewUserPJ)}\r\n {getHeaderText(pathname === \"seguro\", headerInsurance)}\r\n {getHeaderText(pathname === \"pagamento\", headerPayment)}\r\n {getHeaderText(pathname === \"assinatura\", headerSignature)}\r\n {getHeaderText(pathname.includes(\"documentos\"), headerDocuments)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default routerWrapper(Header);\r\n","import React, {Component} from 'react';\r\nimport styles from './Footer.module.sass';\r\nimport logo from '../../assets/images/logo-caixaseguradora.png';\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\nclass footer extends Component {\r\n\r\n static contextType = AppContext;\r\n\r\n state = {\r\n product: null\r\n }\r\n\r\n render() {\r\n return (\r\n\r\n
\r\n \r\n
\r\n

Fale conosco: 0800 702 4000

\r\n

Ouvidoria: 0800 702 4240

\r\n

SAC: 0800 702 4280

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

© Copyright 2017 Caixa Seguradora - Todos os direitos reservados.

\r\n

\r\n Caixa Seguradora S/A - CNPJ 34.020.254/0001-10
\r\n Edifício Sede: SHN Quadra 01, Conjunto A, Bloco E
\r\n Brasília/DF - CEP: 70.701-050
\r\n O registro deste plano na SUSEP não implica, por parte da Autarquia, incentivo ou\r\n recomendação à sua comercialização.
\r\n Processo SUSEP nº 15414.900040/2016-34.

\r\n
\r\n
\r\n )\r\n\r\n }\r\n}\r\n\r\nexport default footer;\r\n","import axios from \"axios\";\r\nimport querystring from \"querystring\";\r\n\r\nconst isIbc = () => {\r\n let ibc = false;\r\n const contextStr = sessionStorage.getItem(\"context\");\r\n if (contextStr) {\r\n const context = JSON.parse(contextStr);\r\n if (context.hasOwnProperty(\"ibc\")) {\r\n ibc = context.ibc;\r\n }\r\n }\r\n return ibc;\r\n};\r\n\r\nconst getComissionaryCode = () => {\r\n return isIbc() ? \"95293\" : \"37550\";\r\n};\r\n\r\nconst getUserCode = () => {\r\n return isIbc() ? \"WSIBC\" : \"WSCONS\";\r\n};\r\n\r\nconst getDirectChat = () => {\r\n return isIbc()\r\n ? {\r\n imovel:\r\n \"https://caixaseguradora.secure.force.com/LiveAgentDirectChat?button_id=5731R000000fxdH&\",\r\n veiculo:\r\n \"https://caixaseguradora.secure.force.com/LiveAgentDirectChat?button_id=5731R000000fxdH&\",\r\n }\r\n : {\r\n imovel:\r\n \"https://caixaseguradora.secure.force.com/LiveAgentDirectChat?button_id=5731R000000fxciPauLL&\",\r\n veiculo:\r\n \"https://caixaseguradora.secure.force.com/LiveAgentDirectChat?button_id=5731R000000fxcnPauLL&\",\r\n };\r\n};\r\n\r\nconst api = {\r\n CODIGO_COMISSIONADO: getComissionaryCode,\r\n CODIGO_EMPRESA: \"1\",\r\n CODIGO_UNIDADE: \"9\",\r\n CODIGO_USUARIO: getUserCode,\r\n RENDA_TOTAL: \"0\",\r\n endpoints: {\r\n TOKEN: \"/oauth-end/oauth2/token\",\r\n PRODUCTS:\r\n \"/auto-compra/v2/cotacao/obter_parametros/consorcio/obter-produtos\",\r\n OFFERS: \"/auto-compra/v2/cotacao/simular/consorcio\",\r\n OFFERS_DETAILS:\r\n \"/auto-compra/v2/cotacao/obter_parametros/consorcio/obter-detalhes\",\r\n SAVE_CLIENT: \"/auto-compra/v3/consorcio/pessoa\",\r\n CIVIL_STATE: \"/auto-compra/v1/consorcios/estado/civil\",\r\n PROFESSION: \"/auto-compra/v1/consorcios/profissao\",\r\n COUNTRY: \"/auto-compra/v1/consorcios/pais\",\r\n ACCESSIBILITY: \"/auto-compra/v1/consorcios/acessibilidade\",\r\n CITY: \"/rs/v2.0/consorcios/cidades\",\r\n CEP: \"/auto-compra/v1/consorcios/cep/{{cep}}\",\r\n DDD: \"/auto-compra/v3/consorcio/pessoa/telefone/ddd\",\r\n STATES: \"/auto-compra/v1/consorcios/estados\",\r\n NATUREZA_JURIDICA: \"/rs/v1.0/consorcios/natureza/juridica\",\r\n RAMO_ATIVIDADE: \"/rs/v1.0/consorcios/ramo/atividade\",\r\n PROPOSTA: \"/auto-compra/v2/consorcios/proposta\",\r\n LISTA_DOCUMENTOS: \"/rs/v1.0/documentos/processos/{{codigo}}\",\r\n DOC_UPLOAD: \"/rs/v1.0/documentos/processos/{{codigo}}/upload\",\r\n ASSINATURA:\r\n \"/auto-compra/v3/consorcios/proposta/{{proposta}}/documento/proposta/assinatura\",\r\n DOWNLOAD_BOLETO:\r\n \"/auto-compra/v2/consorcios/proposta/{{codigo}}/documento/boleto\",\r\n DOWNLOAD_PROPOSTA:\r\n \"/rs/v2.0/consorcios/proposta/{{codigo}}/documento/proposta\",\r\n DOWNLOAD_CONTRATO:\r\n \"/rs/v2.0/consorcios/proposta/{{codigo}}/documento/contrato\",\r\n SIMULATION: \"/auto-compra/v1/consorcios/lance/simulacao\",\r\n INSURANCE: \"/rs/v1.0/consorcios/seguro/prestamista\",\r\n AGE_VALIDATION:\r\n \"/auto-compra/v2/consorcios/proposta/seguro/prestamista/validacao\",\r\n INCOME_VALIDATION: \"/auto-compra/v2/consorcios/proposta/renda/validacao\",\r\n DIRECT_CHAT: getDirectChat,\r\n SAVE_COTATION: \"/auto-compra/v2/cotacao/consorcio\",\r\n USER_XML: \"/rs/v1.0/ibc/usuario/informacao/{{token}}\",\r\n },\r\n\r\n get: (endpoint, urlParams, queryParams, config) => {\r\n let url = urlParams ? api.formatUrl(endpoint, urlParams) : endpoint;\r\n if (queryParams) {\r\n url += \"?\";\r\n for (const param in queryParams) {\r\n if (queryParams.hasOwnProperty(param)) {\r\n url += `${param}=${queryParams[param]}&`;\r\n }\r\n }\r\n url = url.slice(0, -1).replace(\"%\", \"%25\");\r\n }\r\n return axios.get(process.env.REACT_APP_HOST + url, config);\r\n },\r\n post: (endpoint, requestBody, urlParams) => {\r\n const url = urlParams ? api.formatUrl(endpoint, urlParams) : endpoint;\r\n return axios.post(process.env.REACT_APP_HOST + url, requestBody);\r\n },\r\n stringifyPost: (endpoint, requestBody) => {\r\n return axios.post(\r\n process.env.REACT_APP_HOST + endpoint,\r\n querystring.stringify(requestBody),\r\n {\r\n headers: {\r\n \"content-type\": \"application/x-www-form-urlencoded\",\r\n },\r\n }\r\n );\r\n },\r\n formatUrl: (url, params) => {\r\n return url.replace(/\\{\\{(.*?)\\}\\}/g, function (match, token) {\r\n return params[token];\r\n });\r\n },\r\n extend(obj, src) {\r\n Object.keys(src).forEach(function (key) {\r\n obj[key] = src[key];\r\n });\r\n return obj;\r\n },\r\n};\r\n\r\nexport default api;\r\n","const currency = {\r\n numberToCurrency: value => {\r\n if (isNaN(value)){\r\n return value;\r\n }\r\n return value\r\n .toFixed(2)\r\n .replace(\".\", \",\")\r\n .replace(/\\d(?=(\\d{3})+,)/g, \"$&.\");\r\n },\r\n objNumberToCurrency: obj => {\r\n for (const prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n obj[prop] = currency.numberToCurrency(obj[prop]);\r\n }\r\n }\r\n return obj;\r\n },\r\n currencyToNumber: value => {\r\n if (!isNaN(value)){\r\n return value;\r\n }\r\n if (value.length === 0) {\r\n return 0;\r\n }\r\n const number = value\r\n .split(\".\")\r\n .join(\"\")\r\n .replace(\",\", \".\");\r\n return isNaN(number) ? NaN : parseFloat(number);\r\n },\r\n shiftComma: (str, pos) => {\r\n const strArray = str.split(\"\");\r\n const commaIndex = strArray.indexOf(\",\");\r\n strArray.splice(commaIndex, 1);\r\n strArray.splice(commaIndex + pos, 0, \",\");\r\n return strArray.join(\"\");\r\n },\r\n numberToPercentage: value => {\r\n if (isNaN(value)){\r\n return value;\r\n }\r\n return `${value} %`.replace(\".\", \",\");\r\n }\r\n};\r\nexport default currency;\r\n","import React from 'react';\r\nimport styles from './Card.module.sass';\r\n\r\nconst Card = (props) => {\r\n return (\r\n \r\n {props.showHeader ?
: null }\r\n
{props.children}
\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default Card;\r\n","const gaTags = {\r\n class: \"ga-eventos\",\r\n categoryDefault: \"AutoCompra-Consórcio\",\r\n categoryFlow: \"AutoCompra-Consórcio-Fluxo\",\r\n type: \"AC-Consórcio-\",\r\n typeFlow: \"AC-Consórcio-Fluxo1-\",\r\n typeFlow2: \"AC-Consórcio-Fluxo\",\r\n};\r\n\r\n\r\nexport default gaTags;\r\n","import React from \"react\";\r\nimport styles from \"./ProductCard.module.sass\";\r\n\r\nimport Card from \"../ui/Card/Card\";\r\n\r\nimport carIcon from \"../../assets/veiculo.svg\";\r\nimport houseIcon from \"../../assets/imovel.svg\";\r\nimport gaTags from \"../../utils/ga-tags\";\r\nconst NOT_SPECIFIED = \"Não Especificada\"\r\n\r\nconst productCard = props => {\r\n const icon = parseInt(props.product.id) === 1 ? houseIcon : carIcon;\r\n const title = parseInt(props.product.id) === 1 ? \"Imobiliário\" : \"Veículo\";\r\n\r\n const gaTypeName = `${gaTags.type}EcolhaDoBem-Botão`;\r\n\r\n const allClasses = [styles.ProductCard, gaTags.class];\r\n if (props.selected) {\r\n allClasses.push(styles.selected);\r\n }\r\n if (props.grayScale) {\r\n allClasses.push(styles.grayScale);\r\n }\r\n\r\n return (\r\n {\r\n props.clicked(props.product);\r\n window.dataLayer.push({\r\n event: \"datalayereventos\",\r\n gacategory:\r\n event.target.getAttribute(\"data-gacategory\") || NOT_SPECIFIED,\r\n gatype:\r\n event.target.getAttribute(\"data-gatype\") || NOT_SPECIFIED,\r\n gafunc: event.target.getAttribute(\"data-gafunc\") || NOT_SPECIFIED\r\n });\r\n if (props.hasOwnProperty(\"onClick\")){\r\n props.onClick(event);\r\n }\r\n }}\r\n className={allClasses.join(\" \")}\r\n data-category={gaTags.categoryDefault}\r\n data-gatype={gaTypeName}\r\n data-gafunc={\r\n title === \"Imóvel\" ? `${gaTypeName}-Imovel` : `${gaTypeName}-Veiculo`\r\n }\r\n >\r\n \r\n

{title}

\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default productCard;\r\n","import React from 'react';\r\nimport styles from './ProductChooser.module.sass';\r\n\r\nimport ProductCard from '../ProductCard/ProductCard';\r\n\r\nclass ProductChooser extends React.Component {\r\n render() {\r\n return (\r\n
\r\n {\r\n this.props.products.map((prod) =>\r\n )\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ProductChooser;\r\n","import React from 'react';\r\nimport styles from './Button.module.sass';\r\nimport gaTags from '../../../utils/ga-tags'\r\n\r\nconst NOT_SPECIFIED = 'Não Especificada'\r\n\r\nconst button = (props) => {\r\n\r\n const allClasses = [props.className, styles.button, gaTags.class];\r\n if (props.selected) {\r\n allClasses.push(styles.selected);\r\n }\r\n return \r\n};\r\n\r\nexport default button;\r\n","import React from 'react';\r\nimport styles from './Title.module.sass';\r\n\r\nconst Title = (props) => {\r\n return (\r\n

\r\n {props.title}\r\n {props.tooltip}\r\n

\r\n )\r\n};\r\n\r\nexport default Title;\r\n","import React from \"react\";\r\nimport classes from \"./SimulationChooser.module.sass\";\r\nimport Button from \"../ui/Button/Button\";\r\n\r\nimport Title from \"../../components/Title/Title\";\r\nimport gaTags from \"../../utils/ga-tags\"\r\nimport {simulationType} from \"../../containers/Products/Products\";\r\n\r\nclass SimulationChooser extends React.Component {\r\n targetDiv = React.createRef();\r\n\r\n scrollToDiv = () => {\r\n this.targetDiv.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n };\r\n\r\n\r\n\r\n\r\n render() {\r\n\r\n const product = this.props.selectedProduct.id === \"1\" ? 'Imóvel' : 'Veículo';\r\n const gaTypeName = `${gaTags.type}Parcela&Total-`\r\n\r\n return (\r\n {\r\n this.targetDiv = el;\r\n }}\r\n className={classes.simulationChooser}\r\n >\r\n \r\n\r\n <div className={classes.listButtons}>\r\n <Button\r\n onClick={() => this.props.simulationClicked(simulationType.PARCELA)}\r\n selected={this.props.selectedSimulation === simulationType.PARCELA}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={`${gaTypeName}${product}`}\r\n data-gafunc={`${gaTypeName}${product}-ValorParcela`}>\r\n Pelo valor da parcela\r\n </Button>\r\n <Button\r\n onClick={() => this.props.simulationClicked(simulationType.CREDITO)}\r\n selected={this.props.selectedSimulation === simulationType.CREDITO}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={`${gaTypeName}${product}`}\r\n data-gafunc={`${gaTypeName}${product}-ValorCrédito`}>\r\n Pelo valor total do crédito\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default SimulationChooser;\r\n","import React from 'react';\r\nimport styles from './CurrencyInput.module.sass';\r\n\r\nimport currency from '../../../../utils/currency';\r\n\r\nconst currencyInput = (props) => {\r\n\r\n const formatInput = (event) => {\r\n const value = event.target.value.replace(',', '').split('.').join('');\r\n if (!isNaN(value) && props.hasOwnProperty('onChange')) {\r\n props.onChange(currency.numberToCurrency(value/100));\r\n }\r\n };\r\n\r\n return (\r\n <div tabIndex=\"0\" className={styles.inputGroup + (props.valid ? '' : ' ' + styles.error)}>\r\n <div className={styles.inputDetail}>\r\n <span className={styles.detail}>R$</span>\r\n </div>\r\n <input {...props} valid=''\r\n className={styles.input} placeholder={'0,00'}\r\n onChange={formatInput}\r\n maxLength=\"18\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default currencyInput;\r\n","export const getCreditCardType = creditNumber => {\r\n if (/^4/.test(creditNumber)) {\r\n return { name: \"Visa\", digits: [13, 16] };\r\n } else if (/^5[1,2,3,4,5]/.test(creditNumber)) {\r\n return { name: \"Master\", digits: [16] };\r\n } else if (/^3[4,7]/.test(creditNumber)) {\r\n return { name: \"Amex\", digits: [15] };\r\n } else if (\r\n /^((636368)|(636369)|(438935)|(504175)|(451416)|(636297)|(5067)|(4576)|(4011)|(506699))/.test(\r\n creditNumber\r\n )\r\n ) {\r\n return { name: \"Elo\", digits: [16] };\r\n } else if (/^6(?:011|5[0-9]{2})[0-9]{12}$/.test(creditNumber)) {\r\n return { name: \"Discover\", digits: [16] };\r\n } else if (/^((38)|(60))/.test(creditNumber)) {\r\n return { name: \"Hipercard\", digits: [13, 16, 19] };\r\n } else if (/^35/.test(creditNumber)) {\r\n return { name: \"JCB\", digits: [16] };\r\n } else if (/^50/.test(creditNumber)) {\r\n return { name: \"Aura\", digits: [16] };\r\n }\r\n\r\n return { digits: [] };\r\n};\r\n\r\nexport const checkCCValidity = value => {\r\n if (/[^0-9-\\s]+/.test(value)){\r\n return false;\r\n }\r\n\r\n let nCheck = 0,\r\n bEven = false;\r\n value = value.replace(/\\D/g, \"\");\r\n\r\n for (var n = value.length - 1; n >= 0; n--) {\r\n const cDigit = value.charAt(n)\r\n let nDigit = parseInt(cDigit, 10);\r\n nDigit = bEven ? nDigit * 2 : nDigit\r\n if (bEven && nDigit > 9){\r\n nDigit -= 9;\r\n }\r\n\r\n nCheck += nDigit;\r\n bEven = !bEven;\r\n }\r\n\r\n return nCheck % 10 === 0;\r\n};\r\n","/* eslint-disable */\r\n\r\nimport currency from \"./currency\";\r\nimport { getCreditCardType } from \"./creditCardUtils\";\r\n\r\nconst masks = {\r\n cpf(cpf) {\r\n cpf = cpf.replace(/\\D/g, \"\");\r\n cpf = cpf.replace(/(\\d{3})(\\d)/, \"$1.$2\");\r\n cpf = cpf.replace(/(\\d{3})(\\d)/, \"$1.$2\");\r\n cpf = cpf.replace(/(\\d{3})(\\d{1,2})$/, \"$1-$2\");\r\n return cpf;\r\n },\r\n\r\n cnpj(cnpj) {\r\n cnpj = cnpj.replace(/\\D/g, \"\");\r\n cnpj = cnpj.replace(/^(\\d{2})(\\d)/, \"$1.$2\");\r\n cnpj = cnpj.replace(/^(\\d{2})\\.(\\d{3})(\\d)/, \"$1.$2.$3\");\r\n cnpj = cnpj.replace(/\\.(\\d{3})(\\d)/, \".$1/$2\");\r\n cnpj = cnpj.replace(/(\\d{4})(\\d)/, \"$1-$2\");\r\n return cnpj;\r\n },\r\n\r\n cep(cep) {\r\n cep = cep.replace(/\\D/g, \"\");\r\n cep = cep.replace(/^(\\d{5})(\\d)/, \"$1-$2\");\r\n return cep;\r\n },\r\n\r\n date(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\r\n phone(phoneMask) {\r\n return phoneMask.length > 10\r\n ? 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{1,4})/, \"$1-$2\")\r\n .replace(/(-\\d{4})\\d+?$/, \"$1\")\r\n : 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{1,5})/, \"$1-$2\")\r\n .replace(/(-\\d{5})\\d+?$/, \"$1\");\r\n },\r\n\r\n numberOnly(value) {\r\n return value.replace(/\\D/g, \"\");\r\n },\r\n\r\n currency(value) {\r\n value = value.replace(/\\D/g, \"\").replace(\",\", \"\").split(\".\").join(\"\");\r\n return value === \"\" ? \"\" : currency.numberToCurrency(value / 100);\r\n },\r\n\r\n creditValidity(value) {\r\n return value.replace(/\\D/g, \"\").replace(/(\\d{2})(\\d)/, \"$1/$2\");\r\n },\r\n\r\n creditCard(value) {\r\n const creditNumber = value.replace(/\\D/g, \"\");\r\n switch (getCreditCardType(creditNumber).name) {\r\n case \"Visa\":\r\n if (creditNumber.length > 13) {\r\n return creditNumber\r\n .substr(0, 16)\r\n .replace(/(\\d{4})(\\d{4})(\\d{4})(\\d)/, \"$1.$2.$3.$4\");\r\n } else {\r\n return creditNumber\r\n .replace(/(\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{3})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{3}.\\d{3})(\\d)/, \"$1.$2\");\r\n }\r\n break;\r\n\r\n case \"Amex\":\r\n return creditNumber\r\n .substr(0, 15)\r\n .replace(/(\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{6})(\\d)/, \"$1.$2\");\r\n break;\r\n\r\n case \"Hipercard\":\r\n if (creditNumber.length > 16) {\r\n return creditNumber\r\n .substr(0, 19)\r\n .replace(/(\\d{6})(\\d{4})(\\d{5})(\\d)/, \"$1.$2.$3.$4\");\r\n } else if (creditNumber.length <= 13) {\r\n return creditNumber\r\n .replace(/(\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{4}.\\d{2})(\\d)/, \"$1.$2\");\r\n }\r\n break;\r\n\r\n default:\r\n return creditNumber\r\n .substr(0, 16)\r\n .replace(/(\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{4})(\\d)/, \"$1.$2\")\r\n .replace(/(\\d{4}\\.\\d{4}.\\d{4})(\\d)/, \"$1.$2\");\r\n }\r\n return value;\r\n },\r\n};\r\n\r\nexport default masks;\r\n","const mediaQuery = {\r\n query: null,\r\n watchIfDesktop: (mediaChange) => {\r\n mediaQuery.query = window.matchMedia(\"(min-width: 960px)\");\r\n mediaQuery.query.onchange = mediaChange;\r\n return mediaQuery.query.matches;\r\n },\r\n unsubscribe: () => {\r\n mediaQuery.query.onchange = null\r\n }\r\n};\r\n\r\nexport default mediaQuery;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport OverlayTrigger from \"react-bootstrap/OverlayTrigger\";\r\nimport Popover from \"react-bootstrap/Popover\";\r\nimport { Modal } from \"react-bootstrap\";\r\n\r\nimport styles from \"./Tooltip.module.sass\";\r\nimport mediaQuery from \"../../../utils/mediaQuery\";\r\nimport Button from \"../Button/Button\";\r\n\r\nconst tooltip = (props) => {\r\n const [desktop, setDesktop] = useState(\r\n mediaQuery.watchIfDesktop((e) => setDesktop(e.matches))\r\n );\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n useEffect(() => mediaQuery.unsubscribe, []);\r\n return desktop ? (\r\n <OverlayTrigger\r\n className={styles.tooltip}\r\n trigger=\"hover\"\r\n key=\"right\"\r\n placement=\"right\"\r\n flip={true}\r\n popperConfig={{\r\n modifiers: {\r\n preventOverflow: {\r\n enabled: true,\r\n behavior: [\"right\", \"bottom\", \"left\", \"top\"],\r\n boundariesElement: \"viewport\",\r\n },\r\n },\r\n }}\r\n overlay={\r\n <Popover\r\n id={`popover-positioned-right`}\r\n className={styles.tooltipContent}\r\n >\r\n {props.children}\r\n </Popover>\r\n }\r\n >\r\n <span className={[props.className, styles.iconTooltip].join(\" \")}>\r\n <span>Saiba mais</span>\r\n </span>\r\n </OverlayTrigger>\r\n ) : (\r\n <>\r\n <div className={[props.className, styles.iconTooltip].join(\" \")}>\r\n <span onClick={() => setShowModal(true)}>Saiba mais</span>\r\n </div>\r\n <Modal\r\n centered\r\n dialogClassName={styles.modalDialog}\r\n show={showModal}\r\n onHide={() => setShowModal(false)}\r\n >\r\n <Modal.Header closeButton />\r\n <Modal.Body>\r\n <div className={styles.modalMsg}>\r\n {props.title}\r\n <span className={styles.additionalInfo}> {props.children}</span>\r\n </div>\r\n <div className={styles.actions}>\r\n <Button onClick={() => setShowModal(false)}>Fechar</Button>\r\n </div>\r\n </Modal.Body>\r\n </Modal>\r\n </>\r\n );\r\n};\r\n\r\nexport default tooltip;\r\n","import React, {useState, useEffect, memo} from \"react\";\r\nimport styles from \"./Input.module.sass\";\r\nimport masks from \"../../../../utils/masks\";\r\nimport Tooltip from \"../../Tooltip/Tooltip\";\r\n\r\nconst getErrorMessageClass = (isValid, validation) => styles.errorMsg + (isValid === false || (isValid !== false && !validation.isValid) ? ` ${styles.invalid}` : \"\")\r\nconst getInputItemClass = (isValid, validation) => styles.inputItem + (isValid === false || (isValid !== false && !validation.isValid) ? ` ${styles.error}` : '')\r\nconst callOnChange = (text, mask, onChange, name) => {\r\n if(mask){\r\n return onChange(mask === masks.currency ? mask(text) : text.replace(/[^a-z0-9]/gi, \"\"), name)\r\n }else{\r\n return onChange(text, name)\r\n }\r\n\r\n};\r\n\r\nconst getInputStyle = (props, validation) => [getInputItemClass(props.isValid, validation), (props.as === 'select' ? styles.select : '')].join(' ')\r\n\r\nconst getTabIndex = readOnly => readOnly ? '-1' : null\r\nconst validateInitializer = (props, setValidation) => () => {\r\n if (props.hasOwnProperty('validationRules')) {\r\n let validationResult;\r\n if (props.validationRules.find((rule) => {\r\n validationResult = rule(props.value);\r\n if (!validationResult.valid) {\r\n setValidation({\r\n isValid: false,\r\n errorMsg: validationResult.msg\r\n });\r\n return true;\r\n }\r\n return false;\r\n }) == null){\r\n setValidation({\r\n isValid: true,\r\n errorMsg: ''\r\n });\r\n }\r\n }\r\n};\r\nconst InputForm = (props) => {\r\n\r\n const [validation, setValidation] = useState({\r\n isValid: true,\r\n errorMsg: false\r\n });\r\n\r\n useEffect(() => {\r\n if ((props.hasOwnProperty('onSelect') || props.validationTrigger === 'onChange') && props.value.length > 0) {\r\n validate();\r\n }\r\n }, [props.value]);\r\n\r\n const onChangeHandler = (text, {mask, onChange, name}) => {\r\n if (props.hasOwnProperty(\"onChange\")) {\r\n callOnChange(text, mask, onChange, name)\r\n }\r\n };\r\n\r\n const validate = validateInitializer(props, setValidation)\r\n\r\n return (\r\n <fieldset\r\n className={[styles.inputContainer, props.className, (props.as === 'select' ? styles.select : '')].join(' ')}>\r\n <input\r\n onClick={(e) => props.onClick ? props.onClick(e) : null}\r\n className={getInputStyle(props, validation)}\r\n type={props.type}\r\n onChange={event => onChangeHandler(event.target.value, props)}\r\n value={props.mask ? props.mask(props.value) : props.value}\r\n maxLength={props.maxLength}\r\n required\r\n onBlur={validate}\r\n readOnly={props.readonly}\r\n tabIndex={getTabIndex(props.readonly)}\r\n onKeyPress={props.onKeyPress}\r\n valid={'' + !(props.isValid === false || (props.isValid !== false && !validation.isValid))}\r\n id={props.id}\r\n disabled={props.disabled}\r\n />\r\n {props.as === 'select' ? <i className={\"icon icon-seta-baixo-p\"}/> : null}\r\n <label className={styles.floatLabel}>\r\n {props.typeDocument}\r\n {props.tooltip && <Tooltip className={styles.tooltip}>{props.tooltip}</Tooltip>}\r\n </label>\r\n <span\r\n className={getErrorMessageClass(props.isValid, validation)}\r\n >\r\n {validation.errorMsg ? validation.errorMsg : props.errorMsg}\r\n </span>\r\n </fieldset>\r\n );\r\n};\r\n\r\nexport default memo(InputForm);\r\n","import React from \"react\";\r\nimport Input from \"../Form/Input/Input\";\r\n\r\nclass DropdownToggle extends React.Component {\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.handleClick = this.handleClick.bind(this);\r\n }\r\n\r\n handleClick(e) {\r\n e.preventDefault();\r\n if (!this.props.readonly) {\r\n this.props.onClick(e);\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div ref={this.props.innerRef} onClick={this.handleClick}>\r\n <Input\r\n disabled\r\n {...this.props}\r\n as={\"select\"}\r\n value={this.props.value}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default React.forwardRef((props, ref) => (\r\n <DropdownToggle innerRef={ref} {...props} />\r\n));\r\n","import React from 'react';\r\nimport {FormControl} from \"react-bootstrap\";\r\n\r\nclass DropdownMenu extends React.Component {\r\n\r\n constructor(props, context) {\r\n super(props, context);\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n\r\n this.state = { value: '' };\r\n }\r\n\r\n handleChange(e) {\r\n this.setState({ value: e.target.value.toLowerCase().trim() });\r\n }\r\n\r\n render() {\r\n const {\r\n children,\r\n style,\r\n className,\r\n 'aria-labelledby': labeledBy,\r\n } = this.props;\r\n\r\n const { value } = this.state;\r\n\r\n return (\r\n <div style={style} className={className} aria-labelledby={labeledBy} ref={this.props.innerRef}>\r\n <FormControl\r\n autoFocus\r\n className=\"mx-3 my-2 w-auto\"\r\n placeholder=\"Escreva aqui para filtrar...\"\r\n onChange={this.handleChange}\r\n value={value}\r\n />\r\n <ul className=\"list-unstyled\">\r\n {React.Children.toArray(children).filter(\r\n child =>\r\n !value || child.props.children.toLowerCase().startsWith(value),\r\n )}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default React.forwardRef((props, ref) => <DropdownMenu\r\n innerRef={ref} {...props}\r\n/>);\r\n","import React, {useState, useEffect} from 'react';\r\nimport './DropdownInput.module.sass';\r\nimport api from \"../../../../utils/api\";\r\nimport Dropdown from \"react-bootstrap/Dropdown\";\r\nimport DropdownToggle from \"../../DropdownToggle/DropdownToggle\";\r\nimport DropdownMenu from \"../../DropdownMenu/DropdownMenu\";\r\n\r\nconst dropdownInput = (props) => {\r\n\r\n const [options, optionsHandler] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.optionsUrl) {\r\n api.get(props.optionsUrl).then((result) => {\r\n optionsHandler(result.data.map(el => (props.formatter(el))));\r\n });\r\n }\r\n }, [props.optionsUrl]);\r\n\r\n const valueHandler = (key) => {\r\n if (props.hasOwnProperty('onSelect')) {\r\n props.onSelect(key);\r\n }\r\n };\r\n\r\n const opts = props.optionsUrl ? options : props.options;\r\n\r\n const match = opts.find(el => {\r\n return(\r\n el.value === props.value\r\n )\r\n\r\n });\r\n\r\n return (\r\n\r\n <Dropdown className={props.className}>\r\n <Dropdown.Toggle {...props}\r\n value={opts.length > 0 && props.value != null && props.value.length > 0\r\n ? (\r\n match ? match.text\r\n : props.value\r\n )\r\n : ''}\r\n as={DropdownToggle}/>\r\n\r\n <Dropdown.Menu role=\"menu\" as={DropdownMenu}>\r\n {\r\n opts.map((el, index) => {\r\n return <Dropdown.Item onSelect={(key) => valueHandler(key)} key={index}\r\n eventKey={el.value}>{el.text ? el.text : el.value}</Dropdown.Item>\r\n })\r\n }\r\n </Dropdown.Menu>\r\n </Dropdown>\r\n\r\n\r\n );\r\n};\r\n\r\nexport default dropdownInput;\r\n","import React from \"react\";\r\nimport styles from \"./RadioInput.module.sass\";\r\n\r\nconst radioInput = props => {\r\n return (\r\n <div className={styles.radioContainer}>\r\n <div\r\n tabIndex={0}\r\n onClick={props.onSelected}\r\n onKeyPress={(event) => {\r\n event.key === 'Enter' && props.onSelected(event)\r\n }}\r\n className={\r\n styles.RadioInput + (props.selected ? \" \" + styles.selected : \"\")\r\n }\r\n >\r\n <div className={styles.checkMark} />\r\n </div>\r\n {props.icon && <i className={\"icon icon-\" + props.icon} />}\r\n <span>{props.children}</span>\r\n </div>\r\n );\r\n};\r\n\r\nexport default radioInput;\r\n","import React from 'react';\r\nimport styles from './AutocompleteInput.module.sass';\r\nimport { AsyncTypeahead, Typeahead } from \"react-bootstrap-typeahead\";\r\nimport api from \"../../../../utils/api\";\r\n\r\nclass AutocompleteInput extends React.Component {\r\n\r\n state = {\r\n hasFocus: false,\r\n value: '',\r\n valid: true,\r\n options: [],\r\n isLoading: false,\r\n optionsUpdated: false,\r\n defaultSelected: []\r\n };\r\n\r\n typeAhead = React.createRef();\r\n\r\n validate = (isOpen) => {\r\n if (isOpen) {\r\n return;\r\n }\r\n setTimeout(() => {\r\n if (this.props.value === \"\") {\r\n this.typeAhead.getInstance().clear();\r\n this.setState({ value: \"\" });\r\n }\r\n\r\n this.setState({\r\n hasFocus: false,\r\n valid: this.props.value !== \"\",\r\n });\r\n }, 0);\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.optionsUrl && (!this.props.async || this.props.readonly)) {\r\n api.get(this.props.optionsUrl).then((result) => {\r\n const formattedOptions = result.data.map(el => (this.props.formatter(el)));\r\n this.setState({\r\n options: formattedOptions,\r\n optionsUpdated: true\r\n });\r\n });\r\n }\r\n\r\n if (this.props.ibcValue && this.props.async) {\r\n this.onSearch(this.props.ibcValue);\r\n }\r\n }\r\n\r\n 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\n normalizedIncludeCompare(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().includes(nS2.toUpperCase());\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevState.optionsUpdated === false && this.state.optionsUpdated === true) {\r\n this.setState({ isLoading: false, optionsUpdated: false });\r\n if (this.state.defaultSelected.length === 0 && this.props.ibcValue) {\r\n const selected = this.state.options.filter((el) => {\r\n return this.normalizedCompare(el.value.valor, this.props.ibcValue);\r\n });\r\n this.setState({\r\n defaultSelected: selected,\r\n value: selected.length > 0 && this.props.async ? selected[0].text : '',\r\n });\r\n if (this.props.hasOwnProperty('onSelect')) {\r\n this.props.onSelect(selected.length > 0 && selected[0].value);\r\n }\r\n }\r\n } else if (this.props.readonly && this.state.defaultSelected.length === 0) {\r\n this.setState({\r\n defaultSelected: this.findSelected(this.props.value),\r\n });\r\n }\r\n }\r\n\r\n findSelected = (selectedValue) => {\r\n const options = this.props.optionsUrl ? this.state.options : this.props.options;\r\n if (options.length === 0 && !this.props.readonly) {\r\n return [];\r\n }\r\n\r\n const selectedOption = options.filter((el) => (\r\n (el.value.hasOwnProperty('codigo') ? el.value.codigo : el.value) === selectedValue\r\n ));\r\n if (selectedOption.length === 0) {\r\n return [selectedValue];\r\n }\r\n return selectedOption;\r\n };\r\n\r\n onSearch = (value) => {\r\n const queryParams = {};\r\n queryParams[this.props.queryKey] = value;\r\n api.get(this.props.optionsUrl, null, queryParams).then((result) => {\r\n this.setState({ optionsUpdated: true, options: result.data.map(el => (this.props.formatter(el))) });\r\n });\r\n this.setState({ isLoading: true })\r\n };\r\n\r\n filterBy = (value) => {\r\n return Array.isArray(this.state.value) ? true : this.normalizedIncludeCompare(value.text, this.state.value);\r\n }\r\n\r\n updateChangeState = selected => {\r\n this.setState({\r\n valid: true,\r\n })\r\n if (selected.length > 0) {\r\n this.setState({\r\n value: selected\r\n });\r\n }\r\n }\r\n\r\n renderTypeahead = () => <Typeahead\r\n ref={(el) => this.typeAhead = el}\r\n onMenuToggle={this.validate}\r\n onFocus={() => this.setState({ hasFocus: true })}\r\n id='autocomplete'\r\n disabled={this.props.readonly}\r\n allowNew={this.props.readonly}\r\n inputProps={{\r\n className: styles.inputItem + (this.props.isValid === false || (this.props.isValid !== false && !this.state.valid) ? ' ' + styles.error : ''),\r\n value: this.state.value,\r\n valid: '' + !(this.props.isValid === false || (this.props.isValid !== false && !this.state.valid)),\r\n readOnly: this.props.readonly\r\n }}\r\n className={[styles.Typeahead, this.props.readonly ? styles.readOnly : ''].join(' ')}\r\n onChange={(selected) => {\r\n if (this.props.hasOwnProperty('onSelect')) {\r\n this.props.onSelect(selected.length > 0 ? selected[0].value : '');\r\n }\r\n this.updateChangeState(selected);\r\n }}\r\n onInputChange={(value) => {\r\n if (this.props.hasOwnProperty('onSelect')) {\r\n this.props.onSelect('');\r\n }\r\n this.setState({ value });\r\n }}\r\n options={this.props.optionsUrl ? this.state.options : this.props.options}\r\n selected={this.findSelected(this.props.value)}\r\n labelKey='text'\r\n emptyLabel='Sem resultados'\r\n filterBy={this.filterBy}\r\n/>\r\nrenderAsyncTypeahead = () => <AsyncTypeahead\r\nref={(el) => this.typeAhead = el}\r\nonSearch={this.onSearch}\r\nisLoading={this.state.isLoading}\r\nonBlur={this.validate}\r\nonFocus={() => this.setState({ hasFocus: true })}\r\nid='autocomplete'\r\nminLength={2}\r\ndisabled={this.props.readonly}\r\nallowNew={this.props.readonly}\r\ninputProps={{\r\n className: styles.inputItem + (this.props.isValid === false || (this.props.isValid !== false && !this.state.valid) ? ' ' + styles.error : ''),\r\n valid: '' + !(this.props.isValid === false || (this.props.isValid !== false && !this.state.valid)),\r\n readOnly: this.props.readonly\r\n}}\r\nclassName={[styles.Typeahead, this.props.readonly ? styles.readOnly : ''].join(' ')}\r\nonChange={(selected) => {\r\n if (this.props.hasOwnProperty('onSelect')) {\r\n this.props.onSelect(selected.length > 0 ? selected[0].value : '');\r\n }\r\n this.setState({\r\n value: selected,\r\n valid: true,\r\n })\r\n}}\r\nonInputChange={(value) => {\r\n if (this.props.hasOwnProperty('onSelect')) {\r\n this.props.onSelect('');\r\n }\r\n\r\n this.setState({ value });\r\n}}\r\noptions={this.props.optionsUrl ? this.state.options : this.props.options}\r\nselected={this.state.defaultSelected}\r\nlabelKey='text'\r\nemptyLabel='Sem resultados'\r\npromptText='Digite para pesquisar'\r\nsearchText='Buscando resultados'\r\n/>\r\n render() {\r\n return (\r\n <fieldset className={[this.props.className, styles.InputContainer].join(' ')}>\r\n {this.props.async ? (\r\n this.renderAsyncTypeahead()\r\n ) : (\r\n this.renderTypeahead()\r\n )}\r\n {this.props.async ? null : <i className={\"icon icon-seta-baixo-p\"} />}\r\n <label\r\n className={[styles.floatLabel, this.state.hasFocus ||\r\n (this.state.value != null && this.state.value.length > 0) ||\r\n (this.props.value != null && this.props.value.length > 0)\r\n ? styles.focus : ''].join(' ')}>{this.props.typeDocument}</label>\r\n <span\r\n className={\r\n styles.errorMsg + (this.props.isValid === false || (this.props.isValid !== false && !this.state.valid) ? \" \" + styles.invalid : \"\")\r\n }\r\n >\r\n {'Ops! Este campo é obrigatório preencher.'}\r\n </span>\r\n </fieldset>\r\n )\r\n }\r\n}\r\n\r\n\r\nexport default AutocompleteInput;\r\n","import React from 'react';\r\nimport styles from './Input.module.sass';\r\n\r\nimport currency from '../../../utils/currency';\r\n\r\nimport CurrencyInput from './CurrencyInput/CurrencyInput';\r\nimport DropdownInput from \"./DropdownInput/DropdownInput\";\r\nimport RadioInput from \"./RadioInput/RadioInput\";\r\nimport InputForm from \"../Form/Input/Input\";\r\nimport AutocompleteInput from \"./AutocompleteInput/AutocompleteInput\";\r\n\r\nconst input = (props) => {\r\n switch (props.type) {\r\n case inputType.CURRENCY: {\r\n const isValid = props.value === \"\" || currency.currencyToNumber(props.value) === 0 || props.valid;\r\n return (\r\n <div className=\"Input\">\r\n <CurrencyInput {...props} valid={isValid}/>\r\n {\r\n isValid ? null : <label className={styles.Error}>{props.error}</label>\r\n }\r\n </div>\r\n );\r\n }\r\n case inputType.DROPDOWN: {\r\n return <DropdownInput {...props}/>\r\n }\r\n case inputType.AUTOCOMPLETE: {\r\n return <AutocompleteInput {...props}/>\r\n }\r\n case inputType.RADIO: {\r\n return <RadioInput {...props}/>\r\n }\r\n default: {\r\n return <InputForm {...props}/>;\r\n }\r\n }\r\n};\r\n\r\nexport const inputType = {\r\n CURRENCY: 'currency',\r\n DROPDOWN: 'dropdown',\r\n RADIO: 'radio',\r\n AUTOCOMPLETE: 'autocomplete'\r\n};\r\n\r\nexport default input;\r\n","import React from \"react\";\r\nimport styles from \"./SimulationDetail.module.sass\";\r\n\r\nimport {simulationType} from \"../../containers/Products/Products\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport Input from \"../ui/Input/Input\";\r\nimport Title from \"../../components/Title/Title\";\r\nimport gaTags from \"../../utils/ga-tags\"\r\n\r\nimport Tooltip from \"../ui/Tooltip/Tooltip\";\r\n\r\nclass SimulationDetail extends React.Component {\r\n targetDiv = React.createRef();\r\n\r\n scrollToDiv = () => {\r\n this.targetDiv.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n };\r\n\r\n render() {\r\n const typeString =\r\n this.props.type === simulationType.PARCELA ? \"da parcela\" : \"do crédito\";\r\n\r\n const product = parseInt(this.props.selectedProduct.id) === 1 ? 'Imóvel' : 'Veículo';\r\n const gaTypeName = `${gaTags.type}&${product}&-&${this.props.type}&-&${this.props.value}&-Simulação`\r\n\r\n return (\r\n <div\r\n ref={el => {\r\n this.targetDiv = el;\r\n }}\r\n className={styles.SimulationDetail}\r\n >\r\n <Title title={`Valor ${typeString}`}\r\n tooltip={\r\n <Tooltip>\r\n <p><b>Temos algo importante para te lembrar:</b></p>\r\n <p>Para começar um consórcio, é ideal ter uma <b>renda mensal ou faturamento anual comprovados</b> 3x\r\n maior que a parcela escolhida.</p>\r\n </Tooltip>\r\n }\r\n />\r\n\r\n <p\r\n className={styles.LimitsLabel}\r\n >{`Para fazer a simulação o valor mínimo ${typeString} deve ser R$ ${\r\n this.props.limits.minVal\r\n } e máximo de R$ ${this.props.limits.maxVal}`}</p>\r\n\r\n <Input\r\n type=\"currency\"\r\n valid={this.props.isValid}\r\n error={\"Ops! Valor da parcela ou total do crédito inválido.\"}\r\n value={this.props.value}\r\n onChange={this.props.valueChanged}\r\n onKeyPress={(event) => {\r\n return event.key === 'Enter' && this.props.isValid ? this.props.simulate() : null\r\n }}\r\n />\r\n <div className={styles.divider}/>\r\n <Button\r\n selected\r\n disabled={!this.props.isValid}\r\n onClick={this.props.simulate}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-VerOferta`}\r\n >\r\n Ver oferta\r\n </Button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default SimulationDetail;\r\n","/* eslint-disable react/prop-types */\r\nimport React from \"react\";\r\nimport styles from \"./Products.module.sass\";\r\n\r\nimport api from \"../../utils/api\";\r\nimport currency from \"../../utils/currency\";\r\n\r\nimport ProductChooser from \"../../components/ProductChooser/ProductChooser\";\r\nimport SimulationChooser from \"../../components/SimulationChooser/SimulationChooser\";\r\nimport SimulationDetail from \"../../components/SimulationDetail/SimulationDetail\";\r\nimport Title from \"../../components/Title/Title\";\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\nclass Products extends React.Component {\r\n state = {\r\n products: [],\r\n selectedProduct: {},\r\n selectedSimulation: \"\",\r\n value: \"\",\r\n valid: false,\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n targetDiv = React.createRef();\r\n\r\n productClickHandler = (product) => {\r\n if (product.id !== this.state.selectedProduct.id) {\r\n this.setState({\r\n selectedProduct: product,\r\n selectedSimulation: \"\",\r\n });\r\n this.context.setContext({\r\n ...this.context,\r\n product: product,\r\n });\r\n }\r\n };\r\n\r\n simulationChooserClickHandler = (type) => {\r\n if (type !== this.state.selectedSimulation) {\r\n this.setState({\r\n selectedSimulation: type,\r\n value: \"\",\r\n });\r\n }\r\n };\r\n\r\n simulationValueHandler = (value) => {\r\n if (value !== this.state.value) {\r\n this.setState({\r\n value: value,\r\n valid: this.validate(),\r\n });\r\n }\r\n };\r\n\r\n getLimits() {\r\n let minVal,\r\n maxVal = 0;\r\n if (\r\n this.state.selectedProduct.id === \"2\" &&\r\n this.state.selectedSimulation === simulationType.CREDITO\r\n ) {\r\n minVal = 25000;\r\n maxVal = 150000;\r\n } else if (\r\n this.state.selectedProduct.id === \"2\" &&\r\n this.state.selectedSimulation === simulationType.PARCELA\r\n ) {\r\n minVal = 400;\r\n maxVal = 5000;\r\n } else if (\r\n this.state.selectedProduct.id === \"1\" &&\r\n this.state.selectedSimulation === simulationType.CREDITO\r\n ) {\r\n minVal = 70000;\r\n maxVal = 700000;\r\n } else if (\r\n this.state.selectedProduct.id === \"1\" &&\r\n this.state.selectedSimulation === simulationType.PARCELA\r\n ) {\r\n minVal = 600;\r\n maxVal = 10000;\r\n }\r\n\r\n return {\r\n minVal: minVal,\r\n maxVal: maxVal,\r\n };\r\n }\r\n\r\n getFormatedLimits() {\r\n return currency.objNumberToCurrency(this.getLimits());\r\n }\r\n\r\n startSimulationHandler = () => {\r\n const isParcela = this.state.selectedSimulation === simulationType.PARCELA;\r\n\r\n const simulationValue = currency.currencyToNumber(this.state.value);\r\n\r\n const requestBody = {\r\n produto: this.context.product,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n codigoEmpresa: api.CODIGO_EMPRESA,\r\n creditoFinal: isParcela\r\n ? \"999999999\"\r\n : (simulationValue * 1.1).toFixed(2),\r\n parcelaInicial: isParcela ? (simulationValue * 0.9).toFixed(2) : \"0\",\r\n parcelaFinal: isParcela\r\n ? (simulationValue * 1.1).toFixed(2)\r\n : \"999999999\",\r\n rendaTotal: api.RENDA_TOTAL,\r\n creditoInicial: isParcela ? \"0\" : (simulationValue * 0.9).toFixed(2),\r\n };\r\n\r\n api\r\n .post(api.endpoints.OFFERS, requestBody)\r\n .then((result) => {\r\n this.context.setContext({\r\n ...this.context,\r\n title: null,\r\n subtitle: null,\r\n redirectToPayment: false,\r\n product: this.state.selectedProduct,\r\n simulationType: this.state.selectedSimulation,\r\n simulationValue: this.state.value,\r\n priceValues: this.getLimits(),\r\n groups: result.data.bem.grupos,\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/ofertas\",\r\n });\r\n })\r\n .catch(() => {\r\n this.context.setContext({\r\n ...this.context,\r\n title: null,\r\n subtitle: null,\r\n redirectToPayment: false,\r\n product: this.state.selectedProduct,\r\n simulationType: this.state.selectedSimulation,\r\n simulationValue: this.state.value,\r\n priceValues: this.getLimits(),\r\n groups: [],\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/ofertas\",\r\n });\r\n });\r\n };\r\n\r\n validate() {\r\n const limits = this.getLimits();\r\n const value = currency.currencyToNumber(this.state.value);\r\n return value >= limits.minVal && value <= limits.maxVal;\r\n }\r\n\r\n componentDidMount() {\r\n const requestBody = {\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n };\r\n\r\n api.post(api.endpoints.PRODUCTS, requestBody).then((result) => {\r\n this.setState({\r\n products: result.data.produtos,\r\n });\r\n });\r\n\r\n this.context.setContext({\r\n ...this.context,\r\n product: \"\",\r\n });\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.targetDiv.hasOwnProperty(\"scrollToDiv\")) {\r\n this.targetDiv.scrollToDiv();\r\n }\r\n }\r\n\r\n render(props) {\r\n return this.state.products.length > 0 ? (\r\n <div className={styles.contentProducts}>\r\n <Title title=\"Qual bem você quer adquirir?\" />\r\n\r\n <ProductChooser\r\n products={this.state.products}\r\n productClicked={this.productClickHandler}\r\n selectedProduct={this.state.selectedProduct}\r\n />\r\n\r\n {this.state.selectedProduct.id ? (\r\n <SimulationChooser\r\n ref={(el) => {\r\n this.targetDiv = el;\r\n }}\r\n simulationClicked={this.simulationChooserClickHandler}\r\n selectedSimulation={this.state.selectedSimulation}\r\n selectedProduct={this.state.selectedProduct}\r\n />\r\n ) : null}\r\n\r\n {this.state.selectedSimulation.length > 0 ? (\r\n <SimulationDetail\r\n ref={(el) => {\r\n this.targetDiv = el;\r\n }}\r\n simulate={this.startSimulationHandler}\r\n valueChanged={this.simulationValueHandler}\r\n limits={this.getFormatedLimits()}\r\n type={this.state.selectedSimulation}\r\n isValid={this.validate(this.getLimits(), this.state.value)}\r\n value={this.state.value}\r\n selectedProduct={this.state.selectedProduct}\r\n />\r\n ) : null}\r\n </div>\r\n ) : null;\r\n }\r\n}\r\n\r\nexport const simulationType = {\r\n PARCELA: \"parcela\",\r\n CREDITO: \"credito\",\r\n};\r\n\r\nexport default Products;\r\n","import React from \"react\";\r\nimport styles from \"./OfferType.module.sass\";\r\n\r\nconst offerType = props => {\r\n const className = props.inline ? styles.InlineLabel : styles.OfferLabel;\r\n return (\r\n <>\r\n <div\r\n className={[\r\n styles.OfferType,\r\n props.className,\r\n props.large ? \" \" + styles.large : \"\"\r\n ].join(\" \")}\r\n >\r\n {props.showIcon && !props.inline ? (\r\n <i className={styles.Icon + \" icon icon-consorcio\"} />\r\n ) : null}\r\n <h2 className={className}>\r\n <span>Consórcio </span>\r\n {parseInt(props.type) === 2 ? \"de Veículos\" : \"Imobiliário\"}\r\n </h2>\r\n </div>\r\n <div className={styles.GroupContainer}>\r\n <h3 className={styles.GroupLabel}>{props.groupLabel}</h3>\r\n <p className={styles.GroupNumber}>{props.groupNumber}</p>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default offerType;\r\n","import React from \"react\";\r\nimport styles from \"./KeyValueItem.module.sass\";\r\n\r\nconst keyValueItem = (props) => {\r\n return (\r\n <React.Fragment>\r\n <div\r\n className={[\r\n props.column ? \"flex-column\" : \"flex-row\",\r\n props.className,\r\n ].join(\" \")}\r\n >\r\n <label className={styles.Key}>{props.Key}</label>\r\n <label className={styles.Value}>{props.Value}</label>\r\n </div>\r\n {!props.noDivider ? <div className={styles.divider} /> : null}\r\n </React.Fragment>\r\n );\r\n};\r\n\r\nexport default keyValueItem;\r\n","export 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","import React from \"react\";\r\nimport styles from \"./ExpandArea.module.sass\";\r\nimport { Collapse } from \"react-bootstrap\";\r\n\r\nconst expandArea = (props) => {\r\n return (\r\n <div className={styles.ExpandArea + \" \" + (props.open ? styles.open : \"\")}>\r\n <div\r\n onClick={() => props.onClick(props.index, !props.open)}\r\n className={`${styles.Title} ${props.open ? styles.open : \"\"}`}\r\n >\r\n <label className={props.open || props.container ? styles.open : \"\"}>\r\n {props.title}\r\n </label>\r\n <i\r\n className={\r\n !props.open ? \"icon icon-seta-baixo-p\" : \"icon icon-seta-cima-p\"\r\n }\r\n />\r\n </div>\r\n <Collapse in={props.open}>{props.children}</Collapse>\r\n </div>\r\n );\r\n};\r\n\r\nexport default expandArea;\r\n","import React from \"react\";\r\nimport { Table } from \"react-bootstrap\";\r\nimport styles from \"./Table.module.sass\";\r\n\r\nconst table = props => {\r\n return (\r\n <Table className={[styles.Table, props.className].join(\" \")} responsive>\r\n <thead className={styles.tableHeader}>\r\n <tr>\r\n {props.headers.map((header, index) => (\r\n <th\r\n className={[\r\n header.className,\r\n header.emphasis && styles.emphasis,\r\n ].join(\" \")}\r\n key={index}\r\n >\r\n <div className={styles.rowInfo}>\r\n <span className={styles.customEmphasis}>\r\n {header.text}\r\n {header.info}\r\n </span>\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {props.rows.map((row, index) => (\r\n <tr key={index}>\r\n {Object.keys(row).map((prop, index) => (\r\n <td\r\n key={index}\r\n className={props.headers[index].bold ? styles.bold : \"\"}\r\n >\r\n {row[prop]}\r\n </td>\r\n ))}\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n );\r\n};\r\n\r\nexport default table;\r\n","import React from 'react';\r\nimport styles from './TitleSection.module.sass';\r\n\r\nfunction TitleSection (props) {\r\n return (\r\n <div className={styles.titleSection}>\r\n <h2 className={styles.title}>{props.title}</h2>\r\n </div>\r\n )\r\n};\r\n\r\nexport default TitleSection;\r\n","const ordering = {\r\n quotas: (quotas) => {\r\n return quotas.sort((q1, q2) => {\r\n return q1.inicio - q2.inicio;\r\n });\r\n }\r\n};\r\n\r\n\r\nexport default ordering;\r\n","import React from \"react\";\r\nimport styles from \"./RadioGroup.module.sass\";\r\nimport Input, { inputType } from \"../Input/Input\";\r\n\r\nconst radioGroup = props => {\r\n const onChangeHandler = value => {\r\n if (props.hasOwnProperty(\"onChanged\") && !props.readonly) {\r\n props.onChanged(value);\r\n }\r\n };\r\n\r\n return (\r\n <div className={styles.RadioGroup + (props.column ? \" flex-column\" : \"\")}>\r\n {props.options.map((el, index) => (\r\n <Input\r\n onSelected={() => onChangeHandler(el.value)}\r\n key={index}\r\n selected={el.value === props.value}\r\n type={inputType.RADIO}\r\n icon={el.icon}\r\n >\r\n {el.textBold ? <b>{el.text ? el.text : el.value}</b> : el.text ? el.text : el.value}\r\n {el.textDetails && <span>{el.textDetails}</span> }\r\n </Input>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default radioGroup;\r\n","/* eslint-disable */\r\nimport masks from \"./masks\";\r\nimport currency from \"./currency\";\r\nimport { getCreditCardType, checkCCValidity } from \"./creditCardUtils\";\r\n\r\nconst validation = {\r\n cpf(strCPF) {\r\n let Soma;\r\n let Resto;\r\n Soma = 0;\r\n if (\r\n strCPF === \"00000000000\" ||\r\n strCPF === \"11111111111\" ||\r\n strCPF === \"22222222222\" ||\r\n strCPF === \"33333333333\" ||\r\n strCPF === \"44444444444\" ||\r\n strCPF === \"55555555555\" ||\r\n strCPF === \"66666666666\" ||\r\n strCPF === \"77777777777\" ||\r\n strCPF === \"88888888888\" ||\r\n strCPF === \"99999999999\"\r\n ){\r\n return false;\r\n }\r\n\r\n for (let i = 1; i <= 9; i++){\r\n Soma = 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 false;\r\n }\r\n\r\n Soma = 0;\r\n for (let i = 1; i <= 10; i++){\r\n Soma = 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 cnpj(cnpj) {\r\n cnpj = cnpj.replace(/[^\\d]+/g, \"\");\r\n\r\n if (cnpj === \"\"){\r\n return false;\r\n }\r\n\r\n if (cnpj.length !== 14){\r\n return false;\r\n }\r\n\r\n if (\r\n cnpj === \"00000000000000\" ||\r\n cnpj === \"11111111111111\" ||\r\n cnpj === \"22222222222222\" ||\r\n cnpj === \"33333333333333\" ||\r\n cnpj === \"44444444444444\" ||\r\n cnpj === \"55555555555555\" ||\r\n cnpj === \"66666666666666\" ||\r\n cnpj === \"77777777777777\" ||\r\n cnpj === \"88888888888888\" ||\r\n cnpj === \"99999999999999\"\r\n ){\r\n return false;\r\n }\r\n\r\n var tamanho = cnpj.length - 2;\r\n var numeros = cnpj.substring(0, tamanho);\r\n var digitos = cnpj.substring(tamanho);\r\n var soma = 0;\r\n var pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2){\r\n pos = 9;\r\n }\r\n }\r\n var resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\r\n if (resultado !== +digitos.charAt(0)){\r\n return false;\r\n }\r\n tamanho = tamanho + 1;\r\n numeros = cnpj.substring(0, tamanho);\r\n soma = 0;\r\n pos = tamanho - 7;\r\n for (var i = tamanho; i >= 1; i--) {\r\n soma += numeros.charAt(tamanho - i) * pos--;\r\n if (pos < 2){\r\n pos = 9;\r\n }\r\n }\r\n resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11);\r\n if (resultado !== +digitos.charAt(1)){\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n\r\n required(value) {\r\n if (value.length > 0) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Ops! Este campo é obrigatório preencher\" };\r\n }\r\n },\r\n\r\n maxPercentageValue(value) {\r\n return val => {\r\n if (val <= value) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg: \"A porcentagem não pode ser maior que \" + value + \"%\"\r\n };\r\n }\r\n };\r\n },\r\n\r\n hasLastName(value) {\r\n if (value) {\r\n const parts = value\r\n .trim()\r\n .replace(/\\s\\s+/g, \" \")\r\n .split(\" \");\r\n\r\n if (parts.length > 1 && parts[parts.length - 1].length > 1) {\r\n return {\r\n valid: true\r\n };\r\n } else {\r\n return {\r\n valid: false,\r\n msg: \"O sobrenome deve ser informado.\"\r\n };\r\n }\r\n }\r\n },\r\n\r\n minLength(length) {\r\n return value => {\r\n if (value.length >= length) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg: \"Preencha com no mínimo \" + length + \" caracteres\"\r\n };\r\n }\r\n };\r\n },\r\n\r\n numbersOnly(value) {\r\n if (/^[0-9]*$/.test(value)) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Apenas números são permitidos\" };\r\n }\r\n },\r\n\r\n date(value) {\r\n if (\r\n /^([0-2][0-9]|(3)[0-1])(\\/)(((0)[0-9])|((1)[0-2]))(\\/)\\d{4}$/.test(\r\n masks.date(value)\r\n )\r\n ) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Digite uma data de nascimento válida\" };\r\n }\r\n },\r\n\r\n phone(type) {\r\n return value => {\r\n if (value.length > (type === \"mobile\" ? 10 : 9)) {\r\n return { valid: true };\r\n } else {\r\n if (type === \"landline\" && value.length === 0) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Digite um telefone válido\" };\r\n }\r\n }\r\n };\r\n },\r\n\r\n ddd(dddOptions) {\r\n return value => {\r\n if (value.length === 0) {\r\n return { valid: true };\r\n }\r\n const ddd = value.substr(0, 2);\r\n if (dddOptions.find(el => el.ddd.slice(-2) === ddd)) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Digite um DDD válido\" };\r\n }\r\n };\r\n },\r\n\r\n cep(value) {\r\n if (value.length === 8) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Informe um CEP válido\" };\r\n }\r\n },\r\n\r\n vCpf(value) {\r\n if (validation.cpf(value)) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg: \"Digite um CPF válido\"\r\n };\r\n }\r\n },\r\n\r\n lettersOnly(value) {\r\n if (/^[a-zA-Z\\s]+$/.test(value)) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg: \"Caracteres especiais e/ou números não permitidos\"\r\n };\r\n }\r\n },\r\n\r\n email(value) {\r\n if (/(^\\w.*@\\w+\\.\\w)/.test(value)) {\r\n return { valid: true };\r\n } else {\r\n return { valid: false, msg: \"Digite um email válido\" };\r\n }\r\n },\r\n\r\n greaterThan(limit) {\r\n return value => {\r\n value = value\r\n .replace(\"R$\", \"\")\r\n .split(\".\")\r\n .join(\"\")\r\n .replace(\",\", \".\");\r\n if (parseFloat(value) > limit) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg:\r\n \"Digite um valor maior que R$ \" + currency.numberToCurrency(limit)\r\n };\r\n }\r\n };\r\n },\r\n\r\n lessThan(limit) {\r\n return value => {\r\n value = value\r\n .replace(\"R$\", \"\")\r\n .split(\".\")\r\n .join(\"\")\r\n .replace(\",\", \".\");\r\n if (parseFloat(value) < limit) {\r\n return { valid: true };\r\n } else {\r\n return {\r\n valid: false,\r\n msg:\r\n \"Digite um valor menor que R$ \" + currency.numberToCurrency(limit)\r\n };\r\n }\r\n };\r\n },\r\n\r\n credicCard(value) {\r\n const cardType = getCreditCardType(value);\r\n if (\r\n !cardType.name ||\r\n !cardType.digits.some(d => d === value.length) ||\r\n !checkCCValidity(value)\r\n ) {\r\n return {\r\n valid: false,\r\n msg: \"Cartão de crédito inválido\"\r\n };\r\n }\r\n return {\r\n valid: true\r\n };\r\n },\r\n\r\n creditValidity(value) {\r\n const checkDateFormat = () => {\r\n if (value.length === 4) {\r\n const month = parseInt(value.substr(0, 2));\r\n const year = 2000 + parseInt(value.substr(2, 2));\r\n\r\n if (month === 0 || month > 12) {\r\n return false;\r\n }\r\n\r\n const now = new Date();\r\n const currentYear = now.getFullYear();\r\n const currentMonth = now.getMonth() + 1;\r\n\r\n if (currentYear < year) {\r\n return true;\r\n } else if (currentYear === year) {\r\n return currentMonth <= month;\r\n }\r\n return false;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n if (!checkDateFormat()) {\r\n return {\r\n valid: false,\r\n msg: \"Data de validade inválida\"\r\n };\r\n }\r\n return {\r\n valid: true\r\n };\r\n }\r\n};\r\n\r\nexport default validation;\r\n","import React from 'react';\r\nimport styles from './OfferSimulation.module.sass';\r\nimport ExpandArea from \"../ui/ExpandArea/ExpandArea\";\r\nimport RadioGroup from \"../ui/RadioGroup/RadioGroup\";\r\nimport Input from \"../ui/Input/Input\";\r\nimport Button from '../ui/Button/Button';\r\nimport validation from \"../../utils/validation\";\r\nimport api from \"../../utils/api\";\r\nimport currency from \"../../utils/currency\";\r\nimport KeyValueItem from \"../ui/KeyValueItem/KeyValueItem\";\r\nimport ordering from \"../../utils/ordering\";\r\nimport masks from \"../../utils/masks\";\r\n\r\nclass OfferSimulation extends React.Component {\r\n\r\n state = {\r\n open: false,\r\n simulationType: '',\r\n simulationValue: '',\r\n parcelas: [],\r\n openedIndex: -1\r\n };\r\n\r\n simulationRef = React.createRef();\r\n\r\n simulateHandler = () => {\r\n const input = document.getElementById(\"simulationValue\");\r\n\r\n let validForm = true;\r\n let divToFocus;\r\n\r\n input.focus();\r\n input.blur();\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus ? divToFocus : input;\r\n }\r\n\r\n setTimeout(() => {\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus ? divToFocus : input;\r\n }\r\n\r\n if (validForm) {\r\n this.simulate();\r\n } else {\r\n divToFocus.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n }, 0);\r\n };\r\n\r\n simulate = () => {\r\n const requestBody = {\r\n codigoBem: this.props.oferta.codigoBem,\r\n codigoGrupo: this.props.oferta.identificacao.codigo,\r\n codigoPlano: this.props.oferta.dados.plano.identificacao.codigo,\r\n codigoVenda: this.props.oferta.identificacao.codigoVenda,\r\n codigoTaxa: this.props.oferta.dados.plano.identificacao.codigoTaxa,\r\n tipoOferta: this.state.simulationType,\r\n valor: this.state.simulationType === '%' ? this.state.simulationValue.replace('%', '') : currency.currencyToNumber(this.state.simulationValue)\r\n };\r\n\r\n api.get(api.endpoints.SIMULATION, null, requestBody).then((result) => {\r\n this.setState({parcelas: ordering.quotas(result.data)});\r\n this.simulationRef.scrollIntoView({behavior: \"smooth\", block: \"start\"})\r\n });\r\n };\r\n\r\n simulationTypeHandler = (value) => {\r\n if (value === '%') {\r\n this.setState({simulationType: value, simulationValue: '' + this.props.porcentagemLanceFixo + '%'});\r\n } else {\r\n this.setState({simulationType: value, simulationValue: ''});\r\n }\r\n };\r\n\r\n detailHandler = (index, state) => {\r\n this.setState({\r\n openedIndex: state ? index : -1\r\n });\r\n };\r\n\r\n newSimulationHandler = () => {\r\n this.setState({\r\n simulationType: '',\r\n simulationValue: '',\r\n parcelas: []\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <ExpandArea\r\n open={this.state.open}\r\n onClick={() => this.setState({open: !this.state.open})}\r\n title='Quero simular um lance'\r\n container\r\n >\r\n <div ref={(el) => this.simulationRef = el} className={styles.OfferSimulation}>\r\n {\r\n this.state.parcelas.length > 0 ?\r\n (\r\n <React.Fragment>\r\n <h2 className={styles.title}>Resultado da simulação:</h2>\r\n {this.state.parcelas.map((el, index) => (\r\n <ExpandArea\r\n key={index}\r\n index={index}\r\n open={index === this.state.openedIndex}\r\n onClick={this.detailHandler}\r\n title={\r\n el.inicio === el.fim\r\n ? el.inicio + \"ª parcela\"\r\n : \"da \" + el.inicio + \"ª até a \" + el.fim + \"ª\"\r\n }\r\n >\r\n <div className={styles.parcelasInfo}>\r\n <KeyValueItem\r\n noDivider\r\n Key={\"Com lance\"}\r\n Value={'R$ ' + currency.numberToCurrency(el.valor)}\r\n />\r\n <KeyValueItem\r\n noDivider\r\n Key={\"Sem lance\"}\r\n Value={'R$ ' + currency.numberToCurrency(this.props.parcelas[index].valor)}\r\n />\r\n </div>\r\n </ExpandArea>\r\n ))}\r\n <p className={styles.bottomInfo}>\r\n O valor do crédito e da parcela é corrigido a cada 12 assembleias do grupo, de acordo com o Índice\r\n Nacional de Preços ao Consumidor – INPC, garantindo assim, o seu poder de compra.\r\n </p>\r\n <Button onClick={this.newSimulationHandler}>Fazer uma nova simulação</Button>\r\n </React.Fragment>\r\n ) :\r\n\r\n (\r\n <div className={styles.simulation}>\r\n <h2 className={styles.title}>Simular por:</h2>\r\n <RadioGroup\r\n className={styles.radioSimulation}\r\n options={['%', 'V'].map((el) => ({\r\n text: el === '%' ? 'Lance fixo' : 'Lance livre',\r\n value: el\r\n }))}\r\n value={this.state.simulationType}\r\n onChanged={this.simulationTypeHandler}\r\n >\r\n ></RadioGroup>\r\n <Input\r\n value={this.state.simulationValue}\r\n onChange={(value) => {\r\n this.setState({simulationValue: value})\r\n }}\r\n typeDocument='Valor do lance'\r\n readonly={this.state.simulationType !== 'V'}\r\n validationRules={[validation.required, validation.greaterThan(0), validation.lessThan(this.props.credito)]}\r\n mask={this.state.simulationType !== '%' && masks.currency}\r\n validationTrigger='onChange'\r\n id='simulationValue'\r\n />\r\n <Button onClick={this.simulateHandler}\r\n disabled={this.state.simulationType.length === 0}>Simular</Button>\r\n </div>\r\n )\r\n }\r\n </div>\r\n </ExpandArea>\r\n );\r\n }\r\n}\r\n\r\nexport default OfferSimulation;\r\n","import React from 'react';\r\nimport styles from './DesktopOfferSimulation.module.sass';\r\nimport theme from '../../App.module.sass';\r\nimport RadioGroup from \"../ui/RadioGroup/RadioGroup\";\r\nimport validation from \"../../utils/validation\";\r\nimport Input from \"../ui/Input/Input\";\r\nimport Button from '../ui/Button/Button';\r\nimport api from \"../../utils/api\";\r\nimport ordering from \"../../utils/ordering\";\r\nimport TitleSection from \"../TitleSection/TitleSection\";\r\nimport currency from \"../../utils/currency\";\r\nimport masks from '../../utils/masks';\r\nimport Table from '../ui/Table/Table';\r\n\r\nclass DesktopOfferSimulation extends React.Component {\r\n\r\n state = {\r\n open: false,\r\n simulationType: '',\r\n simulationValue: '',\r\n parcelas: [],\r\n openedIndex: -1\r\n };\r\n\r\n simulationRef = React.createRef();\r\n typeSimulationRef = React.createRef();\r\n \r\n componentDidMount(){\r\n this.typeSimulationRef.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n\r\n simulateHandler = () => {\r\n const input = document.getElementById(\"simulationValue\");\r\n\r\n let validForm = true;\r\n let divToFocus;\r\n\r\n input.focus();\r\n input.blur();\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus ? divToFocus : input;\r\n }\r\n\r\n setTimeout(() => {\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus ? divToFocus : input;\r\n }\r\n\r\n if (validForm) {\r\n this.simulate();\r\n } else {\r\n divToFocus.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n }, 0);\r\n };\r\n\r\n simulate = () => {\r\n const requestBody = {\r\n codigoBem: this.props.oferta.codigoBem,\r\n codigoGrupo: this.props.oferta.identificacao.codigo,\r\n codigoPlano: this.props.oferta.dados.plano.identificacao.codigo,\r\n codigoVenda: this.props.oferta.identificacao.codigoVenda,\r\n codigoTaxa: this.props.oferta.dados.plano.identificacao.codigoTaxa,\r\n tipoOferta: this.state.simulationType,\r\n valor: this.state.simulationType === '%' ? this.state.simulationValue.replace('%', '') : currency.currencyToNumber(this.state.simulationValue)\r\n };\r\n\r\n api.get(api.endpoints.SIMULATION, null, requestBody).then((result) => {\r\n this.setState({parcelas: ordering.quotas(result.data)});\r\n this.simulationRef.scrollIntoView({behavior: \"smooth\", block: \"start\"})\r\n });\r\n };\r\n\r\n simulationTypeHandler = (value) => {\r\n if (value === '%') {\r\n this.setState({simulationType: value, simulationValue: '' + this.props.porcentagemLanceFixo + '%'});\r\n } else {\r\n this.setState({simulationType: value, simulationValue: ''});\r\n }\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n <div className={styles.OfferSimulation} ref={(el) => this.typeSimulationRef = el}>\r\n <div className={[theme.row, styles.simulationForm].join(' ')}>\r\n <h2 className={styles.title}>Simular por:</h2>\r\n <div className={[styles.simulationType, theme.col33].join(' ')}>\r\n <RadioGroup\r\n options={['%', 'V'].map((el) => ({\r\n text: el === '%' ? 'Lance fixo' : 'Lance livre',\r\n value: el\r\n }))}\r\n value={this.state.simulationType}\r\n onChanged={this.simulationTypeHandler}\r\n className={theme.col60}\r\n >\r\n ></RadioGroup>\r\n </div>\r\n\r\n <Input\r\n className={theme.col33}\r\n value={this.state.simulationValue}\r\n onChange={(value) => {\r\n this.setState({simulationValue: value})\r\n }}\r\n typeDocument='Valor do lance'\r\n readonly={this.state.simulationType !== 'V'}\r\n mask={this.state.simulationType !== '%' && masks.currency}\r\n validationRules={[validation.required, validation.greaterThan(0), validation.lessThan(this.props.credito)]}\r\n validationTrigger='onChange'\r\n id='simulationValue'\r\n />\r\n\r\n <Button\r\n disabled={this.state.simulationType.length === 0}\r\n onClick={this.simulateHandler}>Simular\r\n </Button>\r\n </div>\r\n {\r\n this.state.parcelas.length > 0 &&\r\n <div ref={(el) => this.simulationRef = el}>\r\n <TitleSection title=\"Resultado da simulação\"/>\r\n <Table headers={[\r\n {\r\n text: 'Parcelas',\r\n bold: true\r\n },\r\n {\r\n text: 'Com lance',\r\n bold: true\r\n },\r\n {\r\n text: 'Sem lance'\r\n }\r\n ]} rows={\r\n this.state.parcelas.map((el, index) => (\r\n {\r\n interval: (el.inicio === el.fim ? el.inicio + \"ª parcela\" : \"da \" + el.inicio + \"ª até a \" + el.fim + \"ª\"),\r\n comLance: (\"R$ \" + currency.numberToCurrency(el.valor)),\r\n semLance: (\"R$ \" + currency.numberToCurrency(this.props.parcelas[index].valor)),\r\n }\r\n ))}/>\r\n </div>\r\n }\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default DesktopOfferSimulation;\r\n","import React, {useEffect} from 'react';\r\nimport styles from './Alert.module.sass'\r\n\r\n\r\nfunction Alert(props) {\r\n\r\n let alertRef = React.createRef();\r\n\r\n useEffect(() => {\r\n if (props.error) {\r\n alertRef.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n }\r\n }, []);\r\n\r\n return(\r\n <div ref={el => {alertRef = el}} className={[styles.alert, props.error ? styles.error : ''].join(' ')}>\r\n <i className={[\"icon\", props.error ? \"icon-erro-m\" : \"icon-atencao-p\"].join(' ')}/>\r\n <div className={styles.alertContent}>\r\n <h3 className={styles.title}>{props.title}</h3>\r\n <p className={styles.text}>\r\n {props.text}\r\n </p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Alert;\r\n","import React from \"react\";\r\nimport styles from \"./Accordion.module.sass\";\r\n\r\nconst Accordion = ({ title, children, showContent, setShowContent }) => {\r\n return (\r\n <>\r\n <div\r\n className={styles.Title + (showContent ? ` ${styles.Open}` : \"\")}\r\n onClick={setShowContent}\r\n >\r\n <h3>{title}</h3>\r\n <i\r\n className={`${\r\n showContent ? \"icon icon-seta-cima-p\" : \"icon icon-seta-baixo-p\"\r\n } ${styles.Icon} ${showContent ? styles.IconSelected : \"\"}`}\r\n />\r\n </div>\r\n <div className={`${styles.Content} ${showContent ? styles.Display : \"\"}`}>\r\n {children}\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default Accordion;\r\n","import React, { useState } from \"react\";\r\nimport styles from \"./AccordionList.module.sass\";\r\nimport Accordion from \"./Accordion/Accordion\";\r\n\r\nconst AccordionList = ({ listItem }) => {\r\n const [contentArray, setContentArray] = useState(\r\n listItem.map(item => ({ ...item, show: false }))\r\n );\r\n\r\n const onClickShowItem = itemIndex => {\r\n const newContentArray = contentArray.map((item, index) => {\r\n const newItem = { ...item, show: false };\r\n if (itemIndex === index && !contentArray[itemIndex].show) {\r\n newItem.show = true;\r\n }\r\n return newItem;\r\n });\r\n setContentArray(newContentArray);\r\n };\r\n\r\n return (\r\n <ul className={styles.ListItem}>\r\n {contentArray.map((item, index) => {\r\n return (\r\n <li className={styles.Item} key={item.title}>\r\n <Accordion\r\n title={item.title}\r\n showContent={item.show}\r\n setShowContent={() => onClickShowItem(index)}\r\n >\r\n {item.content}\r\n </Accordion>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n};\r\n\r\nexport default AccordionList;\r\n","import React from \"react\";\r\n\r\nexport const getFrequentlyAskedQuestions = (isIBC = false) => [\r\n {\r\n title: \"Como funciona o lance?\",\r\n content: (\r\n <div>\r\n <p>\r\n O lance é uma forma de antecipar sua contemplação. Caso tenha algum\r\n dinheiro reservado, você pode fazer a oferta, como um adiantamento de\r\n parcelas. Existem duas opções de lance: fixo ou livre.\r\n </p>\r\n <h6>\r\n <strong>Lance fixo</strong>\r\n </h6>\r\n <p>\r\n Você pode oferecer 20% do valor que está faltando para quitar o seu\r\n consórcio. Será contemplado aquele que, entre todos, possuir a cota\r\n mais próxima da cota sorteada pela Loteria Federal.\r\n </p>\r\n <h6>\r\n <strong>Lance livre</strong>\r\n </h6>\r\n <p>\r\n Nesse tipo de lance, você poderá ofertar qualquer valor maior que sua\r\n parcela mensal. O lance é convertido em percentual e aquele que\r\n representar o maior valor será considerado vencedor. Em caso de\r\n empate, a cota contemplada será a mais próxima da sorteada.\r\n </p>\r\n <p>\r\n Você pode ofertar lances fixo e livre para a mesma assembleia! Se\r\n houver contemplação por lance fixo, o lance livre será descartado, ou\r\n vice-versa.\r\n </p>\r\n <p>\r\n Ah, você ainda pode usar até 50% do valor do crédito para pagar o\r\n lance ofertado! São três chances de ser contemplado – por sorteio,\r\n lance fixo e lance livre. ;)\r\n </p>\r\n <p style={{ fontSize: 11 }}>\r\n <strong>Lembre-se:</strong> os lances podem ser ofertados até as 20h\r\n do dia anterior da assembleia, por meio da área do cliente ou pela\r\n Central de Serviços e Relacionamento. Ligue{\" \"}\r\n <a href=\"tel:3004 4000\">3004 4000</a> (capitais e regiões\r\n metropolitanas, com o custo de uma ligação local) ou{\" \"}\r\n <a\r\n href=\"tel:0800\r\n 702 4000\"\r\n >\r\n {\" \"}\r\n 0800 702 4000\r\n </a>{\" \"}\r\n (nas demais regiões do Brasil, a ligação é gratuita).\r\n </p>\r\n </div>\r\n ),\r\n },\r\n {\r\n title: \"Posso desistir da compra?\",\r\n content: (\r\n <div>\r\n <p>\r\n Até sete dias a partir da compra do seu Consórcio, você pode desistir\r\n e receber o valor eventualmente pago. Basta fazer o pedido em\r\n “cancelamento de contratos”, no rodapé do nosso site.\r\n </p>\r\n <p>\r\n Após os sete dias, você pode fazer o pedido do seu cancelamento, mas\r\n lembre-se de que, para um grupo de consórcio terminar, leva tempo e,\r\n por isso, você só receberá seu dinheiro de volta no encerramento do\r\n grupo ou nos sorteios mensais das assembleias. Lembre-se de que esse\r\n valor terá um desconto de 10%, conforme previsto no seu contrato de\r\n adesão.\r\n </p>\r\n </div>\r\n ),\r\n },\r\n {\r\n title: \"O que é cobrado na parcela? Pago juros?\",\r\n content: (\r\n <div>\r\n <p>\r\n No Consórcio você não paga juros. Veja para o que o seu dinheiro será\r\n destinado.\r\n </p>\r\n <p>\r\n <strong>Fundo Comum:</strong> é o valor que será reunido para a compra\r\n do bem. É desse fundo que tiramos o crédito que será destinado aos\r\n contemplados e, havendo saldo no encerramento do grupo, será devolvido\r\n aos consorciados ativos e excluídos.\r\n </p>\r\n <p>\r\n <strong>Fundo de Reserva:</strong> esse fundo é essencial para manter\r\n a saúde financeira do grupo. O valor é destinado a uma reserva para\r\n casos imprevistos, como cobrir uma eventual falta de dinheiro no Fundo\r\n Comum e, havendo saldo no encerramento do grupo, ele será devolvido\r\n aos consorciados ativos.\r\n </p>\r\n <p>\r\n <strong>Taxa de Administração:</strong> é o valor que a gente cobra\r\n para administrar seu consórcio. A Taxa de Administração é diferente\r\n dos juros cobrados em outras modalidades, por isso é bem menor. Ela é\r\n dividida durante o tempo contratado: um pedacinho em cada parcela.\r\n </p>\r\n {!isIBC && (\r\n <p>\r\n <strong>Seguro Prestamista:</strong> esse seguro é opcional e\r\n cobrado a partir da 2ª parcela. Em caso de morte ou invalidez total\r\n e permanente do consorciado, o seguro quita o saldo devedor do seu\r\n Consórcio. Trata-se de uma escolha importante para quem quer evitar\r\n deixar esses gastos pra quem ama.\r\n </p>\r\n )}\r\n </div>\r\n ),\r\n },\r\n {\r\n title: \"O valor do crédito pode ser usado para pagar o lance?\",\r\n content: (\r\n <div>\r\n <p>\r\n Sim. Só aqui na Caixa Seguradora você tem a opção de usar até 50% do\r\n valor do crédito para pagar o lance ofertado, sem precisar ter\r\n dinheiro.\r\n </p>\r\n <p>\r\n Se você quiser complementar a oferta com o seu dinheiro, suas chances\r\n de contemplação aumentam.\r\n </p>\r\n <p>\r\n Após ser contemplado, você terá um novo crédito disponível e pode\r\n optar por reduzir o valor das parcelas ou o prazo.\r\n </p>\r\n </div>\r\n ),\r\n },\r\n {\r\n title: \"Como sei dos resultados das assembleias?\",\r\n content: (\r\n <div>\r\n <p>\r\n Você pode ver no nosso site, em “consórcio”, e, em seguida,\r\n “assembleias”.\r\n </p>\r\n <p>\r\n Mensalmente acontece uma assembleia que define quem foi contemplado.\r\n Por isso é importante que você realize o pagamento das suas parcelas\r\n até o vencimento, para não perder o direito à contemplação.\r\n </p>\r\n </div>\r\n ),\r\n },\r\n];\r\n","import React from \"react\";\r\n\r\nimport styles from \"./OfferDetails.module.sass\";\r\nimport Card from \"../ui/Card/Card\";\r\nimport api from \"../../utils/api\";\r\nimport currency from \"../../utils/currency\";\r\nimport OfferType from \"../OfferType/OfferType\";\r\nimport KeyValueItem from \"../ui/KeyValueItem/KeyValueItem\";\r\nimport ExpandArea from \"../ui/ExpandArea/ExpandArea\";\r\nimport { Col } from \"react-bootstrap\";\r\nimport Table from \"../ui/Table/Table\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport TitleSection from \"../TitleSection/TitleSection\";\r\nimport ordering from \"../../utils/ordering\";\r\nimport OfferSimulation from \"../OfferSimulation/OfferSimulation\";\r\nimport DesktopOfferSimulation from \"../OfferSimulation/DesktopOfferSimulation\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\nimport theme from \"../../App.module.sass\";\r\nimport Alert from \"../../components/Alert/Alert\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport Tooltip from \"../ui/Tooltip/Tooltip\";\r\nimport AccordionList from \"../ui/AccordionList/AccordionList\";\r\nimport { getFrequentlyAskedQuestions } from \"../../utils/frequentlyAskedQuestions\";\r\nconst ADM_LABEL = \"Taxa de Administração\";\r\n\r\nconst flexColumn = \"flex-column\"\r\n\r\nconst getEmphasis = condition => condition ? styles.tableEmphasis : styles.noEmphasis\r\nconst getDiscountText = discount => discount? `${ADM_LABEL} com oferta -` : `${ADM_LABEL} -`\r\nconst getParcelText = (begin, end) => begin === end ? `${begin}ª parcela` : `da ${begin}ª até a ${end}ª`\r\nconst getTooltipParcelas = (ibc) => (\r\n <Tooltip className={styles.info}>\r\n {ibc ? (\r\n <>\r\n <p>\r\n É constituído por Fundo Comum, Fundo de Reserva e Taxa de\r\n Administração. A Taxa de Administração é antecipada nas 24 primeiras\r\n parcelas.\r\n </p>\r\n <p>\r\n O valor do crédito e da parcela é corrigido a cada 12 assembleias do\r\n grupo, de acordo com o Índice Nacional de Preços ao Consumidor – INPC,\r\n garantindo assim, o seu poder de compra.\r\n </p>\r\n </>\r\n ) : (\r\n <>\r\n <p>\r\n É constituído por Fundo Comum, Fundo de Reserva, Taxa de Administração\r\n e Seguro Prestamista, se contratado. A Taxa de Administração é\r\n antecipada nas 24 primeiras parcelas.\r\n </p>\r\n <p>\r\n O valor do crédito e da parcela é corrigido a cada 12 assembleias do\r\n grupo, de acordo com o Índice Nacional de Preços ao Consumidor – INPC,\r\n garantindo assim, o seu poder de compra.\r\n </p>\r\n </>\r\n )}\r\n </Tooltip>\r\n);\r\n\r\nconst getTooltipFundoComum = () => (\r\n <Tooltip className={styles.info} title=\"Fundo comum\">\r\n <p>\r\n É o valor que será reunido para a compra do bem. É desse fundo que tiramos\r\n o crédito que será destinado aos contemplados.\r\n </p>\r\n </Tooltip>\r\n);\r\n\r\nconst getTooltipTaxaAdm = () => (\r\n <Tooltip className={styles.info} title=\"Taxa de administração\">\r\n <p>\r\n É o valor que a gente cobra para administrar seu consórcio. A Taxa de\r\n Administração é diferente dos juros cobrados em outras modalidades, por\r\n isso é bem menor. Ela é dividida durante o tempo contratado.\r\n </p>\r\n </Tooltip>\r\n);\r\n\r\nconst getTooltipFundoReserva = () => (\r\n <Tooltip className={styles.info} title=\"Fundo de reserva\">\r\n <p>\r\n Esse fundo é essencial para manter a saúde financeira do grupo. O valor é\r\n destinado a uma reserva para casos de imprevistos como cobrir uma eventual\r\n falta de dinheiro no Fundo Comum e, havendo saldo no encerramento do\r\n grupo, o mesmo será devolvido aos consorciados ativos.\r\n </p>\r\n </Tooltip>\r\n);\r\n\r\nconst getDiscountTooltipText = discount => discount ? (\r\n <span className={styles.discount}>\r\n Taxa de Administração com oferta -{\" \"}\r\n {getTooltipTaxaAdm()}\r\n </span>\r\n) : (\r\n <>\r\n {ADM_LABEL} - {getTooltipTaxaAdm()}\r\n </>\r\n)\r\n\r\nclass OfferDetails extends React.Component {\r\n state = {\r\n vlrParcela: 0,\r\n vlrCredito: 0,\r\n situacao: \"\",\r\n taxaAdministracao: 0,\r\n lanceMedio: 0,\r\n parcelas: [],\r\n openedIndex: -1,\r\n showDesktopSimulation: false,\r\n };\r\n static contextType = AppContext;\r\n\r\n componentDidMount() {\r\n const group = this.props.offer.group;\r\n\r\n const requestBody = {\r\n codigoBem: group.codigoBem,\r\n codigoEmpresa: api.CODIGO_EMPRESA,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n grupo: {\r\n codigo: group.identificacao.codigo,\r\n codigoPlanoVenda: group.dados.plano.identificacao.codigo,\r\n codigoTaxaPlano: group.dados.plano.identificacao.codigoTaxa,\r\n codigoVenda: group.identificacao.codigoVenda,\r\n lanceMedio: group.dados.valorLanceMedio,\r\n },\r\n };\r\n\r\n api.post(api.endpoints.OFFERS_DETAILS, requestBody).then((result) => {\r\n this.setState({\r\n vlrParcela: result.data.dados.valorParcela,\r\n vlrCredito: result.data.dados.valorCredito,\r\n situacao: result.data.dados.situacao,\r\n porcentagemLanceFixo: result.data.dados.porcentagemLanceFixo,\r\n taxaAdministracao: result.data.dados.taxaAdministracao,\r\n taxaAdministracaoOld: result.data.dados.taxaAdministracaoAnterior,\r\n lanceMedio: result.data.dados.lance.valor,\r\n parcelas: ordering.quotas(result.data.dados.plano.detalhes.parcelas),\r\n desconto: result.data.dados.desconto === true,\r\n openedIndex: -1,\r\n });\r\n if (this.props.hasOwnProperty(\"adminTax\")) {\r\n this.props.adminTax(result.data.dados.taxaAdministracao);\r\n }\r\n });\r\n }\r\n\r\n detailHandler = (index, state) => {\r\n this.setState({\r\n openedIndex: state ? index : -1,\r\n });\r\n };\r\n\r\n getOfferText = () => {\r\n if (this.state.desconto){\r\n return \" com oferta\";\r\n } else {\r\n return \"\";\r\n }\r\n };\r\n\r\n getOfferClassName = () => {\r\n if (this.state.desconto){\r\n return styles.discount;\r\n }else{\r\n return \"\";\r\n }\r\n };\r\n\r\n renderOfferComponent = (mobile) => {\r\n if (this.state.desconto) {\r\n return (\r\n <>\r\n <span className={styles.discountOld}>\r\n de{\" \"}\r\n <span className={styles.oldValue}>\r\n {this.state.taxaAdministracaoOld}%\r\n </span>\r\n </span>\r\n <span className={styles.discountNew}>\r\n por {this.state.taxaAdministracao}%\r\n </span>\r\n </>\r\n );\r\n } else {\r\n if (mobile) {\r\n return <>{`${this.state.taxaAdministracao}%`}</>;\r\n }\r\n return (\r\n <span className={styles.value}>{this.state.taxaAdministracao}%</span>\r\n );\r\n }\r\n };\r\n\r\n getDuration = () =>\r\n this.props.offer == null\r\n ? 0\r\n : this.props.offer.group.dados.plano.prazo.restante;\r\n\r\n render() {\r\n const gaTypeName = `${gaTags.typeFlow}&${this.state.lanceMedio}&-`;\r\n\r\n return (\r\n <div className={styles.OfferDetails}>\r\n {this.props.internalError && (\r\n <div className={theme.alertError}>\r\n <Alert error title=\"Ops!\" text={this.props.internalError()} />\r\n </div>\r\n )}\r\n {this.props.isDesktop ? (\r\n <div className={flexColumn}>\r\n <span className={styles.situacao}>\r\n {enumSituacao[this.state.situacao]}\r\n </span>\r\n <div className={styles.divider} />\r\n <div className={styles.OfferTypeWrapper}>\r\n <OfferType large showIcon={true} type={this.props.productType} />\r\n <div className={flexColumn}>\r\n <span>Parcelas a partir de </span>\r\n <span className={styles.value}>\r\n {\"R$ \" + currency.numberToCurrency(this.state.vlrParcela)}\r\n </span>\r\n <span>em {`${this.getDuration()} meses`}</span>\r\n </div>\r\n <div className={flexColumn}>\r\n <span>Valor do crédito</span>\r\n <span className={styles.value}>\r\n {\"R$ \" + currency.numberToCurrency(this.state.vlrCredito)}\r\n </span>\r\n </div>\r\n <Col md={2} className={flexColumn}>\r\n <span className={this.getOfferClassName()}>\r\n Taxa de Administração {this.getOfferText()}\r\n </span>\r\n {this.renderOfferComponent(false)}\r\n </Col>\r\n <Col md={2} className={flexColumn}>\r\n <span>Não cobramos taxa de adesão</span>\r\n </Col>\r\n </div>\r\n <p className={styles.dispInfo}>Produto sujeito a disponibilidade</p>\r\n\r\n <div className={styles.divider} />\r\n {this.state.parcelas.length > 0 ? (\r\n <React.Fragment>\r\n <TitleSection title=\"Veja os detalhes das parcelas\" />\r\n <Table\r\n className={styles.tableOffer}\r\n headers={[\r\n {\r\n text: \"Parcelas\",\r\n bold: true,\r\n },\r\n {\r\n text: \"Valor das Parcelas -\",\r\n bold: true,\r\n info: getTooltipParcelas(this.context.ibc),\r\n },\r\n {\r\n text: \"Fundo comum -\",\r\n info: getTooltipFundoComum(),\r\n },\r\n {\r\n text: getDiscountText(this.state.desconto),\r\n emphasis: this.state.desconto,\r\n info: getTooltipTaxaAdm(),\r\n },\r\n {\r\n text: \"Fundo Reserva -\",\r\n className: styles.totalColumn,\r\n info: getTooltipFundoReserva(),\r\n },\r\n ]}\r\n rows={this.state.parcelas.map((el) => ({\r\n interval: getParcelText(el.inicio, el.fim),\r\n total: \"R$ \" + currency.numberToCurrency(el.valor),\r\n fundoComum: (\r\n <div className={flexColumn}>\r\n <span>{`R$ ${currency.numberToCurrency(\r\n el.fundoComum.valor\r\n )}`}</span>\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.fundoComum.porcentagem\r\n )}\r\n </span>\r\n </div>\r\n ),\r\n taxaAdministracao: (\r\n <div\r\n className={[\r\n flexColumn,\r\n getEmphasis(this.state.desconto)\r\n ,\r\n ].join(\" \")}\r\n >\r\n <span>{`R$ ${currency.numberToCurrency(\r\n el.taxaAdministracao.valor\r\n )}`}</span>\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.taxaAdministracao.percentual\r\n )}\r\n </span>\r\n </div>\r\n ),\r\n fundoReserva: (\r\n <div className={flexColumn}>\r\n <span>{`R$ ${currency.numberToCurrency(\r\n el.fundoReserva.valor\r\n )}`}</span>\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.fundoReserva.porcentagem\r\n )}\r\n </span>\r\n </div>\r\n ),\r\n }))}\r\n />\r\n <p className={styles.bottomInfo}>\r\n {!this.context.ibc && (\r\n <>\r\n A partir da 2ª parcela, o cálculo desta simulação\r\n considera o seguro prestamista.\r\n <br />\r\n </>\r\n )}\r\n Os percentuais desta simulação são calculados sobre o valor do\r\n crédito.\r\n </p>\r\n </React.Fragment>\r\n ) : (\r\n <h2>Informações sobre parcelas ainda não disponíveis</h2>\r\n )}\r\n\r\n {this.state.situacao === \"A\" &&\r\n this.state.porcentagemLanceFixo > 1 && (\r\n <div className={styles.simulation}>\r\n <TitleSection title=\"Simule um lance\" />\r\n\r\n <div className={styles.simulationHeader}>\r\n <div className={styles.simulationTitle}>\r\n <article className={styles.textSimulation}>\r\n <p>\r\n Lance é uma forma de você aumentar a chance de ser\r\n contemplado antecipando o pagamento das parcelas. Faça\r\n uma simulação de lance e veja como ficará o seu\r\n consórcio em caso de contemplação.\r\n </p>\r\n <p>\r\n A Caixa Seguradora é a única empresa onde você pode{\" \"}\r\n <b>\r\n pagar o lance usando até 50% do valor do crédito.\r\n </b>{\" \"}\r\n Aproveite esta vantagem para conseguir o seu crédito o\r\n quanto antes!\r\n </p>\r\n </article>\r\n </div>\r\n\r\n <div className={styles.buttonSimulation}>\r\n <Button\r\n selected={this.state.showDesktopSimulation}\r\n onClick={() => {\r\n this.setState({\r\n showDesktopSimulation: !this.state\r\n .showDesktopSimulation,\r\n });\r\n }}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={`${gaTypeName}Lance`}\r\n data-gafunc={`${gaTypeName}QueroSimularLance`}\r\n >\r\n Quero simular um lance\r\n </Button>\r\n </div>\r\n </div>\r\n <div className={styles.divider} />\r\n {this.state.showDesktopSimulation && (\r\n <DesktopOfferSimulation\r\n parcelas={this.state.parcelas}\r\n credito={this.state.vlrCredito}\r\n oferta={this.props.offer && this.props.offer.group}\r\n porcentagemLanceFixo={this.state.porcentagemLanceFixo}\r\n />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <React.Fragment>\r\n <p className={styles.dispInfo}>Produto sujeito a disponibilidade</p>\r\n <Card showHeader={true}>\r\n <div className={styles.OfferTypeWrapper}>\r\n <OfferType showIcon={true} type={this.props.productType} />\r\n <span className={styles.situacao}>\r\n {enumSituacao[this.state.situacao]}\r\n </span>\r\n </div>\r\n <div className={styles.divider} />\r\n <KeyValueItem\r\n Key={\"Valor do crédito\"}\r\n Value={\"R$ \" + currency.numberToCurrency(this.state.vlrCredito)}\r\n />\r\n <KeyValueItem\r\n Key={\"Parcelas a partir de\"}\r\n Value={\"R$ \" + currency.numberToCurrency(this.state.vlrParcela)}\r\n />\r\n <KeyValueItem Key={\"Durante\"} Value={`${this.getDuration()} meses`} />\r\n <KeyValueItem\r\n Key={\r\n <span className={this.getOfferClassName()}>\r\n {ADM_LABEL}\r\n {this.getOfferText()}\r\n </span>\r\n }\r\n Value={this.renderOfferComponent(true)}\r\n />\r\n <KeyValueItem noDivider Key={\"Não cobramos taxa de adesão\"} />\r\n </Card>\r\n\r\n {this.state.parcelas.length > 0 ? (\r\n <React.Fragment>\r\n <TitleSection title=\"Veja os detalhes das parcelas\" />\r\n {this.state.parcelas.map((el, index) => (\r\n <ExpandArea\r\n key={index}\r\n index={index}\r\n open={index === this.state.openedIndex}\r\n onClick={this.detailHandler}\r\n title={getParcelText(el.inicio, el.fim)}\r\n >\r\n <div className={styles.parcelasInfo}>\r\n <KeyValueItem\r\n Key={<>Fundo comum - {getTooltipFundoComum()}</>}\r\n Value={\r\n <div className={flexColumn}>\r\n <span>\r\n {`R$ ${currency.numberToCurrency(\r\n el.fundoComum.valor\r\n )} - `}\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.fundoComum.porcentagem\r\n )}\r\n </span>\r\n </span>\r\n </div>\r\n }\r\n column\r\n />\r\n <KeyValueItem\r\n Key={\r\n getDiscountTooltipText(this.state.desconto)\r\n }\r\n Value={\r\n <div className={flexColumn}>\r\n <span>\r\n {`R$ ${currency.numberToCurrency(\r\n el.taxaAdministracao.valor\r\n )} - `}\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.taxaAdministracao.percentual\r\n )}\r\n </span>\r\n </span>\r\n </div>\r\n }\r\n column\r\n />\r\n <KeyValueItem\r\n Key={<>Fundo reserva - {getTooltipFundoReserva()}</>}\r\n Value={\r\n <div className={flexColumn}>\r\n <span>\r\n {`R$ ${currency.numberToCurrency(\r\n el.fundoReserva.valor\r\n )} - `}\r\n <span className={styles.subtitle}>\r\n {currency.numberToPercentage(\r\n el.fundoReserva.porcentagem\r\n )}\r\n </span>\r\n </span>\r\n </div>\r\n }\r\n column\r\n />\r\n <KeyValueItem\r\n noDivider\r\n Key={\"Total\"}\r\n Value={\"R$ \" + currency.numberToCurrency(el.valor)}\r\n />\r\n </div>\r\n </ExpandArea>\r\n ))}\r\n <p className={styles.bottomInfo}>\r\n {!this.context.ibc && (\r\n <>\r\n A partir da 2ª parcela, o cálculo desta simulação\r\n considera o seguro prestamista.\r\n <br />\r\n </>\r\n )}\r\n Os percentuais desta simulação são calculados sobre o valor do\r\n crédito.\r\n </p>\r\n </React.Fragment>\r\n ) : (\r\n <h2>Informações sobre parcelas ainda não disponíveis</h2>\r\n )}\r\n\r\n {this.state.situacao === \"A\" &&\r\n this.state.porcentagemLanceFixo > 1 && (\r\n <div className={styles.simulation}>\r\n <TitleSection title=\"Simule um lance\" />\r\n <OfferSimulation\r\n parcelas={this.state.parcelas}\r\n credito={this.state.vlrCredito}\r\n oferta={this.props.offer && this.props.offer.group}\r\n porcentagemLanceFixo={this.state.porcentagemLanceFixo}\r\n />\r\n </div>\r\n )}\r\n </React.Fragment>\r\n )}\r\n\r\n <TitleSection title=\"Tire suas dúvidas sobre o Consórcio\" />\r\n <AccordionList\r\n listItem={getFrequentlyAskedQuestions(this.context.ibc)}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport const enumSituacao = {\r\n A: \"Grupo em andamento\",\r\n F: \"Grupo em formação\",\r\n};\r\n\r\nexport default OfferDetails;\r\n","const dateUtils = {\r\n format: (date) => {\r\n const day = dateUtils.padStart(date.getDate().toString());\r\n const month = dateUtils.padStart((date.getMonth() + 1).toString());\r\n const year = date.getFullYear();\r\n return day + \"/\" + month + \"/\" + year;\r\n },\r\n\r\n format2Service: (date) => {\r\n\r\n date = new Date(date.substring(3, 6) + date.substring(0, 3) + date.substring(6))\r\n\r\n const day = dateUtils.padStart(date.getDate().toString());\r\n const month = dateUtils.padStart((date.getMonth() + 1).toString());\r\n const year = date.getFullYear();\r\n return year + '-' + month + '-' + day + 'T00:00:00'\r\n },\r\n\r\n formatToChat: (date) => {\r\n date = new Date(date);\r\n\r\n const day = dateUtils.padStart(date.getDate().toString());\r\n const month = dateUtils.padStart((date.getMonth() + 1).toString());\r\n const year = date.getFullYear();\r\n return year + '%2D' + month + '%2D' + day\r\n },\r\n\r\n padStart: (text) => {\r\n if (text.length === 1) {\r\n text = '0' + text\r\n }\r\n return text;\r\n }\r\n};\r\n\r\n\r\nexport default dateUtils;\r\n\r\n","import { useContext } from 'react';\r\nimport AppContext from \"../contexts/appContext\";\r\nimport masks from '../utils/masks';\r\nimport { emptyIfNull } from '../utils/formatters'\r\nimport { enumSituacao } from '../components/OfferDetails/OfferDetails';\r\nimport api from \"../utils/api\";\r\nimport dateUtils from \"../utils/date\";\r\n\r\n\r\nconst buildParam = (key, value) => `${encodeURIComponent(`${key}=`)}${value}`;\r\n\r\nconst basicParams = () =>\r\n [buildParam('name', 'VISITANTE'),\r\n buildParam('email', 'VISITANTE@VISITANTE.COM.BR'),\r\n buildParam('phone', '111111111'),\r\n ].join('&');\r\n\r\nconst consortiumDatas = (\r\n identifier = '',\r\n product = '',\r\n simulationValue = '',\r\n value = '',\r\n group = '',\r\n creditValue = '',\r\n term = '',\r\n situationGroup = '',\r\n CPFCNPJ = '',\r\n incomeOrRevenues = '',\r\n spouseIncome = '',\r\n document = '',\r\n birthDateOrFoundationDate = '',\r\n maritalStatus = '',\r\n sex = '',\r\n profession = '',\r\n motherName = '',\r\n CEP = '',\r\n insurance = '',\r\n paymentMethods = '',\r\n proposal = '',\r\n legalNature = '',\r\n branchActivity = '',\r\n capitalValue = '',\r\n associatesCPF = '',\r\n name = '',\r\n email = '',\r\n phone = ''\r\n) =>\r\n [\r\n buildParam('NomeOuRazaoSocial', name),\r\n buildParam('Email', email),\r\n buildParam('Celular', phone),\r\n buildParam('Identificador', identifier),\r\n buildParam('Produto', product),\r\n buildParam('Simulacao', simulationValue),\r\n buildParam('ValorParcela', value),\r\n buildParam('Grupo', group),\r\n buildParam('ValorCredito', creditValue),\r\n buildParam('Prazo', term),\r\n buildParam('SituacaoGrupo', `${situationGroup}`),\r\n buildParam('CPFCNPJ', CPFCNPJ),\r\n buildParam('RendaOuFaturamento', incomeOrRevenues),\r\n buildParam('RendaConjuge', spouseIncome),\r\n buildParam('RGOuDocumento', document),\r\n buildParam('DtNascimentoOuDtFundacao', dateUtils.formatToChat(birthDateOrFoundationDate)),\r\n buildParam('StCivil', maritalStatus),\r\n buildParam('Sexo', sex),\r\n buildParam('Profissao', profession),\r\n buildParam('NomeMae', motherName),\r\n buildParam('CEP', CEP),\r\n buildParam('Seguro', insurance),\r\n buildParam('FormaPagamento', paymentMethods),\r\n buildParam('Proposta', proposal),\r\n buildParam('NaturezaJuridica', legalNature),\r\n buildParam('RamoAtividade', branchActivity),\r\n buildParam('ValorCapitalSocial', capitalValue),\r\n buildParam('CPFSocios', associatesCPF)\r\n ].join(encodeURIComponent(' ; '));\r\n\r\n\r\n\r\nconst formatParameter = (condition, value) => {\r\n return emptyIfNull(condition && value());\r\n};\r\n\r\nconst chatHandler = (context, basicParams, otherParams) => {\r\n window.open(\r\n `${context.product.id === \"1\" ? api.endpoints.DIRECT_CHAT().imovel : api.endpoints.DIRECT_CHAT().veiculo}${basicParams}&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 partners = (partners) => {\r\n return partners.map(data => data.identificacao.codigo).join();\r\n}\r\n\r\nconst useChatUrl = () => {\r\n const context = useContext(\r\n AppContext\r\n );\r\n\r\n const isClient = context.client && context.client.pessoa;\r\n const path = window.location.pathname;\r\n const page = path.split(\"/\").pop();\r\n const getChatLink = () => {\r\n return `${consortiumDatas(\r\n page,\r\n context.product.nome,\r\n formatParameter(context.simulationValue, () => masks.currency(context.simulationValue.toString())),\r\n formatParameter(context.selectedOffer, () => masks.currency(context.selectedOffer.dados.valorParcela.toString())),\r\n formatParameter(context.selectedOffer, () => context.selectedOffer.identificacao.codigoNegocio),\r\n formatParameter(context.selectedOffer, () => masks.currency(context.selectedOffer.dados.valorCredito.toString())),\r\n formatParameter(context.selectedOffer, () => context.selectedOffer.dados.plano.prazo.total),\r\n formatParameter(context.selectedOffer, () => enumSituacao[context.selectedOffer.dados.situacao]),\r\n formatParameter(context.document, () => context.document),\r\n formatParameter(context.incomeValue, () => context.incomeValue),\r\n formatParameter(context.secondaryIncomeValue, () => masks.currency(context.secondaryIncomeValue.toString())),\r\n formatParameter(context.copyPerson, () => formatParameter(context.copyPerson.dadosPessoaJuridica, () => context.copyPerson.dadosPessoaJuridica.documento.codigo)),\r\n formatParameter(context.copyPerson, () => context.copyPerson.dadosPessoaFisica ? context.copyPerson.dadosPessoaFisica.dataNascimento : context.copyPerson.dadosPessoaJuridica.dataFundacao),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaFisica, () => context.client.pessoa.dadosPessoaFisica.estadoCivil.valor)),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaFisica, () => context.client.pessoa.dadosPessoaFisica.sexo.valor)),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaFisica, () => context.client.pessoa.dadosPessoaFisica.profissao.valor)),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaFisica, () => context.client.pessoa.dadosPessoaFisica.filiacao.mae)),\r\n formatParameter(isClient, () => context.client.pessoa.endereco.cep),\r\n formatParameter(context.insurance, () => context.insurance),\r\n formatParameter(context.paymentType, () => context.paymentType),\r\n formatParameter(context.proposalCode, () => context.proposalCode),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaJuridica, () => context.client.pessoa.dadosPessoaJuridica.ocupacao.valor)),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaJuridica, () => context.client.pessoa.dadosPessoaJuridica.atividade.valor)),\r\n formatParameter(isClient, () => formatParameter(context.client.pessoa.dadosPessoaJuridica, () => masks.currency(context.client.pessoa.dadosPessoaJuridica.informacoesEconomicas.valorCapital.toString()))),\r\n formatParameter(context.copyPerson, () => formatParameter(context.copyPerson.dadosPessoaJuridica, () => partners(emptyIfNull(context.copyPerson.dadosPessoaJuridica.socios)))),\r\n formatParameter(context.copyPerson, () => context.copyPerson.nome),\r\n formatParameter(context.copyPerson, () => context.copyPerson.comunicacao.email),\r\n formatParameter(context.copyPerson, () => `${context.copyPerson.comunicacao.telefones[0].ddd}${context.copyPerson.comunicacao.telefones[0].numero}`),\r\n )\r\n }`;\r\n }\r\n const callChat = () => {\r\n chatHandler(context, basicParams(), getChatLink());\r\n };\r\n return { callChat };\r\n};\r\n\r\nexport default useChatUrl;","import React from \"react\";\r\nimport styles from \"./OfferCard.module.sass\";\r\n\r\nimport Card from \"../ui/Card/Card\";\r\nimport OfferType from \"../OfferType/OfferType\";\r\n\r\nimport currency from \"../../utils/currency\";\r\n\r\nimport Button from \"../ui/Button/Button\";\r\nimport { simulationType } from \"../../containers/Products/Products\";\r\nimport KeyValueItem from \"../ui/KeyValueItem/KeyValueItem\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\nimport useChatUrl from \"../../hooks/useChatUrl\";\r\n\r\nconst NOT_SPECIFIED = \"Não Especificada\";\r\n\r\nconst getProduct = (productType) =>\r\n parseInt(productType) === 1 ? \"Imóvel\" : \"Veículo\";\r\n\r\nconst getGaTypeName = (product, hidden, group) => {\r\n return hidden\r\n ? \"\"\r\n : `${gaTags.type}&${product}&-&${currency.numberToCurrency(\r\n group.dados.valorParcela\r\n )}&-&${group.dados.plano.prazo.restante + `meses`}-`;\r\n};\r\n\r\nconst offerCard = (props) => {\r\n const { callChat } = useChatUrl();\r\n const product = getProduct(props.productType);\r\n const gaTypeName = getGaTypeName(product, props.hidden, props.group);\r\n\r\n return props.hidden ? (\r\n <div className={styles.HiddenOffer} />\r\n ) : (\r\n <li className={styles.OfferCard}>\r\n <Card showHeader={true}>\r\n {!props.isDesktop ? (\r\n <>\r\n <div className={styles.OfferTypeWrapper}>\r\n <OfferType\r\n showIcon={false}\r\n type={props.productType}\r\n groupLabel=\"Grupo\"\r\n groupNumber={props.group.identificacao.codigoNegocio}\r\n />\r\n\r\n <div className={styles.groupStatus}>\r\n {groupStatus[props.group.dados.situacao]}\r\n </div>\r\n </div>\r\n {props.group.desconto && (\r\n <div className={styles.discountBanner}>\r\n <p className={styles.bannerTitle}>\r\n 20<span>%</span>\r\n </p>\r\n <p className={styles.bannerText}>\r\n de desconto na taxa de administração\r\n </p>\r\n </div>\r\n )}\r\n <KeyValueItem\r\n Key={\"Parcelas a partir de\"}\r\n Value={\r\n \"R$ \" +\r\n currency.numberToCurrency(props.group.dados.valorParcela)\r\n }\r\n />\r\n <KeyValueItem\r\n Key={\"Período\"}\r\n Value={props.group.dados.plano.prazo.restante + \" meses\"}\r\n />\r\n <KeyValueItem\r\n Key={\"Valor do crédito\"}\r\n Value={\r\n \"R$ \" +\r\n currency.numberToCurrency(props.group.dados.valorCredito)\r\n }\r\n />\r\n </>\r\n ) : (\r\n <React.Fragment>\r\n <div className={styles.OfferTypeWrapper}>\r\n <OfferType\r\n showIcon={true}\r\n type={props.productType}\r\n groupLabel=\"Grupo\"\r\n groupNumber={props.group.identificacao.codigoNegocio}\r\n />\r\n <div className={styles.groupStatus}>\r\n {groupStatus[props.group.dados.situacao]}\r\n </div>\r\n </div>\r\n <div className={styles.divider} />\r\n {props.simulationType === simulationType.PARCELA ? (\r\n <div>\r\n {props.group.desconto && (\r\n <div className={styles.discountBanner}>\r\n <p className={styles.bannerTitle}>\r\n 20<span>%</span>\r\n </p>\r\n <p className={styles.bannerText}>\r\n de desconto na taxa de administração\r\n </p>\r\n </div>\r\n )}\r\n <div>\r\n <div className={styles.title}>Parcelas a partir de:</div>\r\n <div className={styles.value}>\r\n {\" \"}\r\n {\"R$\" +\r\n currency.numberToCurrency(\r\n props.group.dados.valorParcela\r\n )}{\" \"}\r\n </div>\r\n <div className={styles.subtitle}>\r\n em {props.group.dados.plano.prazo.restante + \" meses\"}\r\n </div>\r\n <div className={styles.divider} />\r\n <div className={styles.complement + \" \" + styles.bold}>\r\n Valor do crédito{\" \"}\r\n {\"R$ \" +\r\n currency.numberToCurrency(props.group.dados.valorCredito)}\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div>\r\n {props.group.desconto && (\r\n <div className={styles.discountBanner}>\r\n <p className={styles.bannerTitle}>\r\n 20<span>%</span>\r\n </p>\r\n <p className={styles.bannerText}>\r\n de desconto na taxa de administração\r\n </p>\r\n </div>\r\n )}\r\n <div className={styles.title}>Valor do crédito:</div>\r\n <div className={styles.value}>\r\n {\" \"}\r\n {\"R$ \" +\r\n currency.numberToCurrency(\r\n props.group.dados.valorCredito\r\n )}{\" \"}\r\n </div>\r\n <div className={styles.divider} />\r\n <div className={styles.complement}>\r\n Parcelas a partir de{\" \"}\r\n <span className={styles.bold}>\r\n {\" \"}\r\n {\"R$ \" +\r\n currency.numberToCurrency(props.group.dados.valorParcela)}\r\n </span>{\" \"}\r\n em{\" \"}\r\n <span className={styles.bold}>\r\n {props.group.dados.plano.prazo.restante + \" meses\"}\r\n </span>\r\n </div>\r\n </div>\r\n )}\r\n <div className={styles.divider} />\r\n </React.Fragment>\r\n )}\r\n <Button\r\n selected\r\n onClick={(event) => {\r\n props.offerChosen({ ...props });\r\n window.dataLayer.push({\r\n event: \"datalayereventos\",\r\n gacategory:\r\n event.target.getAttribute(\"data-gacategory\") || NOT_SPECIFIED,\r\n gatype: event.target.getAttribute(\"data-gatype\") || NOT_SPECIFIED,\r\n gafunc: event.target.getAttribute(\"data-gafunc\") || NOT_SPECIFIED,\r\n });\r\n props.onClick && props.onClick(event);\r\n }}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={`${gaTypeName}CardComprar`}\r\n data-gafunc={`${gaTypeName}BTN.Verdetalhe`}\r\n >\r\n Ver detalhes\r\n </Button>\r\n </Card>\r\n <div className={styles.cardFooter}>\r\n {!props.ibc && !props.group.desconto && process.env.REACT_APP_DISABLE_CHAT !== 'true' && (\r\n <>\r\n Falar no\r\n <span className={styles.link} onClick={() => callChat()}>\r\n Chat\r\n </span>\r\n </>\r\n )}\r\n ou procurar uma\r\n <a\r\n className={styles.link}\r\n href=\"http://www.caixa.gov.br/atendimento/Paginas/encontre-a-caixa.aspx\"\r\n rel=\"noopener noreferrer\"\r\n target=\"_blank\"\r\n >\r\n agência Caixa\r\n </a>\r\n .\r\n </div>\r\n </li>\r\n );\r\n};\r\nexport const groupStatus = {\r\n A: \"em andamento\",\r\n F: \"em formação\",\r\n};\r\n\r\nexport default offerCard;\r\n","import React from \"react\";\r\n\r\nimport Slider from \"rc-slider\";\r\n\r\nimport \"rc-slider/assets/index.css\";\r\nimport \"rc-tooltip/assets/bootstrap.css\";\r\nimport styles from \"./SliderPrice.module.sass\";\r\n\r\nconst sliderWrapper = (props) => {\r\n return (\r\n <div className={styles.sliderContent}>\r\n <h3 className={styles.titleSlider}>\r\n Alterar o valor{\" \"}\r\n {props.simulationType === \"parcela\" ? \"da parcela\" : \"do crédito\"}\r\n </h3>\r\n {props.customInput}\r\n\r\n <div className={styles.sliderContainer}>\r\n <button\r\n className={styles.btnSlider}\r\n onClick={() =>\r\n props.onChange(Math.max(props.value - props.step, props.min))\r\n }\r\n >\r\n -\r\n </button>\r\n\r\n <Slider\r\n onChange={(value) => {\r\n if (document.activeElement.tagName !== \"INPUT\") {\r\n props.onChange(Math.min(value, props.max));\r\n }\r\n }}\r\n value={props.value}\r\n step={props.step}\r\n min={props.min}\r\n max={props.max + (props.max - props.min)%props.step}\r\n handleStyle={{\r\n borderColor: \"#005fc8\",\r\n backgroundColor: \"#005fc8\",\r\n height: 20,\r\n width: 20,\r\n marginTop: -5,\r\n }}\r\n trackStyle={{ backgroundColor: \"#005fc8\", height: 8 }}\r\n railStyle={{ backgroundColor: \"#e8e8e8\", height: 8 }}\r\n />\r\n\r\n <button\r\n className={styles.btnSlider}\r\n onClick={() =>\r\n props.onChange(Math.min(props.value + props.step, props.max))\r\n }\r\n >\r\n +\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default sliderWrapper;\r\n","import React from \"react\";\r\nimport styles from \"./OfferFilter.module.sass\";\r\nimport Input, { inputType } from \"../ui/Input/Input\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport { Collapse } from \"react-bootstrap\";\r\nimport currency from \"../../utils/currency\";\r\nimport SliderWrapper from \"../SliderPrice/SliderPrice\";\r\nimport { simulationType } from \"../../containers/Products/Products\";\r\n\r\nclass OfferFilter extends React.Component {\r\n state = {\r\n open: false,\r\n };\r\n\r\n filterOptions = [\r\n { value: \"PARCELA_ASC\", text: \"Menor parcela\" },\r\n { value: \"PARCELA_DESC\", text: \"Maior parcela\" },\r\n { value: \"CREDITO_DESC\", text: \"Maior valor de crédito\" },\r\n { value: \"CREDITO_ASC\", text: \"Menor valor de crédito\" },\r\n {\r\n value: \"PROXIMITY\",\r\n text:\r\n this.props.simulationType === simulationType.PARCELA\r\n ? \"Parcela aproximada\"\r\n : \"Crédito aproximado\",\r\n },\r\n ];\r\n\r\n render() {\r\n let filterElements;\r\n\r\n if (!this.props.isDesktop) {\r\n filterElements = (\r\n <div className={styles.OfferFilter}>\r\n <div\r\n onClick={() => this.setState({ open: !this.state.open })}\r\n className={styles.filterOffers}\r\n >\r\n Filtrar ofertas\r\n <i\r\n className={\r\n !this.state.open\r\n ? \"icon icon-seta-baixo-p\"\r\n : \"icon icon-seta-cima-p\"\r\n }\r\n />\r\n </div>\r\n <Collapse className={styles.filterContent} in={this.state.open}>\r\n <div>\r\n <p>Ordenar por:</p>\r\n <Input\r\n value={this.props.selectedSort}\r\n type={inputType.DROPDOWN}\r\n onSelect={(value) => this.props.sortChanged(value)}\r\n options={this.filterOptions}\r\n />\r\n <p>Alterar valor da parcela</p>\r\n <Input\r\n type={inputType.CURRENCY}\r\n valid={this.props.isValid}\r\n error={\"Valor da parcela/total do crédito invalido.\"}\r\n value={this.props.value}\r\n onChange={this.props.valueChanged}\r\n />\r\n\r\n <Button\r\n disabled={!this.props.hasChanged || !this.props.isValid}\r\n onClick={this.props.reSimulate}\r\n id=\"alterOffer\"\r\n >\r\n Alterar\r\n </Button>\r\n </div>\r\n </Collapse>\r\n </div>\r\n );\r\n } else {\r\n filterElements = (\r\n <div className={styles.OfferFilter}>\r\n <div className={styles.selectFilters}>\r\n <label className={styles.orderLabel}>Ordenar por: </label>\r\n <Input\r\n value={this.props.selectedSort}\r\n type={inputType.DROPDOWN}\r\n onSelect={(value) => this.props.sortChanged(value)}\r\n options={this.filterOptions}\r\n />\r\n </div>\r\n <SliderWrapper\r\n min={this.props.minValue}\r\n max={this.props.maxValue}\r\n step={this.props.simulationType === \"parcela\" ? 100 : 5000}\r\n value={currency.currencyToNumber(this.props.value)}\r\n onChange={this.props.valueChanged}\r\n simulationType={this.props.simulationType}\r\n customInput={\r\n <Input\r\n type={inputType.CURRENCY}\r\n valid={this.props.isValid}\r\n error={\"Valor da parcela/total do crédito invalido.\"}\r\n value={this.props.value}\r\n onChange={this.props.valueChanged}\r\n />\r\n }\r\n />\r\n <Button\r\n disabled={!this.props.hasChanged || !this.props.isValid}\r\n onClick={this.props.reSimulate}\r\n id=\"alterOffer\"\r\n >\r\n Alterar\r\n </Button>\r\n </div>\r\n );\r\n }\r\n\r\n return filterElements;\r\n }\r\n}\r\n\r\nexport default OfferFilter;\r\n","/* eslint-disable react/prop-types */\r\nimport React from 'react';\r\nimport styles from './OfferData.module.sass';\r\nimport { Link } from 'react-router-dom'\r\nimport OfferType from \"../OfferType/OfferType\";\r\n\r\nconst OfferData = (props) => {\r\n return (\r\n <div className={styles.itemsOffer}>\r\n\r\n <div className={styles.item}>\r\n <p className={styles.itemTitle}> Sua simulação </p>\r\n <div className={styles.typePlan}>\r\n <OfferType inline={props.isDesktop} showIcon={true} type={props.productType}/>\r\n </div>\r\n </div>\r\n\r\n <div className={styles.item}>\r\n <p className={styles.itemTitle}> {'Valores aproximados ' + (props.simulationType === 'parcela' ? 'da parcela' : 'do crédito')} </p>\r\n <p className={styles.values}> \r\n <span>R$</span>\r\n {props.value}\r\n </p>\r\n </div>\r\n\r\n <Link className={styles.link} to=\"/produtos\">Fazer outra simulação </Link>\r\n </div>\r\n )\r\n};\r\n\r\nexport default OfferData;\r\n","import React from \"react\";\r\nimport queryString from \"query-string\";\r\nimport styles from \"./Offers.module.sass\";\r\nimport api from \"../../utils/api\";\r\nimport currency from \"../../utils/currency\";\r\nimport { simulationType } from \"../../containers/Products/Products\";\r\n\r\nimport OfferCard from \"../../components/OfferCard/OfferCard\";\r\nimport OfferFilter from \"../../components/OfferFilter/OfferFilter\";\r\n\r\nimport Button from \"../../components/ui/Button/Button\";\r\nimport mediaQuery from \"../../utils/mediaQuery\";\r\nimport OfferData from \"../../components/OfferData/OfferData\";\r\nimport Title from \"../../components/Title/Title\";\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\nclass Offers extends React.Component {\r\n state = {\r\n groups: [],\r\n showOfferCount: 3,\r\n orderBy: \"\",\r\n isDesktop: false,\r\n value: 0,\r\n simulatedValue: \"0,00\",\r\n selectedOffer: null,\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n componentDidMount() {\r\n if (\r\n mediaQuery.watchIfDesktop((e) => this.setState({ isDesktop: e.matches }))\r\n ) {\r\n this.setState({\r\n isDesktop: true,\r\n showOfferCount: 6,\r\n });\r\n }\r\n\r\n const search = this.props.location.search;\r\n const { tipo_bem } = queryString.parse(search);\r\n if (!this.context.ibc && tipo_bem) {\r\n this.startSimulationHandler();\r\n } else {\r\n this.setState({\r\n orderBy:\r\n this.context.simulationType === simulationType.PARCELA\r\n ? \"PROXIMITY\"\r\n : \"PARCELA_ASC\",\r\n value: currency.currencyToNumber(this.context.simulationValue),\r\n groups: this.context.groups,\r\n simulatedValue: this.context.simulationValue,\r\n });\r\n }\r\n\r\n window.history.pushState(null, null, null);\r\n window.addEventListener(\"popstate\", this.backButtonListener);\r\n }\r\n\r\n componentWillUnmount() {\r\n mediaQuery.unsubscribe();\r\n window.removeEventListener(\"popstate\", this.backButtonListener);\r\n }\r\n\r\n offerChosenHandler = (offer) => {\r\n const url = this.context.redirectToPayment\r\n ? \"/pagamento\"\r\n : \"/confirmar-oferta\";\r\n this.context.setContext({\r\n ...this.context,\r\n selectedOffer: offer.group,\r\n redirectToPayment: false,\r\n });\r\n\r\n this.props.history.push({\r\n pathname: url,\r\n });\r\n };\r\n\r\n backButtonListener = () => {\r\n if (this.context.modalOpen || this.state.selectedOffer) {\r\n this.context.setContext({\r\n ...this.context,\r\n modalOpen: false,\r\n });\r\n\r\n this.setState({ selectedOffer: null });\r\n window.history.pushState(null, null, null);\r\n } else {\r\n this.props.history.goBack();\r\n }\r\n };\r\n\r\n showMoreHandler = () => {\r\n this.setState({\r\n showOfferCount:\r\n this.state.showOfferCount + (this.state.isDesktop ? 6 : 3),\r\n });\r\n };\r\n\r\n sortHandler = (type) => {\r\n this.setState({\r\n orderBy: type,\r\n });\r\n };\r\n\r\n sortCards = (cards) => {\r\n const sort = (offers, type) => {\r\n switch (type) {\r\n case \"PARCELA_ASC\":\r\n return offers.sort(\r\n (a, b) => a.dados.valorParcela - b.dados.valorParcela\r\n );\r\n case \"PARCELA_DESC\":\r\n return offers.sort(\r\n (a, b) => b.dados.valorParcela - a.dados.valorParcela\r\n );\r\n case \"CREDITO_ASC\":\r\n return offers.sort(\r\n (a, b) => a.dados.valorCredito - b.dados.valorCredito\r\n );\r\n case \"CREDITO_DESC\":\r\n return offers.sort(\r\n (a, b) => b.dados.valorCredito - a.dados.valorCredito\r\n );\r\n default:\r\n return offers.sort((a, b) => {\r\n if (this.context.simulationType === simulationType.PARCELA) {\r\n return (\r\n this.calcDistance(\r\n currency.currencyToNumber(this.context.simulationValue),\r\n a.dados.valorParcela\r\n ) -\r\n this.calcDistance(\r\n currency.currencyToNumber(this.context.simulationValue),\r\n b.dados.valorParcela\r\n )\r\n );\r\n }\r\n return (\r\n this.calcDistance(\r\n currency.currencyToNumber(this.context.simulationValue),\r\n a.dados.valorCredito\r\n ) -\r\n this.calcDistance(\r\n currency.currencyToNumber(this.context.simulationValue),\r\n b.dados.valorCredito\r\n )\r\n );\r\n });\r\n }\r\n };\r\n return [\r\n ...sort(\r\n cards.filter((card) => card.desconto),\r\n this.state.orderBy\r\n ),\r\n ...sort(\r\n cards.filter((card) => !card.desconto),\r\n this.state.orderBy\r\n ),\r\n ];\r\n };\r\n\r\n calcDistance = (p1, p2) => {\r\n return Math.abs(p1 - p2);\r\n };\r\n\r\n reSimulateHandler = () => {\r\n this.fetchCards(currency.currencyToNumber(this.state.value));\r\n };\r\n\r\n getLimits(selectedProduct, selectedSimulation) {\r\n let minVal,\r\n maxVal = 0;\r\n if (\r\n selectedProduct.id === \"2\" &&\r\n selectedSimulation === simulationType.CREDITO\r\n ) {\r\n minVal = 25000;\r\n maxVal = 150000;\r\n } else if (\r\n selectedProduct.id === \"2\" &&\r\n selectedSimulation === simulationType.PARCELA\r\n ) {\r\n minVal = 400;\r\n maxVal = 5000;\r\n } else if (\r\n selectedProduct.id === \"1\" &&\r\n selectedSimulation === simulationType.CREDITO\r\n ) {\r\n minVal = 70000;\r\n maxVal = 700000;\r\n } else if (\r\n selectedProduct.id === \"1\" &&\r\n selectedSimulation === simulationType.PARCELA\r\n ) {\r\n minVal = 600;\r\n maxVal = 10000;\r\n }\r\n\r\n return {\r\n minVal: minVal,\r\n maxVal: maxVal,\r\n };\r\n }\r\n\r\n averageValue() {\r\n const search = this.props.location.search;\r\n if (search) {\r\n const values = queryString.parse(search);\r\n return (\r\n (parseFloat(values.valor_minimo) + parseFloat(values.valor_maximo)) / 2\r\n );\r\n }\r\n return 0;\r\n }\r\n\r\n getProducts() {\r\n const requestBody = {\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n };\r\n\r\n return api.post(api.endpoints.PRODUCTS, requestBody);\r\n }\r\n\r\n startSimulationHandler = async () => {\r\n const search = this.props.location.search;\r\n const {\r\n tipo_bem,\r\n tipo_simulacao,\r\n\r\n } = queryString.parse(search);\r\n const selectedSimulation =\r\n tipo_simulacao.toLowerCase() === simulationType.PARCELA\r\n ? simulationType.PARCELA\r\n : simulationType.CREDITO;\r\n\r\n const isParcela = selectedSimulation === simulationType.PARCELA;\r\n\r\n const products = await this.getProducts();\r\n\r\n const selectedProduct = products.data.produtos.find(\r\n (p) => p.id === tipo_bem\r\n );\r\n\r\n const limits = this.getLimits(selectedProduct, selectedSimulation);\r\n\r\n const averageValue = Math.max(limits.minVal, Math.min(this.averageValue(), limits.maxVal));\r\n const simulationValue = currency.numberToCurrency(averageValue);\r\n\r\n const requestBody = {\r\n produto: selectedProduct,\r\n codigoEmpresa: api.CODIGO_EMPRESA,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n creditoFinal: isParcela\r\n ? \"999999999\"\r\n : (averageValue * 1.1).toFixed(2),\r\n creditoInicial: isParcela ? \"0\" : (averageValue * 0.9).toFixed(2),\r\n parcelaInicial: isParcela ? (averageValue * 0.9).toFixed(2) : \"0\",\r\n parcelaFinal: isParcela\r\n ? (averageValue * 1.1).toFixed(2)\r\n : \"999999999\",\r\n rendaTotal: api.RENDA_TOTAL,\r\n };\r\n\r\n api\r\n .post(api.endpoints.OFFERS, requestBody)\r\n .then((result) => {\r\n this.context.setContext({\r\n ...this.context,\r\n title: null,\r\n subtitle: null,\r\n redirectToPayment: false,\r\n product: selectedProduct,\r\n simulationType: selectedSimulation,\r\n simulationValue: simulationValue,\r\n priceValues: this.getLimits(selectedProduct, selectedSimulation),\r\n groups: result.data.bem.grupos,\r\n });\r\n this.setState({\r\n orderBy:\r\n this.context.simulationType === simulationType.PARCELA\r\n ? \"PROXIMITY\"\r\n : \"PARCELA_ASC\",\r\n value: simulationValue,\r\n groups: this.context.groups,\r\n simulatedValue: simulationValue,\r\n });\r\n })\r\n .catch(() => {\r\n this.context.setContext({\r\n ...this.context,\r\n title: null,\r\n subtitle: null,\r\n redirectToPayment: false,\r\n product: selectedProduct,\r\n simulationType: selectedSimulation,\r\n simulationValue: simulationValue,\r\n priceValues: this.getLimits(selectedProduct, selectedSimulation),\r\n groups: [],\r\n });\r\n });\r\n };\r\n\r\n fetchCards = (simulationValue) => {\r\n this.setState({\r\n groups: [],\r\n });\r\n\r\n const isParcela = this.context.simulationType === simulationType.PARCELA;\r\n\r\n this.setState({\r\n simulatedValue: currency.numberToCurrency(simulationValue),\r\n value: simulationValue,\r\n });\r\n\r\n this.context.setContext({\r\n ...this.context,\r\n simulationValue: currency.numberToCurrency(simulationValue),\r\n });\r\n\r\n const requestBody = {\r\n produto: this.context.product,\r\n codigoEmpresa: api.CODIGO_EMPRESA,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n creditoFinal: isParcela\r\n ? \"999999999\"\r\n : (simulationValue * 1.1).toFixed(2),\r\n creditoInicial: isParcela ? \"0\" : (simulationValue * 0.9).toFixed(2),\r\n parcelaInicial: isParcela ? (simulationValue * 0.9).toFixed(2) : \"0\",\r\n parcelaFinal: isParcela\r\n ? (simulationValue * 1.1).toFixed(2)\r\n : \"999999999\",\r\n rendaTotal: api.RENDA_TOTAL,\r\n };\r\n\r\n api.post(api.endpoints.OFFERS, requestBody).then((result) => {\r\n this.setState({\r\n groups: result.data.bem.grupos,\r\n });\r\n });\r\n };\r\n\r\n static validate(limits, value) {\r\n const numberValue = isNaN(value) ? currency.currencyToNumber(value) : value;\r\n return numberValue >= limits.minVal && numberValue <= limits.maxVal;\r\n }\r\n\r\n simulationValueHandler = (value) => {\r\n value = currency.currencyToNumber(value);\r\n if (value !== this.state.value) {\r\n this.setState({\r\n value: value,\r\n valid: Offers.validate(this.context.priceValues, value),\r\n });\r\n }\r\n };\r\n\r\n newSimulationHandler = () => {\r\n this.props.history.push({\r\n pathname: \"/produtos\",\r\n });\r\n };\r\n\r\n render() {\r\n if (!this.context.product) {\r\n return null;\r\n }\r\n\r\n const hasOffers = this.state.groups != null;\r\n const countOffers =\r\n this.state.groups != null ? this.state.groups.length : 0;\r\n const sortedCards =\r\n this.state.groups != null ? this.sortCards([...this.state.groups]) : [];\r\n let hasMoreOffers = false;\r\n let offersToShow;\r\n if (countOffers > this.state.showOfferCount) {\r\n hasMoreOffers = true;\r\n offersToShow = sortedCards.slice(0, this.state.showOfferCount);\r\n } else {\r\n offersToShow = sortedCards;\r\n }\r\n const hiddenElementsCount = hasOffers ? 3 - (offersToShow.length % 3) : 0;\r\n const noOffersDisplay = (\r\n <label className={styles.noOffers}> Sem ofertas disponíveis </label>\r\n );\r\n\r\n return (\r\n <div className={styles.Offers}>\r\n <Title title=\"As cotas apresentadas estão sujeitas a disponibilidade\" />\r\n\r\n <OfferData\r\n value={this.state.simulatedValue}\r\n isDesktop={this.state.isDesktop}\r\n productType={this.context.product.id}\r\n simulationType={this.context.simulationType}\r\n />\r\n\r\n <OfferFilter\r\n selectedSort={this.state.orderBy}\r\n sortChanged={this.sortHandler}\r\n isDesktop={this.state.isDesktop}\r\n reSimulate={this.reSimulateHandler}\r\n valueChanged={this.simulationValueHandler}\r\n type={this.state.selectedSimulation}\r\n isValid={Offers.validate(this.context.priceValues, this.state.value)}\r\n value={currency.numberToCurrency(this.state.value)}\r\n hasChanged={\r\n this.state.value !==\r\n currency.currencyToNumber(this.state.simulatedValue)\r\n }\r\n minValue={this.context.priceValues.minVal}\r\n maxValue={this.context.priceValues.maxVal}\r\n simulatedValue={currency.currencyToNumber(this.state.simulatedValue)}\r\n simulationType={this.context.simulationType}\r\n />\r\n {hasOffers ? (\r\n <ul className={styles.OffersGrid}>\r\n {offersToShow.map((el, index) => {\r\n return (\r\n <OfferCard\r\n key={index}\r\n group={el}\r\n isDesktop={this.state.isDesktop}\r\n simulationType={this.context.simulationType}\r\n productType={this.context.product.id}\r\n offerChosen={this.offerChosenHandler}\r\n ibc={this.context.ibc}\r\n />\r\n );\r\n })}\r\n {hiddenElementsCount === 2 ? (\r\n <React.Fragment>\r\n <OfferCard hidden />\r\n <OfferCard hidden />\r\n </React.Fragment>\r\n ) : hiddenElementsCount === 1 ? (\r\n <OfferCard hidden />\r\n ) : null}\r\n </ul>\r\n ) : (\r\n noOffersDisplay\r\n )}\r\n {hasMoreOffers ? (\r\n <Button\r\n onClick={this.showMoreHandler}\r\n className={styles.detailsButton}\r\n >\r\n Ver mais ofertas\r\n </Button>\r\n ) : null}\r\n {!this.state.isDesktop ? (\r\n <Button\r\n onClick={this.newSimulationHandler}\r\n className={styles.newSimulation}\r\n >\r\n Fazer uma nova simulação\r\n </Button>\r\n ) : null}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Offers;\r\n","import { useState, useCallback, useEffect } from \"react\";\r\n\r\nconst useSticky = (margin = 0) => {\r\n const [sentinel, setSentinel] = useState(null);\r\n const [sticky, setSticky] = useState(false);\r\n\r\n const elementRef = useCallback((ref) => {\r\n if (ref == null) {\r\n return setSentinel(null);\r\n }\r\n const sent = document.createElement(\"div\");\r\n sent.classList.add(\"sticky_sentinel\");\r\n ref.parentElement.appendChild(sent);\r\n setSentinel(sent);\r\n return null;\r\n }, []);\r\n\r\n useEffect(() => {\r\n let observer = null;\r\n if (sentinel) {\r\n observer = new IntersectionObserver(\r\n (records) => {\r\n records.forEach((record) => {\r\n const targetInfo = record.boundingClientRect;\r\n const rootBoundsInfo = record.rootBounds;\r\n setSticky(targetInfo.bottom > rootBoundsInfo.bottom);\r\n });\r\n },\r\n {\r\n threshold: [1],\r\n root: null,\r\n rootMargin: `${margin}px`,\r\n }\r\n );\r\n\r\n observer.observe(sentinel);\r\n }\r\n\r\n return () => observer && observer.unobserve(sentinel);\r\n }, [sentinel, margin]);\r\n\r\n return [elementRef, sticky];\r\n};\r\n\r\nexport default useSticky;\r\n","import React from \"react\";\r\n\r\nimport styles from \"./FooterContent.module.sass\";\r\nimport { withRouter } from \"react-router\";\r\nimport useSticky from \"../../hooks/useSticky\";\r\n\r\nfunction FooterContent(props) {\r\n const [ref, sticky] = useSticky(props.ibc ? -10 : 60);\r\n return (\r\n <div\r\n className={`${styles.footerContent} ${\r\n props.sticky && sticky ? styles.sticky : \"\"\r\n } ${props.canSticky ? styles.canSticky : \"\"}`}\r\n ref={ref}\r\n >\r\n <label\r\n onClick={() => props.history.push({ pathname: props.path })}\r\n className={styles.link}\r\n role=\"link\"\r\n >\r\n <i className=\"icon icon-seta-esquerda\" />\r\n Voltar\r\n </label>\r\n\r\n <div className={styles.textFooter}>\r\n {!props.children && (\r\n <>\r\n <span className={styles.mainText}>{props.mainText}</span>\r\n {props.text}\r\n </>\r\n )}\r\n {props.children}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default withRouter(FooterContent);\r\n","import React from \"react\";\r\nimport mediaQuery from \"../../utils/mediaQuery\";\r\nimport OfferDetails from \"../../components/OfferDetails/OfferDetails\";\r\nimport FooterContent from \"../../components/FooterContent/FooterContent\";\r\nimport Button from \"../../components/ui/Button/Button\";\r\nimport styles from \"./ConfirmOffer.module.sass\";\r\nimport appStyles from \"../../App.module.sass\";\r\n\r\nimport html2canvas from \"html2canvas\";\r\nimport jsPDF from \"jspdf\";\r\nimport AjaxSpinner from \"../../components/AjaxSpinner/AjaxSpinner\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\nimport useChatUrl from \"../../hooks/useChatUrl\";\r\nimport useSticky from \"../../hooks/useSticky\";\r\n\r\nconst ChatLink = () => {\r\n const { callChat } = useChatUrl();\r\n\r\n return (\r\n <span onClick={() => callChat()} className={styles.chatLink}>\r\n {\" \"}\r\n Clique aqui\r\n </span>\r\n );\r\n};\r\n\r\nconst Options = ({\r\n savePdfHandler,\r\n offerConfirmedHandler,\r\n isDesktop,\r\n print,\r\n gaTypeName,\r\n ibc,\r\n}) => {\r\n const [ref, sticky] = useSticky(ibc ? 60 : 125);\r\n return (\r\n <>\r\n <label onClick={savePdfHandler} className={styles.pdf}>\r\n <i className={\"icon icon-download\"} />\r\n Salvar em PDF\r\n </label>\r\n <div className={styles.divider} />\r\n <div\r\n ref={ref}\r\n className={!isDesktop && !print && sticky ? styles.sticky : \"\"}\r\n >\r\n <Button\r\n onClick={offerConfirmedHandler}\r\n className={styles.confirm}\r\n selected\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={`${gaTypeName}`}\r\n data-gafunc={`${gaTypeName}-Continuar`}\r\n >\r\n Quero comprar\r\n </Button>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nclass ConfirmOffer extends React.Component {\r\n state = {\r\n isDesktop: false,\r\n print: false,\r\n adminTax: 0,\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isDesktop: mediaQuery.watchIfDesktop((e) =>\r\n this.setState({ isDesktop: e.matches })\r\n ),\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state.print) {\r\n this.print();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n mediaQuery.unsubscribe();\r\n }\r\n\r\n savePdfHandler = () => {\r\n this.setState({\r\n isDesktop: true,\r\n print: true,\r\n });\r\n };\r\n\r\n offerConfirmedHandler = () => {\r\n this.context.setContext({\r\n ...this.context,\r\n selectedOffer: {\r\n ...this.context.selectedOffer,\r\n adminTax: this.state.adminTax,\r\n },\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/identificacao\",\r\n });\r\n };\r\n\r\n print() {\r\n const appRef = document.getElementsByClassName(appStyles.main)[0];\r\n const width = appRef.offsetWidth;\r\n const height = appRef.offsetHeight;\r\n const xOffset = window.scrollX + appRef.getBoundingClientRect().left;\r\n const yOffset = window.scrollY + appRef.getBoundingClientRect().top;\r\n html2canvas(appRef, {\r\n scale: 2,\r\n width: width,\r\n height: height,\r\n x: xOffset,\r\n y: yOffset,\r\n logging: false,\r\n }).then((canvas) => {\r\n this.setState({\r\n isDesktop: mediaQuery.query.matches,\r\n print: false,\r\n });\r\n const pdf = new jsPDF(\"p\", \"pt\", [width, height]);\r\n const imgData = canvas.toDataURL(\"image/png\");\r\n pdf.addImage(imgData, \"PNG\", 0, 0, width, height);\r\n pdf.save(\"download.pdf\");\r\n });\r\n }\r\n\r\n render() {\r\n const offer = {\r\n group: this.context.selectedOffer,\r\n simulationType: this.context.simulationType,\r\n };\r\n\r\n const gaTypeName = `${gaTags.typeFlow}&${offer.group.dados.valorParcela}&-&${offer.group.dados.plano.prazo.restante}meses&-&${offer.group.dados.valorCredito}`;\r\n\r\n return (\r\n <div className={styles.ConfirmOffer}>\r\n {this.state.print ? <AjaxSpinner loading /> : null}\r\n <OfferDetails\r\n isDesktop={this.state.isDesktop}\r\n offer={offer}\r\n productType={this.context.product.id}\r\n adminTax={(value) => this.setState({ adminTax: value })}\r\n >\r\n Confirm Offer\r\n </OfferDetails>\r\n {!this.state.isDesktop ? (\r\n <Options\r\n savePdfHandler={this.savePdfHandler}\r\n offerConfirmedHandler={this.offerConfirmedHandler}\r\n isDesktop={this.state.isDesktop}\r\n gaTypeName={gaTypeName}\r\n print={this.state.print}\r\n ibc={this.context.ibc}\r\n />\r\n ) : null}\r\n <FooterContent\r\n path=\"/ofertas\"\r\n sticky={!this.state.print && this.state.isDesktop}\r\n canSticky\r\n ibc={this.context.ibc}\r\n >\r\n {this.state.isDesktop ? (\r\n <div className={styles.desktopOptions}>\r\n <Options\r\n savePdfHandler={this.savePdfHandler}\r\n offerConfirmedHandler={this.offerConfirmedHandler}\r\n isDesktop={this.state.isDesktop}\r\n print={this.state.print}\r\n gaTypeName={gaTypeName}\r\n ibc={this.context.ibc}\r\n />\r\n </div>\r\n ) : null}\r\n </FooterContent>\r\n {!this.context.ibc && process.env.REACT_APP_DISABLE_CHAT !== 'true' && (\r\n <p className={styles.chatText}>\r\n Precisa de ajuda? {<ChatLink />} e continue comprando pelo chat e\r\n tire suas dúvidas.\r\n </p>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default ConfirmOffer;\r\n","import React, { Component } from \"react\";\r\nimport classes from \"./IdentificationChooser.module.sass\";\r\nimport Button from \"../ui/Button/Button\";\r\n\r\nclass IdentificationChooser extends Component {\r\n\r\n render() {\r\n return (\r\n <div className={classes.identificationChooser}>\r\n <div className={classes.listButtons}>\r\n <Button\r\n onClick={() => this.props.identifierClicked(identifierType.CPF)}\r\n selected={this.props.selectedIdentifier === identifierType.CPF}\r\n disabled={this.props.ibc && this.props.ibcType !== '1'}\r\n >\r\n Pessoa Física\r\n </Button>\r\n <Button\r\n onClick={() => this.props.identifierClicked(identifierType.CNPJ)}\r\n selected={this.props.selectedIdentifier === identifierType.CNPJ}\r\n disabled={this.props.ibc && this.props.ibcType === '1'}\r\n >\r\n Pessoa Jurídica\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport const identifierType = {\r\n CPF: \"cpf\",\r\n CNPJ: \"cnpj\"\r\n};\r\n\r\nexport default IdentificationChooser;\r\n","import React from \"react\";\r\nimport styles from \"./UserData.module.sass\";\r\nimport Input from \"../ui/Form/Input/Input\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport Title from \"../Title/Title\";\r\nimport masks from \"../../utils/masks\";\r\nimport validation from \"../../utils/validation\";\r\nimport { identifierType } from \"../../components/IdentificationChooser/IdentificationChooser\";\r\n\r\nclass UserData extends React.Component {\r\n targetDiv = React.createRef();\r\n\r\n state = {\r\n value: \"\",\r\n isValid: true\r\n };\r\n\r\n validate = (value = this.state.value) => {\r\n const validateFunc =\r\n value.length <= 11\r\n ? validation.cpf\r\n : validation.cnpj;\r\n if (validateFunc(value)) {\r\n this.props.onChange(value);\r\n this.setState({\r\n isValid: true\r\n });\r\n } else {\r\n this.props.onChange(null);\r\n this.setState({\r\n isValid: false\r\n });\r\n }\r\n this.props.selectedIdentifierChange(value.length <= 11\r\n ? identifierType.CPF\r\n : identifierType.CNPJ);\r\n };\r\n\r\n componentDidMount() {\r\n if (this.props.document) {\r\n this.setState({\r\n value: this.props.document.replace(/\\D/g, \"\")\r\n });\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevProps.selectedIdentifier !== this.props.selectedIdentifier) {\r\n this.setState({\r\n value: \"\",\r\n isValid: true\r\n });\r\n }\r\n if (this.props.ibc && prevState.value !== this.state.value) {\r\n this.validate();\r\n }\r\n }\r\n\r\n scrollToDiv = () => {\r\n this.targetDiv.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n };\r\n\r\n render() {\r\n return (\r\n <div\r\n ref={el => (this.targetDiv = el)}\r\n className={styles.userDataContainer}\r\n >\r\n <Title\r\n title={\r\n \"Digite seu CPF ou CNPJ\"\r\n }\r\n />\r\n\r\n <div className={styles.userDataContent}>\r\n <Input\r\n errorMsg={\r\n this.state.value.length <= 11\r\n ? \"CPF inválido\"\r\n : \"CNPJ inválido\"\r\n }\r\n isValid={this.state.isValid}\r\n typeDocument={this.props.selectedIdentifier}\r\n onChange={value =>\r\n this.setState({ value: value, resetInput: false })\r\n }\r\n maxLength={18}\r\n value={this.state.value}\r\n mask={\r\n this.state.value.length <= 11 ? masks.cpf : masks.cnpj\r\n }\r\n onKeyPress={event => {\r\n return !this.props.ibc && (event.key === \"Enter\" && this.validate());\r\n }}\r\n readonly={this.props.ibc}\r\n />\r\n {!this.props.ibc && (\r\n <Button onClick={() => this.validate()}>Confirmar</Button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default UserData;\r\n","import React, { Component } from \"react\";\r\n\r\nimport styles from \"./IncomeIdentifier.module.sass\";\r\n\r\nimport Title from \"../Title/Title\";\r\nimport Input from \"../ui/Input/Input\";\r\nimport Tooltip from \"../ui/Tooltip/Tooltip\";\r\n\r\nimport Button from \"../ui/Button/Button\";\r\nimport { inputType } from \"../ui/Input/Input\";\r\nimport currency from \"../../utils/currency\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\nconst notSpecified = \"Não Especificada\"\r\nexport class IncomeIdentifier extends Component {\r\n targetDiv = React.createRef();\r\n\r\n state = {\r\n incomeValue: \"0,00\",\r\n partnerIncome: \"0,00\",\r\n hasPartner: false\r\n };\r\n\r\n hasPartnerHandler = event => {\r\n window.dataLayer.push({\r\n event: \"datalayereventos\",\r\n gacategory:\r\n event.target.getAttribute(\"data-gacategory\") || notSpecified,\r\n gatype: event.target.getAttribute(\"data-gatype\") || notSpecified,\r\n gafunc: event.target.getAttribute(\"data-gafunc\") || notSpecified\r\n });\r\n if (this.props.hasOwnProperty(\"onClick\")){\r\n this.props.onClick(event);\r\n }\r\n this.setState({\r\n hasPartner: !this.state.hasPartner\r\n });\r\n };\r\n\r\n checkValidity = () => {\r\n if (currency.currencyToNumber(this.state.incomeValue)) {\r\n if (\r\n this.state.hasPartner &&\r\n currency.currencyToNumber(this.state.partnerIncome) > 0\r\n ) {\r\n return true;\r\n } else if (!this.state.hasPartner) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n onConfirmHandler = () => {\r\n this.props.onConfirm({\r\n primaryValue: currency.currencyToNumber(this.state.incomeValue),\r\n secondaryValue: currency.currencyToNumber(this.state.partnerIncome)\r\n });\r\n };\r\n\r\n scrollToDiv = () => {\r\n this.targetDiv.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n };\r\n\r\n render(props) {\r\n const typePerson =\r\n this.props.typeDocument === \"cpf\" ? \"pessoafisica\" : \"pessoajuridica\";\r\n const gaTypeName = `${gaTags.type}&${typePerson}&-&${this.state.incomeValue}&-`;\r\n\r\n return (\r\n <div\r\n ref={el => {\r\n this.targetDiv = el;\r\n }}\r\n className={styles.IncomeIdentifierDetail}\r\n >\r\n <Title\r\n title={\r\n this.props.typeDocument === \"cpf\"\r\n ? \"Também precisamos saber sua renda mensal\"\r\n : \"Também precisamos saber o faturamento médio da empresa\"\r\n }\r\n tooltip={\r\n this.props.typeDocument === \"cpf\" ? (\r\n <Tooltip>\r\n <p>\r\n <b>\r\n Antes de continuar, temos algo importante para te lembrar.\r\n </b>\r\n </p>\r\n <p>\r\n Ao começar um consórcio é ideal ter uma renda mensal 3x maior\r\n que a parcela escolhida. Por exemplo, se o consórcio escolhido\r\n tiver uma parcela de R$ 600,00, é interessante ter uma renda\r\n mensal de pelo menos R$ 1.800,00. E lembre-se que ao ser\r\n contemplado(a), será preciso comprovar a renda informada.\r\n </p>\r\n </Tooltip>\r\n ) : (\r\n <Tooltip>\r\n <p>\r\n <b>\r\n Antes de continuar, temos algo importante para te lembrar.\r\n </b>\r\n </p>\r\n <p>\r\n Ao começar um consórcio é ideal ter um faturamento mensal 3x\r\n maior que a parcela escolhida. Por exemplo, se o consórcio\r\n escolhido tiver uma parcela de R$ 600,00, é interessante ter\r\n um faturamento de pelo menos R$ 1.800,00. E lembre-se que ao\r\n ser contemplado(a), será preciso comprovar o faturamento\r\n informado.\r\n </p>\r\n </Tooltip>\r\n )\r\n }\r\n />\r\n <div className={styles.content}>\r\n <Input\r\n valid={currency.currencyToNumber(this.state.incomeValue) > 0}\r\n type={inputType.CURRENCY}\r\n onChange={value => this.setState({ incomeValue: value })}\r\n value={this.state.incomeValue}\r\n onKeyPress={event => {\r\n return event.key === \"Enter\" && this.onConfirmHandler();\r\n }}\r\n />\r\n </div>\r\n\r\n {this.props.typeDocument === \"cpf\" &&\r\n this.state.hasPartner === false ? (\r\n <div className={styles.partnerIncome}>\r\n <span\r\n className={[styles.detailsLink, \"ga-eventos\"].join(\" \")}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={`${gaTypeName}DadosPessoais`}\r\n data-gafunc={`${gaTypeName}TXT.ComplementarRenda`}\r\n onClick={this.hasPartnerHandler}\r\n >\r\n Quero somar essa renda com a renda do meu cônjuge.\r\n </span>\r\n <Tooltip>\r\n <p>\r\n Caso a sua renda não seja suficiente para a compra do consórcio,\r\n você pode complementar com a renda do(a) seu(sua) cônjuge.{\" \"}\r\n </p>\r\n <p> Válido para casamento e união estável.</p>\r\n </Tooltip>\r\n </div>\r\n ) : null}\r\n\r\n {this.state.hasPartner ? (\r\n <div className={styles.partnerIncome}>\r\n <Title title=\"Renda do Cônjuge\" />\r\n <span\r\n role=\"link\"\r\n onClick={this.hasPartnerHandler}\r\n className={styles.link}\r\n >\r\n Cancelar\r\n </span>\r\n <div className={styles.content}>\r\n <Input\r\n valid={currency.currencyToNumber(this.state.partnerIncome) > 0}\r\n type={inputType.CURRENCY}\r\n onChange={value => this.setState({ partnerIncome: value })}\r\n value={this.state.partnerIncome}\r\n onKeyPress={event => {\r\n return event.key === \"Enter\" && this.onConfirmHandler();\r\n }}\r\n />\r\n </div>\r\n </div>\r\n ) : null}\r\n <div className={styles.divider} />\r\n <Button\r\n onClick={this.onConfirmHandler}\r\n selected\r\n disabled={!this.checkValidity()}\r\n data-gacategory={gaTags.categoryDefault}\r\n data-gatype={\r\n !this.state.hasPartner\r\n ? `${gaTypeName}DadosPessoais`\r\n : `${gaTypeName}${this.state.partnerIncome}DadosPessoais`\r\n }\r\n data-gafunc={\r\n !this.state.hasPartner\r\n ? `${gaTypeName}TXT.Comprar`\r\n : `${gaTypeName}${this.state.partnerIncome}TXT.Comprar`\r\n }\r\n >\r\n {\" \"}\r\n Comprar{\" \"}\r\n </Button>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default IncomeIdentifier;\r\n","import React from \"react\";\r\n\r\nimport TitleSection from \"../TitleSection/TitleSection\";\r\n\r\nimport styles from \"./ImportantInfos.module.sass\";\r\n\r\nconst ImportantInfos = () => {\r\n return (\r\n <div className={styles.ImportantInfos}>\r\n <TitleSection title=\"Agora que você escolheu qual consórcio quer adquirir, antes de continuar, é importante saber:\"></TitleSection>\r\n <ul className={styles.InfosList}>\r\n <li>\r\n <i className=\"icon icon-pagamento\" />\r\n <p>\r\n O pagamento é feito somente por{\" \"}\r\n <strong>débito em conta Caixa ou boleto bancário.</strong>\r\n </p>\r\n </li>\r\n <li>\r\n <i className=\"icon icon-anexar\" />\r\n <p>\r\n Após a compra, você precisará{\" \"}\r\n <strong>assinar o contrato de forma eletrônica</strong>, por e-mail\r\n ou SMS.\r\n </p>\r\n </li>\r\n <li>\r\n <i className=\"icon icon-meu-seguro\" />\r\n <p>\r\n Se você é pessoa física, alguns documentos são necessários, como:\r\n <strong> identidade, comprovante de renda e CPF</strong>. Se for\r\n pessoa jurídica, precisamos do{\" \"}\r\n <strong>\r\n contrato social ou estatuto, balanço, DRE e balancete\r\n </strong>\r\n .\r\n </p>\r\n </li>\r\n </ul>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ImportantInfos;\r\n","import React from \"react\";\r\nimport useChatUrl from \"../../hooks/useChatUrl\";\r\nimport styles from \"./FooterChat.module.sass\";\r\nimport { withRouter } from \"react-router\";\r\n\r\nfunction FooterChat(props) {\r\n const { callChat } = useChatUrl();\r\n\r\n return (\r\n <>\r\n {props.product && (\r\n <div\r\n className={styles.footerContent}\r\n data-gacategory=\"AutoCompra-Consórcio\"\r\n data-gatype=\"AutoCompra-Consórcio-Chat-Pg.Identificação\"\r\n data-gafunc=\"AutoCompra-Consórcio-Chat-Identificação-Fale com um Especialista\"\r\n >\r\n <label onClick={callChat} className={styles.link} role=\"link\">\r\n <i className=\"icon icon-conversa\" />\r\n {props.text}\r\n </label>\r\n <span className={styles.subtext}>{props.subtext}</span>\r\n </div>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default withRouter(FooterChat);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport styles from \"./Identification.module.sass\";\r\nimport { identifierType } from \"../../components/IdentificationChooser/IdentificationChooser\";\r\nimport UserData from \"../../components/UserData/UserData\";\r\nimport IncomeIdentifier from \"../../components/IncomeIdentifier/IncomeIdentifier\";\r\nimport api from \"../../utils/api\";\r\nimport ImportantInfos from \"../../components/ImportantInfos/ImportantInfos\";\r\n\r\nimport FooterContent from \"../../components/FooterContent/FooterContent\";\r\nimport FooterChat from \"../../components/FooterChat/FooterChat\";\r\nimport Button from \"../../components/ui/Button/Button\";\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\nclass Identification extends Component {\r\n state = {\r\n selectedIdentifier: \"\",\r\n userData: null,\r\n client: \"\",\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n targetDiv = React.createRef();\r\n\r\n componentDidMount() {\r\n let document = \"\";\r\n if (this.context.ibc) {\r\n document =\r\n this.context.ibcUser.type === \"1\"\r\n ? identifierType.CPF\r\n : identifierType.CNPJ;\r\n }\r\n this.setState({\r\n selectedIdentifier: document,\r\n });\r\n }\r\n\r\n userDataHandler = (value) => {\r\n this.setState({\r\n userData: value,\r\n client: {\r\n origem: {\r\n al: false,\r\n cotista: false,\r\n nw: false,\r\n },\r\n },\r\n });\r\n };\r\n\r\n identifierChooserClickHandler = (type) => {\r\n if (type !== this.state.selectedIdentifier) {\r\n this.setState({\r\n selectedIdentifier: type,\r\n });\r\n }\r\n };\r\n\r\n confirmHandler = (incomes) => {\r\n const requestParams = {\r\n renda:\r\n parseFloat(incomes.primaryValue) +\r\n parseFloat(incomes.secondaryValue ? incomes.secondaryValue : 0),\r\n codigoGrupo: this.context.selectedOffer.identificacao.codigo,\r\n codigoBem: this.context.selectedOffer.codigoBem,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n codigoPlano: this.context.selectedOffer.dados.plano.identificacao.codigo,\r\n codigoTaxa: this.context.selectedOffer.dados.plano.identificacao\r\n .codigoTaxa,\r\n codigoVenda: this.context.selectedOffer.identificacao.codigoVenda,\r\n };\r\n\r\n api\r\n .get(api.endpoints.INCOME_VALIDATION, null, requestParams)\r\n .then((result) => {\r\n if (result.data.valida) {\r\n this.context.setContext({\r\n ...this.context,\r\n client: this.state.client,\r\n document: this.state.userData,\r\n incomeValue: incomes.primaryValue,\r\n secondaryIncomeValue: incomes.secondaryValue,\r\n selectedIdentifier: this.state.selectedIdentifier,\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/dados-cliente\",\r\n });\r\n } else {\r\n this.context.setContext({\r\n ...this.context,\r\n error: {\r\n show: true,\r\n chat: this.state.client.origem.cotista,\r\n msg: !this.state.client.origem.cotista\r\n ? \"A sua renda ainda não é compatível com a oferta escolhida. Para começar um consórcio é ideal \" +\r\n \"ter uma renda mensal 3x maior que a parcela escolhida. Por exemplo, se o consórcio \" +\r\n \"escolhido tiver uma parcela de R$ 600,00, você precisa ter uma renda mensal comprovada de pelo menos R$ \" +\r\n \"1.800,00.\"\r\n : \"Para começar um consórcio é ideal ter uma renda mensal 3x maior que a parcela escolhida. \" +\r\n \"Caso queira alterar sua renda, fale com a gente no chat.\",\r\n showChat: this.state.client.origem.cotista,\r\n },\r\n });\r\n }\r\n });\r\n };\r\n\r\n componentDidUpdate() {\r\n if (this.targetDiv.hasOwnProperty(\"scrollToDiv\")) {\r\n this.targetDiv.scrollToDiv();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={styles.contentIdentification}>\r\n <ImportantInfos />\r\n\r\n <UserData\r\n onChange={this.userDataHandler}\r\n selectedIdentifierChange={this.identifierChooserClickHandler}\r\n selectedIdentifier=\"CPF/CNPJ\"\r\n client={this.state.client}\r\n document={this.context.ibc && this.context.ibcUser.cpf}\r\n ibc={this.context.ibc}\r\n />\r\n\r\n {this.state.client &&\r\n !this.state.client.origem.cotista &&\r\n this.state.userData && (\r\n <IncomeIdentifier\r\n ref={(el) => {\r\n this.targetDiv = el;\r\n }}\r\n onConfirm={this.confirmHandler}\r\n typeDocument={\r\n this.state.userData && this.state.userData.length === 11\r\n ? \"cpf\"\r\n : \"cnpj\"\r\n }\r\n client={this.state.client}\r\n />\r\n )}\r\n\r\n {this.state.client &&\r\n this.state.client.origem.cotista &&\r\n this.state.userData && (\r\n <Fragment>\r\n <div className={styles.divider} />\r\n <Button\r\n className={styles.button}\r\n onClick={() =>\r\n this.confirmHandler({\r\n primaryValue:\r\n this.state.userData && this.state.userData.length === 11\r\n ? this.state.client.pessoa.dadosPessoaFisica\r\n .informacoesEconomicas.faixaRenda[0].valor\r\n : this.state.client.pessoa.dadosPessoaJuridica\r\n .informacoesEconomicas.valorFaturamento,\r\n secondaryValue: 0,\r\n })\r\n }\r\n selected\r\n >\r\n {\" \"}\r\n Comprar{\" \"}\r\n </Button>\r\n </Fragment>\r\n )}\r\n\r\n <FooterContent\r\n mainText=\"Atenção\"\r\n text=\"Ao ser contemplado é preciso comprovar a renda informada.\"\r\n path=\"/confirmar-oferta\"\r\n children={\r\n !this.context.ibc &&\r\n process.env.REACT_APP_DISABLE_CHAT !== \"true\" && (\r\n <FooterChat\r\n product={this.context.product}\r\n text=\"Fale com um especialista\"\r\n subtext={\r\n this.context.ibc\r\n ? \"Tire suas dúvidas aqui\"\r\n : \"Tire suas dúvidas e continue comprando pelo chat\"\r\n }\r\n />\r\n )\r\n }\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Identification;\r\n","import React, { useState, useEffect, useContext } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport Card from \"../ui/Card/Card\";\r\nimport styles from \"./PurchaseDetailsCard.module.sass\";\r\nimport OfferType from \"../OfferType/OfferType\";\r\nimport KeyValueItem from \"../ui/KeyValueItem/KeyValueItem\";\r\nimport currency from \"../../utils/currency\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport mediaQuery from \"../../utils/mediaQuery\";\r\nimport OfferDetails from \"../../components/OfferDetails/OfferDetails\";\r\n\r\nconst purchaseDetailsCard = (props) => {\r\n const { selectedOffer } = props.offer;\r\n const [showModal, setShowModal] = useState(false);\r\n const { setContext, ...context } = useContext(AppContext);\r\n\r\n const [desktop, setDesktop] = useState(\r\n mediaQuery.watchIfDesktop((e) => setDesktop(e.matches))\r\n );\r\n\r\n useEffect(() => mediaQuery.unsubscribe, []);\r\n\r\n const showModalHandler = () => {\r\n setContext({ ...context, showModal: true });\r\n setShowModal(true);\r\n };\r\n\r\n const hideModalHandler = () => {\r\n setContext({\r\n ...context,\r\n modalOpen: false,\r\n error: {\r\n show: false,\r\n internalError: null,\r\n },\r\n });\r\n setShowModal(false);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={styles.OfferCard}>\r\n <Card showHeader={true} className={styles.cardForm}>\r\n <div className={styles.cardHeader}>\r\n <OfferType\r\n className={styles.offerTypeForm}\r\n showIcon={true}\r\n type={props.offer.product.id}\r\n groupLabel=\"Grupo\"\r\n groupNumber={selectedOffer.identificacao.codigoNegocio}\r\n />\r\n </div>\r\n <KeyValueItem\r\n className={styles.cardItem}\r\n noDivider\r\n Key={\"Valor do crédito \"}\r\n Value={\r\n \"R$ \" +\r\n currency.numberToCurrency(\r\n props.offer.selectedOffer.dados.valorCredito\r\n )\r\n }\r\n />\r\n <KeyValueItem\r\n className={styles.cardItem}\r\n noDivider\r\n Key={\"Parcelas a partir de \"}\r\n Value={\r\n \"R$ \" +\r\n currency.numberToCurrency(\r\n props.offer.selectedOffer.dados.valorParcela\r\n )\r\n }\r\n />\r\n <KeyValueItem\r\n className={styles.cardItem}\r\n noDivider\r\n Key={\"Durante \"}\r\n Value={\r\n props.offer.selectedOffer.dados.plano.prazo.restante + \" Meses\"\r\n }\r\n />\r\n <KeyValueItem\r\n className={styles.cardItem}\r\n noDivider\r\n Key={\r\n <p className={styles.detailsLink} onClick={showModalHandler}>\r\n Ver detalhes\r\n </p>\r\n }\r\n />\r\n </Card>\r\n </div>\r\n <Modal\r\n centered\r\n dialogClassName={styles.modalDialog}\r\n className={styles.OfferDetails}\r\n show={showModal}\r\n onHide={hideModalHandler}\r\n >\r\n <Modal.Header closeButton />\r\n <Modal.Body>\r\n <OfferDetails\r\n isDesktop={desktop}\r\n offer={{ group: context.selectedOffer }}\r\n productType={context.product.id}\r\n internalError={context.error.internalError}\r\n />\r\n </Modal.Body>\r\n </Modal>\r\n </>\r\n );\r\n};\r\n\r\nexport default purchaseDetailsCard;\r\n","import React, { useState } from \"react\";\r\nimport styles from \"./ExposedPerson.module.sass\";\r\nimport RadioGroup from \"../../ui/RadioGroup/RadioGroup\";\r\nimport Tooltip from \"../../ui/Tooltip/Tooltip\";\r\n\r\nconst exposedPerson = (props) => {\r\n const [exposedPerson, setExposedPerson] = useState(\"N\");\r\n\r\n const getPFMessage = () => {\r\n return (\r\n <b>\r\n {props.cj\r\n ? \"Seu(a) cônjuge é uma pessoa politicamente exposta?\"\r\n : \"Você é uma pessoa politicamente exposta?\"}\r\n </b>\r\n );\r\n };\r\n\r\n return (\r\n <div className={styles.ExposedPersonText}>\r\n <div className={\"flex-row\"}>\r\n <p>\r\n {props.pf ? (\r\n getPFMessage()\r\n ) : (\r\n <b>Você ou algum dos sócios são pessoas politicamente expostas?</b>\r\n )}\r\n <Tooltip>\r\n <p>\r\n Você é considerada uma Pessoa Politicamente Exposta se está ou\r\n esteve nos últimos 5 (cinco) anos, em cargos, empregos ou funções\r\n públicas relevantes, no Brasil ou em outros países. Por exemplo:\r\n chefes de estado, políticos de alto nível, altos servidores\r\n governamentais, judiciais, militares, entre outros. E se você for\r\n representante, familiar ou tenha um relacionamento próximo com\r\n alguém assim, também é considerado PEP.\r\n </p>\r\n </Tooltip>\r\n </p>\r\n </div>\r\n\r\n <RadioGroup\r\n options={[\"Sim\", \"Não\"].map((el) => ({\r\n value: el === \"Sim\" ? \"S\" : \"N\",\r\n text: el,\r\n }))}\r\n value={exposedPerson}\r\n onChanged={(value) => {\r\n setExposedPerson(value);\r\n props.onChange(value);\r\n }}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default exposedPerson;\r\n","const formatters = {\r\n default: (el) => {\r\n return {\r\n value: el.codigo,\r\n text: el.valor\r\n }\r\n },\r\n selectVal: (el) => {\r\n return {\r\n value: el,\r\n text: el.valor\r\n }\r\n },\r\n selectCity: (el) => {\r\n return {\r\n value: el.codigo,\r\n text: el.nome\r\n }\r\n },\r\n selectState: (el) => {\r\n return {\r\n value: el.sigla,\r\n text: el.nome\r\n }\r\n }\r\n};\r\n\r\nexport default formatters;\r\n","import React from \"react\";\r\nimport styles from \"./Fatca.module.sass\";\r\nimport Tooltip from \"../../ui/Tooltip/Tooltip\";\r\nimport RadioGroup from \"../../ui/RadioGroup/RadioGroup\";\r\nimport theme from \"../../../App.module.sass\";\r\nimport Input, { inputType } from \"../../ui/Input/Input\";\r\nimport validation from \"../../../utils/validation\";\r\nimport masks from \"../../../utils/masks\";\r\nimport api from \"../../../utils/api\";\r\nimport formatters from \"../../../utils/select-formatters\";\r\n\r\nclass Fatca extends React.Component {\r\n state = {\r\n fatca: \"N\",\r\n paisNascimento: \"\",\r\n flagPaisObrigacao: \"N\",\r\n paisObrigacaoFiscal: \"\",\r\n paisResidenciaFiscal: \"\",\r\n nif: \"\",\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevState !== this.state) {\r\n this.props.onChange({ ...this.state });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <div className={styles.Fatca}>\r\n <div className={\"flex-row\"}>\r\n <p>\r\n <b>\r\n No exterior, você possui investimentos, rendimentos ou algum tipo\r\n de obrigação fiscal, vínculo trabalhista, familiar, residencial ou\r\n de nascimento?\r\n </b>\r\n <Tooltip>\r\n <p>\r\n FATCA é quando você tem obrigações fiscais, investimentos ou\r\n rendimentos fora do país. Isso inclui ter vínculos trabalhistas,\r\n familiares, residenciais ou de nascimento no exterior.\r\n </p>\r\n </Tooltip>\r\n </p>\r\n </div>\r\n\r\n <RadioGroup\r\n options={[\"Sim\", \"Não\"].map((el) => ({\r\n value: el === \"Sim\" ? \"S\" : \"N\",\r\n text: el,\r\n }))}\r\n value={this.state.fatca}\r\n onChanged={(value) => {\r\n this.setState({ fatca: value });\r\n }}\r\n />\r\n\r\n {this.state.fatca === \"S\" && (\r\n <React.Fragment>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"País de nascimento\"\r\n onSelect={(value) => {\r\n this.setState({ paisNascimento: value });\r\n }}\r\n optionsUrl={api.endpoints.COUNTRY}\r\n formatter={formatters.default}\r\n value={this.state.paisNascimento}\r\n type={inputType.AUTOCOMPLETE}\r\n queryKey=\"pais\"\r\n async\r\n validationRules={[validation.required]}\r\n />\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"País de residência fiscal\"\r\n onSelect={(value) => {\r\n this.setState({ paisResidenciaFiscal: value });\r\n }}\r\n optionsUrl={api.endpoints.COUNTRY}\r\n formatter={formatters.default}\r\n value={this.state.paisResidenciaFiscal}\r\n type={inputType.AUTOCOMPLETE}\r\n queryKey=\"pais\"\r\n async\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <p>\r\n <b>\r\n País com obrigações fiscais por motivo de residência ou\r\n cidadania diferente do país de contratação do consórcio?\r\n </b>\r\n </p>\r\n <RadioGroup\r\n options={[\"Sim\", \"Não\"].map((el) => ({\r\n value: el === \"Sim\" ? \"S\" : \"N\",\r\n text: el,\r\n }))}\r\n value={this.state.flagPaisObrigacao}\r\n onChanged={(value) => {\r\n this.setState({ flagPaisObrigacao: value });\r\n }}\r\n />\r\n\r\n {this.state.flagPaisObrigacao === \"S\" && (\r\n <React.Fragment>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"País de obrigações fiscais\"\r\n onSelect={(value) => {\r\n this.setState({ paisObrigacaoFiscal: value });\r\n }}\r\n optionsUrl={api.endpoints.COUNTRY}\r\n formatter={formatters.default}\r\n value={this.state.paisObrigacaoFiscal}\r\n type={inputType.AUTOCOMPLETE}\r\n queryKey=\"pais\"\r\n async\r\n validationRules={[validation.required]}\r\n />\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Número de identificação fiscal\"\r\n value={this.state.nif}\r\n onChange={(value) => {\r\n this.setState({ nif: value });\r\n }}\r\n type=\"text\"\r\n mask={masks.numberOnly}\r\n validationRules={[\r\n validation.required,\r\n validation.numbersOnly,\r\n ]}\r\n />\r\n </div>\r\n </React.Fragment>\r\n )}\r\n </React.Fragment>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Fatca;\r\n","import React, { Fragment } from \"react\";\r\nimport styles from \"./PersonalData.module.sass\";\r\nimport theme from \"../../../App.module.sass\";\r\n\r\nimport Input from \"../../ui/Input/Input\";\r\nimport TitleSection from \"../../TitleSection/TitleSection\";\r\nimport ExpodedPerson from \"../ExposedPerson/ExposedPerson\";\r\n\r\nimport masks from \"../../../utils/masks\";\r\nimport api from \"../../../utils/api\";\r\nimport formatters from \"../../../utils/select-formatters\";\r\nimport { inputType } from \"../../ui/Input/Input\";\r\nimport RadioGroup from \"../../../components/ui/RadioGroup/RadioGroup\";\r\nimport validation from \"../../../utils/validation\";\r\nimport currency from \"../../../utils/currency\";\r\nimport dateUtils from \"../../../utils/date\";\r\nimport Fatca from \"../Fatca/Fatca\";\r\nimport AppContext from \"../../../contexts/appContext\";\r\n\r\nclass PersonalData extends React.PureComponent {\r\n state = {\r\n nome: \"\",\r\n cpf: masks.cpf(this.props.document),\r\n documento: \"\",\r\n emissor: \"\",\r\n nascimento: \"\",\r\n estadocivil: \"\",\r\n estadocivilName: \"\",\r\n nacionalidade: \"\",\r\n estado: \"\",\r\n naturalidade: \"\",\r\n acessibilidade: \"\",\r\n sexo: \"F\",\r\n profissao: \"\",\r\n profissaoName: \"\",\r\n mae: \"\",\r\n renda: \"R$ \" + currency.numberToCurrency(this.props.income),\r\n celular: \"\",\r\n fixo: \"\",\r\n email: \"\",\r\n exposed: \"N\",\r\n fatca: {\r\n fatca: \"N\",\r\n },\r\n conjuge: {\r\n codigo: \"\",\r\n nome: \"\",\r\n cpf: \"\",\r\n documento: \"\",\r\n emissor: \"\",\r\n nascimento: \"\",\r\n estado: \"\",\r\n naturalidade: \"\",\r\n acessibilidade: \"\",\r\n sexo: \"F\",\r\n renda: currency.numberToCurrency(this.props.secondaryIncome),\r\n exposed: \"N\",\r\n cotista: false,\r\n showFields: false,\r\n },\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n ddds = [];\r\n cotista = this.props.data.origem.cotista;\r\n person = this.props.data.pessoa;\r\n\r\n onChangeHandler = (value, name) => {\r\n if ((name === \"celular\" || name === \"fixo\") && value.length > 9) {\r\n const ddd = value.substr(0, 2);\r\n const dddInfo = this.ddds.find((el) => el.ddd.slice(-2) === ddd);\r\n if (dddInfo) {\r\n this.setState({\r\n [`${name}Details`]: {\r\n number: value.substr(2),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade,\r\n },\r\n [name]: value,\r\n });\r\n return;\r\n }\r\n }\r\n this.setState({ [name]: value });\r\n };\r\n\r\n componentDidMount() {\r\n this.fetchDDDs();\r\n\r\n if (this.context.ibc) {\r\n this.setState({\r\n nome: this.context.ibcUser.nome,\r\n cpf: this.context.ibcUser.cpf,\r\n documento: this.context.ibcUser.documento,\r\n emissor: `${this.context.ibcUser.emissorCode}/${this.context.ibcUser.emissorUF}`,\r\n nascimento: this.context.ibcUser.nascimento,\r\n estadocivil: this.context.ibcUser.estadocivil,\r\n estadocivilName: this.context.ibcUser.estadocivilName,\r\n nacionalidade: this.context.ibcUser.nacionalidade,\r\n estado: this.context.ibcUser.estado,\r\n naturalidade: this.context.ibcUser.naturalidade,\r\n acessibilidade: this.context.ibcUser.acessibilidade,\r\n sexo:\r\n this.context.ibcUser.sexo === \"\" ? \"F\" : this.context.ibcUser.sexo,\r\n profissao: \"\",\r\n profissaoName: this.context.ibcUser.profissaoName,\r\n mae: this.context.ibcUser.mae,\r\n renda: \"R$ \" + currency.numberToCurrency(this.props.income),\r\n celular: this.context.ibcUser.celular,\r\n fixo: this.context.ibcUser.fixo,\r\n email: this.context.ibcUser.email,\r\n });\r\n } else if (this.cotista) {\r\n this.setState({\r\n nome: this.person.nome,\r\n cpf: masks.cpf(this.person.identificacao.codigo),\r\n documento: this.person.dadosPessoaFisica.documento.codigo,\r\n emissor: this.person.dadosPessoaFisica.documento.orgaoEmissor,\r\n nascimento: dateUtils.format(\r\n new Date(this.person.dadosPessoaFisica.dataNascimento)\r\n ),\r\n estadocivil: this.person.dadosPessoaFisica.estadoCivil.codigo,\r\n estadocivilName: this.person.dadosPessoaFisica.estadoCivil.valor,\r\n nacionalidade: this.person.dadosPessoaFisica.nacionalidade.valor,\r\n estado: this.person.endereco.estado,\r\n naturalidade: this.person.dadosPessoaFisica.naturalidade.valor,\r\n acessibilidade: `${parseInt(\r\n this.person.dadosPessoaFisica.acessibilidade.codigo\r\n )}`,\r\n sexo: this.person.dadosPessoaFisica.sexo.codigo,\r\n profissao: `${parseInt(\r\n this.person.dadosPessoaFisica.profissao.codigo\r\n )}`,\r\n profissaoName: this.person.dadosPessoaFisica.profissao.valor,\r\n mae: this.person.dadosPessoaFisica.filiacao.mae,\r\n renda: `R$ ${currency.numberToCurrency(\r\n this.person.dadosPessoaFisica.informacoesEconomicas.faixaRenda[0]\r\n .valor\r\n )}`,\r\n celular: \"\",\r\n fixo: \"\",\r\n email: \"\",\r\n });\r\n }\r\n }\r\n\r\n fetchDDDs = () => {\r\n api.get(api.endpoints.DDD).then((result) => {\r\n this.ddds = result.data;\r\n if (this.props.data.pessoa.dadosPessoaFisica || this.context.ibc) {\r\n let ddd = this.state.fixo.substr(0, 2);\r\n let dddInfo = this.ddds.find((el) => el.ddd.slice(-2) === ddd);\r\n if (dddInfo == null) {\r\n return;\r\n }\r\n const fixoDetails = {\r\n number: this.state.fixo.substr(2),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade,\r\n };\r\n ddd = this.state.celular.substr(0, 2);\r\n dddInfo = this.ddds.find((el) => el.ddd.slice(-2) === ddd);\r\n if (dddInfo == null) {\r\n return;\r\n }\r\n const celularDetails = {\r\n number: this.state.celular.substr(2),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade,\r\n };\r\n this.setState({\r\n fixoDetails,\r\n celularDetails,\r\n });\r\n } else {\r\n this.forceUpdate();\r\n }\r\n });\r\n };\r\n\r\n onChangeConj = (value, name) => {\r\n this.setState({ conjuge: { ...this.state.conjuge, [name]: value } });\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.state !== prevState) {\r\n this.props.onChange({ ...this.state });\r\n }\r\n }\r\n\r\n partnerDataHandler = (cpf) => {\r\n this.setState({\r\n conjuge: {\r\n ...this.state.conjuge,\r\n cpf: cpf,\r\n },\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <React.Fragment>\r\n <section className={styles.sectionForm}>\r\n <TitleSection title=\"Seus dados\" />\r\n\r\n <div className={styles.formGroup}>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col}\r\n name=\"nome\"\r\n value={this.state.nome}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n typeDocument=\"Nome\"\r\n readonly={this.cotista}\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n validation.lettersOnly,\r\n validation.hasLastName,\r\n ]}\r\n maxLength={79}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"CPF\"\r\n name=\"cpf\"\r\n value={masks.cpf(this.props.document)}\r\n type=\"text\"\r\n readonly\r\n />\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"RG\"\r\n name=\"documento\"\r\n value={this.state.documento}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n readonly={this.cotista}\r\n mask={masks.numberOnly}\r\n validationRules={[validation.required]}\r\n maxLength={30}\r\n />\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Órgão Emissor\"\r\n name=\"emissor\"\r\n value={this.state.emissor}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n readonly={this.cotista}\r\n validationRules={[validation.required]}\r\n maxLength={31}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Data de Nascimento\"\r\n name=\"nascimento\"\r\n value={this.state.nascimento}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n mask={masks.date}\r\n maxLength=\"10\"\r\n readonly={this.cotista}\r\n validationRules={[validation.required, validation.date]}\r\n />\r\n\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Estado Civil\"\r\n formatter={formatters.selectVal}\r\n onSelect={(value) => {\r\n this.setState({ estadocivil: value.codigo || \"\" });\r\n this.setState({ estadocivilName: value.valor || \"\" });\r\n }}\r\n optionsUrl={api.endpoints.CIVIL_STATE}\r\n value={this.state.estadocivil}\r\n type={inputType.AUTOCOMPLETE}\r\n validationRules={[validation.required]}\r\n readonly={this.cotista}\r\n />\r\n\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Acessibilidade\"\r\n onSelect={(value) => {\r\n this.setState({ acessibilidade: value });\r\n }}\r\n optionsUrl={api.endpoints.ACCESSIBILITY}\r\n formatter={formatters.default}\r\n value={this.state.acessibilidade}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={this.cotista}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Estado\"\r\n onSelect={(value) => {\r\n this.setState({ estado: value });\r\n }}\r\n optionsUrl={api.endpoints.STATES}\r\n formatter={formatters.selectState}\r\n value={this.state.estado}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={this.cotista}\r\n validationRules={[validation.required]}\r\n />\r\n\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Naturalidade\"\r\n name=\"naturalidade\"\r\n value={this.state.naturalidade}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n readonly={this.cotista}\r\n validationRules={[validation.required, validation.lettersOnly]}\r\n maxLength={40}\r\n />\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Nacionalidade\"\r\n onSelect={(value) => {\r\n this.setState({ nacionalidade: value });\r\n }}\r\n queryKey=\"pais\"\r\n optionsUrl={api.endpoints.COUNTRY}\r\n formatter={formatters.default}\r\n value={this.state.nacionalidade}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={this.cotista}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <div className={[theme.radioOptions, theme.col50].join(\" \")}>\r\n <label className={styles.formLabel}>Sexo:</label>\r\n <RadioGroup\r\n options={[\"Feminino\", \"Masculino\"].map((el) => ({\r\n value: el === \"Feminino\" ? \"F\" : \"M\",\r\n text: el,\r\n }))}\r\n value={this.state.sexo}\r\n onChanged={(value) => {\r\n this.setState({ sexo: value });\r\n }}\r\n readonly={this.cotista}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={[theme.dropdown, theme.col50].join(\" \")}\r\n typeDocument=\"Profissão\"\r\n onSelect={(value) => {\r\n this.setState({ profissao: value.codigo || \"\" });\r\n this.setState({ profissaoName: value.valor || \"\" });\r\n }}\r\n optionsUrl={api.endpoints.PROFESSION}\r\n queryKey=\"profissao\"\r\n formatter={formatters.selectVal}\r\n value={\r\n this.cotista ? this.state.profissaoName : this.state.profissao\r\n }\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={this.cotista}\r\n validationRules={[validation.required]}\r\n ibcValue={\r\n this.context.ibc && this.context.ibcUser.profissaoName\r\n }\r\n />\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Renda\"\r\n name=\"renda\"\r\n value={this.state.renda}\r\n type=\"text\"\r\n readonly\r\n tooltip={\r\n this.cotista\r\n ? \"Quer alterar sua renda? Fale com a gente no chat.\"\r\n : null\r\n }\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col100}\r\n typeDocument=\"Nome da Mãe\"\r\n name=\"mae\"\r\n value={this.state.mae}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n readonly={this.cotista}\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n validation.lettersOnly,\r\n ]}\r\n maxLength={51}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Telefone celular\"\r\n name=\"celular\"\r\n value={this.state.celular}\r\n onChange={(value, name) => {\r\n value = value.substr(0, 11);\r\n this.onChangeHandler(value, name);\r\n }}\r\n type=\"text\"\r\n mask={masks.phone}\r\n maxLength={15}\r\n validationRules={[\r\n validation.required,\r\n validation.phone(\"mobile\"),\r\n validation.ddd(this.ddds),\r\n ]}\r\n />\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Telefone fixo\"\r\n name=\"fixo\"\r\n value={this.state.fixo}\r\n onChange={(value, name) => {\r\n value = value.substr(0, 11);\r\n this.onChangeHandler(value, name);\r\n }}\r\n type=\"text\"\r\n mask={masks.phone}\r\n maxLength={15}\r\n validationRules={[\r\n validation.phone(\"landline\"),\r\n validation.ddd(this.ddds),\r\n ]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col}\r\n typeDocument=\"Email\"\r\n name=\"email\"\r\n value={this.state.email}\r\n onChange={this.onChangeHandler}\r\n type=\"text\"\r\n validationRules={[validation.required, validation.email]}\r\n maxLength={51}\r\n />\r\n </div>\r\n </div>\r\n </section>\r\n\r\n {!this.cotista && (\r\n <section className={styles.sectionForm}>\r\n <Fatca\r\n onChange={(fatcaData) => this.setState({ fatca: fatcaData })}\r\n />\r\n </section>\r\n )}\r\n\r\n {!this.cotista && (\r\n <section className={styles.sectionForm}>\r\n <ExpodedPerson\r\n onChange={(value) => {\r\n this.onChangeHandler(value, \"exposed\");\r\n }}\r\n pf\r\n />\r\n </section>\r\n )}\r\n\r\n {!this.cotista && this.state.estadocivil === \"C\" && (\r\n <Fragment>\r\n <section className={styles.sectionForm}>\r\n <TitleSection title=\"Dados do Cônjuge\" />\r\n <div className={styles.formGroup}>\r\n <div className={theme.row} id=\"conjugeDoc\">\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"CPF\"\r\n name=\"cpf\"\r\n value={this.state.conjuge.cpf}\r\n onChange={this.partnerDataHandler}\r\n type=\"text\"\r\n mask={masks.cpf}\r\n maxLength=\"14\"\r\n validationRules={[validation.required, validation.vCpf]}\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col66}\r\n name=\"nome\"\r\n value={this.state.conjuge.nome}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n typeDocument=\"Nome\"\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n validation.lettersOnly,\r\n ]}\r\n readonly={this.state.conjuge.cotista}\r\n maxLength={79}\r\n />\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"RG\"\r\n name=\"documento\"\r\n value={this.state.conjuge.documento}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n validationRules={[validation.required]}\r\n readonly={this.state.conjuge.cotista}\r\n maxLength={30}\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Órgão emissor\"\r\n name=\"emissor\"\r\n value={this.state.conjuge.emissor}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n validationRules={[validation.required]}\r\n readonly={this.state.conjuge.cotista}\r\n maxLength={31}\r\n />\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Data de Nascimento\"\r\n name=\"nascimento\"\r\n value={this.state.conjuge.nascimento}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n mask={masks.date}\r\n maxLength=\"10\"\r\n validationRules={[validation.required, validation.date]}\r\n readonly={this.state.conjuge.cotista}\r\n />\r\n\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Estado\"\r\n onSelect={(value) => {\r\n this.setState({\r\n conjuge: { ...this.state.conjuge, estado: value },\r\n });\r\n }}\r\n optionsUrl={api.endpoints.STATES}\r\n formatter={formatters.selectState}\r\n value={this.state.conjuge.estado}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={this.state.conjuge.cotista}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Naturalidade\"\r\n name=\"naturalidade\"\r\n value={this.state.conjuge.naturalidade}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n validationRules={[validation.required]}\r\n readonly={this.state.conjuge.cotista}\r\n maxLength={40}\r\n />\r\n <Input\r\n className={[theme.dropdown, theme.col33].join(\" \")}\r\n typeDocument=\"Acessibilidade\"\r\n onSelect={(value) => {\r\n this.setState({\r\n conjuge: {\r\n ...this.state.conjuge,\r\n acessibilidade: value,\r\n },\r\n });\r\n }}\r\n optionsUrl={api.endpoints.ACCESSIBILITY}\r\n formatter={formatters.default}\r\n value={this.state.conjuge.acessibilidade}\r\n type={inputType.AUTOCOMPLETE}\r\n validationRules={[validation.required]}\r\n readonly={this.state.conjuge.cotista}\r\n />\r\n <Input\r\n className={theme.col33}\r\n typeDocument=\"Renda\"\r\n name=\"renda\"\r\n value={this.state.conjuge.renda}\r\n onChange={this.onChangeConj}\r\n type=\"text\"\r\n maxLength={18}\r\n mask={masks.currency}\r\n validationRules={[validation.required]}\r\n readonly={this.state.conjuge.cotista}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <div className={[theme.col, theme.radioOptions].join(\" \")}>\r\n <label className={styles.formLabel}>Sexo:</label>\r\n <RadioGroup\r\n options={[\"Feminino\", \"Masculino\"].map((el) => ({\r\n value: el === \"Feminino\" ? \"F\" : \"M\",\r\n text: el,\r\n }))}\r\n value={this.state.conjuge.sexo}\r\n onChanged={(value) => {\r\n this.setState({\r\n conjuge: { ...this.state.conjuge, sexo: value },\r\n });\r\n }}\r\n readonly={this.state.conjuge.cotista}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n {this.state.conjuge.showFields && !this.state.conjuge.cotista && (\r\n <section className={styles.sectionForm}>\r\n <ExpodedPerson\r\n onChange={(value) => {\r\n this.onChangeConj(value, \"exposed\");\r\n }}\r\n pf\r\n cj\r\n />\r\n </section>\r\n )}\r\n </Fragment>\r\n )}\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default PersonalData;\r\n","import React from 'react';\r\nimport styles from \"./Address.module.sass\";\r\nimport TitleSection from \"../../TitleSection/TitleSection\";\r\nimport Input from \"../../ui/Input/Input\";\r\nimport theme from \"../../../App.module.sass\";\r\nimport api from \"../../../utils/api\";\r\nimport validation from \"../../../utils/validation\";\r\nimport masks from \"../../../utils/masks\";\r\nimport AppContext from \"../../../contexts/appContext\";\r\n\r\nclass Address extends React.Component {\r\n\r\n targetDiv = React.createRef();\r\n\r\n static contextType = AppContext;\r\n\r\n state = {\r\n cep: '',\r\n street: '',\r\n number: '',\r\n complement: '',\r\n district: '',\r\n city: '',\r\n uf: '',\r\n invalidCep: false\r\n };\r\n\r\n newInfo = false;\r\n\r\n fillAddress = (cep, ibc) => {\r\n api.get(api.endpoints.CEP, {cep}).then((result) => {\r\n this.newInfo = !(ibc === true);\r\n this.setState({\r\n cep: cep,\r\n street: result.data.logradouro,\r\n district: result.data.bairro,\r\n city: result.data.cidade,\r\n uf: result.data.uf,\r\n number: '',\r\n complement: '',\r\n invalidCep: false\r\n })\r\n }).catch(() => {\r\n this.setState({\r\n cep: cep,\r\n street: '',\r\n district: '',\r\n city: '',\r\n uf: '',\r\n number: '',\r\n complement: '',\r\n invalidCep: true\r\n })\r\n });\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.newInfo) {\r\n this.targetDiv.scrollIntoView({behavior: \"smooth\", block: \"start\"});\r\n this.newInfo = false;\r\n }\r\n\r\n if (this.props.hasOwnProperty('onChange')) {\r\n this.props.onChange({...this.state});\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.context.ibc) {\r\n this.setState({\r\n cep: this.context.ibcUser.endereco.cep,\r\n });\r\n if (validation.cep(this.context.ibcUser.endereco.cep).valid) {\r\n this.fillAddress(this.context.ibcUser.endereco.cep, this.context.ibc);\r\n }\r\n } else if (this.props.data.origem.cotista && this.props.data.pessoa.endereco) {\r\n const personAddress = this.props.data.pessoa.endereco;\r\n this.setState({\r\n cep: personAddress.cep != null ? personAddress.cep : '',\r\n street: personAddress.logradouro || '',\r\n number: personAddress.numero || '',\r\n complement: personAddress.complemento || '',\r\n district: personAddress.bairro || '',\r\n city: personAddress.cidade || '',\r\n uf: personAddress.estado != null ? personAddress.estado : '',\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <section className={styles.sectionForm}>\r\n <TitleSection title={this.props.pf ? \"Seu endereço\" : \"Endereço da empresa\"}/>\r\n\r\n <div className={[theme.row, styles.cepRow].join(' ')}>\r\n <Input\r\n className={theme.col33}\r\n mask={masks.cep}\r\n value={this.state.cep}\r\n onChange={(value) => {\r\n value = masks.numberOnly(value).substr(0, 8);\r\n value.length === 8 && value !== this.state.cep && this.fillAddress(value);\r\n this.setState({cep: value});\r\n }}\r\n typeDocument={\"CEP\"}\r\n errorMsg={\"Informe um CEP válido\"}\r\n isValid={!this.state.invalidCep}\r\n validationRules={[validation.required, validation.cep]}\r\n />\r\n\r\n </div>\r\n\r\n {\r\n this.state.uf != null && this.state.uf.length > 0 ?\r\n (\r\n <div ref={(el) => this.targetDiv = el}>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col70}\r\n value={this.state.street}\r\n onChange={(value) => this.setState({street: value})}\r\n typeDocument={\"Endereço\"}\r\n validationRules={[validation.required]}\r\n maxLength={30}\r\n />\r\n <Input\r\n className={theme.col30}\r\n value={this.state.number}\r\n onChange={(value) => this.setState({number: value})}\r\n typeDocument={\"Número\"}\r\n mask={masks.numberOnly}\r\n validationRules={[validation.required]}\r\n maxLength={6}\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n value={this.state.complement}\r\n onChange={(value) => this.setState({complement: value})}\r\n typeDocument={\"Complemento\"}\r\n validationRules={[validation.required]}\r\n maxLength={30}\r\n />\r\n <Input\r\n className={theme.col50}\r\n value={this.state.district}\r\n onChange={(value) => this.setState({district: value})}\r\n typeDocument={\"Bairro\"}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input className={theme.col70}\r\n value={this.state.city}\r\n readonly\r\n typeDocument={\"Cidade\"}/>\r\n <Input className={theme.col30}\r\n value={this.state.uf}\r\n readonly\r\n typeDocument={\"UF\"}\r\n />\r\n </div>\r\n </div>\r\n ) : null\r\n }\r\n </section>\r\n )\r\n }\r\n}\r\n\r\nexport default Address;\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: 20;\r\n font-weight: bold;\r\n font-style: normal;\r\n margin: 8px 0;\r\n color: #494949;\r\n line-height: 14px;\r\n }\r\n .indicator {\r\n margin: 3px 0px;\r\n width: 20px;\r\n height: 5px;\r\n background-color: #005FC8\r\n }\r\n .container p {\r\n font-size: 16;\r\n font-weight: 300;\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 #D1DBE3;\r\n margin: 13px 0;\r\n width: 300px;\r\n height: 40px;\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 #D1DBE3;\r\n background: #D1DBE3;\r\n width: 1px;\r\n height: 99%;\r\n }\r\n .container .switch #yes-button:checked+label {\r\n background: #005FC8;\r\n color: #FFFFFF;\r\n }\r\n .container .switch #no-button:checked+label {\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 h2 {\r\n font-size: 16;\r\n }\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 `<style>${this.css}</style>\r\n <div class=\"container\">\r\n <h2>Quer receber novidades?</h2>\r\n <div class=\"indicator\"></div>\r\n <p>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.</p>\r\n <div class=\"switch\">\r\n <input\r\n id=\"yes-button\"\r\n type=\"radio\"\r\n name=\"switcher\"\r\n value=\"1\"\r\n />\r\n <label for=\"yes-button\">Sim</label>\r\n <div class=\"divider\"></div>\r\n <input\r\n id=\"no-button\"\r\n type=\"radio\"\r\n name=\"switcher\"\r\n value=\"0\"\r\n />\r\n <label for=\"no-button\">Não</label>\r\n </div>\r\n <div class=\"footer\">\r\n <span class=\"error\">Campo Obrigatório</span>\r\n </div>\r\n </div>\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 } 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 = (e) => {\r\n e.preventDefault();\r\n onChange(e.detail);\r\n };\r\n\r\n useEffect(() => {\r\n switchRef.current.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 switchRef.current.removeEventListener(\r\n \"onChange\",\r\n (e) => {\r\n handleEvent(e);\r\n },\r\n false\r\n );\r\n }, []);\r\n\r\n return (\r\n <switch-lgpd ref={switchRef} default-value={type} error-message={error} />\r\n );\r\n};\r\n\r\nexport default SwitchLgpd;\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 React, {\r\n useEffect,\r\n useContext,\r\n useImperativeHandle,\r\n forwardRef,\r\n} from \"react\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport SwitchLgpd from \"../SwitchLgpd/SwitchLgpd\";\r\nimport { useInputState } from \"../../hooks\";\r\n\r\nconst ContactWay = (_, ref) => {\r\n const context = useContext(AppContext);\r\n const [consent, setConsent] = useInputState(context.lgpdConsent || \"\");\r\n\r\n useEffect(() => {\r\n context.setContext({\r\n ...context,\r\n lgpdConsent: consent.value,\r\n });\r\n }, [consent]);\r\n\r\n const setConsentChange = (value) => ({\r\n invalid: false,\r\n value,\r\n });\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 context.setContext({\r\n ...context,\r\n lgpdConsent: consent.value,\r\n });\r\n return setConsentChange(consent.value);\r\n },\r\n }),\r\n [consent, context, setConsent]\r\n );\r\n\r\n const handleInputChange = (setter) => (value) => {\r\n setter(value);\r\n };\r\n\r\n return (\r\n <SwitchLgpd\r\n type={consent.value}\r\n error={consent.errorMessage}\r\n onChange={handleInputChange(setConsent)}\r\n />\r\n );\r\n};\r\n\r\nexport default forwardRef(ContactWay);\r\n","import React, { useState, Fragment, useEffect } from \"react\";\r\nimport TitleSection from \"../../TitleSection/TitleSection\";\r\nimport theme from \"../../../App.module.sass\";\r\nimport styles from \"./CompanyData.module.sass\";\r\nimport api from \"../../../utils/api\";\r\nimport formatters from \"../../../utils/select-formatters\";\r\nimport Input, { inputType } from \"../../ui/Input/Input\";\r\nimport masks from \"../../../utils/masks\";\r\nimport validation from \"../../../utils/validation\";\r\n\r\nimport currency from '../../../utils/currency'\r\nimport dateUtils from \"../../../utils/date\";\r\n\r\nlet didMount = false;\r\n\r\nconst setupOnChange = (setValues, values, ddds) => (value, name) => {\r\n if ((name === 'cellPhone' || name === 'phoneNumber') && value.length > 9) {\r\n const ddd = value.substr(0, 2);\r\n const dddInfo = ddds.find(el => el.ddd.slice(-2) === ddd);\r\n if (dddInfo) {\r\n setValues({\r\n ...values, [name + 'Details']: {\r\n number: value.substr(3),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade\r\n },\r\n [name]: value\r\n });\r\n return;\r\n }\r\n }\r\n setValues({ ...values, [name]: value });\r\n};\r\n\r\nconst getTooltip = condition => condition ? 'Quer alterar o faturamento? Fale com a gente no chat.' : null\r\n\r\nconst companyData = props => {\r\n const [values, setValues] = useState({\r\n socialName: \"\",\r\n cnpj: masks.cnpj(props.document),\r\n document: \"\",\r\n emitter: \"\",\r\n foundationDate: \"\",\r\n legalNature: \"\",\r\n activityType: \"\",\r\n capitalSocialValue: \"\",\r\n anualRevenues: currency.numberToCurrency(parseFloat(props.income)),\r\n cellPhone: \"\",\r\n phoneNumber: \"\",\r\n email: \"\"\r\n });\r\n\r\n let valuesBuffer;\r\n const cotista = props.data.origem.cotista;\r\n const person = props.data.pessoa;\r\n\r\n useEffect(() => {\r\n if(cotista) {\r\n const state = {\r\n socialName: person.dadosPessoaJuridica.nomeFantasia ,\r\n cnpj: masks.cnpj(props.document),\r\n document: person.dadosPessoaJuridica.documento.codigo,\r\n emitter: person.dadosPessoaJuridica.documento.orgaoEmissor,\r\n foundationDate: dateUtils.format(new Date(person.dadosPessoaJuridica.dataFundacao)),\r\n legalNature: person.dadosPessoaJuridica.ocupacao.valor,\r\n activityType: person.dadosPessoaJuridica.atividade.valor,\r\n capitalSocialValue: currency.numberToCurrency(parseInt(person.dadosPessoaJuridica.informacoesEconomicas.valorCapital)),\r\n anualRevenues: currency.numberToCurrency(parseInt(person.dadosPessoaJuridica.informacoesEconomicas.valorFaturamento)),\r\n cellPhone: \"\",\r\n phoneNumber: \"\",\r\n email: \"\"\r\n };\r\n\r\n setValues(state);\r\n valuesBuffer = state;\r\n }\r\n }, [props.data.pessoa]);\r\n\r\n const [ddds, setDDDs] = useState([]);\r\n const onChange = setupOnChange(setValues, values, ddds)\r\n useEffect(() => {\r\n if (!didMount) {\r\n api.get(api.endpoints.DDD).then((result) => {\r\n if (cotista) {\r\n const celular =\r\n props.data.pessoa.comunicacao.parametros.find(\r\n contact => contact.codigo === \"celular\");\r\n\r\n const fixo =\r\n props.data.pessoa.comunicacao.parametros.find(\r\n item => item.codigo === \"telefone\"\r\n );\r\n\r\n let ddd = celular.valor.substr(0, 2);\r\n let dddInfo = result.data.find(el => el.ddd.slice(-2) === ddd);\r\n if (dddInfo == null) {\r\n return;\r\n }\r\n const cellPhoneDetails = {\r\n number: celular.valor.substr(2),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade\r\n };\r\n ddd = fixo.valor.substr(0, 2);\r\n dddInfo = result.data.find(el => el.ddd.slice(-2) === ddd);\r\n if (dddInfo == null) {\r\n return;\r\n }\r\n const phoneNumberDetails = {\r\n number: fixo.valor.substr(2),\r\n ddd: ddd,\r\n uf: dddInfo.uf,\r\n city: dddInfo.cidade\r\n };\r\n setValues({\r\n ...valuesBuffer,\r\n cellPhoneDetails,\r\n phoneNumberDetails\r\n });\r\n }\r\n setDDDs(result.data)\r\n });\r\n didMount = true;\r\n }\r\n\r\n });\r\n\r\n useEffect(() => {\r\n props.onChange(values);\r\n }, [values]);\r\n\r\n return (\r\n <Fragment>\r\n <section className={styles.sectionForm}>\r\n <TitleSection title=\"Dados da empresa\" />\r\n\r\n <div className={styles.formGroup}>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col60}\r\n name=\"socialName\"\r\n value={values.socialName}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Razão Social\"\r\n readonly={cotista}\r\n validationRules={[validation.required, validation.minLength(3), validation.lettersOnly]}\r\n maxLength={30}\r\n />\r\n <Input\r\n className={theme.col40}\r\n name=\"cnpj\"\r\n value={values.cnpj}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"CNPJ\"\r\n mask={masks.mCNPJ}\r\n readonly\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col40}\r\n name=\"document\"\r\n value={values.document}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Documento\"\r\n mask={masks.numberOnly}\r\n readonly={cotista}\r\n validationRules={[validation.required]}\r\n maxLength={30}\r\n />\r\n <Input\r\n className={theme.col20}\r\n name=\"emitter\"\r\n value={values.emitter}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Orgão emissor\"\r\n readonly={cotista}\r\n validationRules={[validation.required]}\r\n maxLength={31}\r\n />\r\n <Input\r\n className={theme.col40}\r\n name=\"foundationDate\"\r\n value={values.foundationDate}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Data da fundação\"\r\n mask={masks.date}\r\n readonly={cotista}\r\n validationRules={[validation.required, validation.date]}\r\n maxLength=\"10\"\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Natureza Jurídica\"\r\n onSelect={value => {\r\n setValues({ ...values, legalNature: value });\r\n }}\r\n optionsUrl={api.endpoints.NATUREZA_JURIDICA}\r\n formatter={formatters.default}\r\n value={values.legalNature}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={cotista}\r\n validationRules={[validation.required]}\r\n />\r\n\r\n <Input\r\n className={theme.col50}\r\n typeDocument=\"Ramo da atividade\"\r\n onSelect={value => {\r\n setValues({ ...values, activityType: value });\r\n }}\r\n optionsUrl={api.endpoints.RAMO_ATIVIDADE}\r\n formatter={formatters.default}\r\n value={values.activityType}\r\n type={inputType.AUTOCOMPLETE}\r\n readonly={cotista}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n name=\"capitalSocialValue\"\r\n value={values.capitalSocialValue}\r\n onChange={onChange}\r\n type=\"text\"\r\n maxLength={18}\r\n typeDocument=\"Valor do capital Social\"\r\n mask={masks.currency}\r\n readonly={cotista}\r\n validationRules={[validation.required, validation.greaterThan(0)]}\r\n />\r\n\r\n <Input\r\n className={theme.col50}\r\n name=\"anualRevenues\"\r\n value={values.anualRevenues}\r\n onChange={onChange}\r\n type={inputType.currency}\r\n maxLength={18}\r\n typeDocument=\"Faturamento Médio\"\r\n readonly\r\n tooltip={getTooltip(cotista)}\r\n validationRules={[validation.required]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col50}\r\n name=\"cellPhone\"\r\n value={values.cellPhone}\r\n onChange={(value, name) => {value = value.substr(0, 11); onChange(value, name)}}\r\n type=\"text\"\r\n typeDocument=\"Telefone Celular\"\r\n mask={masks.phone}\r\n maxLength={15}\r\n validationRules={[validation.required, validation.phone('mobile'), validation.ddd(ddds)]}\r\n />\r\n <Input\r\n className={theme.col50}\r\n name=\"phoneNumber\"\r\n value={values.phoneNumber}\r\n onChange={(value, name) => {value = value.substr(0, 11); onChange(value, name)}}\r\n type=\"text\"\r\n typeDocument=\"Telefone Fixo\"\r\n mask={masks.phone}\r\n maxLength={15}\r\n validationRules={[validation.phone('landline'), validation.ddd(ddds)]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col}\r\n name=\"email\"\r\n value={values.email}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"E-mail\"\r\n validationRules={[validation.required, validation.email]}\r\n maxLength={51}\r\n />\r\n </div>\r\n </div>\r\n </section>\r\n </Fragment>\r\n );\r\n};\r\n\r\nexport default companyData;\r\n","import React, { useState, useEffect, Fragment } from \"react\";\r\nimport styles from \"./PartnerData.module.sass\";\r\nimport form from \"../UserForm.module.sass\";\r\n\r\nimport TitleSection from \"../../TitleSection/TitleSection\";\r\nimport theme from \"../../../App.module.sass\";\r\nimport masks from \"../../../utils/masks\";\r\nimport Input from \"../../ui/Input/Input\";\r\nimport Button from \"../../ui/Button/Button\";\r\nimport Table from \"react-bootstrap/Table\";\r\nimport validation from \"../../../utils/validation\";\r\n\r\nimport ExposedPerson from \"../ExposedPerson/ExposedPerson\";\r\nimport RadioGroup from \"../../ui/RadioGroup/RadioGroup\";\r\n\r\nconst validate = (setPartners, partners, newPartner, setNewPartner) => {\r\n const formElement = document.getElementById(\"newPartner\");\r\n const inputs = Array.from(formElement.getElementsByTagName(\"input\")).filter(\r\n (input) => !input.readOnly\r\n );\r\n\r\n let validForm = true;\r\n let divToFocus;\r\n\r\n for (const input of inputs) {\r\n input.focus();\r\n input.blur();\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus || input;\r\n }\r\n }\r\n\r\n const innerValidate = () => {\r\n for (const input of inputs) {\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus || input;\r\n }\r\n }\r\n\r\n if (validForm) {\r\n setPartners([...partners, newPartner]);\r\n setNewPartner(null);\r\n } else {\r\n divToFocus.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n };\r\n\r\n setTimeout(innerValidate, 0);\r\n};\r\n\r\nconst partnerData = (props) => {\r\n const [partners, setPartners] = useState([]);\r\n const [exposed, setExposed] = useState(\"N\");\r\n const [newPartner, setNewPartner] = useState({\r\n name: \"\",\r\n cpf: \"\",\r\n birthDate: \"\",\r\n gender: \"F\",\r\n participation: \"\",\r\n });\r\n\r\n const onChange = (value, name) => {\r\n setNewPartner({ ...newPartner, [name]: value });\r\n };\r\n\r\n useEffect(() => {\r\n props.onChange(partners, exposed, newPartner);\r\n }, [partners, exposed, newPartner]);\r\n\r\n const cotista = props.data.origem.cotista;\r\n\r\n const addPartnerHandler = () => {\r\n if (newPartner) {\r\n validate(setPartners, partners, newPartner, setNewPartner);\r\n } else {\r\n setNewPartner({\r\n name: \"\",\r\n cpf: \"\",\r\n birthDate: \"\",\r\n gender: \"F\",\r\n participation: \"\",\r\n });\r\n }\r\n };\r\n\r\n const partnerDataHandler = (cpf) => {\r\n setNewPartner({\r\n ...newPartner,\r\n cpf: cpf,\r\n });\r\n };\r\n\r\n function removePartner(index) {\r\n const updatedPartners = [...partners];\r\n updatedPartners.splice(index, 1);\r\n setPartners(updatedPartners);\r\n if (updatedPartners.length === 0) {\r\n setNewPartner({\r\n name: \"\",\r\n cpf: \"\",\r\n birthDate: \"\",\r\n gender: \"F\",\r\n participation: \"\",\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <section className={[form.sectionForm, styles.sectionPartner].join(\" \")}>\r\n <div className={styles.contentPartner}>\r\n {(partners.length > 0 || newPartner) && (\r\n <TitleSection title=\"Dados do Sócio\" />\r\n )}\r\n\r\n {partners.length > 0 ? (\r\n <div className={styles.partnerTable}>\r\n <Table responsive>\r\n <thead>\r\n <tr>\r\n <th className={styles.nameColumn}>Nome</th>\r\n <th>CPF</th>\r\n <th>Data de Nascimento</th>\r\n <th>Sexo</th>\r\n <th className={styles.participationColumn}>Participação</th>\r\n <th>Ações</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {partners.map((partner, index) => {\r\n return (\r\n <tr key={index}>\r\n <td>{partner.name}</td>\r\n <td>{masks.cpf(partner.cpf)}</td>\r\n <td>{masks.date(partner.birthDate)}</td>\r\n <td>{partner.gender}</td>\r\n <td className={styles.participationValue}>\r\n {partner.participation} %\r\n </td>\r\n <td>\r\n <i\r\n onClick={() => removePartner(index)}\r\n className={\"icon icon-apagar\"}\r\n />\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : null}\r\n {newPartner ? (\r\n <div className={styles.newPartner} id=\"newPartner\">\r\n <div className={theme.row} id=\"partnerForm\">\r\n <Input\r\n className={theme.col40}\r\n name=\"cpf\"\r\n value={newPartner.cpf}\r\n onChange={partnerDataHandler}\r\n type=\"text\"\r\n typeDocument=\"CPF\"\r\n mask={masks.cpf}\r\n validationRules={[validation.required, validation.vCpf]}\r\n maxLength={14}\r\n />\r\n </div>\r\n\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col}\r\n name=\"name\"\r\n value={newPartner.name}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Nome\"\r\n readonly={newPartner.cotista}\r\n maxLength={79}\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n validation.lettersOnly,\r\n ]}\r\n />\r\n </div>\r\n <div className={theme.row}>\r\n <Input\r\n className={theme.col30}\r\n name=\"participation\"\r\n value={newPartner.participation}\r\n onChange={onChange}\r\n type=\"text\"\r\n typeDocument=\"Percentual de participação\"\r\n maxLength={18}\r\n validationRules={[\r\n validation.required,\r\n validation.numbersOnly,\r\n validation.maxPercentageValue(100),\r\n ]}\r\n />\r\n <Input\r\n className={theme.col30}\r\n name=\"birthDate\"\r\n value={newPartner.birthDate}\r\n onChange={onChange}\r\n type=\"text\"\r\n mask={masks.date}\r\n typeDocument=\"Data de nascimento\"\r\n readonly={newPartner.cotista}\r\n validationRules={[validation.required, validation.date]}\r\n />\r\n <div className={[theme.radioOptions, theme.col30].join(\" \")}>\r\n <label className={styles.formLabel}>Sexo:</label>\r\n <RadioGroup\r\n options={[\"Feminino\", \"Masculino\"].map((el) => ({\r\n value: el === \"Feminino\" ? \"F\" : \"M\",\r\n text: el,\r\n }))}\r\n value={newPartner.gender}\r\n onChanged={(value) => {\r\n setNewPartner({ ...newPartner, gender: value });\r\n }}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n <Button type=\"button\" onClick={addPartnerHandler}>\r\n Adicionar sócio\r\n </Button>\r\n </section>\r\n <section className={form.sectionForm}>\r\n <ExposedPerson\r\n onChange={(value) => {\r\n setExposed(value);\r\n }}\r\n readonly={cotista}\r\n pj\r\n />\r\n </section>\r\n </Fragment>\r\n );\r\n};\r\n\r\nexport default partnerData;\r\n","import React, { Fragment } from \"react\";\r\nimport PersonalData from \"./PersonalData/PersonalData\";\r\n\r\nimport styles from \"./UserForm.module.sass\";\r\nimport theme from \"../../App.module.sass\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport Address from \"./Address/Address\";\r\n\r\nimport ContactWay from \"../ContactWay/ContactWay\";\r\nimport CompanyData from \"./CompanyData/CompanyData\";\r\nimport PartnerData from \"./PartnerData/PartnerData\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\n\r\nclass UserForm extends React.Component {\r\n formInfo = {\r\n user: {},\r\n address: {},\r\n additionalInfo: [],\r\n };\r\n\r\n render() {\r\n let person = this.props.clientData.pessoa;\r\n if (person == null) {\r\n person = {};\r\n }\r\n\r\n const clientData = this.props.clientData;\r\n clientData.pessoa = person;\r\n\r\n const estadoCivil = this.formInfo.user.estadocivilName;\r\n const profissao = this.formInfo.user.profissaoName;\r\n const razaoSocial = this.formInfo.user.socialName;\r\n\r\n const typePerson =\r\n this.props.data.selectedIdentifier === \"cpf\" ? \"PF\" : \"PJ\";\r\n const cotista =\r\n this.props.clientData.origem.cotista === true\r\n ? \"ClienteConsórcio\"\r\n : \"Novo\";\r\n\r\n const gaTypeName = `${gaTags.typeFlow2.concat(\"2-\")}&${\r\n estadoCivil !== undefined && estadoCivil.replace(/\\s/g, \"\")\r\n }&-&${profissao !== undefined && profissao.replace(/\\s/g, \"\")}&-&${\r\n this.props.data.incomeValue\r\n }-`;\r\n\r\n const gaTypeNamePJ = `${gaTags.typeFlow2.concat(\"2-\")}&${\r\n this.formInfo.user.capitalSocialValue\r\n }&-&${this.formInfo.user.anualRevenues}&-&${\r\n razaoSocial !== undefined && razaoSocial.replace(/\\s/g, \"\")\r\n }-`;\r\n\r\n return (\r\n <form className={styles.formContainer} id={\"userForm\"}>\r\n {this.props.data.selectedIdentifier === \"cpf\" ? (\r\n <Fragment>\r\n <PersonalData\r\n data={this.props.clientData}\r\n document={this.props.data.document}\r\n income={this.props.data.incomeValue}\r\n secondaryIncome={this.props.data.secondaryIncomeValue}\r\n onChange={(client) => {\r\n this.formInfo.user = client;\r\n }}\r\n />\r\n <Address\r\n data={this.props.clientData}\r\n onChange={(address) => (this.formInfo.address = address)}\r\n pf={this.props.data.selectedIdentifier}\r\n />\r\n </Fragment>\r\n ) : (\r\n <Fragment>\r\n <CompanyData\r\n data={this.props.clientData}\r\n document={this.props.data.document}\r\n income={this.props.data.incomeValue}\r\n onChange={(company) => {\r\n this.formInfo.user = company;\r\n }}\r\n />\r\n {!this.props.clientData.origem.cotista && (\r\n <PartnerData\r\n onChange={(partner, exposed, newPartner) => {\r\n this.formInfo.additionalInfo = partner;\r\n this.formInfo.exposed = exposed;\r\n this.formInfo.newPartner = newPartner;\r\n }}\r\n data={this.props.clientData}\r\n />\r\n )}\r\n <Address\r\n data={this.props.clientData}\r\n onChange={(address) => (this.formInfo.address = address)}\r\n pf={this.props.pf}\r\n />\r\n </Fragment>\r\n )}\r\n\r\n <ContactWay ref={this.props.consentDataRef} />\r\n\r\n <footer className={theme.footerForm}>\r\n <span\r\n onClick={() =>\r\n this.props.history.push({\r\n pathname: '/identificacao'\r\n })\r\n }\r\n className={theme.backLabel}\r\n role=\"link\"\r\n >\r\n <i className=\"icon icon-seta-esquerda\" />\r\n Voltar\r\n </span>\r\n\r\n <Button\r\n selected\r\n type=\"button\"\r\n onClick={() => {\r\n this.props.onSubmit(this.formInfo);\r\n }}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={\r\n typePerson === \"PF\"\r\n ? `${gaTypeName}${cotista}${typePerson}`\r\n : `${gaTypeNamePJ}${cotista}${typePerson}`\r\n }\r\n data-gafunc={\r\n typePerson === \"PF\"\r\n ? `${gaTypeName}${cotista}${typePerson}-Continuar`\r\n : `${gaTypeNamePJ}${cotista}${typePerson}-Continuar`\r\n }\r\n >\r\n Continuar\r\n </Button>\r\n </footer>\r\n </form>\r\n );\r\n }\r\n}\r\n\r\nexport default UserForm;\r\n","import React from \"react\";\r\nimport styles from \"./NewUser.module.sass\";\r\n\r\nimport Alert from \"../../components/Alert/Alert\";\r\nimport PurchaseDetailsCard from \"../../components/PurchaseDetailsCard/PurchaseDetailsCard\";\r\nimport UserForm from \"../../components/UserForms/UserForm\";\r\nimport currency from \"../../utils/currency\";\r\nimport api from \"../../utils/api\";\r\nimport masks from \"../../utils/masks\";\r\nimport dateUtils from \"../../utils/date\";\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\nconst PAYMENT_URL = \"/pagamento\";\r\n\r\nclass NewUser extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.consentDataRef = React.createRef(null);\r\n }\r\n\r\n submitHandler = (userData) => {\r\n this.validate(userData);\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n validateLgpdConsent = () => {\r\n let isValid = true;\r\n const consentData = this.consentDataRef.current.validate();\r\n if (consentData.invalid) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n };\r\n\r\n getAllInputs = () => {\r\n const form = document.getElementById(\"userForm\");\r\n const inputs = Array.from(form.getElementsByTagName(\"input\")).filter(\r\n (input) => !input.readOnly\r\n );\r\n\r\n for (const input of Array.from(inputs)) {\r\n input.focus();\r\n input.blur();\r\n }\r\n\r\n return inputs;\r\n };\r\n\r\n validate = (userData) => {\r\n let validForm = true;\r\n let divToFocus;\r\n\r\n const inputs = this.getAllInputs();\r\n\r\n const verifyPartner = () =>\r\n userData.newPartner != null && userData.additionalInfo != null;\r\n\r\n setTimeout(() => {\r\n validForm = this.validateLgpdConsent();\r\n\r\n for (const input of Array.from(inputs)) {\r\n if (input.getAttribute(\"valid\") === \"false\") {\r\n validForm = false;\r\n divToFocus = divToFocus || input;\r\n }\r\n }\r\n\r\n if (validForm) {\r\n if (verifyPartner()) {\r\n userData.additionalInfo.push(userData.newPartner);\r\n }\r\n this.submit(userData);\r\n } else {\r\n if (divToFocus) {\r\n divToFocus.click();\r\n divToFocus.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n }\r\n }, 0);\r\n };\r\n\r\n submit = (userData) => {\r\n const requestBody =\r\n this.context.selectedIdentifier === \"cpf\"\r\n ? this.getPFRequestBody(userData)\r\n : this.getPJRequestBody(userData);\r\n\r\n const cotationRequestBody = {\r\n tipo: {\r\n descricao: this.context.product.id === \"1\" ? \"IMÓVEIS\" : \"MÓVEIS\",\r\n codigo: this.context.product.codigo,\r\n },\r\n grupo: {\r\n codigo: this.context.selectedOffer.identificacao.codigo,\r\n codigoBem: this.context.selectedOffer.codigoBem,\r\n codigoProduto: this.context.selectedOffer.codigoProduto,\r\n codigoPlanoVenda: this.context.selectedOffer.dados.plano.identificacao\r\n .codigo,\r\n codigoVenda: this.context.selectedOffer.identificacao.codigoVenda,\r\n codigoSubProduto: this.context.product.id,\r\n codigoTaxaPlano: this.context.selectedOffer.dados.plano.identificacao\r\n .codigoTaxa,\r\n prazo: this.context.selectedOffer.dados.plano.prazo.total,\r\n },\r\n cliente: {\r\n pessoa: {\r\n identificacao: {\r\n codigo: this.context.document,\r\n },\r\n },\r\n },\r\n };\r\n\r\n const saveClientEndpoint = api.endpoints.SAVE_CLIENT;\r\n api.post(saveClientEndpoint, { pessoa: requestBody }).then(() => {\r\n this.postSaveCotation(cotationRequestBody, requestBody);\r\n });\r\n };\r\n\r\n postSaveCotation = (cotationRequestBody, requestBody) => {\r\n const saveCotationEndpoint = api.endpoints.SAVE_COTATION;\r\n api.post(saveCotationEndpoint, cotationRequestBody).then(({ data }) => {\r\n this.context.setContext({\r\n ...this.context,\r\n client: {\r\n ...this.context.client,\r\n pessoa: requestBody,\r\n },\r\n insurance: false,\r\n cotationCode: data[0].identificacao.codigo,\r\n cotationBusinessCode: data[0].identificacao.codigoNegocio,\r\n });\r\n this.getAgeValidation();\r\n });\r\n };\r\n\r\n getAgeValidation = () => {\r\n const ageValidationEndpoint = api.endpoints.AGE_VALIDATION;\r\n if (this.context.selectedIdentifier === \"cpf\") {\r\n api\r\n .get(ageValidationEndpoint, null, {\r\n cpf: this.context.document,\r\n })\r\n .then((result) => {\r\n this.context.setContext({\r\n ...this.context,\r\n allowInsurance: result.data.valida && !this.context.ibc,\r\n });\r\n\r\n this.props.history.push({\r\n pathname:\r\n result.data.valida && !this.context.ibc ? \"/seguro\" : PAYMENT_URL,\r\n });\r\n });\r\n } else {\r\n this.props.history.push({\r\n pathname: PAYMENT_URL,\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <div className={styles.content}>\r\n <div className={styles.dataContent}>\r\n <div className={styles.alert}>\r\n <Alert\r\n title=\"Fique atento!\"\r\n text=\"Estes dados são importantes e irão para o seu contrato. Preencha-os corretamente.\"\r\n />\r\n <UserForm\r\n consentDataRef={this.consentDataRef}\r\n clientData={this.context.client}\r\n onSubmit={this.submitHandler}\r\n data={this.context}\r\n history={this.props.history}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className={styles.card}>\r\n <PurchaseDetailsCard offer={this.context} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n getPJRequestBody(userData) {\r\n const partners = [];\r\n userData.additionalInfo.forEach((partner) => {\r\n partners.push(\r\n partner.cotista\r\n ? {\r\n codigo: partner.codigo,\r\n participacao: partner.participation,\r\n }\r\n : {\r\n identificacao: {\r\n tipo: \"Fisica\",\r\n documento: \"CPF\",\r\n codigo: partner.cpf,\r\n },\r\n nome: partner.name,\r\n participacao: partner.participation,\r\n dataNascimento: dateUtils.format2Service(\r\n masks.date(partner.birthDate)\r\n ),\r\n sexo: {\r\n codigo: partner.gender,\r\n },\r\n }\r\n );\r\n });\r\n\r\n const pessoa = {\r\n identificacao: {\r\n tipo: \"Juridica\",\r\n documento: \"CNPJ\",\r\n codigo: this.context.document,\r\n },\r\n dadosPessoaJuridica: {\r\n nomeFantasia: userData.user.socialName,\r\n dataFundacao: dateUtils.format2Service(\r\n masks.date(userData.user.foundationDate)\r\n ),\r\n documento: {\r\n documento: \"IE\",\r\n codigo: userData.user.document,\r\n orgaoEmissor: userData.user.emitter,\r\n },\r\n informacoesEconomicas: {\r\n valorCapital: currency.currencyToNumber(\r\n userData.user.capitalSocialValue\r\n ),\r\n valorFaturamento: currency.currencyToNumber(\r\n userData.user.anualRevenues.replace(\"R$ \", \"\")\r\n ),\r\n },\r\n qualificadores: [\r\n {\r\n codigo: \"PEP\",\r\n valor: userData.exposed,\r\n },\r\n ],\r\n atividade: {\r\n codigo: userData.user.activityType,\r\n },\r\n naturezaJuridica: {\r\n codigo: userData.user.legalNature,\r\n },\r\n socios: partners,\r\n },\r\n nome: userData.user.socialName,\r\n endereco: {\r\n cep: userData.address.cep,\r\n pais: userData.address.country,\r\n estado: userData.address.uf,\r\n cidade: userData.address.city,\r\n bairro: userData.address.district,\r\n logradouro: userData.address.street,\r\n complemento: userData.address.complement,\r\n numero: userData.address.number,\r\n },\r\n comunicacao: {\r\n email: userData.user.email,\r\n telefones: [\r\n {\r\n cidade: userData.user.cellPhoneDetails.city,\r\n UF: userData.user.cellPhoneDetails.uf,\r\n ddd: userData.user.cellPhoneDetails.ddd,\r\n numero: userData.user.cellPhoneDetails.number,\r\n tipo: \"celular\",\r\n },\r\n ],\r\n },\r\n };\r\n\r\n if (userData.user.phoneNumberDetails) {\r\n pessoa.comunicacao.telefones.push({\r\n cidade: userData.user.phoneNumberDetails.city,\r\n UF: userData.user.phoneNumberDetails.uf,\r\n ddd: userData.user.phoneNumberDetails.ddd,\r\n numero: userData.user.phoneNumberDetails.number,\r\n tipo: \"telefone\",\r\n });\r\n }\r\n this.context.setContext({\r\n ...this.context,\r\n copyPerson: pessoa,\r\n });\r\n return pessoa;\r\n }\r\n\r\n getPFRequestBody(userData) {\r\n const pessoa = {\r\n identificacao: {\r\n tipo: \"Fisica\",\r\n documento: \"CPF\",\r\n codigo: this.context.document,\r\n },\r\n nome: userData.user.nome,\r\n dadosPessoaFisica: {\r\n dataNascimento: dateUtils.format2Service(\r\n masks.date(userData.user.nascimento)\r\n ),\r\n documento: {\r\n tipo: \"2\",\r\n documento: \"RG\",\r\n codigo: userData.user.documento,\r\n orgaoEmissor: userData.user.emissor,\r\n },\r\n acessibilidade: {\r\n codigo: userData.user.acessibilidade,\r\n },\r\n sexo: {\r\n codigo: userData.user.sexo,\r\n },\r\n estadoCivil: {\r\n codigo: userData.user.estadocivil,\r\n },\r\n profissao: {\r\n codigo: userData.user.profissao,\r\n },\r\n nacionalidade: {\r\n codigo: userData.user.nacionalidade,\r\n },\r\n naturalidade: {\r\n codigo: userData.user.estado,\r\n valor: userData.user.naturalidade,\r\n },\r\n filiacao: {\r\n mae: userData.user.mae,\r\n pai: userData.user.mae,\r\n },\r\n informacoesEconomicas: {\r\n faixaRenda: [\r\n {\r\n valor: currency.currencyToNumber(\r\n userData.user.renda.replace(\"R$ \", \"\")\r\n ),\r\n },\r\n ],\r\n },\r\n qualificadores: [\r\n {\r\n codigo: \"PEP\",\r\n valor: userData.user.exposed,\r\n },\r\n ],\r\n },\r\n endereco: {\r\n cep: userData.address.cep,\r\n pais: userData.address.country,\r\n estado: userData.address.uf,\r\n cidade: userData.address.city,\r\n bairro: userData.address.district,\r\n logradouro: userData.address.street,\r\n complemento: userData.address.complement,\r\n numero: userData.address.number,\r\n qualificador: {\r\n valor: \"R\",\r\n },\r\n },\r\n comunicacao: {\r\n email: userData.user.email,\r\n telefones: [\r\n {\r\n cidade: userData.user.celularDetails.city,\r\n UF: userData.user.celularDetails.uf,\r\n ddd: userData.user.celularDetails.ddd,\r\n numero: userData.user.celularDetails.number,\r\n tipo: \"celular\",\r\n },\r\n ],\r\n },\r\n };\r\n\r\n if (userData.user.fixoDetails) {\r\n pessoa.comunicacao.telefones.push({\r\n cidade: userData.user.fixoDetails.city,\r\n UF: userData.user.fixoDetails.uf,\r\n ddd: userData.user.fixoDetails.ddd,\r\n numero: userData.user.fixoDetails.number,\r\n tipo: \"telefone\",\r\n });\r\n }\r\n\r\n if (userData.user.fatca.fatca === \"S\") {\r\n pessoa.dadosPessoaFisica.fatca = {\r\n paisNascimento: userData.user.fatca.paisNascimento,\r\n paisResidenciaFiscal: userData.user.fatca.paisResidenciaFiscal,\r\n };\r\n\r\n if (userData.user.fatca.flagPaisObrigacao === \"S\") {\r\n pessoa.dadosPessoaFisica.fatca.paisObrigacaoFiscal =\r\n userData.user.fatca.paisObrigacaoFiscal;\r\n pessoa.dadosPessoaFisica.fatca.nif = userData.user.fatca.nif;\r\n }\r\n }\r\n\r\n if (userData.user.conjuge.cpf.length > 0) {\r\n pessoa.dadosPessoaFisica.conjuge = userData.user.conjuge.cotista\r\n ? {\r\n codigo: userData.user.conjuge.codigo,\r\n }\r\n : {\r\n nome: userData.user.conjuge.nome,\r\n identificacao: {\r\n tipo: \"Fisica\",\r\n documento: \"CPF\",\r\n codigo: userData.user.conjuge.cpf,\r\n },\r\n dataNascimento: dateUtils.format2Service(\r\n masks.date(userData.user.conjuge.nascimento)\r\n ),\r\n documento: {\r\n tipo: \"2\",\r\n documento: \"RG\",\r\n codigo: userData.user.conjuge.documento,\r\n orgaoEmissor: userData.user.conjuge.emissor,\r\n },\r\n acessibilidade: {\r\n codigo: userData.user.conjuge.acessibilidade,\r\n },\r\n sexo: {\r\n codigo: userData.user.conjuge.sexo,\r\n },\r\n naturalidade: {\r\n codigo: userData.user.conjuge.estado,\r\n valor: userData.user.conjuge.naturalidade,\r\n },\r\n informacoesEconomicas: {\r\n faixaRenda: [\r\n {\r\n valor: currency.currencyToNumber(\r\n userData.user.conjuge.renda.replace(\"R$ \", \"\")\r\n ),\r\n },\r\n ],\r\n },\r\n };\r\n }\r\n this.context.setContext({\r\n ...this.context,\r\n copyPerson: pessoa,\r\n });\r\n return pessoa;\r\n }\r\n}\r\n\r\nexport default NewUser;\r\n","import React from 'react';\r\nimport styles from './Insurance.module.sass';\r\nimport theme from '../../App.module.sass';\r\nimport formStyles from '../../components/UserForms/UserForm.module.sass';\r\nimport RadioGroup from \"../../components/ui/RadioGroup/RadioGroup\";\r\nimport Button from '../../components/ui/Button/Button';\r\nimport PurchaseDetailsCard from \"../../components/PurchaseDetailsCard/PurchaseDetailsCard\";\r\nimport api from \"../../utils/api\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport gaTags from './../../utils/ga-tags';\r\n\r\n\r\nimport insuranceIcon from '../../assets/svgs/seguro.svg';\r\n\r\nclass Insurance extends React.Component {\r\n\r\n state = {\r\n insurance: this.context.insurance ? 'S' : 'N',\r\n percentage: null\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n advanceClickHandler = () => {\r\n this.context.setContext({\r\n ...this.context,\r\n insurance: this.state.insurance === 'S'\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/pagamento\"\r\n });\r\n };\r\n\r\n insuranceChangeHandler = (value) => {\r\n if (value === 'S' && this.state.percentage == null) {\r\n const requestParams = {\r\n codigoVenda: this.context.selectedOffer.identificacao.codigoVenda,\r\n codigoGrupo: this.context.selectedOffer.identificacao.codigo,\r\n codigoSubProduto: parseInt(this.context.product.id),\r\n codigoTaxa: this.context.selectedOffer.dados.plano.identificacao.codigoTaxa,\r\n codigoPlano: this.context.selectedOffer.dados.plano.identificacao.codigo,\r\n codigoProduto: this.context.selectedOffer.codigoProduto,\r\n cpfCnpj: this.context.document\r\n };\r\n\r\n api.get(api.endpoints.INSURANCE, null, requestParams).then((result) => {\r\n this.setState({insurance: value, percentage: result.data.percentual})\r\n });\r\n } else {\r\n this.setState({insurance: value})\r\n }\r\n };\r\n\r\n render() {\r\n\r\n const insuranceName = this.state.insurance === \"S\" ? \"Sim\" : \"Não\"\r\n const gaTypeName = `${gaTags.typeFlow2.concat(\"3-\")}&${insuranceName}&-Prestamista`\r\n\r\n\r\n return (\r\n <div className={styles.Insurance}>\r\n <div className={styles.content}>\r\n <section className={formStyles.sectionForm}>\r\n <article className={styles.textInsurance}>\r\n <h2 className={styles.title}>\r\n Em caso de invalidez por acidente ou morte,\r\n suas parcelas restantes do Consórcio podem ser quitadas, basta contratar o Seguro Prestamista.\r\n </h2>\r\n <p className={styles.marginTop}>Evite deixar esse gasto para quem você ama.</p>\r\n <p className={styles.marginBottom}>Esse seguro é opcional.</p>\r\n <img alt=\"Seguro Prestamista\" className={styles.imageInsurance} src={insuranceIcon} />\r\n </article>\r\n </section>\r\n <section className={formStyles.sectionForm}>\r\n <p className={styles.titleRadio}>Deseja Adquirir?</p>\r\n <RadioGroup\r\n options={[\"S\", \"N\"].map(el => ({value: el, text: el === 'S' ? 'Sim' : 'Não'}))}\r\n value={this.state.insurance}\r\n onChanged={this.insuranceChangeHandler}\r\n />\r\n {\r\n (this.state.percentage && this.state.insurance === 'S') &&\r\n <span className={styles.info}>\r\n Acréscimo de {this.state.percentage}% a partir da 2ª parcela\r\n </span>\r\n }\r\n\r\n </section>\r\n <footer className={theme.footerForm}>\r\n <span\r\n onClick={() =>\r\n this.props.history.push({\r\n pathname: '/dados-cliente'\r\n })\r\n }\r\n className={theme.backLabel} role=\"link\">\r\n <i className=\"icon icon-seta-esquerda\"/>\r\n Voltar\r\n </span>\r\n\r\n <Button\r\n selected\r\n onClick={this.advanceClickHandler}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-Continuar`}>\r\n Continuar\r\n </Button>\r\n </footer>\r\n </div>\r\n <div className={styles.card}>\r\n <PurchaseDetailsCard offer={this.context}/>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Insurance;\r\n","import React, { Fragment } from \"react\";\r\n\r\nimport styles from \"./UserDataSummary.module.sass\";\r\nimport TitleSection from \"../TitleSection/TitleSection\";\r\nimport dateUtils from \"../../utils/date\";\r\nimport masks from \"../../utils/masks\";\r\n\r\nconst userDataSummary = props => {\r\n return (\r\n <Fragment>\r\n <TitleSection\r\n title={\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? \"Seus dados\"\r\n : \"Dados da empresa\"\r\n }\r\n />\r\n <div className={styles.dataSummary}>\r\n <div className={styles.dataItem}>\r\n <span className={styles.placeholder}>\r\n {\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? \"Nome completo\"\r\n : \"Razão social\"\r\n }\r\n </span>\r\n <p className={styles.dataDesc}>{props.data.client.pessoa.nome}</p>\r\n </div>\r\n\r\n <div className={styles.dataItem}>\r\n <span className={styles.placeholder}>\r\n {\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? \"CPF\"\r\n : \"CNPJ\"\r\n }\r\n </span>\r\n <p className={styles.dataDesc}>{\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? masks.cpf(props.data.document)\r\n : masks.cnpj(props.data.document)\r\n }</p>\r\n </div>\r\n <div className={styles.dataItem}>\r\n <span className={styles.placeholder}>\r\n {\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? \"Data de nascimento\"\r\n : \"Data de fundação\"\r\n }\r\n </span>\r\n <p className={styles.dataDesc}>{\r\n props.data.selectedIdentifier === \"cpf\"\r\n ? dateUtils.format(\r\n new Date(\r\n props.data.client.pessoa.dadosPessoaFisica.dataNascimento\r\n )\r\n )\r\n : dateUtils.format(\r\n new Date(\r\n props.data.client.pessoa.dadosPessoaJuridica.dataFundacao\r\n )\r\n )\r\n }</p>\r\n </div>\r\n\r\n </div>\r\n </Fragment>\r\n );\r\n};\r\n\r\nexport default userDataSummary;\r\n","import React from 'react';\r\nimport styles from './selectableButton.module.sass';\r\n\r\nconst selectableButton = (props) => {\r\n return (\r\n <div className={[styles.buttonContainer, props.className].join(' ')}>\r\n {\r\n props.leftIcon && (\r\n <i className={`icon ${props.leftIcon} ${styles.leftIcon} ${props.selected ? styles.selected : ''}`}/>\r\n )\r\n }\r\n\r\n <button\r\n className={\r\n [styles.SelectedButton,\r\n props.buttonClass,\r\n props.selected ? styles.selected : '',\r\n props.blue ? styles.blue : '',\r\n props.showCheckmark ? styles.additionalPadding : ''\r\n ].join(' ')}\r\n onClick={props.onClick}\r\n\r\n >\r\n {props.children}\r\n </button>\r\n {\r\n props.selected && props.showCheckmark && (\r\n <i className={`icon icon-check-p ${props.selected ? styles.selected : ''}`}/>\r\n )\r\n }\r\n </div>\r\n )\r\n};\r\n\r\nexport default selectableButton;\r\n","import React from \"react\";\r\n\r\nimport TitleSection from \"../TitleSection/TitleSection\";\r\nimport SelectableButton from \"../ui/SelectableButton/selectableButton\";\r\nimport styles from \"./PaymentMethods.module.sass\";\r\n\r\nconst paymentMethods = props => {\r\n return (\r\n <div>\r\n <TitleSection\r\n title={\r\n props.allowCC\r\n ? \"Como deseja pagar a parcela de adesão?\"\r\n : \"E as demais parcelas?\"\r\n }\r\n />\r\n <div className={styles.chooser}>\r\n {props.allowCC && (\r\n <SelectableButton\r\n selected={props.value === \"CC\"}\r\n className={styles.paymentButton}\r\n buttonClass={styles.innerButton}\r\n onClick={() => props.selectedMethod(\"CC\")}\r\n blue\r\n leftIcon=\"icon-credito\"\r\n >\r\n Cartão <span className={styles.fullText}>de crédito</span>\r\n </SelectableButton>\r\n )}\r\n <SelectableButton\r\n selected={props.value === \"DB\"}\r\n className={styles.paymentButton}\r\n buttonClass={styles.innerButton}\r\n onClick={() => props.selectedMethod(\"DB\")}\r\n blue\r\n leftIcon=\"icon-pagamento\"\r\n >\r\n Débito <span className={styles.fullText}>em conta Caixa</span>\r\n </SelectableButton>\r\n <SelectableButton\r\n selected={props.value === \"BB\"}\r\n className={styles.paymentButton}\r\n buttonClass={styles.innerButton}\r\n onClick={() => props.selectedMethod(\"BB\")}\r\n blue\r\n leftIcon=\"icon-boleto-p\"\r\n >\r\n Boleto\r\n </SelectableButton>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default paymentMethods;\r\n","export const parseCC = (cc) => {\r\n if (cc.length === 16) {\r\n // SIDEC\r\n return {\r\n agency: cc.slice(0, 4),\r\n operation: cc.slice(4, 7),\r\n account: cc.slice(7, 15),\r\n dv: cc.slice(15, 16),\r\n };\r\n } else if (cc.length === 21) {\r\n // NSGD\r\n return {\r\n agency: cc.slice(0, 4),\r\n operation: cc.slice(4, 8),\r\n account: cc.slice(8, 20),\r\n dv: cc.slice(20, 21),\r\n };\r\n } else {\r\n return {\r\n agency: \"\",\r\n operation: \"\",\r\n account: \"\",\r\n dv: \"\",\r\n };\r\n }\r\n};\r\n","import React, { useContext } from \"react\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport SelectableButton from \"../ui/SelectableButton/selectableButton\";\r\nimport styles from \"./accountList.module.sass\";\r\nimport { parseCC } from \"../../utils/accounts\";\r\n\r\nconst accountList = (props) => {\r\n const context = useContext(AppContext);\r\n\r\n return (\r\n <ul className={styles.AccountList}>\r\n {context.ibcUser &&\r\n context.ibcUser.accounts.map((cc, index) => {\r\n const data = parseCC(cc);\r\n return (\r\n <li key={`${cc}-${index}`} className={styles.AccountItem}>\r\n <SelectableButton\r\n selected={index === props.selectedIndex}\r\n className={styles.AccountButton}\r\n blue\r\n showCheckmark\r\n onClick={() => {\r\n props.onChange({\r\n accountIndex: index,\r\n anotherAccount: false,\r\n operation: data.operation,\r\n agency: data.agency,\r\n account: data.account,\r\n digit: data.dv,\r\n });\r\n }}\r\n >\r\n {`Ag: ${data.agency} CC: ${data.account}-${data.dv}`}\r\n </SelectableButton>\r\n </li>\r\n );\r\n })}\r\n <li key={\"outra\"} className={styles.AccountItem}>\r\n <SelectableButton\r\n selected={props.selectedIndex === context.ibcUser.accounts.length}\r\n className={styles.AccountButton}\r\n blue\r\n showCheckmark\r\n onClick={() => {\r\n props.onChange({\r\n accountIndex: context.ibcUser.accounts.length,\r\n anotherAccount: true,\r\n operation: \"\",\r\n agency: \"\",\r\n account: \"\",\r\n digit: \"\",\r\n });\r\n }}\r\n >\r\n Outra Conta\r\n </SelectableButton>\r\n </li>\r\n </ul>\r\n );\r\n};\r\n\r\nexport default accountList;\r\n","import React from 'react';\r\nimport styles from './Reminder.module.sass'\r\nimport { withRouter } from \"react-router\";\r\n\r\nfunction Reminder(props) {\r\n return (\r\n <div className={styles.content}>\r\n <p><strong>Importante lembrar: </strong>{props.text}</p>\r\n </div>\r\n )\r\n}\r\n\r\nexport default withRouter(Reminder);\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 React from \"react\";\r\nimport styles from \"./PaymentDetails.module.sass\";\r\nimport Table from \"../../components/ui/Table/Table\";\r\nimport PaymentMethods from \"../../components/PaymentMethods/PaymentMethods\";\r\nimport AccountList from \"../../components/AccountList/accountList\";\r\nimport { Collapse } from \"react-bootstrap\";\r\nimport currency from \"../../utils/currency\";\r\nimport { inputType } from \"../ui/Input/Input\";\r\nimport Input from \"../ui/Input/Input\";\r\nimport validation from \"../../utils/validation\";\r\nimport masks from \"../../utils/masks\";\r\nimport theme from \"../../App.module.sass\";\r\nimport Reminder from \"../Reminder/Reminder\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport env from \"../../config/environment\";\r\n\r\nconst getSelectedStyle = condition => condition ? styles.selected: ''\r\nconst getArrowStyle = open => open ? \"icon icon-seta-baixo-p\" : \"icon icon-seta-cima-p\"\r\nclass PaymentDetails extends React.Component {\r\n targetDiv = React.createRef();\r\n static contextType = AppContext;\r\n state = {\r\n open: false,\r\n tableHeaders: [],\r\n tableRows: [],\r\n method: \"\",\r\n debitInfo: {\r\n accountIndex: -1,\r\n anotherAccount: !this.props.ibc,\r\n operation: \"\",\r\n agency: \"\",\r\n account: \"\",\r\n digit: \"\",\r\n },\r\n creditInfo: {\r\n cardNumber: \"\",\r\n validity: \"\",\r\n ccv: \"\",\r\n titular: \"\",\r\n titularCPF: \"\",\r\n },\r\n };\r\n\r\n PFDebitOptions = [\r\n { value: \"001\", text: \"Conta corrente de PF\" },\r\n { value: \"013\", text: \"Poupança de PF\" },\r\n ];\r\n\r\n PJDebitOptions = [\r\n { value: \"003\", text: \"Conta corrente de PJ\" },\r\n { value: \"022\", text: \"Poupança de PJ\" },\r\n ];\r\n\r\n getDebitOptions = () => {\r\n return this.props.selectedIdentifier === \"cpf\"\r\n ? this.PFDebitOptions\r\n : this.PJDebitOptions;\r\n };\r\n\r\n getInfo = () => {\r\n return {\r\n method: this.state.method,\r\n debitInfo: { ...this.state.debitInfo },\r\n creditInfo: { ...this.state.creditInfo },\r\n };\r\n };\r\n\r\n onSelectedValue = (value) => {\r\n if (value === this.state.method) {\r\n return;\r\n }\r\n this.setState({\r\n method: value,\r\n debitInfo: {\r\n accountIndex: this.props.ibc ? -1 : 0,\r\n anotherAccount: !this.props.ibc,\r\n operation: \"\",\r\n agency: \"\",\r\n account: \"\",\r\n digit: \"\",\r\n },\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (this.props.hasOwnProperty(\"onChange\") && prevState !== this.state) {\r\n this.props.onChange(this.getInfo());\r\n }\r\n\r\n if (\r\n prevProps.parcelas !== this.props.parcelas ||\r\n this.props.parcelas.length !== this.state.tableRows.length\r\n ) {\r\n const tableHeaders = [\r\n {\r\n text: \"Parcelas\",\r\n },\r\n {\r\n text: \"Total\",\r\n className: styles.totalInfo,\r\n bold: true,\r\n },\r\n ];\r\n\r\n const tableRows = this.props.parcelas.map((el) => ({\r\n interval:\r\n el.inicio === el.fim\r\n ? el.inicio + \"ª parcela\"\r\n : \"da \" + el.inicio + \"ª até a \" + el.fim + \"ª\",\r\n total: \"R$ \" + currency.numberToCurrency(el.valor),\r\n }));\r\n\r\n this.setState({\r\n tableHeaders: tableHeaders,\r\n tableRows: tableRows,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const contextType = this.context;\r\n const textBolAuto = (\r\n <>\r\n O pagamento do seu boleto deve ser feito em{\" \"}\r\n <strong>até 3 dias úteis.</strong> Este prazo é apenas para o pagamento\r\n da primeira parcela do seu consórcio. Para as demais parcelas, o\r\n vencimento <strong>será sempre no dia 15.</strong>\r\n </>\r\n );\r\n const textDebitAuto = (\r\n <>\r\n O débito vai ocorrer na sua conta em{\" \"}\r\n <strong>1 dia (útil), a contar da data de venda.</strong> Este prazo é\r\n apenas para o pagamento da primeira parcela do seu consórcio. Para as\r\n demais parcelas, o vencimento <strong>será sempre no dia 15.</strong>\r\n </>\r\n );\r\n const textBolResidence = (\r\n <>\r\n O pagamento do seu boleto deve ser feito em{\" \"}\r\n <strong>até 3 dias úteis.</strong> Este prazo é apenas para o pagamento\r\n da primeira parcela do seu consórcio. Para as demais parcelas, o\r\n vencimento <strong>será sempre no dia 10.</strong>\r\n </>\r\n );\r\n const textDebitResidence = (\r\n <>\r\n O débito vai ocorrer na sua conta em{\" \"}\r\n <strong>1 dia (útil), a contar da data de venda.</strong> Este prazo é\r\n apenas para o pagamento da primeira parcela do seu consórcio. Para as\r\n demais parcelas, o vencimento <strong>será sempre no dia 10.</strong>\r\n </>\r\n );\r\n const textCreditCard = (\r\n <>\r\n Pagamento em{\" \"}\r\n <strong>cartão de crédito só está disponível para a 1ª parcela.</strong>{\" \"}\r\n As demais você deverá escolher entre boleto ou débito em conta Caixa.\r\n </>\r\n );\r\n\r\n return (\r\n <div className={styles.PaymentDetails}>\r\n <PaymentMethods\r\n value={this.state.method}\r\n allowCC={env.ENABLE_CC === \"true\" && !this.props.secondary}\r\n selectedMethod={this.onSelectedValue}\r\n />\r\n\r\n {this.props.ibc && this.state.method === \"DB\" && (\r\n <>\r\n <React.Fragment>\r\n {contextType.product && contextType.product.id === \"1\" ? (\r\n <Reminder text={textDebitResidence} />\r\n ) : (\r\n <Reminder text={textDebitAuto} />\r\n )}\r\n </React.Fragment>\r\n <React.Fragment>\r\n <p className={`${styles.subtitle} ${styles.accountSubtitle}`}>\r\n Escolha sua conta ou informe uma nova\r\n </p>\r\n <AccountList\r\n selectedIndex={this.state.debitInfo.accountIndex}\r\n onChange={(data) => {\r\n this.setState({\r\n debitInfo: {\r\n accountIndex: data.accountIndex,\r\n anotherAccount: data.anotherAccount,\r\n operation: data.operation,\r\n agency: data.agency,\r\n account: data.account,\r\n digit: data.digit,\r\n },\r\n });\r\n }}\r\n />\r\n </React.Fragment>\r\n </>\r\n )}\r\n\r\n {this.state.method === \"DB\" && this.state.debitInfo.anotherAccount && (\r\n <>\r\n <React.Fragment>\r\n {contextType.product && contextType.product.id === \"1\" ? (\r\n <Reminder text={textDebitResidence} />\r\n ) : (\r\n <Reminder text={textDebitAuto} />\r\n )}\r\n </React.Fragment>\r\n <React.Fragment>\r\n <p className={`${styles.subtitle} ${styles.debitInfo}`}>\r\n Insira os dados da conta\r\n </p>\r\n <p>Banco: Caixa Economica Federal</p>\r\n <div className={[theme.row, styles.accountInfo].join(\" \")}>\r\n <Input\r\n value={this.state.debitInfo.operation}\r\n type={inputType.DROPDOWN}\r\n onSelect={(value) =>\r\n this.setState({\r\n debitInfo: { ...this.state.debitInfo, operation: value },\r\n })\r\n }\r\n options={this.getDebitOptions()}\r\n validationRules={[validation.required]}\r\n typeDocument={\"Operação\"}\r\n className={theme.col30}\r\n />\r\n\r\n <Input\r\n value={this.state.debitInfo.agency}\r\n onChange={(value) =>\r\n this.setState({\r\n debitInfo: { ...this.state.debitInfo, agency: value },\r\n })\r\n }\r\n mask={masks.numberOnly}\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(4),\r\n ]}\r\n maxLength={4}\r\n typeDocument={\"Agência\"}\r\n className={theme.col20}\r\n />\r\n <Input\r\n value={this.state.debitInfo.account}\r\n onChange={(value) =>\r\n this.setState({\r\n debitInfo: { ...this.state.debitInfo, account: value },\r\n })\r\n }\r\n mask={masks.numberOnly}\r\n validationRules={[validation.required]}\r\n maxLength={12}\r\n typeDocument={\"Conta\"}\r\n className={theme.col30}\r\n />\r\n <p className={styles.divider}>-</p>\r\n <Input\r\n value={this.state.debitInfo.digit}\r\n onChange={(value) =>\r\n this.setState({\r\n debitInfo: { ...this.state.debitInfo, digit: value },\r\n })\r\n }\r\n mask={masks.numberOnly}\r\n validationRules={[validation.required]}\r\n maxLength={1}\r\n typeDocument={\"Dígito\"}\r\n className={theme.col20}\r\n />\r\n </div>\r\n </React.Fragment>\r\n </>\r\n )}\r\n\r\n {this.state.method === \"BB\" && (\r\n <React.Fragment>\r\n <React.Fragment>\r\n {contextType.product && contextType.product.id === \"1\" ? (\r\n <Reminder text={textBolResidence} />\r\n ) : (\r\n <Reminder text={textBolAuto} />\r\n )}\r\n </React.Fragment>\r\n </React.Fragment>\r\n )}\r\n\r\n {this.state.method === \"CC\" && (\r\n <React.Fragment>\r\n <Reminder text={textCreditCard} />\r\n <p className={`${styles.subtitle} ${styles.debitInfo}`}>\r\n Insira os dados do cartão\r\n </p>\r\n <div className={[theme.row, styles.complement].join(\" \")}>\r\n <Input\r\n value={this.state.creditInfo.cardNumber}\r\n type=\"tel\"\r\n onChange={(value) => {\r\n this.setState({\r\n creditInfo: {\r\n ...this.state.creditInfo,\r\n cardNumber: masks.creditCard(value).replace(/\\D/g, \"\"),\r\n },\r\n });\r\n }}\r\n validationRules={[validation.required, validation.credicCard]}\r\n typeDocument={\"Nº do cartão de crédito\"}\r\n className={theme.col50}\r\n maxLength={30}\r\n mask={masks.creditCard}\r\n />\r\n\r\n <div className={[theme.col50, styles.row].join(\" \")}>\r\n <Input\r\n value={this.state.creditInfo.validity}\r\n type=\"tel\"\r\n onChange={(value) =>\r\n this.setState({\r\n creditInfo: {\r\n ...this.state.creditInfo,\r\n validity: value.substr(0, 4),\r\n },\r\n })\r\n }\r\n mask={masks.creditValidity}\r\n validationRules={[\r\n validation.required,\r\n validation.creditValidity,\r\n ]}\r\n typeDocument={\"Validade\"}\r\n maxLength=\"5\"\r\n />\r\n <Input\r\n value={this.state.creditInfo.ccv}\r\n type=\"tel\"\r\n onChange={(value) =>\r\n this.setState({\r\n creditInfo: { ...this.state.creditInfo, ccv: value },\r\n })\r\n }\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n ]}\r\n typeDocument={\"CCV\"}\r\n mask={masks.numberOnly}\r\n maxLength={3}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className={[theme.row, styles.complement].join(\" \")}>\r\n <Input\r\n value={this.state.creditInfo.titular}\r\n onChange={(value) =>\r\n this.setState({\r\n creditInfo: { ...this.state.creditInfo, titular: value },\r\n })\r\n }\r\n type=\"text\"\r\n validationRules={[\r\n validation.required,\r\n validation.minLength(3),\r\n validation.lettersOnly,\r\n ]}\r\n typeDocument={\"Titular\"}\r\n maxLength={79}\r\n className={theme.col60}\r\n />\r\n <Input\r\n value={this.state.creditInfo.titularCPF}\r\n onChange={(value) =>\r\n this.setState({\r\n creditInfo: { ...this.state.creditInfo, titularCPF: value },\r\n })\r\n }\r\n type=\"tel\"\r\n validationRules={[validation.required, validation.vCpf]}\r\n mask={masks.cpf}\r\n typeDocument={\"Documento de identificação\"}\r\n maxLength={14}\r\n className={theme.col40}\r\n />\r\n </div>\r\n </React.Fragment>\r\n )}\r\n\r\n {this.state.method !== \"\" && this.state.method !== \"CC\" ? (\r\n <div>\r\n <div className={styles.details}>\r\n <label>\r\n Parcelas a partir de{\" \"}\r\n <b>R$ {currency.numberToCurrency(this.props.parcelaMedia)}</b>\r\n </label>\r\n <div\r\n ref={(el) => (this.targetDiv = el)}\r\n onClick={() => this.setState({ open: !this.state.open })}\r\n className={[\r\n styles.moreDetails,\r\n getSelectedStyle(this.state.open),\r\n ].join(\" \")}\r\n >\r\n <span role=\"link\">Ver todas as parcelas</span>\r\n <i\r\n className={\r\n getArrowStyle(!this.state.open)\r\n }\r\n />\r\n </div>\r\n </div>\r\n <div\r\n className={[\r\n styles.expandedArea,\r\n getSelectedStyle(this.state.open),\r\n ].join(\" \")}\r\n >\r\n <Collapse\r\n in={this.state.open}\r\n onEntered={() => {\r\n /*this.targetDiv.scrollIntoView({behavior: \"smooth\", block: \"start\"})*/\r\n }}\r\n >\r\n <div className={styles.parcelas}>\r\n {this.state.tableRows.length > 0 ? (\r\n <React.Fragment>\r\n <Table\r\n headers={this.state.tableHeaders}\r\n rows={this.state.tableRows}\r\n />\r\n <p className={styles.bottomInfo}>\r\n O valor do crédito e da parcela é corrigido a cada 12\r\n assembleias do grupo, de acordo com o Índice Nacional de\r\n Preços ao Consumidor – INPC, garantindo assim, o seu\r\n poder de compra.\r\n </p>\r\n </React.Fragment>\r\n ) : (\r\n <h2>Informações sobre parcelas ainda não disponíveis</h2>\r\n )}\r\n </div>\r\n </Collapse>\r\n </div>\r\n </div>\r\n ) : null}\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default PaymentDetails;\r\n","import api from \"./api\";\r\nimport env from \"../config/environment\";\r\nimport { lgpdConsentBody } from \"./lgpd-consent-body\";\r\n\r\nexport const lgpdEndpoint = (businessProcess, cpf) =>\r\n `/lgpd/v1/consentimentos/processo-negocio/${businessProcess}/pessoas/${cpf}`;\r\n\r\nexport const getLgpdConsent = (businessProcess, subprocess, cpf) =>\r\n api.get(\r\n lgpdEndpoint(businessProcess, cpf),\r\n {},\r\n {\r\n \"macro-processo-negocio\": env.MACRO_PROCESS_CODE,\r\n \"sub-processo-negocio\": subprocess,\r\n }\r\n );\r\n\r\nexport const postLgpdConsent = (\r\n businessProcess,\r\n cpf,\r\n propsalId,\r\n lgpdConsent,\r\n subprocess\r\n) => {\r\n const endpoint = lgpdEndpoint(businessProcess, cpf);\r\n const data = lgpdConsentBody(propsalId, cpf, subprocess, lgpdConsent);\r\n\r\n return api.post(endpoint, data);\r\n};\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 React, { Component } from \"react\";\r\nimport styles from \"./Payment.module.sass\";\r\nimport formStyles from \"../../components/UserForms/UserForm.module.sass\";\r\nimport theme from \"../../App.module.sass\";\r\n\r\nimport UserDataSummary from \"../../components/UserDataSummary/UserDataSummary\";\r\nimport PurchaseDetailsCard from \"../../components/PurchaseDetailsCard/PurchaseDetailsCard\";\r\nimport PaymentDetails from \"../../components/PaymentDetails/PaymentDetails\";\r\nimport api from \"../../utils/api\";\r\n\r\nimport Button from \"../../components/ui/Button/Button\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport gaTags from \"./../../utils/ga-tags\";\r\nimport { getCreditCardType } from \"../../utils/creditCardUtils\";\r\nimport useChatUrl from \"../../hooks/useChatUrl\";\r\nimport { parseCC } from \"../../utils/accounts\";\r\n\r\nimport env from \"../../config/environment\";\r\nimport * as lgpdApi from \"../../utils/lgpd-api\";\r\n\r\nconst ChatLink = () => {\r\n const { callChat } = useChatUrl();\r\n\r\n return (\r\n <span onClick={() => callChat()} className={theme.link}>\r\n {\" \"}\r\n chat\r\n </span>\r\n );\r\n};\r\n\r\nconst handleError = (error, context, history) => {\r\n if (error.response.data.code == null) {\r\n context.setContext({\r\n ...context,\r\n error: {\r\n show: true,\r\n msg: error.response.data.hasOwnProperty(\"erro\")\r\n ? error.response.data.erro.httpMessage\r\n : error.response.data.httpMessage,\r\n },\r\n });\r\n return;\r\n }\r\n\r\n if (error.response.data.code > 100 && error.response.data.code <= 200) {\r\n context.setContext({\r\n ...context,\r\n error: {\r\n show: true,\r\n msg: error.response.data.httpMessage,\r\n additionalMsg: (\r\n <p>\r\n Caso queira alterá-lo, fale com a gente pelo\r\n <ChatLink /> :)\r\n </p>\r\n ),\r\n showChat: true,\r\n onHide: () => {\r\n history.push({\r\n pathname: \"/produtos\",\r\n });\r\n },\r\n },\r\n });\r\n } else if (\r\n error.response.data.code > 200 &&\r\n error.response.data.code <= 300\r\n ) {\r\n const onHideHandler = () => {\r\n context.setContext({\r\n ...context,\r\n title: \"Esta oferta não está mais disponível :(\",\r\n subtitle:\r\n \"Temos outras ofertas para você. Lembre-se que as cotas estão sujeitas a disponibilidade.\",\r\n redirectToPayment: true,\r\n error: {\r\n show: false,\r\n body: null,\r\n },\r\n });\r\n history.push({\r\n pathname: \"/ofertas\",\r\n });\r\n };\r\n\r\n context.setContext({\r\n ...context,\r\n error: {\r\n show: true,\r\n msg: error.response.data.httpMessage,\r\n additionalMsg: (\r\n <p>\r\n Temos outras ofertas pra você. Clique\r\n <span onClick={onHideHandler} className={theme.link}>\r\n {\" \"}\r\n aqui\r\n </span>{\" \"}\r\n para prosseguir.\r\n </p>\r\n ),\r\n showChat: true,\r\n onHide: onHideHandler,\r\n },\r\n });\r\n } else {\r\n context.setContext({\r\n ...context,\r\n error: {\r\n show: true,\r\n msg: error.response.data.httpMessage,\r\n },\r\n });\r\n }\r\n};\r\n\r\nclass Payment extends Component {\r\n state = {\r\n parcelas: [],\r\n paymentInfo: {},\r\n secondaryPaymentInfo: {},\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n getBasePayload = () => ({\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n codigoUsuario: api.CODIGO_USUARIO(),\r\n identificacao: {\r\n codigoCotacao: this.context.cotationCode,\r\n },\r\n corporativo: {\r\n codigoProduto: this.context.product.id === \"1\" ? \"601\" : \"611\",\r\n },\r\n grupo: {\r\n codigo: this.context.selectedOffer.identificacao.codigo,\r\n codigoBem: this.context.selectedOffer.codigoBem,\r\n codigoPlano: this.context.selectedOffer.dados.plano.identificacao.codigo,\r\n quantidadeParticipantes: this.context.selectedOffer.dados.vagas.total,\r\n prazo: this.context.selectedOffer.dados.plano.prazo.total,\r\n codigoProduto: this.context.selectedOffer.codigoProduto,\r\n codigoTaxa: this.context.selectedOffer.dados.plano.identificacao\r\n .codigoTaxa,\r\n codigoVenda: this.context.selectedOffer.identificacao.codigoVenda,\r\n codigoTipoVenda: this.context.selectedOffer.codigoTipoVenda,\r\n situacao: this.context.selectedOffer.dados.situacao,\r\n },\r\n pagamento: {\r\n condicao: this.state.paymentInfo.method,\r\n },\r\n pessoa: {\r\n cpfCnpj: this.context.document,\r\n },\r\n seguro: {\r\n prestamista: this.context.insurance,\r\n },\r\n snOfertaOutroProduto: this.context.lgpdConsent === '1' ? 's' : 'n',\r\n snOfertaOutroProdutoParceiro: this.context.lgpdConsent === '1' ? 's' : 'n'\r\n });\r\n\r\n formatAccountInfo = (account) => ({\r\n agencia: {\r\n digito: \"\",\r\n numero: account.agency,\r\n },\r\n conta: {\r\n operacao: account.operation,\r\n tipo:\r\n account.operation === \"001\" || account.operation === \"003\" ? \"C\" : \"P\",\r\n digito: account.dv || account.digit,\r\n numero: account.account,\r\n },\r\n favorecido: {\r\n nome: this.context.client.pessoa.nome,\r\n cpfCnpj: this.context.document,\r\n },\r\n });\r\n\r\n submitHandler = () => {\r\n const requestBody = this.getBasePayload();\r\n if (\r\n this.state.paymentInfo.method !== \"DB\" &&\r\n this.state.secondaryPaymentInfo.method !== \"DB\" &&\r\n this.context.ibcUser &&\r\n this.context.ibcUser.accounts[0]\r\n ) {\r\n const ibcAccount = parseCC(this.context.ibcUser.accounts[0]);\r\n requestBody.pagamento.debito = this.formatAccountInfo(ibcAccount);\r\n }\r\n\r\n if (this.state.paymentInfo.method === \"DB\") {\r\n requestBody.pagamento.debito = this.formatAccountInfo(\r\n this.state.paymentInfo.debitInfo\r\n );\r\n }\r\n\r\n if (this.state.paymentInfo.method === \"CC\") {\r\n requestBody.pagamento.cartaoCredito = {\r\n favorecido: {\r\n nome: this.state.paymentInfo.creditInfo.titular,\r\n cpfCnpj: this.state.paymentInfo.creditInfo.titularCPF,\r\n },\r\n numeroCartao: this.state.paymentInfo.creditInfo.cardNumber,\r\n digitoVerificador: this.state.paymentInfo.creditInfo.ccv,\r\n dataValidade: this.state.paymentInfo.creditInfo.validity.replace(\r\n /(\\d{2})(\\d{2})/,\r\n \"$1/20$2\"\r\n ),\r\n bandeira: getCreditCardType(\r\n this.state.paymentInfo.creditInfo.cardNumber\r\n ).name,\r\n };\r\n }\r\n\r\n if (this.state.secondaryPaymentInfo.method === \"BB\") {\r\n requestBody.demaisParcelas = {\r\n condicao: \"BB\",\r\n };\r\n }\r\n\r\n if (this.state.secondaryPaymentInfo.method === \"DB\") {\r\n requestBody.pagamento.debito = this.formatAccountInfo(\r\n this.state.secondaryPaymentInfo.debitInfo\r\n );\r\n\r\n requestBody.demaisParcelas = {\r\n condicao: \"DB\",\r\n debito: this.formatAccountInfo(\r\n this.state.secondaryPaymentInfo.debitInfo\r\n ),\r\n };\r\n }\r\n\r\n api\r\n .post(api.endpoints.PROPOSTA, requestBody)\r\n .then((result) => {\r\n this.context.setContext({\r\n ...this.context,\r\n proposalCode: result.data.proposta.codigo,\r\n paymentType: this.state.paymentInfo.method,\r\n });\r\n if (result.data.proposta.codigo) {\r\n this.sendLgpdConsent(result.data.proposta.codigo);\r\n }\r\n })\r\n .catch((error) => {\r\n handleError(error, this.context, this.props.history);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n const selectedOffer = this.context.selectedOffer;\r\n\r\n const requestBody = {\r\n grupo: {\r\n codigo: selectedOffer.identificacao.codigo,\r\n codigoPlanoVenda: selectedOffer.dados.plano.identificacao.codigo,\r\n codigoTaxaPlano: selectedOffer.dados.plano.identificacao.codigoTaxa,\r\n codigoVenda: selectedOffer.identificacao.codigoVenda,\r\n lanceMedio: selectedOffer.dados.valorLanceMedio,\r\n },\r\n codigoBem: selectedOffer.codigoBem,\r\n codigoComissionado: api.CODIGO_COMISSIONADO(),\r\n codigoEmpresa: api.CODIGO_EMPRESA,\r\n };\r\n\r\n api.post(api.endpoints.OFFERS_DETAILS, requestBody).then((result) => {\r\n this.setState({\r\n parcelas: result.data.dados.plano.detalhes.parcelas,\r\n });\r\n });\r\n }\r\n\r\n checkPaymentDisabled = () => {\r\n return (\r\n this.state.paymentInfo.method === \"\" ||\r\n (this.state.paymentInfo.method === \"DB\" &&\r\n this.state.paymentInfo.debitInfo.accountIndex === -1) ||\r\n (this.state.paymentInfo.method === \"CC\" &&\r\n (!this.state.secondaryPaymentInfo.method ||\r\n (this.state.secondaryPaymentInfo.method === \"DB\" &&\r\n this.state.secondaryPaymentInfo.debitInfo.accountIndex === -1)))\r\n );\r\n };\r\n\r\n getPaymentLabel = () => {\r\n if (this.state.paymentInfo.method === \"CC\") {\r\n return `CartãoCrédito&DemaisParcelas:${this.getContinuousPaymentLabel(\r\n this.state.secondaryPaymentInfo.method\r\n )}`;\r\n }\r\n return this.getContinuousPaymentLabel(this.state.paymentInfo.method);\r\n };\r\n\r\n getContinuousPaymentLabel = (method) => {\r\n return method === \"DB\" ? \"DébitoEmConta\" : \"Boleto\";\r\n };\r\n\r\n sendLgpdConsent = (proposalCode) => {\r\n const promises = [\r\n lgpdApi.postLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n this.context.document,\r\n proposalCode,\r\n this.context.lgpdConsent,\r\n env.BUSINESS_SUBPROCESS_CAIXA_HOLDING_CODE\r\n ),\r\n lgpdApi.postLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n this.context.document,\r\n proposalCode,\r\n this.context.lgpdConsent,\r\n env.BUSINESS_SUBPROCESS_CAIXA_HOLDING_PARTNERS_CODE\r\n ),\r\n ];\r\n Promise.all(promises).then((res) => {\r\n if (res.every((el) => el.status === 200)) {\r\n window.dataLayer.push({\r\n event: \"id-transacao\",\r\n id: proposalCode,\r\n location: window.location.href,\r\n time: new Date(),\r\n ip: window.ip,\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/assinatura\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n const methodType = this.getPaymentLabel();\r\n const gaTypeName = `${gaTags.typeFlow2.concat(\"4-\")}&${\r\n this.state.paymentInfo.method && methodType\r\n }&-FormaPagamento`;\r\n\r\n return (\r\n <div className={styles.Payment}>\r\n <div className={styles.content}>\r\n <section\r\n className={[formStyles.sectionForm, styles.section].join(\" \")}\r\n >\r\n <UserDataSummary data={this.context} />\r\n </section>\r\n\r\n <section\r\n className={[\r\n formStyles.sectionForm,\r\n styles.section,\r\n this.state.paymentInfo.method === \"CC\" ? styles.cc : \"\",\r\n ].join(\" \")}\r\n >\r\n <PaymentDetails\r\n parcelaMedia={this.context.selectedOffer.dados.valorParcela}\r\n selectedIdentifier={this.context.selectedIdentifier}\r\n ibc={this.context.ibc}\r\n parcelas={this.state.parcelas}\r\n onChange={(paymentInfo) => {\r\n const secondary =\r\n paymentInfo.method === \"CC\"\r\n ? this.state.secondaryPaymentInfo\r\n : {};\r\n this.setState({ paymentInfo, secondaryPaymentInfo: secondary });\r\n }}\r\n />\r\n </section>\r\n\r\n {this.state.paymentInfo.method === \"CC\" && (\r\n <section\r\n className={[formStyles.sectionForm, styles.section].join(\" \")}\r\n >\r\n <PaymentDetails\r\n parcelaMedia={this.context.selectedOffer.dados.valorParcela}\r\n selectedIdentifier={this.context.selectedIdentifier}\r\n ibc={this.context.ibc}\r\n onChange={(secondaryPaymentInfo) =>\r\n this.setState({ secondaryPaymentInfo })\r\n }\r\n parcelas={this.state.parcelas}\r\n secondary\r\n />\r\n </section>\r\n )}\r\n\r\n <footer className={theme.footerForm}>\r\n <span\r\n onClick={() =>\r\n this.props.history.push({\r\n pathname:\r\n this.context.allowInsurance &&\r\n !this.context.ibc &&\r\n this.context.selectedIdentifier === \"cpf\"\r\n ? \"/seguro\"\r\n : \"dados-cliente\",\r\n })\r\n }\r\n className={[theme.backLabel, styles.backLabel].join(\" \")}\r\n role=\"link\"\r\n >\r\n <i className=\"icon icon-seta-esquerda\" />\r\n Voltar\r\n </span>\r\n\r\n <Button\r\n onClick={this.submitHandler}\r\n selected\r\n disabled={this.checkPaymentDisabled()}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-FinalizarCompra`}\r\n >\r\n Finalizar Compra\r\n </Button>\r\n </footer>\r\n </div>\r\n\r\n <div className={styles.card}>\r\n <PurchaseDetailsCard offer={this.context} />\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default Payment;\r\n","import React, { Component, createRef } from \"react\";\r\nimport styles from \"./DragAndDrop.module.sass\";\r\n\r\nimport Dropzone from \"react-dropzone\";\r\nimport axios from \"axios\";\r\nimport api from \"../../utils/api\";\r\n\r\nclass DragAndDrop extends Component {\r\n state = {\r\n files: [],\r\n resetKey: Math.random(),\r\n };\r\n\r\n onDrop = (files) => {\r\n if (files.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\r\n \"body\",\r\n JSON.stringify({\r\n cpfCnpj: this.props.cpfCnpj,\r\n numeroProposta: this.props.proposalCode,\r\n numeroContrato: this.props.proposalCode,\r\n tipoDocumento: this.props.document.tipoDocumento,\r\n })\r\n );\r\n formData.append(\"file\", files[0]);\r\n\r\n axios\r\n .post(\r\n process.env.REACT_APP_HOST +\r\n api.endpoints.DOC_UPLOAD.replace(\r\n \"{{codigo}}\",\r\n this.props.processCode\r\n ),\r\n formData,\r\n {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n }\r\n )\r\n .then((result) => {\r\n this.setState({ files: files });\r\n })\r\n .catch(() => {\r\n this.setState({\r\n resetKey: Math.random(),\r\n });\r\n });\r\n };\r\n\r\n onDropRejected = (files) => {\r\n const rejectedFile = files[0];\r\n if (\r\n ![\"image/png\", \"image/jpeg\", \"image/jpg\", \"application/pdf\"].includes(\r\n rejectedFile.type\r\n )\r\n ) {\r\n this.props.context.setContext({\r\n ...this.props.context,\r\n error: {\r\n show: true,\r\n msg:\r\n \"O formato do documento é inválido. Tente formatos como PDF, JPG ou PNG.\",\r\n },\r\n });\r\n } else if (rejectedFile.size > 10000000) {\r\n this.props.context.setContext({\r\n ...this.props.context,\r\n error: {\r\n show: true,\r\n msg:\r\n \"Seu documento está pesado. O máximo permitido é 10mb. Tente de novo!\",\r\n },\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const dropzoneRef = createRef();\r\n const maxSize = 10000000;\r\n\r\n return (\r\n <Dropzone\r\n key={this.state.resetKey}\r\n ref={dropzoneRef}\r\n onDrop={this.onDrop}\r\n onDropRejected={this.onDropRejected}\r\n accept=\"image/png, image/jpeg, image/jpg, application/pdf\"\r\n maxSize={maxSize}\r\n multiple={false}\r\n >\r\n {({\r\n getRootProps,\r\n getInputProps,\r\n isDragActive,\r\n isDragReject,\r\n rejectedFiles,\r\n acceptedFiles,\r\n }) => (\r\n <div\r\n className={[\r\n styles.docItem,\r\n isDragActive ? styles.drag : \"\",\r\n acceptedFiles.length > 0 ? styles.accept : \"\",\r\n ].join(\" \")}\r\n >\r\n <div\r\n {...getRootProps({\r\n className: [\r\n styles.dropzone,\r\n acceptedFiles.length > 0 ? styles.active : \"\",\r\n ].join(\" \"),\r\n })}\r\n >\r\n <input {...getInputProps()} />\r\n <h2 className={styles.titleItem}> {this.props.title}</h2>\r\n\r\n <i\r\n className={[\r\n styles.iconDoc,\r\n acceptedFiles.length > 0\r\n ? \"icon icon-check-p\"\r\n : \"icon icon-adicionar\",\r\n ].join(\" \")}\r\n />\r\n\r\n <p className={styles.textContent}>\r\n {acceptedFiles.length > 0\r\n ? \"Arquivo enviado!\"\r\n : \"Clique aqui ou arraste e solte o(s) arquivo(s) para enviar\"}\r\n <span className={styles.docType}>\r\n PDF,JPG ou PNG - max 10MB\r\n </span>\r\n </p>\r\n </div>\r\n </div>\r\n )}\r\n </Dropzone>\r\n );\r\n }\r\n}\r\n\r\nexport default DragAndDrop;\r\n","import React from \"react\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport styles from \"./MobileDragAndDrop.module.sass\";\r\nimport axios from \"axios\";\r\nimport api from \"../../utils/api\";\r\n\r\nclass MobileDragAndDrop extends React.Component {\r\n state = {\r\n file: null,\r\n uploading: false,\r\n };\r\n\r\n onDrop = (filesList) => {\r\n if (filesList.length === 0) {\r\n return;\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append(\r\n \"body\",\r\n JSON.stringify({\r\n numeroContrato: this.props.proposalCode,\r\n numeroProposta: this.props.proposalCode,\r\n tipoDocumento: this.props.document.tipoDocumento,\r\n cpfCnpj: this.props.cpfCnpj,\r\n })\r\n );\r\n formData.append(\"file\", filesList[0]);\r\n\r\n axios\r\n .post(\r\n process.env.REACT_APP_HOST +\r\n api.endpoints.DOC_UPLOAD.replace(\r\n \"{{codigo}}\",\r\n this.props.processCode\r\n ),\r\n formData,\r\n {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n }\r\n )\r\n .then((result) => {\r\n this.setState({ file: filesList[0] });\r\n });\r\n };\r\n\r\n onDropRejected = (filesList) => {\r\n const rejectedFile = filesList[0];\r\n if (\r\n ![\"image/jpeg\", \"image/jpg\", \"application/pdf\", \"image/png\"].includes(\r\n rejectedFile.type\r\n )\r\n ) {\r\n this.props.context.setContext({\r\n ...this.props.context,\r\n error: {\r\n msg:\r\n \"O formato do documento é inválido. Tente formatos como PDF, JPG ou PNG.\",\r\n show: true,\r\n },\r\n });\r\n } else if (rejectedFile.size > 10000000) {\r\n this.props.context.setContext({\r\n ...this.props.context,\r\n error: {\r\n msg:\r\n \"Seu documento está pesado. O máximo permitido é 10mb. Tente de novo!\",\r\n show: true,\r\n },\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const withFileClasses = \"icon icon-check-p \" + styles.selected;\r\n const withoutFileClasses = \"icon icon-adicionar\";\r\n const maxSize = 10000000;\r\n\r\n return (\r\n <div className={styles.dropContainer}>\r\n <h2 className={styles.titleItem}> {this.props.title}</h2>\r\n <Dropzone\r\n onDrop={this.onDrop}\r\n maxSize={maxSize}\r\n onDropRejected={this.onDropRejected}\r\n multiple={false}\r\n accept=\"image/png, image/jpeg, image/jpg, application/pdf\"\r\n >\r\n {({\r\n getRootProps,\r\n isDragActive,\r\n getInputProps,\r\n rejectedFiles,\r\n isDragReject,\r\n acceptedFiles,\r\n }) => (\r\n <div\r\n className={[\r\n styles.docItem,\r\n isDragActive ? styles.drag : \"\",\r\n acceptedFiles.length > 0 ? styles.accept : \"\",\r\n ].join(\" \")}\r\n >\r\n <div\r\n {...getRootProps({\r\n className: [\r\n styles.dropzone,\r\n acceptedFiles.length > 0 ? styles.active : \"\",\r\n ].join(\" \"),\r\n })}\r\n >\r\n <input {...getInputProps()} />\r\n\r\n <div className={styles.textContent}>\r\n <i\r\n className={[\r\n styles.iconDoc,\r\n this.state.file ? withFileClasses : withoutFileClasses,\r\n ].join(\" \")}\r\n />\r\n <p className={styles.text}>\r\n {acceptedFiles.length > 0\r\n ? \"Arquivo enviado\"\r\n : \"Adicionar Arquivo\"}\r\n\r\n {this.state.file ? (\r\n <span className={styles.fileName}>\r\n {this.state.file.name}\r\n </span>\r\n ) : null}\r\n </p>\r\n </div>\r\n {/* {this.state.file && <i onClick={(e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.setState({file: null})\r\n }} className={[styles.iconClose, \"icon icon-fechar\"].join(' ')}/>} */}\r\n </div>\r\n <span className={styles.docType}>PDF,JPG ou PNG - max 10MB</span>\r\n </div>\r\n )}\r\n </Dropzone>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default MobileDragAndDrop;\r\n","import React from 'react';\r\nimport Title from '../../components/Title/Title';\r\nimport styles from \"./ChooseItem.module.sass\";\r\n\r\nconst ChooseItem = React.forwardRef((props, ref) => {\r\n return (\r\n <div ref={ref} className={[styles.chooseItems, props.className].join(' ')}>\r\n <Title title={props.title} />\r\n\r\n <div className={styles.listButtons}>\r\n {props.children}\r\n </div>\r\n </div>\r\n )\r\n});\r\n\r\nexport default ChooseItem;\r\n","import React from 'react';\r\nimport styles from './SignatureType.module.sass';\r\n\r\nimport ChooseItem from \"../../components/ChooseItem/ChooseItem\";\r\nimport Button from \"../../components/ui/Button/Button\";\r\n\r\nconst SignatureType = (props) => {\r\n return (\r\n <ChooseItem\r\n className={styles.chooseContent}>\r\n <Button\r\n onClick={() => props.signatureChosen(\"EMAIL\")}>\r\n E-mail\r\n </Button>\r\n <Button\r\n onClick={() => props.signatureChosen(\"SMS\")}>\r\n SMS\r\n </Button>\r\n </ChooseItem>\r\n )\r\n};\r\n\r\nexport default SignatureType\r\n","import React from \"react\";\r\nimport Button from \"../ui/Button/Button\";\r\nimport styles from \"./SignatureBillet.module.sass\";\r\nimport api from \"../../utils/api\";\r\nimport gaTags from \"../../utils/ga-tags\";\r\n\r\nconst SignatureBillet = (props) => {\r\n const downloadHandler = (filename, endpoint) => {\r\n api\r\n .get(\r\n endpoint,\r\n { codigo: props.proposta },\r\n {\r\n codigoUsuario: api.CODIGO_USUARIO(),\r\n cotacao: props.cotationCode,\r\n cpfcnpj: props.document,\r\n },\r\n { responseType: \"blob\" }\r\n )\r\n .then((result) => {\r\n const blob = result.data;\r\n const link = document.createElement(\"a\");\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename;\r\n link.click();\r\n });\r\n };\r\n\r\n const gaTypeName = `${gaTags.typeFlow2.concat(\"5-\")}&CheckOut-Sucesso`;\r\n return (\r\n <div className={styles.content}>\r\n <p>Toque no botão abaixo para gerar o seu.</p>\r\n <div className={styles.buttonsList}>\r\n {props.bb && (\r\n <Button\r\n className={styles.buttonItem}\r\n onClick={() =>\r\n downloadHandler(\"boleto.pdf\", api.endpoints.DOWNLOAD_BOLETO)\r\n }\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-Boleto`}\r\n >\r\n <i className=\"icon icon-download\" />\r\n Boleto\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default SignatureBillet;\r\n","import React, { Fragment, Component } from \"react\";\r\nimport styles from \"./Signature.module.sass\";\r\nimport theme from \"../../App.module.sass\";\r\nimport TitleSection from \"../../components/TitleSection/TitleSection\";\r\n\r\nimport api from \"../../utils/api\";\r\n\r\nimport DragAndDrop from \"../../components/DragAndDrop/DragAndDrop\";\r\nimport MobileDragAndDrop from \"../../components/DragAndDrop/MobileDragAndDrop\";\r\nimport mediaQuery from \"../../utils/mediaQuery\";\r\nimport SignatureType from \"../../components/SignatureType/SignatureType\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport SignatureBillet from \"../../components/SignatureBillet/SignatureBillet\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nclass Signature extends Component {\r\n state = {\r\n documents: [],\r\n isDesktop: false,\r\n signStarted: false,\r\n signatureType: \"\",\r\n };\r\n\r\n static contextType = AppContext;\r\n\r\n processCode;\r\n\r\n backButtonListener = () => {\r\n this.context.setContext({\r\n ...this.context,\r\n error: {\r\n show: true,\r\n msg:\r\n \"Já vai embora? Caso volte ou feche essa janela você irá recomeçar sua compra.\",\r\n showOptions: true,\r\n onBack: () => {\r\n this.context.setContext({\r\n ...this.context,\r\n error: {\r\n show: false,\r\n },\r\n });\r\n\r\n this.props.history.push({\r\n pathname: \"/produtos\",\r\n });\r\n },\r\n onCancel: () => {\r\n this.context.setContext({\r\n ...this.context,\r\n error: {\r\n show: false,\r\n },\r\n });\r\n window.history.pushState(null, null, null);\r\n },\r\n onHide: () => {\r\n this.props.history.push({\r\n pathname: \"/produtos\",\r\n });\r\n },\r\n },\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.processCode = this.context.selectedIdentifier === \"cpf\" ? 1001 : 1002;\r\n api\r\n .get(\r\n api.endpoints.LISTA_DOCUMENTOS,\r\n { codigo: this.processCode },\r\n { produto: this.context.product.id === \"1\" ? \"601\" : \"611\" }\r\n )\r\n .then((result) => {\r\n if (result.data.documentos) {\r\n this.setState({ documents: result.data.documentos });\r\n }\r\n });\r\n\r\n if (\r\n mediaQuery.watchIfDesktop((e) => this.setState({ isDesktop: e.matches }))\r\n ) {\r\n this.setState({\r\n isDesktop: true,\r\n });\r\n }\r\n\r\n window.history.pushState(null, null, null);\r\n window.addEventListener(\"popstate\", this.backButtonListener);\r\n window.dataLayer.push({\r\n event: \"Cons.Proposta\",\r\n Nproposta: this.context.proposalCode,\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n mediaQuery.unsubscribe();\r\n window.removeEventListener(\"popstate\", this.backButtonListener);\r\n }\r\n render() {\r\n let titleNumbers = 0;\r\n const nextTitleNum = () => {\r\n titleNumbers += 1;\r\n return titleNumbers;\r\n };\r\n return (\r\n <Fragment>\r\n <div className={theme.contentColumns}>\r\n <div className={theme.mainContent}>\r\n {this.context.paymentType === \"BB\" ? (\r\n <>\r\n <p className={styles.subHeader}>\r\n Para finalizar sua contratação, precisamos que você realize 3\r\n passos importantes. Vamos lá?{\" \"}\r\n </p>\r\n <section className={theme.sectionForm}>\r\n <TitleSection\r\n title={`${nextTitleNum()}. Realize o pagamento do seu boleto`}\r\n />\r\n <SignatureBillet\r\n bb={this.context.paymentType === \"BB\"}\r\n proposta={this.context.proposalCode}\r\n cotationCode={this.context.cotationBusinessCode}\r\n document={this.context.document}\r\n />\r\n </section>\r\n </>\r\n ) : (\r\n <p className={styles.subHeader}>\r\n Para finalizar sua contratação, precisamos que você realize 2\r\n passos importantes. Vamos lá?{\" \"}\r\n </p>\r\n )}\r\n\r\n <section className={theme.sectionForm}>\r\n <TitleSection\r\n title={`${nextTitleNum()}. Faça a sua assinatura`}\r\n />\r\n <p>\r\n Ela é digital e é finalizada em nosso site parceiro. Escolha\r\n como prefere começar:\r\n </p>\r\n <SignatureType signatureChosen={this.signatureHandler} />\r\n </section>\r\n <section className={theme.sectionForm}>\r\n <TitleSection\r\n title={`${nextTitleNum()}. Envie seus documentos`}\r\n />\r\n <p>\r\n Os documentos pedidos aqui e os dados que estão nele, servem\r\n exclusivamente para a manutenção do seu contrato. Saiba mais em\r\n nossa{\" \"}\r\n <a\r\n rel=\"noopener noreferrer\"\r\n href=\"http://caixasegurosholding.force.com/portalprivacidade\"\r\n target=\"_blank\"\r\n >\r\n Política de Privacidade.\r\n </a>\r\n </p>\r\n <p>\r\n Para começar, envie fotos frente e verso do seu documento de\r\n identificação. Lembre-se de se certificar de que todas as\r\n informações estejam legíveis.\r\n </p>\r\n <div className={styles.docsList}>\r\n {this.state.documents.map((doc, index) => {\r\n return this.state.isDesktop ? (\r\n <DragAndDrop\r\n key={index}\r\n context={this.context}\r\n title={doc.apelidoDocumento}\r\n processCode={this.processCode}\r\n cpfCnpj={this.context.document}\r\n proposalCode={this.context.proposalCode}\r\n document={doc}\r\n />\r\n ) : (\r\n <MobileDragAndDrop\r\n key={index}\r\n context={this.context}\r\n title={doc.apelidoDocumento}\r\n processCode={this.processCode}\r\n cpfCnpj={this.context.document}\r\n proposalCode={this.context.proposalCode}\r\n document={doc}\r\n />\r\n );\r\n })}\r\n </div>\r\n </section>\r\n <Link\r\n to=\"/produtos\"\r\n className={[theme.link, styles.newSimulation].join(\" \")}\r\n >\r\n {\" \"}\r\n Fazer uma nova simulação{\" \"}\r\n </Link>\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n }\r\n\r\n signatureHandler = (type) => {\r\n const requestBody = {\r\n tipo: type,\r\n produto: {\r\n codigo: this.context.product.id === \"1\" ? \"601\" : \"611\",\r\n },\r\n pessoa: {\r\n codigo: this.context.document,\r\n },\r\n urlRetorno: \"https://www.google.com.br/\",\r\n codUsuario: api.CODIGO_USUARIO(),\r\n };\r\n\r\n api\r\n .post(api.endpoints.ASSINATURA, requestBody, {\r\n proposta: this.context.proposalCode,\r\n })\r\n .then((result) => {\r\n if (type === \"SMS\") {\r\n window.open(result.data.urlAssinatura, \"_blank\");\r\n }\r\n\r\n this.setState({ signStarted: true });\r\n this.setState({ signatureType: type });\r\n });\r\n };\r\n}\r\n\r\nexport default Signature;\r\n","import React from 'react';\r\nimport Button from \"../ui/Button/Button\";\r\nimport styles from './DocumentsType.module.sass';\r\nimport api from \"../../utils/api\";\r\nimport gaTags from './../../utils/ga-tags';\r\n\r\nconst DocumentsType = (props) => {\r\n\r\n const downloadHandler = (filename, endpoint) => {\r\n api.get(endpoint, { codigo: props.proposta },\r\n { codigoUsuario: api.CODIGO_USUARIO() }, { responseType: 'blob' }).then((result) => {\r\n const blob = result.data;\r\n const link = document.createElement('a');\r\n link.href = window.URL.createObjectURL(blob);\r\n link.download = filename;\r\n link.click();\r\n });\r\n };\r\n\r\n const gaTypeName = `${gaTags.typeFlow2.concat(\"5-\")}&CheckOut-Sucesso`\r\n return (\r\n <div className={styles.content}>\r\n <p>Alguns documentos importantes pra você.</p>\r\n <div className={styles.buttonsList}>\r\n <Button\r\n className={styles.buttonItem}\r\n onClick={() => downloadHandler('proposta.pdf', api.endpoints.DOWNLOAD_PROPOSTA)}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-Proposta`}>\r\n <i className=\"icon icon-download\" />\r\n Proposta\r\n </Button>\r\n <Button\r\n className={styles.buttonItem}\r\n onClick={() => downloadHandler('contrato.pdf', api.endpoints.DOWNLOAD_CONTRATO)}\r\n data-gacategory={gaTags.categoryFlow}\r\n data-gatype={gaTypeName}\r\n data-gafunc={`${gaTypeName}-Contrato`}>\r\n <i className=\"icon icon-download\" />\r\n Contrato\r\n </Button>\r\n </div>\r\n\r\n </div>\r\n )\r\n\r\n};\r\n\r\nexport default DocumentsType\r\n","import React, {Fragment, Component} from 'react';\r\nimport styles from './Documents.module.sass';\r\nimport theme from '../../App.module.sass';\r\nimport TitleSection from '../../components/TitleSection/TitleSection';\r\n\r\n\r\nimport DocumentsType from \"../../components/DocumentsType/DocumentsType\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nclass Documents extends Component {\r\n\r\n render() {\r\n return (\r\n <Fragment>\r\n <div className={theme.contentColumns}>\r\n <div className={theme.mainContent}>\r\n\r\n <section className={theme.sectionForm}>\r\n <TitleSection title=\"Tá na mão\"/>\r\n <DocumentsType\r\n bb={true}\r\n proposta={this.props.match.params.proposalId}/>\r\n\r\n <p>Para acompanhar as assembleias e ficar por dentro de tudo sobre seu consórcio, acesse o\r\n <a className={theme.link} href=\"https://arealogada.caixaseguradora.com.br\" rel=\"noopener noreferrer\" target=\"_blank\"> Serviços ao Cliente. </a>\r\n </p>\r\n\r\n </section>\r\n\r\n <Link to=\"/produtos\" className={[theme.link, styles.newSimulation].join(' ')}> Fazer uma nova simulação </Link>\r\n </div>\r\n </div>\r\n </Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport default Documents;\r\n","import React, { useContext } from \"react\";\r\nimport styles from \"./Chat.module.sass\";\r\nimport useChatUrl from \"../../hooks/useChatUrl\";\r\nimport { withRouter } from \"react-router\";\r\nimport AppContext from \"../../contexts/appContext\";\r\n\r\n\r\nfunction Chat(props) {\r\n const { callChat } = useChatUrl();\r\n const context = useContext(AppContext);\r\n\r\n if (process.env.REACT_APP_DISABLE_CHAT === 'true') {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {!context.ibc && !props.location.pathname.includes(\"confirmar-oferta\") && (\r\n <button\r\n id=\"btnChat\"\r\n className={[styles.chat, props.detached ? styles.detached : \"\"].join(\r\n \" \"\r\n )}\r\n onClick={callChat}\r\n data-gacategory=\"AutoCompra-Consórcio\"\r\n data-gatype=\"AutoCompra-Consórcio-Chat-Rodapé\"\r\n data-gafunc=\"AutoCompra-Consórcio-Chat-Rodapé-Precisa de ajuda?\"\r\n >\r\n <span className={styles.textChat}>Precisa de ajuda?</span>\r\n <span className={styles.subtextChat}>\r\n {context.ibc\r\n ? \"Tire suas dúvidas aqui.\"\r\n : \"Continue comprando pelo chat e tire suas dúvidas.\"}\r\n </span>\r\n </button>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default withRouter(Chat);\r\n","import React from 'react';\r\nimport styles from \"./ErrorModal.module.sass\";\r\nimport {Modal} from \"react-bootstrap\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport Chat from \"../Chat/Chat\";\r\nimport Button from \"../ui/Button/Button\";\r\n\r\nclass ErrorModal extends React.Component {\r\n\r\n static contextType = AppContext;\r\n\r\n hideHandler = () => {\r\n if (this.context.error.onHide) {\r\n this.context.error.onHide();\r\n }\r\n\r\n this.context.setContext({\r\n ...this.context,\r\n error: {\r\n show: false,\r\n body: null\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n const iconClassname = [styles.icon, 'icon'];\r\n if (this.context.error.modalType === 'warning') {\r\n iconClassname.push('icon-atencao-m', styles.warning);\r\n } else if (this.context.error.modalType === 'info') {\r\n iconClassname.push('icon-info-m', styles.warning);\r\n } else {\r\n iconClassname.push('icon-erro-m', styles.error);\r\n }\r\n\r\n return (\r\n <Modal\r\n centered\r\n dialogClassName={styles.modalDialog}\r\n show={this.context.error.show}\r\n onHide={this.hideHandler}\r\n >\r\n <Modal.Header closeButton/>\r\n <Modal.Body>\r\n <i className={iconClassname.join(' ')}/>\r\n <div className={styles.modalMsg}>\r\n {this.context.error.msg}\r\n <span className={styles.additionalInfo}> {this.context.error.additionalMsg}</span>\r\n </div>\r\n {\r\n this.context.error.showOptions &&\r\n <div className={styles.actions}>\r\n <Button onClick={() => this.context.error.onBack && this.context.error.onBack()}>Voltar</Button>\r\n <Button onClick={() => this.context.error.onCancel && this.context.error.onCancel()} selected>Cancelar</Button>\r\n </div>\r\n }\r\n\r\n {this.context.error.chat && this.context.product &&\r\n <Chat\r\n product={this.context.product}/>\r\n }\r\n </Modal.Body>\r\n </Modal>\r\n )\r\n }\r\n}\r\n\r\nexport default ErrorModal;\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 <style>\r\n ${this.css} \r\n </style> \r\n <div class=\"backdrop\">\r\n <div class=\"modal fadeInDown\">\r\n <div class=\"header\"> \r\n <slot name=\"header\">\r\n <h4>Proteção dos seus dados</h4>\r\n </slot>\r\n </div>\r\n <div class=\"content\">\r\n <slot name=\"content\">\r\n <p>\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 </p>\r\n <p>\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 </p>\r\n <p>\r\n Saiba mais detalhes de como utilizamos seus dados pessoais em nossa\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href=\"http://caixasegurosholding.force.com/portalprivacidade\">Política de Privacidade</a>.\r\n </p>\r\n </slot>\r\n </div>\r\n <div class=\"footer\">\r\n <slot name=\"footer\">\r\n <button id=\"btn\" class=\"btn\">\r\n <span class=\"okBtn\">Entendi</span>\r\n </button>\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\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 = <modal-lgpd show={show} ref={modalRef} />;\r\n return createPortal(modal, document.body);\r\n};\r\n\r\nexport default ModalLgpd;\r\n","const ibcParser = {\r\n parseCivilState: (code) => {\r\n switch (code) {\r\n case '1':\r\n return {code: 'S', name: 'Solteiro'};\r\n case '2':\r\n return {code: 'C', name: 'Casado'};\r\n case '3':\r\n return {code: 'R', name: 'Divorciado'};\r\n case '4':\r\n return {code: 'J', name: 'Separado Judicialmente'};\r\n case '5':\r\n return {code: 'V', name: 'Viúvo'};\r\n default:\r\n return {code: '', name: ''};\r\n }\r\n },\r\n};\r\n\r\nexport default ibcParser;\r\n","import React, { useState, useEffect, useContext, useCallback } from \"react\";\r\nimport env from \"../../config/environment\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport AjaxSpinner from \"../../components/AjaxSpinner/AjaxSpinner\";\r\nimport api from \"../../utils/api\";\r\nimport masks from \"../../utils/masks\";\r\nimport dateUtils from \"../../utils/date\";\r\nimport ibcParser from \"../../utils/ibcParser\";\r\nimport * as lgpdApi from \"../../utils/lgpd-api\";\r\nimport { isEmpty } from \"../../utils/checkIf\";\r\n\r\nconst IBCInterceptor = (props) => {\r\n const context = useContext(AppContext);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const showError = () => {\r\n context.setContext({\r\n ...context,\r\n error: {\r\n show: false,\r\n internalError: () => {\r\n return \"Não foi possível obter os dados da integração :(\";\r\n },\r\n },\r\n });\r\n setLoading(false);\r\n }\r\n\r\n const go2Products = (setContext = true) => {\r\n if (setContext) {\r\n context.setContext({\r\n ...context,\r\n ibc: false,\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n props.history.replace({\r\n pathname: \"/produtos\",\r\n });\r\n }, 0);\r\n };\r\n\r\n const fetchLgpdConsent = useCallback(async () => {\r\n if (context.ibc && context.ibcUser) {\r\n const cpf = masks.numberOnly(context.ibcUser.cpf);\r\n const promises = [\r\n lgpdApi.getLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n env.BUSINESS_SUBPROCESS_CAIXA_HOLDING_CODE,\r\n cpf\r\n ),\r\n lgpdApi.getLgpdConsent(\r\n env.BUSINESS_PROCESS_CODE,\r\n env.BUSINESS_SUBPROCESS_CAIXA_HOLDING_PARTNERS_CODE,\r\n cpf\r\n ),\r\n ];\r\n Promise.all(promises)\r\n .then((res) => {\r\n if (res.every((el) => isEmpty(el) === false && el.status === 200)) {\r\n res.map((el) =>\r\n context.setContext({\r\n ...context,\r\n lgpdConsent: `${el.data[0] ? el.data[0].consentimento.tipo : ''}`,\r\n })\r\n );\r\n }\r\n })\r\n .catch(() => {\r\n showError();\r\n });\r\n }\r\n }, [context.ibc, context.ibcUser]);\r\n\r\n const updateUser = useCallback((token) => {\r\n if (token.length > 0) {\r\n api\r\n .get(api.endpoints.USER_XML, { token })\r\n .then((result) => {\r\n const { dados, end, ccs } = result.data.cliente;\r\n context.setContext({\r\n ...context,\r\n ibc: true,\r\n ibcUser: {\r\n nome: dados.pf.nome,\r\n cpf: masks.cpf(dados.cpf_cnpj),\r\n documento: dados.pf.rg,\r\n emissor: dados.pf.org_emis,\r\n emissorUF: dados.pf.uf_org_emis,\r\n emissorCode: dados.pf.org_emis_sigla,\r\n nascimento: dateUtils.format(\r\n new Date(\r\n `${dados.pf.dt_nasc.slice(0, 4)}-${dados.pf.dt_nasc.slice(\r\n 4,\r\n 6\r\n )}-${dados.pf.dt_nasc.slice(6, 8)}T00:00:00`\r\n )\r\n ),\r\n estadocivil: ibcParser.parseCivilState(dados.pf.est_civ).code,\r\n estadocivilName: ibcParser.parseCivilState(dados.pf.est_civ).name,\r\n nacionalidade: \"\",\r\n estado: \"\",\r\n naturalidade: \"\",\r\n acessibilidade: \"\",\r\n sexo: dados.pf.sexo,\r\n profissao: \"\",\r\n profissaoName: dados.pf.no_prof,\r\n mae: dados.pf.mae,\r\n celular: `${dados.pf.ddd_celular}${dados.pf.tel_celular}`,\r\n fixo:\r\n `${dados.pf.ddd_res}${dados.pf.tel_res}` ||\r\n `${dados.pf.ddd_com}${dados.pf.tel_com}`,\r\n email: dados.pf.email,\r\n endereco: {\r\n cep: end.gen.cep,\r\n street: end.gen.logr,\r\n number: \"\",\r\n complement: end.gen.comp,\r\n district: end.gen.bair,\r\n city: end.gen.cid,\r\n uf: end.gen.uf,\r\n },\r\n type: dados.tp_pes,\r\n accounts: ccs.cc === \"\" || ccs.cc == null ? [] : ccs.cc,\r\n },\r\n });\r\n\r\n go2Products(false);\r\n })\r\n .catch(() => {\r\n showError();\r\n });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const token = document.getElementById(\"lblToken\").textContent;\r\n if (token) {\r\n updateUser(token);\r\n } else {\r\n go2Products();\r\n }\r\n }, [context.token, updateUser]);\r\n\r\n useEffect(() => {\r\n fetchLgpdConsent();\r\n }, [context.token, context.ibc, context.ibcUser]);\r\n\r\n return loading && <AjaxSpinner loading />;\r\n};\r\n\r\nexport default IBCInterceptor;\r\n","export const isEmpty = (obj) => {\r\n return !obj || Object.keys(obj).length === 0;\r\n};\r\n","export const isMaintenancePeriod = () => {\r\n const now = new Date();\r\n return (\r\n now > new Date(process.env.REACT_APP_MAINTENANCE_START_PERIOD) &&\r\n now < new Date(process.env.REACT_APP_MAINTENANCE_END_PERIOD)\r\n );\r\n};\r\n","import React from \"react\";\r\nimport styles from \"./MaintenanceModal.module.sass\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport AppContext from \"../../contexts/appContext\";\r\nimport { isMaintenancePeriod } from \"../../utils/maintenance\";\r\n\r\nclass MaintenanceModal extends React.Component {\r\n static contextType = AppContext;\r\n\r\n hideHandler = () => {\r\n this.context.setContext({\r\n ...this.context,\r\n maintenanceAccepted: \"S\",\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n <Modal\r\n centered\r\n dialogClassName={styles.modalDialog}\r\n show={this.context.maintenanceAccepted === \"N\" && isMaintenancePeriod()}\r\n onHide={this.hideHandler}\r\n >\r\n <Modal.Header closeButton>\r\n <h1>Aviso</h1>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <p>\r\n Estamos realizando algumas evoluções importantes no nosso sistema\r\n entre 10 e 12 de outubro e, por isso, podem ocorrer\r\n indisponibilidades momentâneas na simulação e na compra de cartas de\r\n consórcio. Tudo voltará ao normal a partir do dia 13/10. Obrigado\r\n pela compreensão.\r\n </p>\r\n </Modal.Body>\r\n </Modal>\r\n );\r\n }\r\n}\r\n\r\nexport default MaintenanceModal;\r\n","import React, { Component } from \"react\";\r\nimport axios from \"axios\";\r\nimport theme from \"./App.module.sass\";\r\n\r\nimport { Switch, Route, Redirect } from \"react-router-dom\";\r\n\r\nimport AjaxSpinner from \"./components/AjaxSpinner/AjaxSpinner\";\r\n\r\nimport Header from \"./components/Header/Header\";\r\nimport Footer from \"./components/Footer/Footer\";\r\nimport Products from \"./containers/Products/Products\";\r\nimport Offers from \"./containers/Offers/Offers\";\r\nimport ConfirmOffer from \"./containers/ConfirmOffer/ConfirmOffer\";\r\nimport Identification from \"./containers/Identification/Identification\";\r\nimport NewUser from \"./containers/NewUser/NewUser\";\r\nimport Insurance from \"./containers/Insurance/Insurance\";\r\nimport Payment from \"./containers/Payment/Payment\";\r\nimport Signature from \"./containers/Signature/Signature\";\r\nimport Documents from \"./containers/Documents/Documents\";\r\nimport ErrorModal from \"./components/ErrorModal/ErrorModal\";\r\nimport ModalLgpd from \"./components/ModalLgpd/ModalLgpd\";\r\n\r\nimport AppContext from \"./contexts/appContext\";\r\nimport Chat from \"./components/Chat/Chat\";\r\nimport Alert from \"./components/Alert/Alert\";\r\nimport IBCInterceptor from \"./containers/IBCInterceptor/IBCInterceptor\";\r\nimport { changePage } from \"./utils/data-layer\";\r\nimport MaintenanceModal from \"./components/MaintenanceModal/MaintenanceModal\";\r\nclass App extends Component {\r\n state = {\r\n loading: false,\r\n lgpd: false,\r\n context: {\r\n error: {},\r\n pathname: \"/produtos\",\r\n product: \"\",\r\n maintenanceAccepted: \"N\",\r\n },\r\n };\r\n\r\n componentWillMount() {\r\n const context = sessionStorage.getItem(\"context\");\r\n const lgpd = sessionStorage.getItem(\"lgpd\");\r\n\r\n if (window.location.pathname.endsWith(\"produtos\")) {\r\n changePage(this.state.context.pathname);\r\n }\r\n\r\n if (context) {\r\n const contextObject = JSON.parse(context);\r\n contextObject.pathname = \"/\";\r\n this.setState({ context: contextObject });\r\n }\r\n\r\n axios\r\n .get(\"https://api.ipify.org?format=json\")\r\n .then(({ data }) => (window.ip = data.ip));\r\n\r\n this.setState({ lgpd });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState, snapshot) {\r\n if (prevState.context !== this.state.context) {\r\n sessionStorage.setItem(\"context\", JSON.stringify(this.state.context));\r\n }\r\n }\r\n\r\n handleOnCloseLgpdModal = () => {\r\n sessionStorage.setItem(\"lgpd\", true);\r\n this.setState((previousState) => ({\r\n context: { ...previousState.context, showLgpd: false },\r\n }));\r\n };\r\n\r\n render() {\r\n const fixedChat = (pathname) => {\r\n return pathname.endsWith(\"identificacao\");\r\n };\r\n\r\n const pagename = this.state.context.pathname.replace(\"/\", \"\");\r\n return (\r\n <AppContext.Provider\r\n value={{\r\n ...this.state.context,\r\n setContext: (context) => {\r\n if (context.pathname !== this.state.context.pathname) {\r\n changePage(context.pathname);\r\n }\r\n\r\n this.setState({ context });\r\n },\r\n }}\r\n >\r\n <main className={theme.main}>\r\n <Header />\r\n <div className={[theme.container, pagename].join(\" \")}>\r\n <div className={[theme.content, pagename].join(\" \")}>\r\n <div className={theme.innerContent}>\r\n {this.state.context.error.internalError &&\r\n !this.state.context.modalOpen && (\r\n <div className={theme.alertError}>\r\n <Alert\r\n error\r\n title=\"Ops!\"\r\n text={this.state.context.error.internalError()}\r\n />\r\n </div>\r\n )}\r\n\r\n <Switch>\r\n <Route\r\n path={\"/produtos\"}\r\n render={(props) => <Products {...props} />}\r\n />\r\n <Route path={\"/ofertas\"} component={Offers} />\r\n <Route path={\"/identificacao\"} component={Identification} />\r\n <Route path={\"/confirmar-oferta\"} component={ConfirmOffer} />\r\n <Route path={\"/dados-cliente\"} component={NewUser} />\r\n <Route path={\"/seguro\"} component={Insurance} />\r\n <Route path={\"/pagamento\"} component={Payment} />\r\n <Route path={\"/assinatura\"} component={Signature} />\r\n <Route\r\n path={\"/documentos/:proposalId\"}\r\n component={Documents}\r\n />\r\n <Route exact path={\"/\"} component={IBCInterceptor} />\r\n <Redirect from={\"/\"} to={\"/produtos\"} />\r\n </Switch>\r\n </div>\r\n </div>\r\n {this.state.context.product &&\r\n !fixedChat(window.location.pathname) && (\r\n <Chat product={this.state.context.product} detached />\r\n )}\r\n </div>\r\n <Footer />\r\n <ModalLgpd\r\n open={!this.state.loading && this.state.context.showLgpd}\r\n onClick={this.handleOnCloseLgpdModal}\r\n />\r\n <ErrorModal />\r\n <MaintenanceModal />\r\n <AjaxSpinner loading={this.state.loading} />\r\n </main>\r\n </AppContext.Provider>\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\nconst onStateChange = (installingWorker, config, registration) => () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst onUpdateFound = (registration, config) => () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => onStateChange(installingWorker, config, registration)\r\n};\r\n\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = onUpdateFound(registration, config)\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import api from \"../utils/api\";\r\n\r\nclass AuthService {\r\n static tokenRequestBody = {\r\n grant_type: \"client_credentials\",\r\n scope: \"clientes\",\r\n client_id: process.env.REACT_APP_CLIENT_ID,\r\n client_secret: process.env.REACT_APP_CLIENT_SECRET,\r\n };\r\n\r\n static accessToken = null;\r\n\r\n static fetchAuthToken = () => {\r\n return new Promise((resolve, reject) => {\r\n api\r\n .stringifyPost(api.endpoints.TOKEN, AuthService.tokenRequestBody)\r\n .then((result) => {\r\n resolve(result.data.access_token);\r\n })\r\n .catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n };\r\n\r\n static configureRequest = (request) => {\r\n return new Promise((resolve, reject) => {\r\n if (request.url.includes(api.endpoints.TOKEN)) {\r\n resolve(null);\r\n } else {\r\n if (AuthService.accessToken == null) {\r\n this.fetchAuthToken()\r\n .then((token) => {\r\n AuthService.accessToken = token;\r\n resolve(token);\r\n })\r\n .catch((error) => reject(error));\r\n } else {\r\n resolve(AuthService.accessToken);\r\n }\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport default AuthService;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\n\r\nimport { BrowserRouter } from \"react-router-dom\";\r\n\r\nimport AuthService from \"./auth/AuthService\";\r\nimport axios from \"axios\";\r\nimport ScrollTop from \"./components/ScrollTop/ScrollTop\";\r\nimport { isMaintenancePeriod } from \"./utils/maintenance\";\r\n\r\nlet appRef;\r\nconst paymentPath = \"/pagamento\";\r\n\r\naxios.interceptors.request.use(async (request) => {\r\n const bypassUrls = [\"https://api.ipify.org?format=json\"];\r\n if (bypassUrls.includes(request.url)) {\r\n return request;\r\n }\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n internalError: null,\r\n },\r\n },\r\n });\r\n\r\n const token = await AuthService.configureRequest(request);\r\n if (token != null) {\r\n request.headers[\"Authorization\"] = `Bearer ${token}`;\r\n request.headers[\"x-ibm-client-id\"] = process.env.REACT_APP_CLIENT_ID;\r\n request.headers[\"Content-Type\"] = \"application/json\";\r\n request.headers[\"X-Robots-Tag\"] = process.env.REACT_APP_ROBOTS;\r\n }\r\n appRef.setState({\r\n loading: true,\r\n });\r\n return request;\r\n});\r\n\r\naxios.interceptors.response.use(\r\n (response) => {\r\n appRef.setState({\r\n loading: false,\r\n });\r\n return response;\r\n },\r\n (error) => {\r\n if (error.config && error.response && error.response.status === 401) {\r\n return AuthService.fetchAuthToken().then((token) => {\r\n AuthService.accessToken = token;\r\n error.config.headers[\"Authorization\"] = `Bearer ${token}`;\r\n error.config.headers[\"x-ibm-client-id\"] =\r\n process.env.REACT_APP_CLIENT_ID;\r\n error.config.headers[\"Content-Type\"] = \"application/json\";\r\n error.config.headers[\"X-Robots-Tag\"] = process.env.REACT_APP_ROBOTS;\r\n return axios.request(error.config);\r\n });\r\n } else if (isMaintenancePeriod()) {\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n show: false,\r\n internalError: () => {\r\n return \"Nossos sistemas estão passando por manutenção preventiva nesse período. Voltaremos à normalidade no próximo dia 13/10. Agradecemos a compreensão.\";\r\n },\r\n },\r\n },\r\n });\r\n window.scroll(0, 0);\r\n } else if (\r\n error.response &&\r\n appRef.state.context.pathname !== paymentPath &&\r\n error.response.status === 400\r\n ) {\r\n if (appRef.state.context.pathname === \"/dados-cliente\") {\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n show: true,\r\n msg: error.response.data.httpMessage,\r\n },\r\n },\r\n });\r\n } else if (appRef.state.context.pathname !== paymentPath) {\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n show: false,\r\n internalError: () => {\r\n return error.response.data.httpMessage;\r\n },\r\n },\r\n },\r\n });\r\n }\r\n } else if (\r\n appRef.state.context.pathname !== paymentPath &&\r\n error.response && error.response.config.url.includes(\"consentimentos\")) {\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n show: false,\r\n },\r\n },\r\n });\r\n } else {\r\n appRef.setState({\r\n context: {\r\n ...appRef.state.context,\r\n error: {\r\n show: false,\r\n internalError: () => {\r\n return \"Nossos serviços estão temporariamente indisponíveis. Pedimos que tente novamente mais tarde.\";\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n appRef.setState({\r\n loading: false,\r\n });\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nReactDOM.render(\r\n <BrowserRouter basename=\"/consorcio\">\r\n <ScrollTop>\r\n <App\r\n ref={(app) => {\r\n appRef = app;\r\n }}\r\n />\r\n </ScrollTop>\r\n </BrowserRouter>,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from 'react';\r\nimport {withRouter} from \"react-router\";\r\n\r\nclass ScrollTop extends React.Component {\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location.pathname !== prevProps.location.pathname) {\r\n window.scrollTo(0, 0);\r\n }\r\n }\r\n\r\n render() {\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default withRouter(ScrollTop);","// extracted by mini-css-extract-plugin\nmodule.exports = {\"titleItem\":\"MobileDragAndDrop_titleItem__WWJNO\",\"dropContainer\":\"MobileDragAndDrop_dropContainer__2h4cv\",\"dropzone\":\"MobileDragAndDrop_dropzone__2O_vs\",\"docItem\":\"MobileDragAndDrop_docItem__3Z7LL\",\"drag\":\"MobileDragAndDrop_drag__2w0wv\",\"accept\":\"MobileDragAndDrop_accept__2LuBc\",\"iconDoc\":\"MobileDragAndDrop_iconDoc__3wMxl\",\"selected\":\"MobileDragAndDrop_selected__1G9J3\",\"iconClose\":\"MobileDragAndDrop_iconClose__2Vw2_\",\"textContent\":\"MobileDragAndDrop_textContent__183jM\",\"text\":\"MobileDragAndDrop_text__1HZUS\",\"fileName\":\"MobileDragAndDrop_fileName__XFYGk\",\"contentMsg\":\"MobileDragAndDrop_contentMsg__EQ10e\",\"errorDoc\":\"MobileDragAndDrop_errorDoc__uG39I\",\"docType\":\"MobileDragAndDrop_docType__1oISg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footer\":\"Footer_footer__2fp8K\",\"footerImg\":\"Footer_footerImg__ojpyt\",\"contact\":\"Footer_contact__3FA1F\",\"text\":\"Footer_text__3sfKC\",\"textBold\":\"Footer_textBold__31y7n\",\"copyright\":\"Footer_copyright__1bVIA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"formContainer\":\"UserForm_formContainer__2rxzu\",\"sectionForm\":\"UserForm_sectionForm__CDvlP\",\"formLabel\":\"UserForm_formLabel__xuv19\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cardHeader\":\"PurchaseDetailsCard_cardHeader__3rxbP\",\"offerTypeForm\":\"PurchaseDetailsCard_offerTypeForm__1MGB5\",\"detailsTxt\":\"PurchaseDetailsCard_detailsTxt__35hmf\",\"cardItem\":\"PurchaseDetailsCard_cardItem__1Iqo8\",\"detailsLink\":\"PurchaseDetailsCard_detailsLink__2iHOF\",\"modalDialog\":\"PurchaseDetailsCard_modalDialog__3sP_N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Insurance\":\"Insurance_Insurance__33H5j\",\"content\":\"Insurance_content__1SbgL\",\"card\":\"Insurance_card__2owHJ\",\"textInsurance\":\"Insurance_textInsurance__3WM36\",\"imageInsurance\":\"Insurance_imageInsurance__edY8N\",\"title\":\"Insurance_title__2eKez\",\"titleRadio\":\"Insurance_titleRadio__3kzNi\",\"info\":\"Insurance_info__2g49h\",\"marginTop\":\"Insurance_marginTop__3B6lK\",\"marginBottom\":\"Insurance_marginBottom__2Hnv1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dataSummary\":\"UserDataSummary_dataSummary__G7q8O\",\"fieldData\":\"UserDataSummary_fieldData__2MgNL\",\"dataItem\":\"UserDataSummary_dataItem__3WJfd\",\"placeholder\":\"UserDataSummary_placeholder__3oFQW\",\"dataDesc\":\"UserDataSummary_dataDesc__9m7M3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputContainer\":\"Input_inputContainer__1E7Qn\",\"select\":\"Input_select__1-47X\",\"inputItem\":\"Input_inputItem__3jvWL\",\"floatLabel\":\"Input_floatLabel__BF6v3\",\"error\":\"Input_error__1-M96\",\"tooltip\":\"Input_tooltip__1_BM6\",\"errorMsg\":\"Input_errorMsg__1OVuM\",\"invalid\":\"Input_invalid__2EIt3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionForm\":\"PersonalData_sectionForm__32FBY\",\"formLabel\":\"PersonalData_formLabel__2zvph\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"chooser\":\"PaymentMethods_chooser__26klv\",\"paymentButton\":\"PaymentMethods_paymentButton__3D-DK\",\"fullText\":\"PaymentMethods_fullText__wuuyb\",\"innerButton\":\"PaymentMethods_innerButton__2TJZZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"docItem\":\"DragAndDrop_docItem__1cct_\",\"drag\":\"DragAndDrop_drag__2kUbt\",\"accept\":\"DragAndDrop_accept__fDOvw\",\"titleItem\":\"DragAndDrop_titleItem__3AQPu\",\"iconDoc\":\"DragAndDrop_iconDoc__1MCQi\",\"textContent\":\"DragAndDrop_textContent__1gCdX\",\"docType\":\"DragAndDrop_docType__8uZz_\",\"docName\":\"DragAndDrop_docName__1nIRg\",\"errorDoc\":\"DragAndDrop_errorDoc__2ZrIB\",\"dropzone\":\"DragAndDrop_dropzone__1goIr\",\"active\":\"DragAndDrop_active__p76kK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tooltipContent\":\"Tooltip_tooltipContent__3-DeY\",\"iconTooltip\":\"Tooltip_iconTooltip__2K-3o\",\"modalDialog\":\"Tooltip_modalDialog__pr-dC\",\"actions\":\"Tooltip_actions__1ifKF\",\"modalMsg\":\"Tooltip_modalMsg__2mRkD\",\"additionalInfo\":\"Tooltip_additionalInfo__3O9Fo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"OfferType\":\"OfferType_OfferType__1NLAu\",\"Icon\":\"OfferType_Icon__1oYd-\",\"OfferLabel\":\"OfferType_OfferLabel__24qS2\",\"large\":\"OfferType_large__2CMiz\",\"InlineLabel\":\"OfferType_InlineLabel__dyvu7\",\"GroupContainer\":\"OfferType_GroupContainer__p3oyD\",\"GroupLabel\":\"OfferType_GroupLabel__JVfxi\",\"GroupNumber\":\"OfferType_GroupNumber__bdodh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemsOffer\":\"OfferData_itemsOffer__2OI4i\",\"item\":\"OfferData_item__6j3rm\",\"itemTitle\":\"OfferData_itemTitle__aVbmE\",\"iconOffer\":\"OfferData_iconOffer__1ZlfA\",\"planText\":\"OfferData_planText__2v415\",\"planType\":\"OfferData_planType__3bcth\",\"values\":\"OfferData_values__3KNXt\",\"typePlan\":\"OfferData_typePlan__28HO4\",\"link\":\"OfferData_link__2zVlf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ConfirmOffer\":\"ConfirmOffer_ConfirmOffer__27tGO\",\"desktopOptions\":\"ConfirmOffer_desktopOptions__oLyUL\",\"sticky\":\"ConfirmOffer_sticky__2NkEH\",\"pdf\":\"ConfirmOffer_pdf__24ycY\",\"confirm\":\"ConfirmOffer_confirm__2YTP7\",\"legalText\":\"ConfirmOffer_legalText__2DkGF\",\"divider\":\"ConfirmOffer_divider__39wZv\",\"chatText\":\"ConfirmOffer_chatText__2ccIh\",\"chatLink\":\"ConfirmOffer_chatLink__3kLhi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"IncomeIdentifierDetail\":\"IncomeIdentifier_IncomeIdentifierDetail__sSztK\",\"content\":\"IncomeIdentifier_content__18Dlb\",\"divider\":\"IncomeIdentifier_divider__4Uehe\",\"LimitsLabel\":\"IncomeIdentifier_LimitsLabel__1nmSc\",\"detailsLink\":\"IncomeIdentifier_detailsLink__rPW_-\",\"link\":\"IncomeIdentifier_link__16B7S\",\"partnerIncome\":\"IncomeIdentifier_partnerIncome__2wsFa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionForm\":\"PartnerData_sectionForm__ie1Xo\",\"inputLabel\":\"PartnerData_inputLabel__3m9wZ\",\"contentPartner\":\"PartnerData_contentPartner__3u4M7\",\"newPartner\":\"PartnerData_newPartner__2nPiO\",\"sectionPartner\":\"PartnerData_sectionPartner__1zmuk\",\"partnerTable\":\"PartnerData_partnerTable__1lIxv\",\"nameColumn\":\"PartnerData_nameColumn__3E4uH\",\"formLabel\":\"PartnerData_formLabel__3_ybG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Payment\":\"Payment_Payment__FolQ4\",\"section\":\"Payment_section__36q3a\",\"cc\":\"Payment_cc__3KVh0\",\"content\":\"Payment_content__ONbfm\",\"backLabel\":\"Payment_backLabel__3eO7L\",\"card\":\"Payment_card__ZVveV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonContainer\":\"selectableButton_buttonContainer__2r-EB\",\"SelectedButton\":\"selectableButton_SelectedButton__kNkjz\",\"blue\":\"selectableButton_blue__2dbxR\",\"additionalPadding\":\"selectableButton_additionalPadding__3edpk\",\"selected\":\"selectableButton_selected__2ATQY\",\"leftIcon\":\"selectableButton_leftIcon__2V34c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalDialog\":\"ErrorModal_modalDialog__1teVQ\",\"actions\":\"ErrorModal_actions__2_KlB\",\"icon\":\"ErrorModal_icon__25Ko1\",\"error\":\"ErrorModal_error__2Sh4N\",\"warning\":\"ErrorModal_warning__35Uu5\",\"modalMsg\":\"ErrorModal_modalMsg__3b9fL\",\"additionalInfo\":\"ErrorModal_additionalInfo__20Mm2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Backdrop\":\"AjaxSpinner_Backdrop__1rxks\",\"spinner\":\"AjaxSpinner_spinner__1SnoW\",\"bouncer\":\"AjaxSpinner_bouncer__1O3XF\",\"sk-bouncedelay\":\"AjaxSpinner_sk-bouncedelay__2eCzA\",\"bounce1\":\"AjaxSpinner_bounce1__2D7FT\",\"bounce2\":\"AjaxSpinner_bounce2__2qehs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ProductCard\":\"ProductCard_ProductCard__2cDMX\",\"title\":\"ProductCard_title__1189Q\",\"selected\":\"ProductCard_selected__283aq\",\"grayScale\":\"ProductCard_grayScale__16FNO\",\"ProductIcon\":\"ProductCard_ProductIcon__18fdb\",\"cardFooter\":\"ProductCard_cardFooter__jaP3Y\",\"link\":\"ProductCard_link__1qeNV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Table\":\"Table_Table__3Fvh5\",\"tableHeader\":\"Table_tableHeader__90qzu\",\"rowInfo\":\"Table_rowInfo__2gg5F\",\"info\":\"Table_info__1j_wA\",\"emphasis\":\"Table_emphasis__eqJ1r\",\"customEmphasis\":\"Table_customEmphasis__1ygC_\",\"tableBody\":\"Table_tableBody__1MUDc\",\"bold\":\"Table_bold__i8Eg8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"OfferSimulation\":\"OfferSimulation_OfferSimulation__3e_Eg\",\"title\":\"OfferSimulation_title__284UI\",\"parcelasInfo\":\"OfferSimulation_parcelasInfo__20En7\",\"bottomInfo\":\"OfferSimulation_bottomInfo__oHxXH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Title\":\"Accordion_Title__3PHk6\",\"Open\":\"Accordion_Open__10ljn\",\"Content\":\"Accordion_Content__njejG\",\"Display\":\"Accordion_Display__1Zqte\",\"Icon\":\"Accordion_Icon__3oB8G\",\"IconSelected\":\"Accordion_IconSelected__32oii\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"OfferFilter\":\"OfferFilter_OfferFilter__1_wpD\",\"alterOffer\":\"OfferFilter_alterOffer__3uxB0\",\"filterOffers\":\"OfferFilter_filterOffers__2sJxS\",\"selectFilters\":\"OfferFilter_selectFilters__26GtD\",\"orderLabel\":\"OfferFilter_orderLabel__40vqt\",\"filterContent\":\"OfferFilter_filterContent__2PW2m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"footerContent\":\"FooterContent_footerContent__2cCTX\",\"canSticky\":\"FooterContent_canSticky__2uEu-\",\"sticky\":\"FooterContent_sticky__31wI9\",\"link\":\"FooterContent_link__QKu8D\",\"textFooter\":\"FooterContent_textFooter__3LanH\",\"mainText\":\"FooterContent_mainText__2eRf1\"};"],"sourceRoot":""}