{"version":3,"sources":["services/api.ts","services/apis.ts","services/meiApi.ts","services/msDarf.ts","services/apiBolsa.ts","services/apiCrypto.ts","services/apiVeloPro.ts","assets/ssl-secure.svg","services/imoveis.ts","services/apiIrpf2023.ts","services/apiExterior.ts","services/apiPayment.ts","components/Button/styles.ts","components/Button/index.tsx","constants/others/states.ts","utils/validations.ts","utils/format.tsx","utils/mask.ts","utils/date.ts","utils/webview.ts","utils/utils.ts","utils/business-day.ts","utils/getDolarQuote.ts","assets/velotax/veloicon.svg","assets/velotax/velotax-background.svg","components/BannerAPP/styles.ts","components/BannerAPP/index.tsx","services/rendimentos.ts","contexts/AuthContext.tsx","routes/PrivateRoutes.tsx","routes/OnlyPublicRoute.tsx","webpack:///./src/assets/velotax/veloicon.svg?3b70","pages/PageNotFound/index.tsx","components/Header/styles.ts","contexts/HistoryContext.tsx","components/Header/index.tsx","components/Logo/styles.ts","pages/SSO/styles.ts","assets/velotax/velologo.svg","pages/SSO/index.tsx","pages/Home/styles.ts","services/handleTag.ts","contexts/Notification.context.tsx","components/LoadingIntegration/confirm.modal.tsx","contexts/B3IntegrationContext.tsx","constants/plans/index.tsx","pages/Home/index.tsx","styles/LoginSignUp/authContainer.ts","components/ButtonDownload/styles.ts","assets/qrcode.png","components/ButtonDownload/index.tsx","utils/formValidations.ts","pages/Login/index.tsx","pages/Planos/planos.tsx","pages/Planos/styles.ts","components/ReCaptcha/index.tsx","components/DrawerModal/index.tsx","components/CopyText/index.tsx","components/Payment/PixPaymentStep/index.tsx","components/Payment/CreditCardStep/styles.ts","components/Payment/CreditCardStep/components/Footer/index.tsx","components/CardList/styles.ts","constants/taxes/index.ts","utils/getInstallmentsListByPrice.tsx","components/CardList/index.tsx","components/PaymentModal/index.tsx","components/Payment/CreditCardStep/components/CardForm/styles.ts","components/Payment/CreditCardStep/components/CardForm/index.tsx","services/cep.ts","components/Payment/CreditCardStep/components/AddressForm/index.tsx","components/Payment/CreditCardStep/components/ResultScreen/components/ErrorScreen/index.tsx","components/Payment/CreditCardStep/components/ResultScreen/components/ConfirmScreen/index.tsx","components/Payment/CreditCardStep/components/ResultScreen/index.tsx","components/Payment/CreditCardStep/components/ResultScreen/components/PendingScreen/index.tsx","components/Payment/CreditCardStep/index.tsx","components/PaymentModal/style.ts","assets/icons/selo-7-dias.svg","assets/icons/selo-garantia.svg","assets/icons/selo-play-store.svg","assets/icons/selo-app-store.svg","pages/Planos/index.tsx","pages/PlanIos/index.tsx","pages/IRPF/styles.ts","pages/IRPF/index.tsx","pages/Sucesso/styles.ts","pages/Sucesso/index.tsx","pages/PlanIos/styles.ts","pages/Cadastro/index.tsx","components/Avisos/styles.ts","components/Avisos/IntegrationModal/styles.ts","assets/Integracao_B3.gif","components/Avisos/IntegrationModal/index.tsx","components/Avisos/index.tsx","components/Loading/index.tsx","components/ChartBar/index.tsx","components/Proventos/styles.ts","components/ProventosModal/styles.ts","components/ReportType/styles.ts","components/ReportType/ReportType.tsx","assets/icons/filtro.svg","constants/darf/index.tsx","components/ProventosModal/index.tsx","contexts/NotificationContext.tsx","components/Proventos/index.tsx","utils/walletCharts.ts","pages/Carteira/styles.ts","contexts/CarteiraContext.tsx","pages/HistoricBolsa/utils.ts","components/NotificationDrawer/styles.ts","assets/notification.svg","components/NotificationDrawer/index.tsx","utils/patrimonio.ts","pages/Carteira/PosicaoCard/styles.ts","constants/inputs/index.tsx","constants/formItems/index.ts","constants/darfBolsa/index.tsx","pages/Carteira/PosicaoCard/index.tsx","pages/Carteira/index.tsx","pages/MinhaConta/styles.ts","components/FooterModal/index.tsx","components/Payment/CreditCardScheduledPayment/styles.ts","components/Payment/CreditCardScheduledPayment/components/Footer/index.tsx","components/Payment/CreditCardScheduledPayment/index.tsx","pages/MinhaConta/MeuPlano/index.tsx","pages/MinhaConta/index.tsx","pages/Regulation/styles.ts","constants/regulation/index.tsx","pages/Regulation/index.tsx","pages/Darf/styles.ts","components/FormModal/index.tsx","components/DeleteConfirmationModal/index.tsx","pages/Darf/Components/DatePickerMonthCell/index.tsx","pages/Darf/index.tsx","pages/Bolsa/Cards/styles.ts","pages/Bolsa/Cards/index.tsx","assets/icons/chart.svg","pages/Bolsa/itensBolsa.tsx","pages/Cripto/itensCriptoSemLogos.tsx","pages/Imoveis/itensImoveis.tsx","assets/icons/integration.svg","pages/DarfExterior/InterestModalContent/index.tsx","pages/Exterior/itensExterior.tsx","pages/Rendimentos/styles.ts","constants/rendimentos/index.tsx","pages/Rendimentos/index.tsx","pages/DarfExterior/InterestModalContent/styles.ts","constants/darfExterior/index.tsx","pages/DarfExterior/ExteriorModalContent/index.tsx","pages/DarfExterior/ExteriorModalContent/styles.ts","pages/DarfBolsa/styles.ts","pages/IntegrationBolsa/NotasHistoricoModal/index.tsx","pages/DarfExterior/index.tsx","pages/DarfExterior/useDarfExterior.ts","pages/Exterior/itensExteriorSemLogos.tsx","assets/icons/check.svg","components/PayDarfButton/styles.ts","components/PayDarfButton/index.tsx","components/CardHorizontal/style.ts","components/CardHorizontal/index.tsx","components/ImoveisImposto/styles.ts","constants/darfImoveis/index.tsx","components/ImoveisImposto/index.tsx","services/msCalc.ts","pages/Historic/PayButton/index.tsx","assets/mynt.svg","assets/mercadobitcoin-favicon.png","pages/Cripto/styles.ts","pages/Cripto/itensCripto.tsx","pages/Historic/styles.ts","pages/HistoricCrypto/PayButton/index.tsx","pages/Autonomos/itensAutonomos.tsx","components/LoadingModal/styles.ts","components/LoadingModal/index.tsx","utils/handleDownloadSheet.ts","contexts/OldTransactionsContext.tsx","pages/Darf/Components/DatePickerExtraFooter/index.tsx","components/ModalZeroBuyPrice/index.tsx","pages/DarfBolsa/index.tsx","pages/ReportBolsa/Cards/styles.ts","pages/ReportBolsa/Cards/index.tsx","pages/ReportBolsa/items.tsx","pages/ReportBolsa/styles.ts","pages/BolsaManual/styles.ts","pages/Darf/Components/OldTransactions/styles.ts","pages/Darf/Components/OldTransactions/index.tsx","pages/PrePreenchidaModal/styles.ts","components/UploadVelotax/styles.ts","components/UploadVelotax/index.tsx","assets/govbr.svg","pages/DecPrepreenchida/styles.ts","contexts/YearContext.tsx","pages/DecPrepreenchida/index.tsx","contexts/UploadDecContext.tsx","pages/PrePreenchidaModal/index.tsx","pages/NovoCadastro/styles.ts","pages/NovoCadastro/index.tsx","contexts/TransferenciaCustodiaContext.tsx","pages/IntegrationBolsa/NotasCorretagem/useNotasCorretagem.ts","pages/HistoricBolsa/PayButton/index.tsx","pages/HistoricBolsa/styles.ts","pages/HistoricBolsa/index.tsx","pages/ReportExterior/items.tsx","assets/b3-logo-azul.png","pages/IntegrationBolsa/styles.ts","pages/IntegrationBolsa/B3IntegrationButtons/index.tsx","components/LoadingIntegration/index.tsx","assets/mercado-logo2.png","components/IntegrationComponents/IntegrationButton/styles.ts","components/IntegrationComponents/IntegrationButton/index.tsx","components/IntegrationComponents/MyntIntegration/MyntIntegrationModal.tsx","components/IntegrationComponents/MyntIntegration/index.tsx","assets/mercado-bitcoin.svg","components/IntegrationComponents/MercadoBitcoinIntegration/MercadoBitcoinIntegrationModal.tsx","components/IntegrationComponents/MercadoBitcoinIntegration/index.tsx","components/IntegrationComponents/GenericIntegration/SpreadsheetModal/styles.ts","components/IntegrationComponents/GenericIntegration/SpreadsheetModal/index.tsx","components/IntegrationComponents/GenericIntegration/index.tsx","components/IntegrationComponents/CryptoIntegration/index.tsx","pages/ReportCripto/items.tsx","pages/ImoveisCalculadora/items.tsx","pages/ImoveisCalculadora/styles.ts","pages/DividendosBolsa/dataSourceList.ts","pages/DividendosBolsa/styles.ts","constants/dividendos/index.tsx","components/DividendosModal/styles.ts","components/DividendosModal/index.tsx","pages/DividendosExterior/dataSourceList.ts","pages/DividendosExterior/styles.ts","components/DividendosModal/DividendosModalExterior.tsx","assets/warren-logo.svg","assets/xp-black.svg","assets/sprotifi-logo.svg","components/IntegrationComponents/XpIntegration/XpIntegrationButton.tsx","webpack:///./src/assets/xp-black.svg?0502","assets/integracao_xp_exterior_fundo_branco.gif","components/IntegrationComponents/XpIntegration/XpIntegrationModal.tsx","components/IntegrationComponents/XpIntegration/index.tsx","components/IntegrationComponents/WarrenIntegration/WarrenIntegrationButton.tsx","webpack:///./src/assets/warren-logo.svg?0093","assets/integracao_warren_exterior.gif","components/IntegrationComponents/WarrenIntegration/WarrenIntegrationModal.tsx","components/IntegrationComponents/WarrenIntegration/index.tsx","components/IntegrationComponents/BTGIntegration/BTGIntegrationButton.tsx","assets/btgpactual.svg","webpack:///./src/assets/btgpactual.svg?e31d","assets/integracao_btg_exterior.gif","components/IntegrationComponents/BTGIntegration/BTGIntegrationModal.tsx","components/IntegrationComponents/BTGIntegration/index.tsx","components/IntegrationComponents/ExteriorIntegration/index.tsx","pages/TransferenciaCustodia/styles.ts","pages/TransferenciaCustodia/formItems.ts","pages/DoacoesHeranca/Components/DoacoesHerancas/styles.ts","pages/DoacoesHeranca/Components/DoacoesHerancas/index.tsx","pages/DoacoesHeranca/items.tsx","pages/DoacoesHeranca/styles.ts","constants/brokers/pages.tsx","pages/TransferenciaCustodia/index.tsx","pages/Bolsa/index.tsx","pages/Cripto/index.tsx","pages/Imoveis/index.tsx","pages/Exterior/index.tsx","pages/Autonomos/index.tsx","pages/IntegrationBolsa/index.tsx","pages/Historic/index.tsx","pages/HistoricCrypto/index.tsx","pages/HistoricAutonomos/index.tsx","pages/ReportBolsa/index.tsx","pages/ReportExterior/index.tsx","pages/ReportCripto/index.tsx","pages/IntegrationCrypto/index.tsx","pages/IntegrationExterior/index.tsx","pages/BolsaManual/index.tsx","pages/DoacoesHeranca/index.tsx","pages/ImoveisCalculadora/index.tsx","pages/DividendosBolsa/index.tsx","pages/DividendosExterior/index.tsx","pages/IntegrationBolsa/UserHasAccount.tsx","pages/IntegrationBolsa/UserNoHasAccount.tsx","pages/IntegrationBolsa/UserForgotPasswordB3.tsx","pages/ForgotPassword/index.tsx","pages/ChangePassword/index.tsx","assets/icons/sidebar/bolsa.svg","assets/icons/sidebar/cripto.svg","assets/icons/sidebar/imoveis.svg","assets/icons/sidebar/exterior.svg","assets/icons/sidebar/autonomos.svg","constants/brokers/index.tsx","components/LoadingSession/index.tsx","assets/whatsapp.svg","components/PhoneNotification/index.tsx","contexts/BrokerContext.tsx","utils/path.utils.ts","assets/velotax/velotax-light.svg","components/Logo/index.tsx","components/PoweredByVelotax/index.tsx","assets/icons/sidebar/sair.svg","assets/icons/sidebar/irpf.svg","assets/icons/sidebar/conta.svg","components/Sidebar/styles.ts","components/Sidebar/index.tsx","components/PageWrapper/styles.ts","components/TabNavigator/styles.ts","assets/calculadoras/bolsa-de-valores.svg","assets/calculadoras/ativos-no-exterior.svg","components/TabNavigator/index.tsx","components/PageWrapper/index.tsx","components/PublicWrapper/Header/styles.ts","components/PublicWrapper/Header/index.tsx","components/PublicWrapper/styles.ts","components/PublicWrapper/index.tsx","routes/index.tsx","styles/global.ts","services/chatApi.ts","components/ChatGPT/styles.ts","components/ChatGPT/index.tsx","styles/container.ts","styles/plan-modal.ts","components/Pip/styles.ts","components/Pip/index.tsx","contexts/PIPContext.tsx","contexts/ContextWrapper.tsx","styles/historic-list.ts","components/ErrorBoundary/index.tsx","components/Support/styles.ts","components/Support/index.tsx","App.tsx","reportWebVitals.ts","components/GoogleTagManagerHead/index.tsx","components/GoogleTagManagerBody/index.tsx","index.tsx"],"names":["api","axios","create","baseURL","process","headers","apis","NOT_AUTHORIZED","apiVeloPro","apiPayment","ButtonStyled","styled","Button","props","type","css","size","disabled","children","states","isValidPhone","phone","yup","isValidSync","replace","length","isValidDate","date","test","isValidCEP","cep","validateBr","checkDateExpiration","limit","value","split","day","month","year","Date","removeSpecialCharacters","normalize","formatCurrency","prefix","decimalScale","displayType","decimalSeparator","thousandSeparator","fixedDecimalScale","toLocaleString","minimumFractionDigits","maximumFractionDigits","numberToPercentage","toFixed","number","Number","numberToPercentageWallet","currencyToNumber","replaceDotByComma","String","zero","n","formatDate","dateString","getFullYear","getDate","getMonth","cpfInputMask","maskCpf","cpf","includes","cpfArray","splice","join","months","monthsExtended","antDatePickerLocale","lang","placeholder","CalendarLocale","timePickerLocale","getInitialYear","callWebviewHandler","name","args","window","flutter_inappwebview","callHandler","isIosPlatform","localStorage","getItem","downloadExcelFromApi","result","fileUrl","data","B3AuthURL","navigator","userAgent","isMobile","iOSList","isIOS","platform","userAgentData","maxTouchPoints","errorMessage","download","link","userAgentString","chromeAgent","indexOf","safariAgent","location","href","open","downloadPDF","base64","where","linkSource","downloadLink","document","createElement","fileName","now","file","click","ativarDarfsRetroativos","item","hasPlan","planMonthSignature","currentYear","currentMonth","planYearSignature","premium","basic","planInfoToHasPlan","planInfo","active","concierge","mensagemDarfsRetroativos","getZeroBuyPrice","hasZero","apiBolsa","get","donations","pos2019","element","code","toLowerCase","market","buyPrice","reasonDictionary","text","textLink","hasDonations","filter","op","orders","ord","push","hasPos2019","reason","price","elementsRepeat","isBusinessDay","require","getLastBusinessDay","lastDayOfTheMonth","holidays","moment","tz","format","setDate","getQuoteFortnight","quotes","newDate15Day","newDateLastMonth","setMonth","isRuning","count","lastBusinessDay","cotacaoCompra","key","compra","Container","div","VelotaxBackground","VeloIcon","BannerApp","className","target","mobileAppIOSURL","mobileAppAndroidURL","AuthContext","createContext","AuthProvider","isAndroidAPP","some","url","host","isIOSAPP","showIRPFAPPBanner","Form","useForm","resgisterForm","navigate","useNavigate","useLocation","search","pathname","useState","decUrl","setDecUrl","loading","setLoading","directPayment","setDirectPayment","chatOpen","setChatOpen","showDrawer","setShowDrawer","showDbkModal","setShowDbkModal","b3Authorized","setB3Authorized","fromCheckout","setFromCheckout","showNameModal","setShowNameModal","loadingSession","setLoadingSession","wasMessageSent","setWasMessageSent","showPhoneModal","setShowPhoneModal","user","setUser","showIndicarModal","setShowIndicarModal","chatNotificationQtt","setChatNotificationQtt","userPlanModal","showUserPlanModal","forceUpdateTabNavigator","setForceUpdateTabNavigator","bolsa","cameFromRegister","setCameFromRegister","useMemo","userPlanInfoVelotax","hasPermissionGeneral","permissions","dueDate","handleCalcs","a","calcs","navigateTo","put","visibleCalcs","Error","getUserInformation","token","defaults","common","apiIrpf2023","meiApi","msDarf","apiCrypto","apiExterior","imoveisBackend","backnedRendimentos","response","isBlocked","message","warning","signOut","retPlanInfo","meiPlanInfo","userFromApi","cpfProtegido","email","birthdate","cellphone","profileId","dependents","visibleModules","modulesStatus","answeredStepDec","showContratarMalhaFina","userId","showAccountantPremiumButton","showContratarContador","cellphoneFilled","skippedB3Integration","hasDismissed","isAd","isAccountant","meiPlanInfoVelotax","JSON","parse","getUserInfo","useCallback","callback","then","res","catch","err","console","log","updateUserInfo","updateUserDec","updatedUser","removeItem","setTimeout","reload","useEffect","interceptors","use","error","status","Promise","reject","setLocalStorageWithAuthData","setItem","stringify","mostrouRecomendacao","authAccountantSSOCnpj","post","cnpj","handleSignIn","pass","from","handleSignUp","signUpData","onboardingData","hiringData","policiesAccepted","modules","goods","incomeTypes","operationTypes","formData","FormData","set","resetFields","ssoToken","setSsoToken","getSsoToken","initIOSPlanCheck","setInterval","Provider","signed","Object","keys","show","title","irpfBannerActive","disabledRecaptcha","hasExpired","src","sslSecure","alt","useAuth","useContext","PrivateRoute","to","OnlyPublicRoute","_extends","assign","bind","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","d","fill","SvgVeloicon","_ref","svgRef","titleId","width","height","viewBox","xmlns","ref","id","ForwardRef","PageNotFound","icon","subTitle","extra","justify","onClick","LayoutHeader","Layout","Header","HistoryContext","HistoryProvider","history","setHistory","handleBackHistory","last","slice","registerPage","align","style","flexWrap","LogoStyled","SSO","useParams","success","authorization","query","URLSearchParams","redirect","querySelector","veloLogo","LoadingOutlined","htmlType","HomeContainer","HandleTag","activeCampaignTagId","WSClientEvents","WsServerEvents","isValidEvent","event","values","WebSocketContext","undefined","PREFIX","WebSocketProvider","socketRef","useRef","reconnectKeyRef","setOpen","handleMessage","messageWs","info","current","io","reconnection","reconnectionDelay","reconnectionAttempts","auth","reconnectKey","on","NOTIFY","RECONN_KEY","emit","RESEND_LAST_MESSAGE","send","disconnect","addEventListener","removeEventListener","off","emitEvent","ModalConfirmWaitIntegration","action","closeFn","visible","handleClick","onCancel","closable","footer","gutter","marginBottom","paddingLeft","paddingRight","span","PlanEnum","MEIPlanEnum","B3IntegrationContext","B3IntegrationProvider","setLoadingIntegration","useBroker","integration","initIntegration","handleIntegrationInit","getIntegrationStatus","setInitIntegration","timer","setTimer","timeOver","setTimeOver","b3AuthLoaded","setB3AuthLoaded","checkingAuhtorization","setCheckingAuhtorization","integrationInBackground","setIntegrationInBackground","loadingSkipB3Integration","setLoadingSkipB3Integration","interval","timerInterval","historicoNotasCorretagem","setHistoricoNotasCorretagem","loadingHistoricoNotasCorretagem","setLoadingHistoricoNotasCorretagem","showHistoricoNotasCorretagemModal","setShowHistoricoNotasCorretagemModal","context","useWebSocket","modalConfirm","setModalConfirm","integrationLoadingRef","setIntegrationLoading","downloadNotaCorretagem","path","crypto","params","getHistoricoNotasCorretagem","filters","filterDay","filterMonth","filterYear","map","nota","openB3Window","integrate","onlyB3","finally","verifyUserIsAuthorized","once","autoError","autoSuccess","requestUserAuthorization","firstTime","isAuthorized","clearInterval","handleIntegrate","resetB3IntegrationContext","backgroundIntegration","lastUpdateDate","lastUpdate","hasError","integrated","integrationMessage","setIntegrationMessage","evListenerFn","ev","processing","started","description","hideLoading","finished","INTEGRATION_STATUS","tm","clearTimeout","handleSkipB3Integration","handleAuthorizationB3","e","notas","useB3Integration","Home","allPaths","pathBackup","integrations","currentBroker","hasCriptoIntegration","hasExteriorIntegration","pathBackupWithoutSearch","AuthContainer","section","CustomDrawer","Drawer","CloseButton","button","ContentWrapper","ContainerTitle","Title","h2","Description","p","QRCodeWrapper","DownloadModal","setVisible","onClose","placement","CloseOutlined","color","fontSize","qrcode","validationCpf","required","validator","_","resolve","validationCreditCardNumber","rule","Payment","fns","validateCardNumber","isValidCreditCard","validationFullName","trim","validationEmail","validationPhone","validationPhoneRequired","validationDateNotRequired","validationDate","validationDateIsOnReferenceMonth","momentDate","start","startOf","end","endOf","isBetween","isDateOnReferenceMonth","validationDateIsOnReferenceMonthCompra","today","pastLimit","getTime","validationFieldRequired","validationNumberAllowNegativeField","min","max","validationNumberFieldPositive","validationStateAddress","toUpperCase","isValidStateAddress","validationCardShelfLife","substring","monthYearTime","valueTime","reverse","isValidShelfLife","validationCep","validationAmexCVV","validationCVV","validationPassword","validationPassConfirmation","getFieldValue","Login","form","queryParams","Boolean","modalVisible","setModalVisible","onFinish","onValuesChange","changed","setFieldsValue","Item","rules","mask","Password","visibilityToggle","ETypePurchase","UserPlanEnum","UserPlanUpgradeEnum","UserPlansTypes","VELOTAX_MAIN_PRO","QuestionCircleOutlined","PlanosContainer","LogoContainer","ReCaptcha","setToken","executeRecaptcha","useGoogleReCaptcha","handleReCaptchaVerify","margin","DrawerModal","destroyOnClose","CopyText","selection","range","body","createTextRange","moveToElementText","getElementById","select","getSelection","createRange","selectNode","removeAllRanges","addRange","selectText","planos","VELOTAX_MAIN_BASIC","originalPrice","installments","for","benefits","VELOTAX_MAIN_CONCIERGE","popular","planUpgrade","BASIC_TO_PRO_VELOTAX","BASIC_TO_CONCIERGE_VELOTAX","PRO_TO_CONCIERGE","PixPaymentStep","paymentData","handleIdBack","onSucess","backStep","cupom","addInfo","closeModal","isDarfBatch","resumo","reCaptchaToken","setReCaptchaToken","currentPage","qrCodeLink","setQRCodeLink","qrCodeLinkUrl","setQRCodeLinkUrl","brCode","setBrCode","provider","isPlan","pixClientInfo","callUserPlanPayment","callDarfPix","paymentForm","cupomCode","clientInfo","recaptcha","paymentId","qrCode","br_code","paymentDataPayload","amount","impostoTotalFinal","paymentInfo","payment","plan","find","getPlanPrice","totalPrice","discountValue","planPrice","justifyContent","Paragraph","textAlign","display","flexDirection","Text","strong","spinning","wordBreak","fontWeight","maxWidth","clipboard","writeText","borderBottom","block","Footer","backtoRoot","currentStep","typePurchase","handleProceed","setCurrentStep","changeCardAction","marginTop","xs","step","rel","CardContent","NewCardContent","Content","Row","taxes","getInstallments","fixedInstallments","_installments","label","valorTaxa","_valueTmp","_value","plural","sm","EPlanStep","getStatus","CardList","onSelectCard","selectedCardId","onChangeInstallments","installmentSelected","cardList","setCardList","ret","list","getInstallmentsByPrice","textTransform","card","backgroundColor","preview","cvc","holder_name","expiry","exp_month","exp_year","first_six_digits","last_four_digits","locale","valid","issuer","isValid","listHeight","options","minWidth","onChange","getPopupContainer","parentElement","CardFlagContainer","CardForm","setCvc","setName","focused","setNumber","setExpiry","setFocused","setHolderDocument","setIsValidCardForm","uniqueValue","handleBack","signature","customInstallments","cardType","getInstallmentsListByPrice","layout","validateFields","onValueChange","border","maxLength","defaultValue","cepApi","method","AddressForm","setIsValidAddressForm","onFieldsChange","street","logradouro","neighborhood","bairro","city","localidade","state","uf","getAddressSuggestion","ErrorScreen","cb","ConfirmedScreen","ResultScreen","PendingScreen","CreditCardStep","handleClosableModal","darfData","handleSuccess","backToRoot","closeMainModal","cardForm","addressForm","holderDocument","setInstallments","selectedCard","setSelectedCard","isValidCardForm","isValidAddressForm","isMonth","hasDiscount","getCardInfo","addressInfo","getFieldsValue","monthExp","monthYear","cardInfo","cardId","card_id","line_1","zip_code","cvv","getCustomerInfo","customerInfo","customer_id","changeCardService","getConditionToDisable","changeInstallments","createUniquePayment","isMei","paymentRecurringId","createPlanMainVelotax","PopoverItem","PopoverLabel","PopoverItemValue","CardButton","PaymentModal","callDarf","hideDarfDownload","disablePixOption","disableCreditCardOption","onSucessPix","planCurrent","onSucessCreditCard","maxPixValue","selectedYear","maxCCValue","emitting","hidePixButton","blockListCard","onSuccessGeneral","closeDarfModal","isBatchDarf","yearBatch","openPlanModal","pixForm","broker","installment","setInstallment","loadingCards","setLoadingCards","setPixClientInfo","loadingPayment","setLoadingPayment","CHOOSE_PAYMENT","setStep","darf","_id","setData","lastTimeOpenPlanModalVeloApp","checkWasPaid","delay","attempts","check_id","FINISHED","settings","historicUrl","purchaseType","UNIQUE","NO_VALUE","getCardList","navigateToBrowser","changePaymentId","LOADING","cancelActions","resumoPopoverContent","impostoTotal","Math","impostoComumFinal","impostoDTFinal","impostoFIIFinal","multaAux","jurosAux","plansContentDisplay","content","InfoCircleOutlined","padding","trigger","EyeOutlined","cursor","alignItems","CC_PAYMENT","PIX_PAYMENT","PIX_FORM","stopIntervalPix","initialized","setInitialized","marginLeft","maskClosable","keyboard","fillRule","clipRule","SvgSelo7Dias","stroke","strokeWidth","SvgSeloGarantia","x1","y1","x2","y2","gradientUnits","offset","stopColor","SvgSeloPlayStore","SvgSeloAppStore","Planos","selectedPlan","setSelectedPlan","paymentModal","setPaymentModal","setPlanUpgrade","actionTypeText","handleSelectPlan","benefit","index","ModalContent","IRPFPage","irpfData","setIrpfData","setSelectedYear","yearsList","Array","initialYear","level","dataSource","renderItem","actions","Meta","bank","restituionDate","clsx","Sucesso","gtag","send_to","PlanIos","maskStyle","backdropFilter","Cadastro","visiblePass","setVisiblePass","EyeInvisibleOutlined","getValueFromEvent","checked","AvisosContainer","B3Link","CopyLink","Instructions","b3Link","IntegrationModal","integrationModal","setIntegrationModal","b3IntegrationExample","Avisos","dismissBolsa","setDismissBolsa","dismissExterior","setDismissExterior","getCloseBanner","closeBannerBolsaXp","closeBannerExteriorXp","handleDismissExterior","Loading","ChartBar","monthReport","proventos","yearProventos","typeProventos","hideValues","setDataChart","bars","setBars","totalDiv","setTotalDiv","totalJscp","setTotalJscp","totalBonds","setTotalBonds","totalRendi","setTotalRendi","totalAmort","setTotalAmort","chartColors","background","getProviderColor","proventoByMonth","juros","dividendo","rendimento","amortizacao","bonds","groupedProventos","groupBy","operations","forEach","el","corporateActionTypeDescription","grossAmount","barsChart","corretora","futuro","liquidado","types","isFuturo","labelFormatter","ResponsiveContainer","BarChart","top","left","XAxis","dataKey","YAxis","axisLine","tick","Tooltip","payload","verificacaoValorFinal","reduce","acumulador","total","Legend","iconType","verticalAlign","formatter","entry","Bar","stackId","position","BlurContent","ContainerProventos","ContainerModal","ReportTypeContainer","ReportTypeDrawer","setType","closeIcon","strokeLinecap","strokeLinejoin","SvgFiltro","FormCurrencyMode","Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez","ProventosModal","setOpenModal","proventosLoading","setYearProventos","setMonthProventos","dateFormat","dateBeginRef","setTotal","setFilters","setDataModalPDF","originalData","setOriginalData","dateBeginFilter","setDateBeginFilter","appliedFilters","setAppliedFilters","showFilterModal","setShowFilterModal","reportDrawerProventos","setReportDrawerProventos","dateEndFilter","setDateEndFilter","downloadExcel","worksheet","XLSX","json_to_sheet","workbook","book_new","book_append_sheet","downloadRelatorio","newProventos","capitalize","quantity","unitPrice","reportPDFData","monthNumber","dataFiltered","monthOp","yearOp","dataSerialized","Produto","Pagamento","Tipo","Instituição","getCorretFilters","newCorret","m","y","pagination","defaultPageSize","defaultCurrent","showSizeChanger","columns","dataIndex","zIndex","Group","corretoras","dataFinal","corret","dateBegin","toDate","dateEnd","datePagamento","getProventosWithFilter","NotificationContext","NotificationProvider","notification","setNotification","fetched","setFetched","getNotification","useNotification","Proventos","isBasic","openModal","setProventos","monthProventos","loadingDownload","setLoadingDownload","setProventosLoading","loadingReport","setLoadingReport","setTypeProventos","updated","serializedData","serializeDataExcel","activeElement","blur","autoAdjustOverflow","colors","IsentCardStyled","CarteiraContext","CarteiraProvider","loadingLucroPrejuizo","setLoadingLucroPrejuizo","setLastUpdate","carteira","setCarteira","lineChartData","setLineChartData","shouldRefresh","setShouldRefresh","getCarteira","refresh","getLucroPrejuizo","arr","previousDate","num","currentDate","getLineChartData","getPatrimonios","handleRefresh","useCarteira","vendasTotais","transactions","t","fator","sellPrice","vendasIsentas","codigosIsentos","mercadoIsento","operacao","exteriorTransactionsFilter","operation","manual","NotificationContainer","NotificationDrawer","loadingIndex","setLoadingIndex","lidas","viewed","naoLidas","removeNotification","notifications","viewedDate","patch","notificationImage","toLocaleDateString","serializePatrimonio","itemPatrimonio","corretoraFilter","posicoesFiltradas","posicoes","getTodasAsCorretoras","corretoraNames","c","getNomeCorretora","shortName","patrimonio","calculaSaldoCorretoras","posicao2019","classesAtivos","calculaClassesAtivos","calculaPorcentagemPosicoes","getCategoriaShortName","categoria","agrupadoPorCorretora","saldosCorretoras","saldo","prev","curr","po","codigo","posicao","calculaPorgentagensCategorias","agrupadoPorCategoria","saldosCategorias","totalSaldos","acc","percentage","patrimonioTotal","posicoesOrdenadas","sort","b","porcentagens","hasPosition2019","porcentagem","porcentagensOrdenadas","somatorioDasMaioresPorcentagens","somatorioDosMaioresValores","PosicaoCardStyled","Collapse","Panel","TextInput","SelectLabled","rest","InputLabel","toString","Select","variant","displayEmpty","option","MenuItem","NumberInput","allowNegative","MaskInput","MaskFormItem","input","DateFormItem","TextFormItem","SelectFormItem","NumberFormItem","CurrencyFormItem","FormMovimentTypeMode","FormMovimentTypeModeNew","historicoVendasEmptyText","yearConfigPL4173","YearResumeStatusFromBackEnum","YearResumeStatusCSSClassEnum","YearResumeStatusColorEnum","YearResumeStatusTextEnum","defaultDarf","totalAlienado","impostoDevido","impostoAcumulado","totalImpostoDevido","aliquotaDevida","totalGanho","multa","memoriaCalculo","prejuizoComum","prejuizoDayTrade","prejuizoFII","minDarfPrice","maxDarfPrice","maxPixPayment","maxCreditCardPayment","MultaModalProps","JurosModalProps","MinPriceModalProps","AliquotaModalProps","DarfResultDescriptions","Component","view","setDataBolsa","setDataCripto","edit","setEdit","editForm","handleEditValueCancel","isEditting","handleEditValue","handleEdit","DarfImpostosDevidosDescriptions","render","FormItemsCrypto","hidden","ativo","quantidade","precoVenda","custoCompra","taxas","ganho","mercado","PrejuFormItems","A","valueOriginBRA","B","valueOriginEUA","C","cambioCompra","D","valor","E","fee","F","cambioVenda","cambioVendaFee","DarfFormItemRows","userIrrfComum","userIrrfDayTrade","userIrrfFII","defaultDarfBolsa","alienacoesComum","alienacoesDT","alienacoesFII","irrfComum","irrfDayTrade","irrfFII","irrfTotal","mercadoOpcoesDT","mercadoOutrosComum","mercadoOutrosDT","mercadoVistaComum","mercadoVistaDT","IRRFModalProps","getTaxes","valorPrincipal","FormItemsBolsa","avgBuyPrice","avgBuyPriceGOV","feeB3","capitalGain","mustUpdate","lendingSide","FormItemsDoacoesHerancas","dateView","IrrfFormItem","userIrrfTotal","CustoMedioModal","IrrfFormItemRows","DarfBolsaFormItemRows","DarfBolsaTabs","class","tabs","varTotaisComum","varTotaisDT","varTotaisFII","ganhoComum","ganhoDT","ganhoFII","handleEditPreju","userPrejuizoComum","userPrejuizoDayTrade","userPrejuizoFII","negativeToPositive","signal","LucroPrejuizo","HidenValue","currency","PosicaoHeader","flexGrow","lucroPrejuizoTotal","lucroPrejuizoDiario","precoAtual","lucroPrejuizoTotalPercentual","lucroPrejuizoDiarioPercentual","PosicaoBody","setHelpModal","details","loan","typeLoan","custoMedio","marketCap","beta","peRatio","earningDate","dividendYield","targetPrice","enterpriseValueRevenue","enterpriseValueEbitda","chart","AreaChart","right","bottom","stopOpacity","tickCount","tickFormatter","v","orientation","CartesianGrid","strokeDasharray","Area","fillOpacity","PosicaoCard","header","ExpandIcon","isActive","DownCircleOutlined","rotate","Carteira","helpModal","setHideValues","ativosChart","setAtivosChart","vendasBolsa","setVendasBolsa","expiredModal","setExpiredModal","setDetailedActiveKeys","setCorretoras","activeKeys","setActiveKeys","vendasExterior","setVendasExterior","chartType","setChartType","reportDrawerWallet","setReportDrawerWallet","classesAtivosChart","setClassesAtivosChart","detailedPositions","setDetailedPositions","vendasRestantesBolsa","setVendasRestantesBolsa","corretorasAtivosChart","setCorretorasAtivosChart","checkboxCorretoras","setCheckboxCorretoras","selectedCorretoras","setSelectedCorretoras","notificationDrawerOpen","setNotificationDrawerOpen","filterCorretoraAtivo","setFilterCorretoraAtivo","vendasRestantesExterior","setVendasRestantesExterior","showCorretoraFilterModal","setShowCorretoraFilterModal","detailedLoadingIndex","setDetailedLoadingIndex","checkAll","indeterminate","largeChart","carteiraCategorizada","cur","patrimonioTotalFiltrado","retornoFiltrado","lucroPrejuizoDiarioPercentualNumerator","lucroPrejuizoDiarioPercentualDenominator","lucroPrejuizoTotalPercentualNumerator","lucroPrejuizoTotalPercentualDenominator","onChangeActiveKeys","isOpenEvent","lastOpened","replaceAll","detailedActiveKeys","exterior","positions","isentas","vendasTotaisExt","downloadAction","queryCorretoras","username","renderIsentCard","vendas","restante","tipVendas","complete","borderBottomRightRadius","borderTopRightRadius","showZero","TabPane","tab","PieChart","Pie","cx","cy","innerRadius","outerRadius","labelLine","legendType","midAngle","percent","RADIAN","PI","radius","x","cos","sin","textAnchor","dominantBaseline","Cell","Intl","NumberFormat","numberToCurrency","Option","expandIconPosition","defaultActiveKey","expandIcon","activeKey","collapsible","utc","local","FooterModal","onOk","saveButtonText","CreditCardScheduledPayment","KEY_PASS","MeuPlano","formKey","keyPass","setKeyPass","isVelopro","setVelopro","cancelModal","showCancelModal","changeCardModal","showChangeCardModal","creditCardModal","showCreditCardModal","scheduledPaymentData","setScheduledPaymentData","pendingCancel","useDate","isPlanVelopro","getData","cancelPlan","getScheduledPayment","planBasicInfo","currentPlan","MEI","VELOTAX_MAIN_BASIC_MONTH","VELOTAX_MAIN_PRO_MONTH","VELOTAX_MAIN_SILVER","VELOTAX_MAIN_PLATINUM","VELOTAX_MAIN_CONCIERGE_MONTH","planStatus","onDeleteCancel","showButtons","fromAccountant","contentStyle","borderRadius","next_billing_at","start_at","hasRequested","pix","credit_card","lastFourDigits","opacity","danger","cancelText","okText","letterSpacing","MinhaConta","showPassword","setShowPassword","warningDeleteModal","showWarningDeleteModal","loadingExclude","setLoadingExclude","sendDeleteReq","currentPass","config","CheckOutlined","confirmLoading","CompaniesExemptList","italic","Regulation","showListModal","setShowListModal","handleListModal","accordion","Link","FormModal","add","rows","visibility","itemToEdit","disableButtons","hideFooter","preFormChildren","setUpdate","update","changedValues","inputs","flat","taxaCambio","dataEntries","entries","setFields","row","hide","array","alignSelf","DeleteConfirmationModal","updateData","setVisibility","buttonLabel","showToast","successMessage","finish","DatePickerMonthCell","yearResume","Darf","viewEdit","queryYear","queryMonth","initialMonth","subtract","replaceState","asset","setAsset","setYear","setEmitting","setPaymentData","showAssetModal","setShowAssetModal","showDeleteModal","setShowDeleteModal","setYearResume","datePickerYear","setDatePickerYear","gettingYearResume","setGettingYearResume","loadingDarfButton","setLoadingDarfButton","createdAt","transactionFeature","features","taxFeature","yearResumeFeature","emitted","monthResume","resume","PAYED","NOT_PAYED","payed","getDarf","apiUrl","getYearResume","force","findIndex","handleDarf","justSave","insertPix","darfUrl","onChangeMonth","parseInt","unsetAsset","handleCloseDeleteModal","handleCloseAssetModal","handleOpenPaymentModal","handlePlanModal","handleSaveMonth","handleEventDarfButton","handleLabelButton","impostoCharge","dataToPayment","allow","direction","newYear","picker","allowClear","inputReadOnly","suffixIcon","onSelect","onPanelChange","disabledDate","monthCellRender","fullPath","record","bordered","column","ghost","stopPropagation","PlusOutlined","itemLayout","emptyText","dataVenda","dataCompra","handleRemove","marginRight","regular","delete","CardContainer","Card","SvgChart","itensBolsa","itensCriptoSemLogo","showToBasic","itensImoveis","SvgIntegration","ExteriorOperationType","itensExterior","BolsaOperations","optionsType","oldModel","RendimentoFormItems","tipo","valorRendimento","valorRendimentoUsd","cpfPagador","impostoPagoExteriorUsd","cpfBeneficiario","impostoPagoExterior","RendimentoFormItemRows","ImpostoTotalRendimentos","impostoPrincipal","gastosExterior","monthStock","backendRendimentos","userCode","totalRendimentos","baseTributaria","totalDependentes","totalDespesas","totalPrevidencia","totalPensao","totalDeducoes","RendimentosImpostosDevidos","aliquotaDate","aliquota1FinalDate","aliquota2FinalDate","firstBreakpoint","toCurrencyBRL","stringValueBreakpoint","ModalDependentes","ModalAutonomos","ModalPrevidencia","ModalPensao","Rendimentos","yearView","monthView","isSaveItens","setId","itemIndex","setItemIndex","setMonthStock","showRendimentoModal","setShowRendimentoModal","impostos","setImpostos","valorImpostoTotal","generateDarf","ActionButtons","handleRegularize","buildCalcTaxBody","numeroDependentes","gastosAutonomos","gastosPrevidencia","gastosPensao","setPayData","deducoes","rendimentosBackend","rendimentos","currentValue","valueToCharge","valueCharge","institution","getRendimentos","currentImpostos","getRendimento","buildNewImpostos","saveItems","variable","newImpostos","pixValue","MsDarf","apiRendimentos","handleCloseItemModal","unsetItem","addItem","removeAsset","aux","handleOpenDarfModal","changeInputState","auxValue","warn","notEditable","controls","onBlur","ExteriorModalContainer","InterestModal","rendimentoAplicacao","DarfResultDescriptionsExterior","FormItemsExterior","movimentType","setMovimentType","fromApi","VENDA","JUROS","DIVIDENDOS","OUTROS","quotations","keycompra","isComplete","venda","dataVendaFee","cotacaoVenda","keyvenda","cotacaoVendaFee","dataFee","dateToQuote","ganhoFee","valorNewModel","capitalGainBRL","sellPrice_BRL","buyPrice_BRL","fee_BRL","valueOriginBRL","feeBRL","ExteriorFormItemRows","editAsset","ExteriorNewFormItemRows","ExteriorModalContent","TRADE","DEPOSIT","WITHDRAW","cambioReferencia","ganho2","DarfExterior","gainKeys","sellPriceKeys","buyPriceKeys","feeKeys","getByKey","isOldModel","k","getBuyPrice","getGain","getSellPrice","getFee","useDarfExterior","dataToEditPreju","setDataToEditPreju","loadingResetPreju","loadingEditPreju","setLoadingEditPreju","setQuotations","notAuthorized","setNotAuthorized","showEditPrejuConfirmation","setShowEditPrejuConfirmation","setShowNotAuthorizedModal","currentDarfDate","dateAllowedOnBasic","prejuizoFeature","memoriaCalculoFiltered","verifyFromApi","saldoBRA","nAtualizarDarfsPassadas","nAtualizarIrrf","atualizouImpostoAcumulado","nAtualizarPrejuizosAcumulados","atualizarTotalmente","memoCalc","originalDate","getQuotations","cotacoes","pojo","cotacao","dataHoraCotacao","dataToEdit","bolsaOperationsRef","resetedPreju","showPrejuModal","setShowPrejuModal","preju","handleClosePrejuModal","irrfExterior","isExceedTax","additionalTax","calcReturn","qtt","ativoTranslated","varTotalBRL","dataToCreate","dataFeeToCreate","handleEditPrejuData","itensExteriorSemLogo","sprotifi","PayDarfButtonContainer","check","PayDarfButton","checkedChildren","unCheckedChildren","CardHorizontal","DarfImoveisTabs","valorVenda","valorAquisicao","custoCorretagem","deducoesLegais","aliquota","ImpostoTotalImoveis","docData","InfoTax","maxImoveisDarfPrice","maxImoveisPixPayment","maxImoveisCreditCardPayment","DarfIMoveis","taxData","setTaxData","setIsForm","setCurrentQuestion","isYearResume","setYeatResume","situacao","setSituacao","emited","setEmited","imovelId","imovelInfo","imovel","darfBackend","mesVenda","anoVenda","container","rowIndex","colIndex","returnRightButton","instanceMsCalc","Authorization","PayButton","fullWidth","isReport","startIcon","ItensLogo","itensCripto","mercadoBitcoinLogo","myntLogo","TitleContainer","itensAutonomos","LoadingContainer","Typography","LoadingModal","mobile","iconAlternative","iconAlternativeStyle","spin","handleDownloadSheet","sheetName","OldTransactionsContext","OldTransactionsProvider","setChanged","loadingGet","setLoadingGet","loadingPut","setLoadingPut","oldPositionEdit","setOldPositionEdit","doacaoHerancaEdit","setDoacaoHerancaEdit","oldPositionList","setOldPositionList","doacoesHerancas","setDoacoesHerancas","showAddPositionModal","setShowAddPositionModal","saveOldPositions","saveDoacoesHerancas","newOrders","or","downloadDoacoesHerancasExcel","responseType","getOldTransactionsInit","setShowModalPrePreenchida","getDoacoesHerancasInit","addOldPosition","listOldPosition","newPostion","v4","addDoacaoHeranca","newDate","retExisting","totalValue","totalFeeNota","expirationDate","operationType","newOperation","updatedAt","editOldPosition","editItem","listOldPositions","editDoacaoHeranca","handleEditOldPosition","handleRemoveOldPosition","handleRemoveDoacaoHeranca","itemParam","handleEditDoacaoHeranca","useOldTransactions","DatePickerExtraFooter","ModalZeroBuyPrice","dataZeroBuyPrice","setModalZeroBuyPrice","setIgnoreZeroBuyPrice","whiteSpace","wordWrap","DarfBolsa","setResumo","hasItems","sethasItems","setBuffer","setIsBatchDarf","setYearBatch","totalPagarBatch","setTotalPagarBatch","openLoadingModal","setOpenLoadingModal","hideOldPositionsText","irrfFeature","thirdBusinessDayAndMonth","disableCurrentMonth","isoWeekday","firstDayOfMonth","businessDaysCount","isBefore","isAntesTerceiroDiaUtil","batchPayload","isDownloadPDF","setTab","handleNext","scrollBy","clientWidth","handlePrev","setResetedPreju","ignoreZeroBuyPrice","setDataZeroBuyPrice","modalZeroBuyPrice","showIrrfModal","setShowIrrfModal","irrf","handleEditIrrf","handleCloseIrrfModal","buffer","isBatch","hasZeroBuyPrice","handleBatchDarf","totalImpostoPagar","checkBlockedOption","maxValue","renderExtraFooter","minHeight","Data","Operação","Mercado","Ativo","Quantidade","Taxas","Ganho","Retorno","avgSellPrice","cards","ReportContainer","BolsaManualContainer","OldTransactions","hasLandingSide","hasLendingPosition","setHasLendingPosition","PlusCircleOutlined","oldPosition","UploadVelotax","accept","fileList","tabIndex","onRemove","maxCount","beforeUpload","customRequest","multiple","descText","showUploadList","listType","customText","DecUploadContent","GovBrIcon","DecPrepreenchidaContent","Step","processamantoDec2019","UploadDecContext","UploadDecProvider","loadingSkip","confirmarModal","setConfirmarModal","nameSplitted","isDec","append","reponse","useUploadDec","PrePreenchidaModal","showModal","setShowModal","forceRender","showArrow","NovoCadastro","TransferenciaCustodiaContext","TransferenciaCustodiaProvider","setAtivo","ativos","setAtivos","indexAtivo","setIndexAtivo","redirected","setRedirected","showFormModal","setShowFormModal","isInvalidItem","valorCompraUSDOrigemBRA","valorCompraUSDOrigemEUA","handleLoading","closeFormModal","closeDeleteModal","getAtivos","useTransferenciaCustodia","remove","handleAdd","saveAtivos","isValidFile","useNotasCorretagem","sameNameFiles","loadingSend","setLoadingSend","setNotas","showNotasCorretagemModal","setShowNotasCorretagemModal","sendNotas","originFileObj","uploadProps","uid","files","sameNameFile","Upload","LIST_IGNORE","showRemoveIcon","showPreviewIcon","showDownloadIcon","sendNotasCustodyTransfer","dayFilters","yearFilters","NotasHistoricoModal","rowKey","simple","filterReset","filterIcon","BottomAdvice","AttentionIconContainer","INITIAL_VALID_YEAR","Parceiros","Subtitle","B3IntegrationButtons","checkOnlyExistsUserB3","integrationMessages","LoadingIntegration","intervalTimer","setPercent","percentRef","newPercent","clearPercentInterval","imgHeight","IntegrationButton","logo","integrado","setIntegrationModalVisible","isB3","CheckCircleTwoTone","twoToneColor","MyntIntegrationModal","dependentId","listStyle","MyntIntegration","integrationCallback","setIntegrations","setIntegrado","integrationModalVisible","getEstadoIntegracao","isIntegrated","mynt","estado","bitcoinTradeLogo","MercadoBitcoinIntegrationModal","loadingFile","setLoadingFile","React","sendRequest","setSendRequest","MercadoBitcoinIntegration","mercadobitcoin","providerExists","ContainerCards","CardSpreadsheet","itensModalSpreadsheet","SpreadsheetModal","setModalSpreadsheet","GenericIntegration","modalSpreadsheet","CryptoIntegration","blockRedirect","handleIntegration","questions","formItems","FormItem","mesAquisicao","isAfter","skip","isResidencial","isValorAPlicado","ImoveisManualContainer","monthList","monthName","ModalStyled","handleValue","dolarQuote","handleValueBolsa","DividendosTabs","setIndex","isBolsa","handleItem","DividendosModal","referenceDate","ticker","DividendosModalExterior","object","setObject","checkType","getTotal","auxTotal","totalRendimento","totalRendimentoReal","totalImposto","totalImpostoReal","valorRendimentoReal","impostoPagoExteriorReal","groupBycode","XpIntegrationButton","isB3LinkRedirect","SvgXpBlack","XpIntegrationModal","xpIntegrationExample","IntegrationExteriorXP","xp","XP_black_logo","WarrenIntegrationButton","_ref20","_ref21","SvgWarrenLogo","WarrenIntegrationModal","warrenIntegrationExample","IntegrationExteriorWarren","warren","WarrenLogo","BTGIntegrationButton","SvgBtgpactual","BTGIntegrationModal","btgIntegrationExample","IntegrationExteriorBTG","btg","BTGLogo","ExteriorIntegration","searchParams","TransferenciaCustodiaFormItems","yearLimit","monthLimit","dayLimit","checkDateLimit","DoacoesHerancas","downloading","setDownloading","setOrders","blob","Blob","URL","createObjectURL","appendChild","ordersLocal","flex","justifySelf","DownloadOutlined","QuestionContainer","Question","Pages","TransferenciaCustodia","endIcon","at","orderId","Bolsa","handleOpenPlanModal","Cripto","Imoveis","Exterior","Autonomos","IntegrationBolsa","b3Logo","Historic","useSearchParams","integrationSproutfi","sproutfi","stateYear","queryYearValid","setHolidays","itemToPay","setItemToPay","showCalcModal","setShowCalcModal","historicFeature","payFeature","isCripto","isImoveis","isExterior","isAutonomos","backend","imoveis","yearOptions","getHistoric","pay","editAction","noPlanMode","calc","payAction","handlePayButton","handleTitle","valueIsGreaterThanMin","obj","darfId","generateDarfImoveis","justPay","getHolidays","dataFormated","handleFinalValue","handleCloseCalcModal","handleVendasTotais","ImpostoAPagarNoPlan","ImpostoAPagarWithPlan","showPayButton","valueIsLessThanMax","defineMovement","ultimoDiaUtilDoMes","vencimento","checkMonth","hideOnBasic","bodyStyle","sidebar","component","integratedOnly","integrationUrl","showNavigateToIntegrationButton","HistoricCrypto","HistoricBolsa","integrouHoje","backgroundIntegrationDisabled","integrationPath","textDecoration","HistoricAutonomos","ReportBolsa","setAction","infoModal","toggleModal","loadingLinks","downloadFeature","handleActionButton","itvl","isProcessing","checkProcessorAction","ReportExterior","transactionsFeature","darfFeature","downloadDarf","noSendMail","ReportCripto","IntegrationCrypto","gap","columnGap","IntegrationExterior","SprotifiLogo","BolsaManual","showAlertModal","setShowAlertModal","showModalPrePreenchida","handleAlertModalVisibility","handleSubmit","DoacoesHeranca","currentQuestion","overflow","question","ImoveisCalculadora","isForm","setDocData","setIsValorAPlicado","filteredQuestions","monthVenda","monthAquisicao","isAplicado","valorAplicado","isNaN","anoAquisicao","classList","preventDefault","handleNav","formItem","newValue","targetIndex","q","currentIndex","targetElement","currentElement","scrollIntoView","backendImoveis","calcResponse","data-id","DividendosBolsa","backendBolsa","DividendosExterior","setQuotes","sortedData","totalData","acumulatorImpostoPagoExterior","acumulatorValorRendimento","backendExterior","newData","UserHasAccount","handleForgotPassword","UserNoHasAccount","UserForgotPasswordB3","setCheckChangePassword","textLoading","setTextLoading","processingBot","setProcessingBot","detailsUserB3","setDetailsUserB3","resetAccountCodeB3","checkFinishResetPassword","passwordReset","ForgotPassword","ChangePassword","SvgBolsa","SvgCripto","SvgImoveis","SvgExterior","SvgAutonomos","brokers","dns","dark","useSSO","useSettings","hideJuridicMessage","primary","secondary","html","favicon","iconStyle","hidePoweredBy","defaultPath","defaultProviderExistsPath","pages","calcId","showOnSidebar","subPages","darfComponent","publicWrapper","legacyHistory","publicRoute","LoadingSession","colorInterpolationFilters","stdDeviation","SvgWhatsapp","PhoneNotification","loadingIntegrationStatus","showed","setShowed","wrap","lineHeight","defaultIntegration","BrokerContext","BrokerProvider","hostname","setOnlyB3","setPathBackup","setIntegration","xtageIntegration","setLoadingIntegrationStatus","queryString","param","decodeURIComponent","parseSearchParams","brokerList","dnsBroker","bitcointrade","binance","sidebarPages","page","abledPages","brokerRoutes","mixedRoute","Element","registerRoutes","mixedRoutes","privatePublicWrapperRoutes","publicRoutes","privateRoutes","privatePaths","publicPaths","abledPagesPaths","b3Data","plans","allSettled","handleProviderExists","getElementsByTagName","innerHTML","Logo","VelotaxLogo","PoweredByVelotax","SvgSair","SvgConta","ContentButton","DrawerSider","LayoutSider","Sider","Modules","Menu","Settings","Module","sidebarselectedcolor","SupportContainerIcon","SideBarContainer","theme","Sidebar","pagePath","openKeys","setOpenKeys","sidebarSelectedColor","handleNavigate","focus","cripto","autonomos","subPage","loginInSupport","urlSupportSSO","mode","selectedKeys","poweredBy","paddingTop","AntLayout","nav","SvgBolsaDeValores","SvgAtivosNoExterior","TabNavigator","setActiveKey","menuItems","fixed","visibleMenuItems","fixedItems","home","chat","menuActiveItems","itemActiveIndex","setActiveKeyByPathname","matchItem","observer","MutationObserver","mutations","mutation","chatbaseWindow","observe","attributes","attributeFilter","disabledOverflow","PageWrapper","mainContent","scrollEvent","scrollTop","hasHeader","hasSidebar","HeaderContainer","Progress","progress","usePublicProgress","notLogin","notRegister","PublicProgressContext","PublicWrapper","setProgress","Routes","ConfigProvider","primaryColor","infoColor","successColor","route","createGlobalStyle","chatApi","ChatButton","ChatWindow","KEY","KEY_TIMESTAMP","defaultMsg","ChatGPT","storage","chatBodyRef","textareaRef","msg","setMsg","setShow","scrolled","setScrolled","firstLoading","setFirstLoading","msgs","setMsgs","scrollToBottom","scrollTo","scrollHeight","after24H","timestamp","loadMsgs","threadId","userMessage","formattedGptAnswer","DOMPurify","sanitize","botResponse","sendMsg","dangerouslySetInnerHTML","__html","textarea","onKeyDown","PIPContainer","closeTagNames","PIP","handleClose","dragging","pip","setPip","bounds","lockAspectRatio","lockAspectRatioExtraHeight","onDragStart","tagName","onDragStop","frameBorder","allowFullScreen","PIPContext","PIPProvider","ContextWrapper","FallbackUI","ErrorBoundaryRollbar","ErrorBoundary","fallbackUI","SupportButton","Support","setLoadingLogin","App","rollbarConfig","accessToken","captureUncaught","captureUnhandledRejections","environment","language","reCaptchaKey","ptBR","renderEmpty","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","GoogleTagManagerHead","GoogleTagManagerNoScript","ReactDOM","StrictMode","GoogleTagManagerBody"],"mappings":"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","file":"static/js/main.b4490f29.chunk.js","sourcesContent":["import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_IRPF_URL || \"http://localhost:3333\",\n headers: {\n \"x-api-provider\": \"VELOTAX\",\n },\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst apis = axios.create({\n baseURL: process.env.REACT_APP_URL || \"http://localhost:8888\",\n headers: {\n \"ngrok-skip-browser-warning\": \"69420\",\n },\n});\n\nexport const NOT_AUTHORIZED = \"not authorized\";\n\nexport default apis;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_MEI_URL || \"http://localhost:8888\",\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_MS_DARF_URL || \"http://localhost:5002\",\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_BOLSA_URL || \"http://localhost:8888\",\n headers: {\n \"x-api-provider\": \"bolsa-velotax\",\n },\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_CRYPTO_URL || \"http://localhost:8888\",\n headers: {\n \"x-api-provider\": \"crypto-velotax\",\n },\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst apiVeloPro = axios.create({\n baseURL: process.env.REACT_APP_VELOPRO_URL || \"http://localhost:8888\",\n});\n\nexport default apiVeloPro;\n","export default __webpack_public_path__ + \"static/media/ssl-secure.dd09a1ee.svg\";","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_BACKEND_IMOVEIS_URL || \"http://localhost:5004\",\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_IRPF2023_URL || \"http://localhost:3333\",\n});\n\nexport default api;\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL: process.env.REACT_APP_EXTERIOR_URL || \"http://localhost:8080\",\n headers: {\n \"x-api-provider\": \"exterior-velotax\",\n },\n});\n\nexport default api;\n","import axios from \"axios\";\n\nexport const apiPayment = axios.create({\n baseURL:\n process.env.REACT_APP_PAYMENT_AUTH ||\n \"http://localhost:4000\",\n headers: {\n \"x-api-provider\": \"crypto-velotax\",\n },\n});\n","import { Button, ButtonProps } from \"antd\";\nimport styled, { css } from \"styled-components\";\n\nexport const ButtonStyled = styled(Button)`\n &.ant-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n column-gap: 8px;\n }\n &[disabled] {\n border-color: var(--velotax-ghost) !important;\n color: var(--velotax-font-color-ghost) !important;\n background-color: var(--velotax-ghost) !important;\n }\n ${(props) =>\n props.type === \"primary\" &&\n css`\n svg {\n fill: var(--white);\n }\n `}\n ${(props) =>\n props.size === \"large\" &&\n css`\n height: 56px;\n `}\n ${(props) =>\n props.disabled &&\n css`\n svg {\n fill: var(--velotax-font-color-ghost) !important;\n }\n `}\n`;\n","import { ButtonProps } from \"antd\";\nimport { ButtonStyled } from \"./styles\";\n\nconst Button: React.FC = (props) => (\n {props.children}\n);\n\nexport default Button;\n","export const states = [\n \"AC\",\n \"AL\",\n \"AP\",\n \"AM\",\n \"BA\",\n \"CE\",\n \"DF\",\n \"ES\",\n \"GO\",\n \"MA\",\n \"MT\",\n \"MS\",\n \"MG\",\n \"PA\",\n \"PB\",\n \"PR\",\n \"PE\",\n \"PI\",\n \"RR\",\n \"RO\",\n \"RJ\",\n \"RN\",\n \"RS\",\n \"SC\",\n \"SP\",\n \"SE\",\n \"TO\",\n];\n","import * as yup from \"yup\";\nimport \"yup-phone\";\nimport moment from \"moment\";\nimport { validateBr } from \"js-brasil\";\nimport { states } from \"../constants/others/states\";\nimport Payment from \"payment\";\n\nexport const isValidCPF = (cpf: string) => validateBr.cpf(cpf || \"\");\n\nexport const isValidCNPJ = (cnpj: string) => validateBr.cnpj(cnpj || \"\");\n\nexport const isValidRG = (rg: string) =>\n (rg.replace(/[_.-]/g, \"\") || \"\").length === 9;\n\nexport const isValidRenavam = (renavam?: string) =>\n renavam && validateBr.renavam(renavam);\n\nexport const isValidFullName = (name: string) =>\n name.trim().split(\" \").length > 1;\n\nexport const isValidEmail = (email?: string) =>\n email && yup.string().email().isValidSync(email);\n\nexport const isValidPhone = (phone?: string) =>\n phone &&\n yup.string().phone(\"BR\").isValidSync(phone) &&\n phone.replace(/[^0-9\\\\.]+/g, \"\").length === 11;\n\nexport const isValidDate = (date?: string) =>\n date &&\n /^((0?[1-9]|[12][0-9]|3[01])[/](0?[1-9]|1[012])[/](19|20)[0-9]{2})*$/.test(\n date\n );\n\nexport const isDateOnReferenceMonth = (\n month: number,\n year: number,\n date?: string\n) => {\n if (date && isValidDate(date)) {\n try {\n const momentDate = moment(date, \"DD/MM/YYYY\");\n const start = moment(`${year}-${month + 1}`, \"YYYY-M\", true).startOf(\"M\");\n const end = moment(`${year}-${month + 1}`, \"YYYY-M\", true).endOf(\"M\");\n return moment(momentDate).isBetween(start, end, undefined, \"[]\");\n } catch (err) {\n return false;\n }\n }\n return false;\n};\n\nexport const isValidCreditCard = (value: string) =>\n Payment.fns.validateCardNumber(value);\n\nexport const isNonDateOnFuture = (\n month: number,\n year: number,\n date?: string\n) => {\n if (date && isValidDate(date)) {\n try {\n const momentDate = moment(date, \"DD/MM/YYYY\");\n const end = moment(`${year}-${month + 1}`, \"YYYY-M\", true).endOf(\"M\");\n return moment(momentDate).isSameOrBefore(end);\n } catch (err) {\n return false;\n }\n }\n return false;\n};\n\nexport const isValidVoterCard = (voterCard?: string) =>\n voterCard && voterCard.replace(/[._]/g, \"\").length === 12;\n\nexport const isValidCEP = (cep?: string) => cep && validateBr.cep(cep);\n\nexport const checkDateExpiration = (limit: string, value: string) => {\n const [day, month, year] = value.split(\"/\");\n const date = new Date(`${year}-${month}-${day} 23:59:59`);\n return date <= new Date(limit);\n};\n\nexport const checkDateLimit = (limit: string, value: string) => {\n const [day, month, year] = value.split(\"/\");\n const [yearLimit, monthLimit, dayLimit] = limit.split(\"-\");\n const date = new Date(Number(year), Number(month) - 1, Number(day), 0, 0, 0);\n const dateLimit = new Date(\n Number(yearLimit),\n Number(monthLimit) - 1,\n Number(dayLimit),\n 0,\n 0,\n 0\n );\n return date > dateLimit;\n};\n\nexport const isValidIPTU = (value?: string) =>\n !value ||\n String(value || \"\").length === 0 ||\n (String(value || \"\").length >= 8 && String(value || \"\").length <= 30);\n\nexport const isValidDeclarationReceipt = (value: string) =>\n !value || value.length === 10 || value.length === 12;\n\nexport const removeSpecialCharacters = (value: string) => {\n if (!value) return \"\";\n return value?.normalize(\"NFD\").replace(/[^a-zA-Zs]/g, \"\");\n};\n\nexport const isValidStateAddress = (value: string) => {\n return states.includes(value.toUpperCase());\n};\n\nexport const isValidShelfLife = (value: string) => {\n let currentMonth: number | string | undefined = new Date().getMonth() + 1;\n let currentYear = (new Date().getFullYear() + \"\")?.substring(2);\n currentMonth = currentMonth < 10 ? `0${currentMonth}` : currentMonth;\n let monthYearTime = `${currentYear}${currentMonth}`;\n let valueTime = value?.split(\"/\").reverse().join().replace(\",\", \"\");\n return (\n !!value &&\n (valueTime < monthYearTime ||\n !/\\b(0[1-9]|1[0-2])\\/?([0-9]{4}|[0-9]{2})\\b/.test(value))\n );\n};\n","import moment from \"moment\";\nimport { Tooltip } from \"antd\";\nimport { BiErrorCircle } from \"react-icons/bi\";\nimport NumberFormat from \"react-number-format\";\n\nexport const removeLiNumbers = (t: string) => t.replace(/^([\\d]+\\.*)+/, \"\");\n\nexport const onlyNumbersToPhone = (value: string) =>\n value.replace(/[()_.%-/\\s/]/g, \"\");\n\nexport const formatCurrency = (value: number, prefix = \"R$ \") => {\n return (\n \n );\n};\n\nexport const numberToCurrency = (value: number) => {\n const formatter = new Intl.NumberFormat(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n });\n\n return formatter.format(value);\n};\n\nexport const numberToPercentage = (value?: number, toFixed = 2) => {\n const number = typeof value === \"number\" ? value : 0;\n return `${Number(number * (number < 1 ? 100 : 1)).toLocaleString(\"pt-br\", {\n minimumFractionDigits: toFixed,\n maximumFractionDigits: toFixed,\n })}%`;\n};\n\nexport const numberToPercentageWallet = (value?: number, toFixed = 2) => {\n const number = typeof value === \"number\" ? value : 0;\n return `${Number(number * 100).toLocaleString(\"pt-br\", {\n minimumFractionDigits: toFixed,\n maximumFractionDigits: toFixed,\n })}%`;\n};\n\nexport const currencyToNumber = (value: string, prefix = \"R$\") =>\n Number(\n value\n ?.replace(prefix, \"\")\n .replace(/\\./g, \"\")\n .replace(/,/g, \".\")\n .replace(/\\s/g, \"\")\n ) || 0;\n\nexport const replaceDotByComma = (value: number) => {\n return String(value).replace(/\\./g, \",\");\n};\n\nexport const ErrorIcon = (\n \n \n \n);\n\nexport const zero = (n: number) => (n < 10 ? `0${n}` : `${n}`);\n\nexport const formatDate = (dateString: string) => {\n const date = new Date(dateString);\n const year = date.getFullYear();\n const day = zero(date.getDate());\n const month = zero(date.getMonth() + 1);\n return `${day}/${month}/${year}`;\n};\n\nexport const formatDateHour = (dateString: string) =>\n `${moment(dateString).format(\"DD/MM/YYYY\")} às ${moment(dateString).format(\n \"HH:mm\"\n )}`;\n","export const cpfInputMask = \"999.999.999-99\";\nexport const cnpjInputMask = \"99.999.999/9999-99\";\n\nexport const maskCpf = (cpf = \"\") => {\n if (!cpf) return \"\";\n if (cpf.includes(\".\")) return cpf;\n const cpfArray = cpf.split(\"\");\n cpfArray.splice(3, 0, \".\");\n cpfArray.splice(7, 0, \".\");\n cpfArray.splice(11, 0, \"-\");\n return cpfArray.join(\"\");\n};\n\nexport const maskNitPisPasep = (nitpispasep = \"\") => {\n if (!nitpispasep) return \"\";\n if (nitpispasep.includes(\".\")) return nitpispasep;\n const array = nitpispasep.split(\"\");\n array.splice(3, 0, \".\");\n array.splice(9, 0, \".\");\n array.splice(12, 0, \"-\");\n return array.join(\"\");\n};\n\nexport const maskCnpj = (cnpj = \"\") => {\n if (!cnpj) return \"\";\n if (cnpj.includes(\".\")) return cnpj;\n const cnpjArray = cnpj.split(\"\");\n cnpjArray.splice(2, 0, \".\");\n cnpjArray.splice(6, 0, \".\");\n cnpjArray.splice(10, 0, \"/\");\n cnpjArray.splice(15, 0, \"-\");\n return cnpjArray.join(\"\");\n};\n\nexport const maskCep = (cep = \"\") => {\n if (!cep) return \"\";\n if (cep.includes(\"-\")) return cep;\n const cepArray = cep.split(\"\");\n cepArray.splice(5, 0, \"-\");\n return cepArray.join(\"\");\n};\n\nexport const maskVoterCard = (voterCard = \"\") => {\n if (!voterCard) return \"\";\n const voterCardArray = voterCard.split(\"\");\n voterCardArray.splice(4, 0, \" \");\n voterCardArray.splice(9, 0, \" \");\n return voterCardArray.join(\"\");\n};\n\nexport const maskPhone = (phone = \"\") => {\n if (!phone) return \"\";\n const phoneArray = phone.split(\"\");\n if (phone.substring(0, 2) === \"55\") {\n phoneArray.splice(0, 0, \"+\");\n }\n if (phoneArray[0] === \"+\") {\n phoneArray.splice(3, 0, \" (\");\n phoneArray.splice(6, 0, \") \");\n phoneArray.splice(12, 0, \"-\");\n } else {\n phoneArray.splice(0, 0, \"(\");\n phoneArray.splice(3, 0, \") \");\n phoneArray.splice(9, 0, \"-\");\n }\n return phoneArray.join(\"\");\n};\n","import CalendarLocale from \"rc-picker/lib/locale/pt_BR\";\n\nexport const months = [\n \"Jan\",\n \"Fev\",\n \"Mar\",\n \"Abr\",\n \"Mai\",\n \"Jun\",\n \"Jul\",\n \"Ago\",\n \"Set\",\n \"Out\",\n \"Nov\",\n \"Dez\",\n];\n\nexport const monthsExtended = [\n \"Janeiro\",\n \"Fevereiro\",\n \"Março\",\n \"Abril\",\n \"Maio\",\n \"Junho\",\n \"Julho\",\n \"Agosto\",\n \"Setembro\",\n \"Outubro\",\n \"Novembro\",\n \"Dezembro\",\n];\n\nexport const antDatePickerLocale = {\n lang: {\n placeholder: \"\",\n ...CalendarLocale,\n },\n timePickerLocale: {},\n};\n\nexport const getInitialYear = (year: number, month: number) =>\n year;\n\n","import { AxiosResponse } from \"axios\";\n\nexport const callWebviewHandler = (name: string, ...args: any[]) => {\n (window as any).flutter_inappwebview.callHandler(name, ...args);\n};\n\nexport const handleInAppPurchaseIfIsIos = (): boolean => {\n const isIos = isIosPlatform();\n\n if (isIos) {\n callWebviewHandler(\"open_in_app_purchase\");\n }\n\n return isIos;\n};\n\nexport const isIosPlatform = (): boolean => {\n const platform = localStorage.getItem(\"platform\");\n const isIos = platform === \"ios\";\n return isIos;\n};\n\nexport const downloadExcelFromApi = (result: AxiosResponse) => {\n const fileUrl = result.data.fileUrl;\n callWebviewHandler(\"download_file_link\", fileUrl);\n};\n","import { HasPlan } from \"../contexts/AuthContext\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport { callWebviewHandler, isIosPlatform } from \"./webview\";\n\nexport const B3AuthURL =\n \"https://b3Investidor.b2clogin.com/b3Investidor.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_FINTECH&client_id=069ecfdf-7471-48eb-be82-d50799c99e5c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fwww.investidor.b3.com.br&scope=openid&response_type=code&prompt=login\";\n\nexport function isNotUndefOrNull(value: any) {\n if (value === null) return false;\n return typeof value !== 'undefined';\n}\n\nexport const getQuizLabel = (username: string, message: string): string => {\n return username !== \"Declarante\"\n ? `${username} ${message}`\n : `Você ${message}`;\n};\n\nexport const isSafari = /^((?!chrome|android).)*safari/i.test(\n navigator.userAgent\n);\n\nconst oneSecond = 1000;\nconst oneMinute = oneSecond * 60;\nconst oneHour = oneMinute * 60;\nexport const oneDayTimestamp = oneHour * 24;\n\nexport const getReturnValues = (countDown: number) => {\n // calculate time left\n const days = countDown / oneDayTimestamp;\n const hours = Math.floor(days * 24);\n const minutes = Math.floor((countDown - hours * oneHour) / oneMinute);\n const seconds = Math.floor(\n (countDown - hours * oneHour - minutes * oneMinute) / oneSecond\n );\n return [hours, minutes, seconds];\n};\n\nexport const isMobile = (): boolean => {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n};\n\nconst iOSList = [\n \"iPad Simulator\",\n \"iPhone Simulator\",\n \"iPod Simulator\",\n \"iPad\",\n \"iPhone\",\n \"iPod\",\n];\n\nexport const isIOS = () =>\n iOSList.includes(navigator.platform) ||\n iOSList.includes((navigator as any).userAgentData?.platform) ||\n navigator.userAgent.includes(\"Mac\") ||\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);\n\nexport const isExternalLink = (link: string): boolean => {\n return /http:\\/\\/|https:\\/\\//i.test(link);\n};\n\nexport const errorMessage =\n \"Algo inesperado aconteceu! Tente novamente mais tarde.\";\n\nexport const tenteIntegrarNovamente = \"Tente integrar novamente.\";\n\nexport const reintegrateMessage =\n \"Faça novamente a integração para buscar dados mais novos\";\n\nexport const download = (link: string) => {\n if (isIosPlatform()) {\n callWebviewHandler(\"download_file_link\", link);\n return;\n }\n const userAgentString = navigator.userAgent;\n let chromeAgent = userAgentString.indexOf(\"Chrome\") > -1;\n let safariAgent = userAgentString.indexOf(\"Safari\") > -1;\n if (chromeAgent && safariAgent) safariAgent = false;\n if (safariAgent) {\n window.location.href = link;\n return;\n } else {\n window.open(link);\n }\n};\n\nexport const downloadPDF = (base64: string, where?: string) => {\n const linkSource = `data:application/pdf;base64,${base64}`;\n const downloadLink = document.createElement(\"a\");\n const fileName = `Relatório${where ? `-${where}` : \"\"}-${Date.now()}.pdf`;\n\n if (isIosPlatform()) {\n callWebviewHandler(\"download_file_base64\", {\n name: fileName,\n file: base64,\n });\n return;\n }\n\n downloadLink.href = linkSource;\n downloadLink.download = fileName;\n downloadLink.click();\n};\n\nexport const ativarDarfsRetroativos = ({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature,\n planYearSignature\n}: {\n item: any;\n currentYear: number;\n currentMonth: number;\n planMonthSignature: number;\n planYearSignature: number; \n hasPlan: false | HasPlan;\n }) => {\n return (hasPlan && hasPlan.premium) ||\n (hasPlan &&\n hasPlan.basic &&\n ((item.year > planYearSignature || (item.year === planYearSignature && item.month >= planMonthSignature)) ||\n (item.month === 0 &&\n item.year === item.year - 1 &&\n item.month === 12)));\n}\n\nexport const planInfoToHasPlan = (planInfo: any) =>\n !!planInfo?.type && !!planInfo?.active\n ? {\n basic: !!planInfo?.type,\n premium: [\n \"VELOTAX_MAIN_PRO\",\n \"VELOTAX_MAIN_PRO_MONTH\",\n \"VELOTAX_MAIN_CONCIERGE\"\n ].includes(planInfo?.type),\n concierge: [\"VELOTAX_MAIN_CONCIERGE\"].includes(planInfo?.type),\n }\n : false;\n\nexport const mensagemDarfsRetroativos =\n \"Contrate o plano Premium ou Concierge para emitir DARFs retroativos\";\n\nexport const getZeroBuyPrice = async (data: any) => {\n let hasZero: any[] = [];\n const donations = await apiBolsa.get(\"/operation/donations?operationType=Credito\", {});\n const pos2019 = await apiBolsa.get(\"/operation?month=12&year=2019\", {});\n\n for (const element of data) {\n const code = element?.code;\n const isTaxa = (code.toLowerCase()).includes('taxa');\n if (isTaxa) continue;\n const market = element?.market;\n const buyPrice = element?.buyPrice;\n\n if (market.includes('opções') || market.includes('Opção')) continue;\n const reasonDictionary = [\n { text: \"Preencha o custo de compra do ativo na aba\", textLink: \"Doações e heranças\", link: \"/velotax/bolsa-doacoes-heranca\" },\n { text: \"Preencha o custo de compra do ativo na aba\", textLink: \"Posição 31/12/2019\", link: \"/velotax/bolsa-insert-manual\" }\n ];\n const hasDonations: any[] = [];\n donations?.data?.filter((op: any) => {\n op?.orders?.filter((ord: any) => {\n if (code === ord?.code) {\n hasDonations.push(ord);\n return;\n }\n else return;\n })\n })\n const hasPos2019: any[] = [];\n pos2019?.data?.filter((op: any) => {\n op?.orders?.filter((ord: any) => {\n if (code === ord?.code) {\n hasPos2019.push(ord);\n return;\n }\n else return;\n })\n })\n const reason = hasDonations.length ? 0 : (hasPos2019.length ? 1 : \"\");\n // Para quando o ativo não estiver zerado no mês, mas estiver zerado em doações e heranças\n if (hasDonations.length > 0 && hasDonations[0]?.price == 0) {\n hasZero.push({ code: code, reason: reason !== \"\" ? reasonDictionary[reason] : \"\" });\n }\n else if ((buyPrice == 0 || !buyPrice)\n && ((hasDonations.length > 0 && hasDonations[0]?.price == 0)\n || (hasPos2019.length > 0 && hasPos2019[0]?.price == 0))) {\n hasZero.push({ code: code, reason: reason !== \"\" ? reasonDictionary[reason] : \"\" });\n }\n else if ((buyPrice == 0 || !buyPrice) && hasDonations.length == 0 && hasPos2019.length == 0) {\n hasZero.push({ code: code, reason: \"\" });\n }\n }\n let elementsRepeat: string[] = [];\n hasZero = hasZero.filter((item) => {\n if (!elementsRepeat.includes(item.code)) {\n elementsRepeat.push(item.code);\n return item;\n }\n else return;\n });\n\n return hasZero;\n}","import moment from \"moment-timezone\";\n\n/* eslint-disable @typescript-eslint/no-var-requires */\nconst isBusinessDay = require(\"eh-dia-util\");\n// import ehDiaUtilSlim from 'eh-dia-util-slim';\n\nexport const getLastBusinessDay = (lastDayOfTheMonth: Date, holidays?: any) => {\n const date = lastDayOfTheMonth;\n while (!isBusinessDay(date) || holidays?.includes(moment(date).tz('Europe/London').format('MM-DD'))) {\n date.setDate(date.getDate() - 1);\n }\n return date;\n};\n/** @description Function to return if the day that passed is a business/week day */\nexport const isWeekday = (year: number, month: number, day: number) => {\n const dayReturn = new Date(year, month, day).getDay();\n if (dayReturn === 0 || dayReturn === 6) return false;\n return true;\n};\n\n/** @description Function to return the array of business/week days in that month */\nexport const weekDays = (dateParam: Date) => {\n const year = dateParam.getFullYear();\n const month = dateParam.getMonth();\n const days = new Date(year, month + 1, 0).getDate();\n let weekdays: any[] = [];\n for (let i = 1; i <= days; i++) {\n if (isWeekday(year, month, i)) weekdays.push(i);\n }\n return weekdays;\n};\n\n/** @description Function to get the second business/week day and check if it's true */\nexport const isSecondBusinessDay = (dateParam: Date) => {\n const currentDay = dateParam.getDate();\n const arrayOfWeekDays = weekDays(dateParam);\n return arrayOfWeekDays.indexOf(currentDay) > 2 ? true : false;\n};\n","import { getLastBusinessDay } from \"../utils\";\n\nexport const getDolarQuote = (date: Date, quotes: any[]) => {\n const newDate15Day = new Date(new Date(date).setDate(15));\n let newDateLastMonth = new Date(\n newDate15Day.setMonth(newDate15Day.getMonth() - 1),\n );\n let isRuning = true;\n let count = 0;\n\n while (isRuning) {\n const lastBusinessDay = getLastBusinessDay(newDateLastMonth);\n const day =\n lastBusinessDay.getDate() <= 9\n ? `0${lastBusinessDay.getDate()}`\n : lastBusinessDay.getDate();\n const month =\n lastBusinessDay.getMonth() + 1 <= 9\n ? `0${lastBusinessDay.getMonth() + 1}`\n : lastBusinessDay.getMonth() + 1;\n const year = lastBusinessDay.getFullYear();\n\n const cotacaoCompra = quotes.find(q => `${day}/${month}/${year}` === q.dataHoraCotacao)?.cotacaoCompra\n if (cotacaoCompra || count === 5) {\n isRuning = false;\n return cotacaoCompra || 0;\n } else {\n newDateLastMonth = new Date(\n newDateLastMonth.setDate(newDateLastMonth.getDate() - 1),\n );\n }\n count += 1;\n\n }\n};\n\nexport const getQuoteFortnight = (date: Date, quotes: any) => {\n const newDate15Day = new Date(new Date(date).setDate(15));\n let newDateLastMonth = new Date(\n newDate15Day.setMonth(newDate15Day.getMonth() - 1),\n );\n let isRuning = true;\n let count = 0;\n\n while (isRuning) {\n const lastBusinessDay = getLastBusinessDay(newDateLastMonth);\n const day =\n lastBusinessDay.getDate() <= 9\n ? `0${lastBusinessDay.getDate()}`\n : lastBusinessDay.getDate();\n const month =\n lastBusinessDay.getMonth() + 1 <= 9\n ? `0${lastBusinessDay.getMonth() + 1}`\n : lastBusinessDay.getMonth() + 1;\n const year = lastBusinessDay.getFullYear();\n\n let cotacaoCompra;\n for (const key in quotes) {\n if (`${day}/${month}/${year}` === key) {\n cotacaoCompra = quotes[key]?.compra;\n }\n }\n if (cotacaoCompra || count === 5) {\n isRuning = false;\n return cotacaoCompra || 0;\n } else {\n newDateLastMonth = new Date(\n newDateLastMonth.setDate(newDateLastMonth.getDate() - 1),\n );\n }\n count += 1;\n\n }\n};\n","export default __webpack_public_path__ + \"static/media/veloicon.2ac5c010.svg\";","export default __webpack_public_path__ + \"static/media/velotax-background.cb947f9f.svg\";","import styled from \"styled-components\";\nimport VeloIcon from \"../../assets/velotax/veloicon.svg\";\nimport VelotaxBackground from \"../../assets/velotax/velotax-background.svg\";\n\nexport const Container = styled.div`\n display: none;\n\n @media only screen and (max-device-width: 812px) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 64px;\n padding: 0 20px;\n background-color: var(--ant-info-color);\n background-repeat: no-repeat;\n background-image: url(${VelotaxBackground});\n .left-side {\n display: flex;\n align-items: center;\n span.veloicon {\n height: 36px;\n width: 23.2px;\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n background-image: url(${VeloIcon});\n margin-right: 8px;\n }\n div {\n display: flex;\n flex-direction: column;\n }\n h1 {\n margin: 0;\n font-size: 0.875rem;\n color: var(--white);\n font-weight: bold;\n }\n p {\n margin: 0;\n font-size: 0.75rem;\n color: var(--white);\n }\n }\n .ant-btn.ant-btn-lg.ant-btn-primary {\n height: 40px;\n font-size: 0.875rem;\n padding-top: 6.4px !important;\n }\n }\n`;\n","import Button from \"../Button\";\nimport { isIOS } from \"../../utils\";\nimport { Container } from \"./styles\";\n\ninterface BannerAppProps {}\n\nexport const BannerApp: React.FC = () => {\n return (\n \n
\n \n
\n

Velotax app

\n

Baixe o aplicativo na {isIOS() ? \"App Store\" : \"Play Store\"}

\n
\n
\n \n Baixar\n \n
\n );\n};\n","import axios from \"axios\";\n\nconst api = axios.create({\n baseURL:\n process.env.REACT_APP_BACKEND_RENDIMENTOS_URL || \"https://wlbe-rendimentos-dev.velotax.com.br\",\n});\n\nexport default api;\n","import { useNavigate } from \"react-router\";\nimport { useLocation } from \"react-router-dom\";\nimport { Form, FormInstance, message } from \"antd\";\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n ReactNode,\n useMemo,\n} from \"react\";\nimport api from \"../services/api\";\nimport apis from \"../services/apis\";\nimport meiApi from \"../services/meiApi\";\nimport msDarf from \"../services/msDarf\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport apiCrypto from \"../services/apiCrypto\";\nimport apiVeloPro from \"../services/apiVeloPro\";\nimport sslSecure from \"../assets/ssl-secure.svg\";\nimport imoveisBackend from \"../services/imoveis\";\nimport apiIrpf2023 from \"../services/apiIrpf2023\";\nimport apiExterior from \"../services/apiExterior\";\nimport { apiPayment } from \"../services/apiPayment\";\nimport { BannerApp } from \"../components/BannerAPP\";\nimport { isMobile, planInfoToHasPlan } from \"../utils\";\nimport backnedRendimentos from \"../services/rendimentos\";\n//import { handleInAppPurchaseIfIsIos } from \"../utils/webview\";\n\nexport const mobileAppIOSURL = [\n \"appios-dev.velotax.com.br\",\n \"appios.velotax.com.br\",\n];\nexport const mobileAppAndroidURL = [\n \"appandroid-dev.velotax.com.br\",\n \"appandroid.velotax.com.br\",\n];\n\ninterface ILoginData {\n cpf: string;\n pass: string;\n isAd?: boolean;\n}\n\ninterface IModuleData {\n name: string;\n completed: boolean;\n}\n\ninterface IDependent {\n name: string;\n cpf: string;\n profileId: string;\n type: string;\n _id: string;\n}\n\ninterface PlanInfo {\n currentPlan: any;\n hasExpired: boolean;\n active: boolean;\n dueDate: number;\n type: string;\n paid: boolean;\n concierge?: boolean;\n permissions?: any;\n}\n\ninterface IUser {\n name: string;\n email: string;\n cpf: string;\n birthdate?: string;\n cellphone?: string;\n cpfProtegido: boolean;\n profileId: string;\n dependents?: IDependent[];\n visibleCalcs: string[];\n visibleModules: IModuleData[];\n modulesStatus: IModuleData[];\n answeredStepDec: boolean;\n isAccountant?: boolean;\n userId?: string;\n showAccountantPremiumButton: {\n show: boolean;\n disabled: boolean;\n };\n showContratarContador: {\n show: boolean;\n disabled: boolean;\n };\n showContratarMalhaFina: {\n show: boolean;\n protected: boolean;\n };\n userPlanInfoVelotax: PlanInfo;\n meiPlanInfoVelotax?: PlanInfo;\n skippedB3Integration?: boolean;\n cellphoneFilled?: boolean;\n hasDismissed?: boolean;\n isAd?: boolean;\n}\n\ninterface ISessionData extends IUser {\n token: string;\n}\n\ninterface IAuthState {\n token: string;\n user: IUser;\n}\n\ninterface HandleCalcsParamas {\n calcs: any[];\n navigateTo?: string;\n}\n\ninterface CameFromRegister {\n bolsa: boolean;\n phone: boolean;\n}\n\nexport interface HasPlan {\n basic: boolean;\n premium: boolean;\n concierge: boolean;\n}\n\ninterface IAuthContext {\n handleSignIn: (loginData: ILoginData) => void;\n handleSignUp: (\n signUpData: any,\n onboardingData: any,\n hiringData?: any\n ) => void;\n setLocalStorageWithAuthData: (sesionData: ISessionData) => void;\n signOut: () => void;\n signed: boolean;\n user: IAuthState;\n loading: boolean;\n loadingSession: boolean;\n setLoadingSession: React.Dispatch>;\n getUserInfo: () => void;\n updateUserDec: () => void;\n authAccountantSSOCnpj: () => void;\n decUrl: string;\n setDecUrl: (decUrl: string) => void;\n showDbkModal: boolean;\n setShowDbkModal: (showDbkModal: boolean) => void;\n showIndicarModal: boolean;\n setShowIndicarModal: (showIndicarModal: boolean) => void;\n wasMessageSent: boolean;\n setWasMessageSent: (wasMessageSent: boolean) => void;\n showUserPlanModal: (show: boolean, title?: ReactNode) => void;\n userPlanModal: boolean;\n handleCalcs: (params: HandleCalcsParamas) => void;\n setUser: (data: any) => void;\n ssoToken: string;\n irpfBannerActive: boolean;\n forceUpdateTabNavigator: boolean;\n setForceUpdateTabNavigator: React.Dispatch>;\n disabledRecaptcha: boolean;\n hasPlan: false | HasPlan;\n cameFromRegister: CameFromRegister;\n setCameFromRegister: React.Dispatch>;\n chatOpen: boolean;\n setChatOpen: React.Dispatch>;\n showDrawer: boolean;\n setShowDrawer: Function;\n chatNotificationQtt: number;\n setChatNotificationQtt: React.Dispatch>;\n resgisterForm: FormInstance;\n isIOSAPP: boolean;\n isAndroidAPP: boolean;\n b3Authorized: boolean;\n setB3Authorized: React.Dispatch>;\n updateUserInfo: () => void;\n showPhoneModal: boolean;\n setShowPhoneModal: React.Dispatch>;\n showNameModal: boolean;\n showIRPFAPPBanner: boolean;\n setShowNameModal: React.Dispatch>;\n hasExpired: boolean;\n hasDismissed: boolean;\n directPayment: boolean;\n setDirectPayment: React.Dispatch>;\n initIOSPlanCheck: () => void;\n fromCheckout: boolean;\n setFromCheckout: React.Dispatch>;\n getSsoToken: () => void;\n hasPermissionGeneral: boolean;\n}\n\nexport const AuthContext = createContext({} as IAuthContext);\n\nexport const AuthProvider: React.FC = ({ children }) => {\n const isAndroidAPP = mobileAppAndroidURL.some((url) =>\n window?.location?.host?.includes?.(url)\n );\n const isIOSAPP = mobileAppIOSURL.some((url) =>\n window?.location?.host?.includes?.(url)\n );\n\n const showIRPFAPPBanner = !isAndroidAPP && !isIOSAPP && isMobile();\n\n const [resgisterForm] = Form.useForm();\n const navigate = useNavigate();\n const { search, pathname } = useLocation();\n const [decUrl, setDecUrl] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [directPayment, setDirectPayment] = useState(false);\n const [chatOpen, setChatOpen] = useState(false);\n const [showDrawer, setShowDrawer] = useState(false);\n const [showDbkModal, setShowDbkModal] = useState(false);\n const [b3Authorized, setB3Authorized] = useState(false);\n const [fromCheckout, setFromCheckout] = useState(false);\n const [showNameModal, setShowNameModal] = useState(false);\n const [loadingSession, setLoadingSession] = useState(true);\n const [wasMessageSent, setWasMessageSent] = useState(false);\n const [showPhoneModal, setShowPhoneModal] = useState(false);\n const [user, setUser] = useState({} as IAuthState);\n const [showIndicarModal, setShowIndicarModal] = useState(false);\n const [chatNotificationQtt, setChatNotificationQtt] = useState(0);\n const [userPlanModal, showUserPlanModal] = useState(false);\n const [forceUpdateTabNavigator, setForceUpdateTabNavigator] = useState(false);\n const [cameFromRegister, setCameFromRegister] = useState({\n bolsa: false,\n phone: false,\n });\n\n const hasPlan = useMemo(\n () => planInfoToHasPlan(user?.user?.userPlanInfoVelotax),\n [user?.user?.userPlanInfoVelotax]\n );\n\n const hasPermissionGeneral =\n user?.user?.userPlanInfoVelotax?.permissions?.[\"xpinvestimentos\"] &&\n new Date(user?.user?.userPlanInfoVelotax?.dueDate) > new Date();\n\n const disabledRecaptcha = true;\n\n const handleCalcs = async ({ calcs, navigateTo }: HandleCalcsParamas) => {\n try {\n setLoading(true);\n await api.put(\"/configuracoes/calcs\", { calcs });\n setUser((user) => ({\n ...user,\n user: { ...user.user, visibleCalcs: calcs },\n }));\n setLoading(false);\n navigate(navigateTo ?? \"/\");\n } catch (err) {\n setLoading(false);\n throw Error;\n }\n };\n\n const getUserInformation = async () => {\n const token = localStorage.getItem(\"@VeloTax:token\");\n const user = localStorage.getItem(\"@VeloTax:user\");\n if (user && token && !pathname.includes(\"/p/sso\")) {\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiIrpf2023.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apis.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n meiApi.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n msDarf.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiBolsa.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiCrypto.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiPayment.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiVeloPro.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiExterior.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n imoveisBackend.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n backnedRendimentos.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n\n const response = await api.get(\"/session/userInfo\");\n if (response.data.isBlocked) {\n message.warning(\n \"Sua conta foi temporariamente bloqueada, favor entrar em contato com o suporte.\",\n 5000\n );\n await signOut();\n }\n const retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n\n const meiPlanInfo = await apiPayment.get(`/user-plan/plan-info`, {\n headers: {\n \"x-api-provider\": \"mei\",\n },\n });\n\n let userFromApi = null;\n if (response.data) {\n const {\n cpf,\n cpfProtegido,\n name,\n email,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarMalhaFina,\n userId,\n showAccountantPremiumButton,\n showContratarContador,\n cellphoneFilled,\n skippedB3Integration,\n hasDismissed,\n isAd,\n isBlocked,\n } = response.data;\n userFromApi = {\n cpf,\n cpfProtegido,\n name,\n email,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarContador,\n showContratarMalhaFina,\n isAccountant: cpf.length > 11,\n userId,\n showAccountantPremiumButton,\n userPlanInfoVelotax: retPlanInfo.data,\n meiPlanInfoVelotax: meiPlanInfo.data,\n skippedB3Integration,\n cellphoneFilled,\n hasDismissed,\n isAd,\n isBlocked,\n };\n }\n apiIrpf2023.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apis.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n meiApi.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n msDarf.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apiBolsa.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apiCrypto.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apiPayment.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apiVeloPro.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n apiExterior.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n imoveisBackend.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n backnedRendimentos.defaults.headers.common[\"Authorization\"] = `Bearer ${\n response.headers.token || token\n }`;\n\n return {\n token: response.headers.token || token,\n user: userFromApi || JSON.parse(user),\n };\n }\n return {} as IAuthState;\n };\n\n const getUserInfo = useCallback(\n (callback?: () => void) => {\n setLoadingSession(true);\n getUserInformation()\n .then((res) => {\n setUser(res);\n setLoadingSession(false);\n callback && callback();\n })\n .catch((err) => {\n console.log(\"err\", err);\n setLoadingSession(false);\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pathname]\n );\n\n const updateUserInfo = useCallback(() => {\n getUserInformation().then((res) => {\n setUser(res);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pathname]);\n\n const updateUserDec = useCallback(() => {\n const updatedUser = { ...user.user, answeredStepDec: true };\n const token = localStorage.getItem(\"@VeloTax:token\") || \"\";\n\n setUser({ user: updatedUser, token });\n }, [user]);\n\n const signOut = useCallback(() => {\n setLoadingSession(true);\n localStorage.removeItem(\"@VeloTax:token\");\n localStorage.removeItem(\"@VeloTax:user\");\n api.defaults.headers.common[\"Authorization\"] = \"\";\n apiIrpf2023.defaults.headers.common[\"Authorization\"] = \"\";\n apis.defaults.headers.common[\"Authorization\"] = \"\";\n meiApi.defaults.headers.common[\"Authorization\"] = \"\";\n msDarf.defaults.headers.common[\"Authorization\"] = \"\";\n apiBolsa.defaults.headers.common[\"Authorization\"] = \"\";\n apiCrypto.defaults.headers.common[\"Authorization\"] = \"\";\n apiVeloPro.defaults.headers.common[\"Authorization\"] = \"\";\n apiPayment.defaults.headers.common[\"Authorization\"] = \"\";\n apiExterior.defaults.headers.common[\"Authorization\"] = \"\";\n imoveisBackend.defaults.headers.common[\"Authorization\"] = \"\";\n backnedRendimentos.defaults.headers.common[\"Authorization\"] = \"\";\n setUser({} as IAuthState);\n navigate(\"/p/login\");\n setTimeout(() => {\n window.location.reload();\n }, 500);\n }, [navigate]);\n\n useEffect(() => {\n apiExterior.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error?.response?.status === 401) {\n setTimeout(() => {\n signOut();\n }, 3000);\n }\n return Promise.reject(error);\n }\n );\n apiVeloPro.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error?.response?.status === 401) {\n setTimeout(() => {\n signOut();\n }, 3000);\n }\n return Promise.reject(error);\n }\n );\n api.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error?.response?.status === 401) {\n signOut();\n }\n\n return Promise.reject(error);\n }\n );\n\n getUserInfo();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setLocalStorageWithAuthData = useCallback(\n ({\n token,\n cpf,\n cpfProtegido,\n email,\n name,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarMalhaFina,\n userId,\n showAccountantPremiumButton,\n showContratarContador,\n userPlanInfoVelotax,\n cellphoneFilled,\n skippedB3Integration,\n isAd,\n }: ISessionData) => {\n localStorage.setItem(\"@VeloTax:token\", token);\n localStorage.setItem(\n \"@VeloTax:user\",\n JSON.stringify({\n cpf,\n email,\n name,\n profileId,\n mostrouRecomendacao: false,\n })\n );\n apiIrpf2023.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apis.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n meiApi.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n msDarf.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiBolsa.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiCrypto.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiPayment.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiVeloPro.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiExterior.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n imoveisBackend.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n backnedRendimentos.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n\n setUser({\n token,\n user: {\n cpfProtegido,\n cpf,\n email,\n name,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarMalhaFina,\n isAccountant: cpf.length > 11,\n userId,\n showAccountantPremiumButton,\n showContratarContador,\n userPlanInfoVelotax,\n skippedB3Integration,\n cellphoneFilled,\n isAd,\n },\n });\n if (search === \"?redirect=true\") {\n navigate(\"/conta\");\n } else {\n navigate(\"/\");\n }\n },\n // eslint-disable-next-line\n []\n );\n\n const authAccountantSSOCnpj = useCallback(async () => {\n if (!user.user.cpf.includes(\"_\")) return;\n\n const { data } = await api.post(\"/session/accountant-sso-cnpj\", {\n cnpj: user.user.cpf.includes(\"_\")\n ? user.user.cpf.split(\"_\")[1]\n : user.user.cpf,\n });\n\n navigate(data.url);\n }, [user, navigate]);\n\n const handleSignIn = useCallback(\n async (data: ILoginData) => {\n setLoading(true);\n try {\n const response: any = await api.post(\"/session\", {\n cpf: data.cpf,\n pass: data.pass,\n from: \"CALCULADORAV2\",\n isAd: data.isAd || false,\n });\n if (response.data.isBlocked) {\n message.warning(\n \"Sua conta foi temporariamente bloqueada, favor entrar em contato com o suporte.\",\n 5000\n );\n await signOut();\n }\n const {\n token,\n cpf,\n cpfProtegido,\n email,\n name,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarMalhaFina,\n userId,\n showAccountantPremiumButton,\n showContratarContador,\n cellphoneFilled,\n skippedB3Integration,\n } = response.data;\n\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiIrpf2023.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n apis.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n meiApi.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n msDarf.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiBolsa.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiCrypto.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiPayment.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiVeloPro.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiExterior.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n imoveisBackend.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n backnedRendimentos.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n\n const retPlanInfo = await apiPayment.get(`/user-plan/plan-info`);\n\n const meiPlanInfo = await apiPayment.get(`user-plan/plan-info`, {\n headers: {\n \"x-api-provider\": \"mei\",\n },\n });\n\n setLoadingSession(true);\n setLocalStorageWithAuthData({\n token,\n cpf,\n cpfProtegido,\n email,\n name,\n birthdate,\n cellphone,\n profileId,\n dependents,\n visibleCalcs,\n visibleModules,\n modulesStatus,\n answeredStepDec,\n showContratarContador,\n showContratarMalhaFina,\n userId,\n showAccountantPremiumButton,\n userPlanInfoVelotax: retPlanInfo.data,\n meiPlanInfoVelotax: meiPlanInfo.data,\n cellphoneFilled,\n skippedB3Integration,\n });\n setLoading(false);\n setTimeout(() => {\n setLoadingSession(false);\n }, 500);\n } catch (err: any) {\n const errorMessage =\n err.response?.data?.message ||\n \"CPF e/ou senha incorretos. Tente novamente\";\n message.error(errorMessage);\n setLoading(false);\n throw Error;\n }\n },\n [setLocalStorageWithAuthData, signOut]\n );\n\n const handleSignUp = useCallback(\n (signUpData, onboardingData, hiringData = null) => {\n setLoading(true);\n const { name, cpf, email, pass, isAd, policiesAccepted } = signUpData;\n\n const modules = [\n ...(onboardingData.goods || []),\n ...(onboardingData.incomeTypes || []),\n ...(onboardingData.operationTypes || []),\n ];\n\n const user: { [key: string]: any } = {\n name,\n cpf,\n email,\n pass,\n cellphone: \"\",\n policiesAccepted,\n from: \"CALCULADORAV2\",\n dependents: onboardingData.dependents || [],\n modules: modules,\n isMobile: isMobile(),\n isAd,\n };\n\n const formData = hiringData ? (hiringData as FormData) : new FormData();\n\n for (const key in user) {\n formData.set(\n key,\n key === \"modules\" || key === \"dependents\"\n ? JSON.stringify(user[key])\n : user[key]\n );\n }\n\n api\n .post(\"/user\", formData)\n .then((response) => {\n const { token, cpf, email, name, profileId } = response.data;\n\n localStorage.removeItem(\"publiconboarding\");\n localStorage.setItem(\"@VeloTax:token\", token);\n localStorage.setItem(\n \"@VeloTax:user\",\n JSON.stringify({\n cpf,\n email,\n name,\n profileId,\n mostrouRecomendacao: false,\n })\n );\n apiIrpf2023.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apis.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n meiApi.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n msDarf.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiBolsa.defaults.headers.common[\"Authorization\"] = `Bearer ${token}`;\n apiCrypto.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n apiVeloPro.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n apiPayment.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n apiExterior.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n imoveisBackend.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n backnedRendimentos.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${token}`;\n\n setCameFromRegister({ bolsa: true, phone: true });\n getUserInfo(() => {\n navigate(\"/\");\n setLoading(false);\n });\n })\n .catch((err) => {\n message.error(\n err.response?.data?.message ||\n \"Algo deu errado, tente novemente mais tarde\"\n );\n if (\n err.response?.data?.message?.includes(\"Você já possui uma conta\")\n ) {\n setTimeout(() => {\n navigate(\"/p/login\");\n resgisterForm.resetFields();\n }, 1000);\n }\n setLoading(false);\n });\n },\n [navigate, getUserInfo, resgisterForm]\n );\n\n const irpfBannerActive = false;\n const [ssoToken, setSsoToken] = useState(\"\");\n\n const getSsoToken = useCallback(async () => {\n const cpf = user.user.cpf;\n try {\n const { data } = await api.post(\"/user/sso-token\", {\n cpf,\n from: \"CALCULADORAV2\",\n });\n setSsoToken(data?.token || \"\");\n } catch {}\n }, [user?.user?.cpf]);\n\n useEffect(() => {\n if (/*irpfBannerActive &&*/ user?.user?.cpf) {\n getSsoToken();\n }\n }, [getSsoToken, user?.user?.cpf]);\n\n const initIOSPlanCheck = useCallback(() => {\n setInterval(() => {\n updateUserInfo();\n if (hasPlan) {\n window.location.reload();\n }\n }, 3000);\n }, [updateUserInfo, hasPlan]);\n\n return (\n {\n /*\n const isIos = handleInAppPurchaseIfIsIos();\n if (isIos) {\n return;\n }\n */\n showUserPlanModal(show);\n navigate(\"/planos\");\n },\n handleCalcs,\n setUser,\n ssoToken,\n irpfBannerActive,\n forceUpdateTabNavigator,\n setForceUpdateTabNavigator,\n disabledRecaptcha,\n cameFromRegister,\n setCameFromRegister,\n chatOpen,\n setChatOpen,\n showDrawer,\n setShowDrawer,\n showNameModal,\n setShowNameModal,\n chatNotificationQtt,\n setChatNotificationQtt,\n resgisterForm,\n updateUserInfo,\n showPhoneModal,\n setShowPhoneModal,\n showIRPFAPPBanner,\n hasExpired: user?.user?.userPlanInfoVelotax?.hasExpired,\n hasDismissed: !!user?.user?.hasDismissed,\n directPayment,\n setDirectPayment,\n initIOSPlanCheck,\n getSsoToken,\n fromCheckout,\n setFromCheckout,\n hasPermissionGeneral,\n }}\n >\n {showIRPFAPPBanner && }\n {children}\n {!isMobile() ? (\n
\n \"ssl\n
\n ) : null}\n \n );\n};\n\nexport const useAuth = (): IAuthContext => useContext(AuthContext);\n","import React from \"react\";\nimport { Navigate, Outlet, useLocation } from \"react-router-dom\";\nimport { useAuth } from \"../contexts/AuthContext\";\n\ninterface IPrivateRouteProps {}\n\nconst PrivateRoute: React.FC = () => {\n const { pathname, search } = useLocation();\n const { signed, loadingSession } = useAuth();\n\n if (loadingSession) {\n return <>;\n }\n\n if (signed) {\n return ;\n } else {\n if (pathname === \"/plano\" && search === \"?redirect=true\") {\n return ;\n } else {\n return ;\n }\n }\n};\n\nexport default PrivateRoute;\n","import React from \"react\";\nimport { Navigate, Outlet } from \"react-router-dom\";\nimport { useAuth } from \"../contexts/AuthContext\";\n\nconst OnlyPublicRoute: React.FC = () => {\n const { signed, loadingSession, cameFromRegister, fromCheckout } = useAuth();\n\n if (loadingSession) {\n return <>;\n }\n\n return !signed ? (\n \n ) : cameFromRegister.bolsa ? (\n // Manter código comentado para lembrar da auteração feita para o IRPF\n // \n ) : fromCheckout ? (\n \n ) : (\n \n );\n};\n\nexport default OnlyPublicRoute;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.21 68.556L0.0999756 0V66.1133C0.0999756 75.9813 5.58003 84.8533 14.41 89.2653L49.74 106.935L74.09 96.1226L23.6 70.8773C21.79 69.9693 20.66 68.144 20.66 66.1133V33.2666L128.02 86.9453C130.75 88.3106 130.98 90.828 130.96 91.8466C130.93 92.864 130.57 95.3626 127.77 96.588L68.55 122.499L68.53 122.504L51.34 130.025V130.024L32.5 138.268C23.08 142.389 16.99 151.697 16.99 161.983V226.865L115.29 182.187C124.51 177.997 130.46 168.748 130.46 158.621V141.609L109.9 150.739V158.621C109.9 160.704 108.68 162.608 106.78 163.469L37.55 194.937V161.983C37.55 159.867 38.8 157.952 40.74 157.103L136.01 115.423C145.31 111.355 151.25 102.523 151.51 92.372C151.77 82.2226 146.29 73.0973 137.21 68.556Z\",\n fill: \"#FFFFFD\"\n});\nfunction SvgVeloicon(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 152,\n height: 227,\n viewBox: \"0 0 152 227\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgVeloicon);\nexport default __webpack_public_path__ + \"static/media/veloicon.2ac5c010.svg\";\nexport { ForwardRef as ReactComponent };","import { Result, Row } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport styled from \"styled-components\";\nimport Button from \"../../components/Button\";\nimport { ReactComponent as Veloicon } from \"../../assets/velotax/veloicon.svg\";\n\nexport const Container = styled.div`\n height: 100vh;\n background-color: var(--ant-info-color);\n .ant-result-subtitle,\n .ant-result-title {\n color: #FFFFFF;\n }\n svg.error * {\n fill: var(--ant-error-color);\n }\n`;\n\nconst PageNotFound: React.FC = () => {\n const navigate = useNavigate();\n return (\n \n }\n title=\"Página não encontrada\"\n subTitle=\"Esta página que você visitou não existe\"\n extra={\n \n \n \n }\n />\n \n );\n};\n\nexport default PageNotFound;\n","import { Layout } from \"antd\";\nimport styled from \"styled-components\";\n\nexport const LayoutHeader = styled(Layout.Header)`\n display: none;\n z-index: 1;\n height: 96px;\n padding: 0 32px;\n background: var(--velotax-background-color);\n box-shadow: 0px 0px 16px 0px rgba(0, 0, 102, 0.16);\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n\n span {\n display: flex;\n }\n\n .ant-btn {\n &.login-button {\n padding: 4px 6px 4px 0;\n strong {\n color: var(--ant-primary-color);\n }\n }\n &.menu-button {\n z-index: 1;\n width: 48px;\n height: 48px;\n margin-right: -8px;\n svg {\n width: 30px;\n height: 30px;\n min-width: 30px;\n min-height: 30px;\n * {\n stroke: var(--ant-primary-color) !important;\n }\n }\n }\n &.back-button {\n width: 48px;\n height: 48px;\n margin-left: -16px;\n svg {\n width: 30px;\n height: 30px;\n min-width: 30px;\n min-height: 30px;\n * {\n fill: var(--ant-primary-color) !important;\n }\n }\n }\n }\n\n #span-title svg {\n width: 32px;\n height: 32px;\n margin-right: 16px;\n }\n\n #span-title img {\n height: 32px;\n margin-right: 16px;\n }\n\n @media only screen and (max-device-width: 812px) {\n height: 64px;\n display: flex;\n padding: 0 24px;\n column-gap: 8px;\n justify-content: space-between;\n\n .ant-image {\n margin: 0;\n img {\n margin-bottom: 4px;\n height: 30px !important;\n }\n }\n\n .user-button {\n svg {\n fill: var(--ant-primary-color) !important;\n }\n }\n }\n`;\n\nexport const ContainerIcon = styled.div`\n display: flex;\n align-items: center;\n background: var(--white);\n svg {\n width: 32px;\n height: 32px;\n margin-right: 16px;\n }\n`;\n\nexport const User = styled.div`\n height: 64px;\n display: flex;\n column-gap: 2px;\n cursor: pointer;\n position: relative;\n align-items: center;\n transition: opacity 0.3s;\n article.ant-typography {\n margin-left: 6px;\n display: flex;\n flex-direction: column;\n row-gap: 0px;\n font-size: 12px;\n line-height: 16px;\n strong {\n text-transform: capitalize;\n }\n }\n &.hover {\n nav {\n opacity: 1;\n visibility: visible;\n }\n }\n\n nav {\n opacity: 0;\n z-index: 1000;\n visibility: hidden;\n right: 0;\n top: 48px;\n padding-top: 8px;\n position: absolute;\n transition: opacity var(--transition-duration-default)\n var(--transition-timing-function-default);\n\n ul {\n margin: 0;\n display: flex;\n flex-direction: column;\n border-radius: 8px 8px 0 0;\n border-bottom: 4px solid var(--ant-primary-color);\n background-color: var(--velotax-background-color);\n box-shadow: 0px 8px 24px rgba(0, 0, 88, 0.16);\n\n > li {\n display: flex;\n column-gap: 8px;\n align-items: center;\n white-space: nowrap;\n height: 56px;\n font-weight: 600;\n border-radius: 4px;\n padding: 6px 32px 6px 16px;\n transition: color var(--transition-duration-default)\n var(--transition-timing-function-default);\n transition: background-color var(--transition-duration-default)\n var(--transition-timing-function-default);\n\n border-bottom: 1px solid var(--velotax-background-color-ghost);\n\n :last-of-type {\n border-bottom: none;\n }\n\n :hover {\n color: var(--ant-primary-color);\n background-color: rgba(22, 52, 255, 0.06);\n }\n\n &.logout {\n :hover {\n color: var(--ant-error-color);\n }\n }\n\n svg {\n cursor: pointer;\n width: 1.25rem;\n height: 1.25rem;\n margin-right: 2px;\n\n :not(.stroke-color) path {\n transition: fill var(--transition-duration-default)\n var(--transition-timing-function-default);\n }\n\n &.stroke-color path {\n stroke-width: 1.6px;\n transition: stroke var(--transition-duration-default)\n var(--transition-timing-function-default);\n }\n }\n }\n }\n }\n`;\n","import { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { useAuth } from \"./AuthContext\";\n\ntype History = {\n pathname: string;\n};\n\ninterface IHistoryContext {\n history: History[];\n handleBackHistory: () => void;\n}\n\nconst HistoryContext = createContext({} as IHistoryContext);\n\nexport const HistoryProvider: React.FC = ({ children }) => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const [history, setHistory] = useState([]);\n\n useEffect(() => {\n if (user.user) {\n setHistory((history) =>\n history[history.length - 1]?.pathname === pathname\n ? history\n : [...history, { pathname }]\n );\n } else {\n setHistory([]);\n }\n }, [user.user, pathname]);\n\n const handleBackHistory = useCallback(() => {\n const i = history.length - 2;\n const last = history[i];\n if (last?.pathname && last?.pathname !== \"/\") {\n setHistory((history) => history.slice(0, i));\n setTimeout(() => {\n navigate(last.pathname);\n }, 300);\n } else {\n setHistory([]);\n setTimeout(() => {\n navigate(\"/carteira\");\n }, 300);\n }\n }, [navigate, history]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useHistory = () => useContext(HistoryContext);\n","import React from \"react\";\nimport { Col, Row } from \"antd\";\nimport { GrMenu } from \"react-icons/gr\";\nimport { BsChevronLeft } from \"react-icons/bs\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport Button from \"../Button\";\nimport { isMobile } from \"../../utils\";\nimport { LayoutHeader } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useHistory } from \"../../contexts/HistoryContext\";\n\ninterface IHeaderProps {}\n\nconst Header: React.FC = () => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const { handleBackHistory } = useHistory();\n const { user, setShowDrawer } = useAuth();\n\n const registerPage =\n !user.user &&\n (pathname.includes(\"integration\") || pathname.includes(\"cadastro\"));\n\n return (\n <>\n \n {isMobile() && (\n \n {!user.user && registerPage ? (\n \n {\n navigate(\"/p/login\");\n }}\n >\n Já possui conta? Faça seu login\n \n \n ) : (\n \n }\n onClick={handleBackHistory}\n />\n \n )}\n \n }\n onClick={() => setShowDrawer(true)}\n />\n \n \n )}\n \n \n );\n};\n\nexport default Header;\n","import styled from \"styled-components\";\n\nexport const LogoStyled = styled.div`\n height: 96px;\n display: flex;\n justify-content: center;\n background-color: var(--velotax-background-color);\n .ant-image {\n height: 96px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n img {\n height: 48px;\n }\n }\n @media only screen and (max-device-width: 812px) {\n height: 64px;\n .ant-image {\n height: 64px;\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--ant-info-color);\n height: 100%;\n\n .sso-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: 230px;\n margin-bottom: 40px;\n }\n\n .sso-area {\n background: var(--velotax-background-color);\n border-radius: 8px;\n padding: 20px;\n width: 500px;\n min-height: 100px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n h4 {\n margin-bottom: 20px;\n }\n\n .anticon {\n width: 40px;\n height: 40px;\n color: var(--ant-info-color);\n\n svg {\n width: 100%;\n height: 100%;\n }\n }\n }\n }\n`;\n","export default __webpack_public_path__ + \"static/media/velologo.722b6e4c.svg\";","import { message } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { useLocation, useNavigate, useParams } from \"react-router-dom\";\nimport api from \"../../services/api\";\nimport { Container } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport veloLogo from \"../../assets/velotax/velologo.svg\";\n\nconst SSO: React.FC = () => {\n const { token } = useParams();\n const navigate = useNavigate();\n const { search } = useLocation();\n const {\n setFromCheckout,\n setLoadingSession,\n showUserPlanModal,\n setLocalStorageWithAuthData,\n } = useAuth();\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n api\n .post(\"/session/sso\", {\n token,\n })\n .then(async (res) => {\n message.success(\"Logado com sucesso!\");\n let retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\", {\n headers: {\n authorization: `Bearer ${res?.data?.token}`,\n },\n });\n const query = new URLSearchParams(search);\n const redirect = query.get(\"redirect\");\n const from = query.get(\"from\");\n if (from === \"CHECKOUT\") {\n setFromCheckout(true);\n }\n setTimeout(() => {\n setLoading(false);\n setLocalStorageWithAuthData({\n ...(res.data || {}),\n userPlanInfoVelotax: retPlanInfo?.data || {},\n });\n setLoadingSession(false);\n if (redirect === \"pagamento\") {\n setTimeout(() => {\n showUserPlanModal(true, \"Contrate o plano\");\n setTimeout(() => {\n document.querySelector(\".checkbox-terms\")?.click();\n document\n .querySelector(\n \".ant-modal-body .ant-btn-primary\"\n )\n ?.click();\n }, 100);\n }, 100);\n }\n }, 500);\n })\n .catch((err) => {\n message.error(\"Algo deu errado, tente novamente mais tarde.\");\n setLoading(false);\n });\n // eslint-disable-next-line\n }, [token, search]);\n\n return (\n \n
\n \"velologo\"\n
\n {loading ? (\n <>\n

Logando...

\n \n \n ) : (\n navigate(\"/p/login\")}\n >\n Tentar fazer login manualmente\n \n )}\n
\n
\n
\n );\n};\n\nexport default SSO;\n","import styled from \"styled-components\";\n\nexport const HomeContainer = styled.div`\n height: 100%;\n display: flex;\n padding: 64px 32px 32px 48px;\n\n & > .content {\n margin: 0 auto;\n width: 700px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n &.module {\n .cards.cards-2 > div {\n width: 100%;\n }\n }\n }\n\n h1 {\n font-weight: 700;\n font-size: 2rem;\n line-height: 2.5rem;\n margin-bottom: 1rem;\n color: var(--velotax-font-color);\n\n strong {\n font-weight: 800;\n color: var(--ant-primary-color);\n }\n }\n\n div.ant-typography {\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n }\n\n .ant-typography.destak {\n margin: 32px 0 24px;\n display: block;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n padding-left: 16px;\n border-left: 4px solid var(--ant-primary-color);\n }\n\n .cards {\n margin: 0;\n padding-bottom: 32px;\n width: 100%;\n display: grid;\n row-gap: 1rem;\n column-gap: 1rem;\n grid-template-columns: repeat(4, 1fr);\n\n &.cards-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n &.cards-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n &.cards-5 {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: auto auto;\n gap: 1rem;\n }\n\n &.cards-5 > :nth-child(3) {\n grid-column: 1 / span 2;\n height: 80px;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n\n & figure {\n display: flex;\n }\n }\n\n &.cards-5 > :nth-child(3) > button {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 5px;\n }\n }\n\n .home-footer {\n font-size: 12px;\n font-style: italic;\n font-weight: 600;\n line-height: 16px;\n letter-spacing: 0.625px;\n color: var(--velotax-font-color);\n }\n\n .anticon.anticon-loading.anticon-spin {\n width: 32px;\n height: 32px;\n svg {\n width: 32px;\n height: 32px;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n height: auto;\n padding: 24px 24px 64px;\n & > .content {\n width: 100%;\n &.module {\n .cards.cards-2 > div {\n width: 100%;\n }\n }\n }\n\n .cards {\n width: 100%;\n grid-template-columns: repeat(2, 1fr) !important;\n > div {\n width: auto;\n }\n }\n }\n\n @media only screen and (max-device-width: 400px) {\n padding: 24px 12px 64px;\n .cards {\n row-gap: 0.5rem;\n column-gap: 0.5rem;\n }\n }\n`;\n","import api from './apiBolsa';\n\nexport default async function HandleTag(activeCampaignTagId: string) {\n await api\n .post(\n \"/ac\",\n {\n activeCampaignTagId,\n },\n )\n .then()\n .catch((err) => {})\n };","import React, {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n useCallback,\n} from \"react\";\nimport { io, Socket } from \"socket.io-client\";\nimport { useAuth } from \"./AuthContext\";\nimport { message } from \"antd\";\n\nexport enum WSClientEvents {\n RECONN_KEY = \"reconnect_key\",\n INTEGRATION_STATUS = \"integration_status\",\n NOTIFY = \"notify\",\n}\n\nexport enum WsServerEvents {\n RESEND_LAST_MESSAGE = \"resend_last_message\",\n}\n\n\nexport const isValidEvent = (event: string): event is WSClientEvents => {\n return Object.values(WSClientEvents).includes(event as WSClientEvents);\n};\n\ntype CallbackFunction = (data: T) => void;\n\ninterface WebSocketContextType {\n addEventListener: (\n event: WSClientEvents,\n callback: CallbackFunction\n ) => void;\n removeEventListener: (\n event: WSClientEvents,\n callback: CallbackFunction\n ) => void;\n emitEvent: (event: WSClientEvents, data?: any) => void;\n open: boolean;\n}\n\nconst WebSocketContext = createContext(\n undefined\n);\nconst PREFIX = \"[VELOTAX-WS]:\";\n\nexport const WebSocketProvider: React.FC = ({ children }) => {\n const { user } = useAuth();\n const socketRef = useRef(null);\n const reconnectKeyRef = useRef();\n const [open, setOpen] = useState(false);\n\n const handleMessage = useCallback((data: any) => {\n const { message: messageWs, type } = data;\n if (typeof messageWs === \"string\") {\n switch (type) {\n case \"error\":\n message.error(messageWs);\n break;\n case \"info\":\n message.info(messageWs);\n break;\n case \"success\":\n message.success(messageWs);\n break;\n default:\n console.error(\"[VELOTAX-WS]:\", messageWs);\n break;\n }\n } else {\n console.error(\"[VELOTAX-WS]:\", messageWs);\n }\n }, []);\n\n useEffect(() => {\n const socketUrl = process.env.REACT_APP_MS_NOTIFICATION_URL || \"http://localhost:3333\";\n\n if (user?.token) {\n socketRef.current = io(socketUrl, {\n reconnection: true,\n reconnectionDelay: 30000,\n reconnectionAttempts: 5,\n auth: {\n token: user.token,\n reconnectKey: reconnectKeyRef.current\n },\n });\n\n socketRef.current.on(\"connect\", () => {\n console.log(PREFIX, \"Conectado\");\n socketRef.current?.on(WSClientEvents.NOTIFY, handleMessage);\n socketRef.current?.on(WSClientEvents.RECONN_KEY, (data) => {\n reconnectKeyRef.current = data;\n });\n\n setTimeout(() => {\n socketRef.current?.emit(WsServerEvents.RESEND_LAST_MESSAGE, { send: true });\n }, 2000);\n setOpen(true);\n });\n\n socketRef.current.on(\"disconnect\", () => {\n console.log(PREFIX, \"Desconectado\");\n setOpen(false);\n });\n\n return () => {\n socketRef.current?.disconnect();\n };\n }\n }, [user?.token, handleMessage]);\n\n const addEventListener = useCallback(\n (event: WSClientEvents, callback: CallbackFunction) => {\n if (socketRef.current && isValidEvent(event)) {\n console.log(PREFIX, `Starting event [${event}]`);\n socketRef.current.on(event, callback);\n }\n },\n []\n );\n\n const removeEventListener = useCallback(\n (event: WSClientEvents, callback: CallbackFunction) => {\n if (socketRef.current && isValidEvent(event)) {\n console.log(PREFIX, `Closing event [${event}]`);\n socketRef.current.off(event, callback);\n }\n },\n []\n );\n\n const emitEvent = useCallback((event: WSClientEvents, data?: any) => {\n if (socketRef.current && isValidEvent(event)) {\n console.log(PREFIX, \"Emit ev ->\", event);\n socketRef.current.emit(event, data);\n }\n }, []);\n\n const value = {\n addEventListener,\n removeEventListener,\n emitEvent,\n open,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useWebSocket = (): WebSocketContextType => {\n const context = useContext(WebSocketContext);\n if (!context) {\n throw new Error(\"useWebSocket must be used within a WebSocketProvider\");\n }\n return context;\n};\n","import { Col, Modal, Row } from \"antd\";\nimport Button from \"../Button\";\n\nexport function ModalConfirmWaitIntegration({\n action,\n closeFn,\n visible,\n}: {\n action: (ok: boolean) => void;\n visible: boolean;\n closeFn: () => void;\n}) {\n function handleClick(send: boolean) {\n action(send);\n closeFn();\n }\n\n return (\n handleClick(false)}\n closable={true}\n footer={\n \n \n {\n handleClick(false);\n }}>\n Não\n \n \n \n {\n handleClick(true);\n }}>\n Sim\n \n \n \n }>\n \n Estamos processando um grande número de informações.\n \n \n \n

Deseja ser avisado por e-mail quando a integração for finalizada?

\n \n
\n \n );\n}\n","import { message } from \"antd\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n Dispatch,\n SetStateAction,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport api from \"../services/api\";\nimport { useAuth } from \"./AuthContext\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport { useBroker } from \"./BrokerContext\";\nimport HandleTag from \"../services/handleTag\";\nimport { B3AuthURL, errorMessage } from \"../utils\";\nimport { useWebSocket, WSClientEvents } from \"./Notification.context\";\nimport moment from \"moment\";\nimport { ModalAlertWaitIntegration } from \"../components/LoadingIntegration/alert.modal\";\nimport { ModalConfirmWaitIntegration } from \"../components/LoadingIntegration/confirm.modal\";\n\ninterface HandleIntegrationProps {\n integrationInBackground?: boolean;\n}\n\nexport interface IntegrationStatus {\n description?: string;\n started?: boolean;\n finished?: boolean;\n error?: boolean;\n alert?: boolean;\n processing?: boolean;\n confirm?: boolean;\n}\n\ninterface IB3IntegrationContext {\n backgroundIntegration: {\n loading: boolean;\n month: number;\n year: number;\n };\n integrationMessage?: string;\n timer: number;\n loading: boolean;\n timeOver: boolean;\n b3Authorized: boolean;\n b3AuthLoaded: boolean;\n checkingAuhtorization: boolean;\n integrationInBackground: boolean;\n loadingSkipB3Integration: boolean;\n integrate: () => void;\n handleIntegrate: (props?: HandleIntegrationProps) => void;\n handleSkipB3Integration: () => void;\n resetB3IntegrationContext: () => void;\n setLoadingSkipB3Integration: React.Dispatch>;\n verifyUserIsAuthorized: (\n once?: boolean,\n autoError?: boolean,\n autoSuccess?: boolean\n ) => void;\n interval: React.MutableRefObject;\n handleAuthorizationB3: () => void;\n openB3Window: () => void;\n notas: {\n downloadNotaCorretagem: (\n path: string,\n month: number,\n year: number,\n crypto?: boolean\n ) => void;\n historicoNotasCorretagem: any[];\n getHistoricoNotasCorretagem: (params: {\n crypto?: boolean;\n filters: any;\n }) => void;\n loadingHistoricoNotasCorretagem: boolean;\n showHistoricoNotasCorretagemModal: boolean;\n setHistoricoNotasCorretagem: Dispatch>;\n setShowHistoricoNotasCorretagemModal: Dispatch>;\n };\n}\n\nexport const B3IntegrationContext = createContext(\n {} as IB3IntegrationContext\n);\n\nexport const B3IntegrationProvider: React.FC = ({ children }) => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const [loadingIntegration, setLoadingIntegration] = useState(false);\n const {\n integration,\n initIntegration,\n handleIntegrationInit,\n getIntegrationStatus,\n setInitIntegration,\n } = useBroker();\n\n const { user, b3Authorized, setB3Authorized, updateUserInfo, fromCheckout } =\n useAuth();\n\n const [timer, setTimer] = useState(0);\n const [loading, setLoading] = useState(false);\n const [timeOver, setTimeOver] = useState(false);\n const [b3AuthLoaded, setB3AuthLoaded] = useState(false);\n const [checkingAuhtorization, setCheckingAuhtorization] = useState(false);\n const [integrationInBackground, setIntegrationInBackground] = useState(false);\n const [loadingSkipB3Integration, setLoadingSkipB3Integration] =\n useState(false);\n const interval = useRef>();\n const timerInterval = useRef>();\n const [historicoNotasCorretagem, setHistoricoNotasCorretagem] = useState<\n any[]\n >([]);\n const [loadingHistoricoNotasCorretagem, setLoadingHistoricoNotasCorretagem] =\n useState(false);\n const [\n showHistoricoNotasCorretagemModal,\n setShowHistoricoNotasCorretagemModal,\n ] = useState(false);\n const { addEventListener, removeEventListener, open } = useWebSocket();\n const [modalConfirm, setModalConfirm] = useState(false);\n const integrationLoadingRef = useRef(false);\n\n const setIntegrationLoading = useCallback((status: boolean) => {\n if (status) {\n if (integrationLoadingRef.current) return;\n // console.log(\"INICIOU INTEGRAÇÃO\", new Date())\n integrationLoadingRef.current = true;\n setInitIntegration(true);\n setLoadingIntegration(true);\n } else {\n // console.log(\"FINALIZOU INTEGRAÇÃO\", new Date())\n integrationLoadingRef.current = false;\n setLoadingIntegration(false);\n setInitIntegration(false);\n }\n }, []);\n\n const downloadNotaCorretagem = async (\n path: string,\n month: number,\n year: number,\n crypto?: boolean\n ) => {\n try {\n const { data } = await apiBolsa.get(\"/brokerage-notes/download\", {\n params: { path: path.replace(\"notas/\", \"\"), month, year },\n });\n if (data.url) {\n window.open(data.url);\n }\n } catch (error) {\n message.error(\"Algo errado aconteceu. Tente novamente mais tarde.\");\n }\n };\n\n const getHistoricoNotasCorretagem = async ({\n filters,\n crypto,\n }: {\n crypto?: boolean;\n filters: any;\n }) => {\n setLoadingHistoricoNotasCorretagem(true);\n const filterDay = filters?.day || null;\n const filterMonth = filters?.month || null;\n const filterYear = filters?.year || null;\n try {\n const { data } = await apiBolsa.get(`/brokerage-notes/history`, {\n params: {\n day: filterDay,\n month: filterMonth,\n year: filterYear,\n },\n });\n if (data?.message) {\n message.error(data.message);\n } else {\n setHistoricoNotasCorretagem(\n data.map((nota: any) => ({\n ...nota,\n id: `${nota.month}${nota.year}`,\n }))\n );\n }\n } catch (error: any) {\n message.error(\"Algo errado aconteceu. Tente novamente mais tarde.\");\n } finally {\n setLoadingHistoricoNotasCorretagem(false);\n }\n };\n\n const openB3Window = useCallback(() => {\n window.open(\n B3AuthURL,\n \"_blank\",\n \"location=yes,height=570,width=520,scrollbars=yes,status=yes\"\n );\n }, []);\n\n const integrate = useCallback(() => {\n HandleTag(\"69\");\n setIntegrationLoading(true);\n apiBolsa\n .post(\"/b3/integrate\", { email: user.user.email })\n .then(() => {\n handleIntegrationInit({ onlyB3: true });\n // const isProd = process.env.REACT_APP_NODE_ENV === \"prd\";\n // isProd &&\n // (window as any).gtag &&\n // (window as any).gtag(\"event\", \"conversion\", {\n // send_to: \"AW-414293187/uHuyCODaxrYYEMO5xsUB\",\n // });\n })\n .catch((err) => {\n if (err?.response?.data?.message?.includes(\"Aguarde\")) {\n message.error(err?.response?.data?.message);\n } else {\n message.error(errorMessage);\n }\n })\n .finally(() => setIntegrationLoading(false));\n }, [setIntegrationLoading, user?.user?.email]);\n\n const verifyUserIsAuthorized = useCallback(\n (once?: boolean, autoError?: boolean, autoSuccess?: boolean) => {\n let count = 0;\n\n const requestUserAuthorization = (\n interval?: NodeJS.Timeout,\n firstTime?: boolean\n ) =>\n apiBolsa\n .get(\"/b3/verify-user\")\n .then((response) => {\n count += 1;\n if (response?.data?.isAuthorized) {\n setB3Authorized(true);\n setCheckingAuhtorization(false);\n (interval || firstTime) &&\n message.success(\"Permissão concedida com sucesso!\", 5);\n (interval || firstTime || autoSuccess) && integrate();\n interval && clearInterval(interval);\n if (!once && !fromCheckout && !pathname.includes(\"autonomos\")) {\n navigate(\"/carteira\");\n }\n } else if (autoError) {\n openB3Window();\n setCheckingAuhtorization(true);\n verifyUserIsAuthorized();\n }\n if (interval && count > 12) {\n setTimeOver(true);\n clearInterval(interval);\n setCheckingAuhtorization(false);\n }\n setTimeout(() => {\n setB3AuthLoaded(true);\n }, 500);\n return response;\n })\n .catch((err) => {\n if (err?.response?.data?.message) {\n message.error(err?.response?.data?.message);\n }\n if (interval) {\n clearInterval(interval);\n setCheckingAuhtorization(false);\n }\n });\n\n requestUserAuthorization(undefined, !once).then((response) => {\n if (!once && !response?.data?.isAuthorized) {\n if (interval.current) {\n clearInterval(interval.current);\n }\n interval.current = setInterval(() => {\n requestUserAuthorization(interval.current);\n }, 6000);\n }\n });\n },\n [integrate, navigate, setB3Authorized, fromCheckout, pathname, openB3Window]\n );\n\n const handleIntegrate = useCallback(\n (props?: HandleIntegrationProps) => {\n HandleTag(\"15\");\n if (!checkingAuhtorization) {\n if (timeOver && !b3Authorized) {\n verifyUserIsAuthorized(true, true, true);\n } else if (b3Authorized) {\n setIntegrationInBackground(!!props?.integrationInBackground);\n integrate();\n } else {\n openB3Window();\n setCheckingAuhtorization(true);\n verifyUserIsAuthorized();\n }\n } else {\n openB3Window();\n }\n },\n [\n timeOver,\n b3Authorized,\n integrate,\n verifyUserIsAuthorized,\n openB3Window,\n checkingAuhtorization,\n ]\n );\n\n const resetB3IntegrationContext = () => {\n setLoading(false);\n setTimeOver(false);\n setCheckingAuhtorization(false);\n interval.current && clearInterval(interval.current);\n };\n\n const handleSkipB3Integration = () => {\n setLoadingSkipB3Integration(true);\n api\n .post(\"/user/skip-b3-integration\")\n .then(() => {\n updateUserInfo();\n setTimeout(() => {\n navigate(\"/carteira\");\n setLoadingSkipB3Integration(false);\n }, 1000);\n })\n .catch(() => {\n message.warning(\"Tente novamente\");\n setLoadingSkipB3Integration(false);\n });\n };\n\n const handleAuthorizationB3 = () => {\n setLoadingSkipB3Integration(true);\n api\n .get(\"/b3/checkExistAccountB3\")\n .then(({ data }) => {\n if (!data?.success) {\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration-user-no-has-account\");\n setLoadingSkipB3Integration(false);\n }, 1000);\n } else {\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration-user-has-account\");\n setLoadingSkipB3Integration(false);\n }, 1000);\n }\n })\n .catch((e) =>\n message.error(\"Falha ao conectar com a B3. Tente novamente!\")\n )\n .finally(() => setLoadingSkipB3Integration(false));\n };\n\n const backgroundIntegration = useMemo(() => {\n const lastUpdateDate = moment(\n integration?.lastUpdate ?? new Date(2020, 0, 1)\n );\n const month = lastUpdateDate.get(\"month\") + 1;\n const year = lastUpdateDate.get(\"year\");\n return { loading: initIntegration, month, year };\n }, [initIntegration, integration?.lastUpdate]);\n\n useEffect(() => {\n if (checkingAuhtorization) {\n setTimer(90);\n timerInterval.current && clearInterval(timerInterval.current);\n timerInterval.current = setInterval(() => {\n setTimer((timer) => (timer - 1 <= 0 ? 0 : timer - 1));\n }, 1000);\n } else {\n setTimer(0);\n timerInterval.current && clearInterval(timerInterval.current);\n }\n return () => {\n timerInterval.current && clearInterval(timerInterval.current);\n };\n }, [checkingAuhtorization]);\n\n useEffect(() => {\n if (initIntegration && (integration.hasError || integration.integrated)) {\n resetB3IntegrationContext();\n verifyUserIsAuthorized(true, integration.hasError);\n }\n }, [\n initIntegration,\n integration.hasError,\n integration.integrated,\n verifyUserIsAuthorized,\n ]);\n\n useEffect(() => {\n !!user.token && !b3Authorized && verifyUserIsAuthorized(true);\n }, [user.token, b3Authorized, verifyUserIsAuthorized]);\n\n useEffect(() => {\n return () => {\n interval.current && clearInterval(interval.current);\n };\n }, []);\n\n const [integrationMessage, setIntegrationMessage] = useState();\n useEffect(() => {\n const evListenerFn = (ev: IntegrationStatus | null) => {\n if (ev?.processing || ev?.started) {\n setIntegrationLoading(true);\n setIntegrationMessage(ev.description);\n return;\n }\n if (ev?.error) {\n setIntegrationMessage(ev.description);\n message.error(\n \"Houve um erro durante sua integração. Tente novamente mais tarde.\"\n );\n setIntegrationLoading(false);\n setInitIntegration(false);\n setModalConfirm(false);\n getIntegrationStatus({\n token: user.token,\n hideLoading: true,\n });\n return;\n }\n if (ev?.finished) {\n setIntegrationMessage(ev.description);\n setInitIntegration(false);\n setModalConfirm(false);\n setIntegrationLoading(false);\n getIntegrationStatus({\n token: user.token,\n hideLoading: true,\n });\n return;\n }\n };\n if (open) {\n addEventListener(\n WSClientEvents.INTEGRATION_STATUS,\n evListenerFn\n );\n }\n return () => {\n removeEventListener(WSClientEvents.INTEGRATION_STATUS, evListenerFn);\n };\n }, [open, user.token]);\n\n useEffect(() => {\n if (initIntegration) {\n const tm = setTimeout(() => {\n if (integrationLoadingRef.current) {\n setModalConfirm(true);\n }\n }, 50000);\n\n return () => {\n if (tm) clearTimeout(tm);\n };\n }\n }, [initIntegration]);\n\n return (\n \n {\n apiBolsa.post(\"/b3/send-integration-mail\", { send: res });\n setModalConfirm(false);\n }}\n closeFn={() => setModalConfirm(false)}\n visible={modalConfirm}\n />\n {children}\n \n );\n};\n\nexport const useB3Integration = () => useContext(B3IntegrationContext);\n","import { Tooltip } from \"antd\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\n\ninterface Feature {\n name: JSX.Element | string;\n help?: string;\n desc?: string;\n icon?: JSX.Element;\n secondaryIcon?: JSX.Element;\n secondaryLabel?: string;\n}\n\nexport enum PlanEnum {\n BASIC_V1 = \"BASIC_V1\",\n PRO_V1 = \"PRO_V1\",\n}\n\nexport enum MEIPlanEnum {\n MEI_PREMIUM = \"MEI_PREMIUM\",\n MEI_PREMIUM_MONTH = \"MEI_PREMIUM_MONTH\",\n}\n\nexport interface Plan {\n type: PlanEnum | UserPlanEnum | MEIPlanEnum;\n title: string;\n price: number;\n discount: number;\n originalPrice: number;\n includedFeatures: Feature[];\n otherFeatures: Feature[];\n}\n\nexport interface IPlan {\n key: string;\n level: number;\n price: number;\n instalments: number;\n title: string;\n malhaFinaIncluded: boolean;\n}\n\nexport const OtherFeatures: Feature[] = [\n {\n name: \"Emissão de relatório anual (DASN-MEI)\",\n },\n {\n name: \"Emissão de guias mensais (DAS)\",\n },\n];\n\nexport enum ETypePurchase {\n MEI = \"MEI\",\n UNIQUE = \"UNIQUE\",\n VELOTAX_MAIN_BASIC = \"VELOTAX_MAIN_BASIC\",\n VELOTAX_MAIN_BASIC_MONTH = \"VELOTAX_MAIN_BASIC_MONTH\",\n VELOTAX_MAIN_PRO = \"VELOTAX_MAIN_PRO\",\n VELOTAX_MAIN_PRO_MONTH = \"VELOTAX_MAIN_PRO_MONTH\",\n VELOTAX_MAIN_CONCIERGE = \"VELOTAX_MAIN_CONCIERGE\",\n VELOTAX_MAIN_CONCIERGE_MONTH = \"VELOTAX_MAIN_CONCIERGE_MONTH\",\n}\n\nexport enum UserPlanEnum {\n VELOTAX_MAIN_BASIC = \"VELOTAX_MAIN_BASIC\",\n VELOTAX_MAIN_BASIC_MONTH = \"VELOTAX_MAIN_BASIC_MONTH\",\n VELOTAX_MAIN_PRO = \"VELOTAX_MAIN_PRO\",\n VELOTAX_MAIN_PRO_MONTH = \"VELOTAX_MAIN_PRO_MONTH\",\n VELOTAX_MAIN_CONCIERGE = \"VELOTAX_MAIN_CONCIERGE\",\n VELOTAX_MAIN_CONCIERGE_MONTH = \"VELOTAX_MAIN_CONCIERGE_MONTH\",\n}\n\nexport const UserPlansTypes = [\n \"VELOTAX_MAIN_BASIC\",\n \"VELOTAX_MAIN_BASIC_MONTH\",\n \"VELOTAX_MAIN_PRO\",\n \"VELOTAX_MAIN_PRO_MONTH\",\n \"VELOTAX_MAIN_CONCIERGE\",\n \"VELOTAX_MAIN_CONCIERGE_MONTH\",\n \"MEI_PREMIUM\",\n \"MEI_PREMIUM_MONTH\",\n];\n\nexport interface UserPlan extends IPlan {\n type: UserPlanEnum | MEIPlanEnum;\n interval: \"Anual\" | \"Mensal\";\n title: string;\n price: number;\n discount?: number;\n originalPrice: number;\n includedFeatures: Feature[];\n otherFeatures?: Feature[];\n free?: boolean;\n maskValue?: boolean;\n percentDiscount: number;\n descriptions?: any;\n discountText?: string;\n showDiscount: boolean;\n}\n\nexport const UserPlans: UserPlan[] = [\n {\n type: UserPlanEnum.VELOTAX_MAIN_PRO,\n interval: \"Anual\",\n title: \"PLANO PREMIUM\",\n price: 25.9,\n originalPrice: 25.9,\n discount: 35,\n showDiscount: true,\n percentDiscount: 56,\n discountText: \"Só mais 3 dias com esse preço\",\n maskValue: true,\n descriptions: [],\n includedFeatures: [],\n level: 1,\n instalments: 12,\n key: UserPlanEnum.VELOTAX_MAIN_PRO,\n malhaFinaIncluded: false,\n },\n];\n\nexport const mainBenefits = [\n {\n name: \"Cálculos 100% precisos\",\n },\n {\n name: \"Conexão oficial com a B3 e com as corretoras\",\n },\n {\n name: \"Emissão de DARFs ilimitados e sem custo adicional\",\n },\n {\n name: \"Informes auxiliares de IR em PDF\",\n },\n {\n name: (\n
\n Garantia de satisfação ou seu\n dinheiro de volta{\" \"}\n \n \n \n
\n ),\n },\n];\n","import { Col, Row } from \"antd\";\nimport { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { HomeContainer } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\n\nexport const Home = () => {\n const navigate = useNavigate();\n const { user, fromCheckout } = useAuth();\n const { b3Authorized, b3AuthLoaded } = useB3Integration();\n const {\n allPaths,\n pathBackup,\n integration,\n integrations,\n currentBroker,\n hasCriptoIntegration,\n hasExteriorIntegration,\n } = useBroker();\n\n useEffect(() => {\n if (fromCheckout) {\n navigate(\"/sucesso2\");\n } else if (\n b3AuthLoaded &&\n integration.lastUpdate !== \"\" &&\n Object.keys(integrations).length > 0\n ) {\n const pathBackupWithoutSearch = pathBackup?.split(\"?\")?.[0];\n if (!b3Authorized && !user?.user?.skippedB3Integration) {\n navigate(`/${currentBroker.path}/bolsa-integration`);\n } else if (allPaths.includes(pathBackupWithoutSearch)) {\n if (pathBackupWithoutSearch?.includes(\"cripto\")) {\n if (hasCriptoIntegration) {\n navigate(pathBackup ?? \"/carteira\");\n } else {\n navigate(`/${currentBroker.path}/cripto-integrations`);\n }\n } else if (pathBackupWithoutSearch?.includes(\"exterior\")) {\n if (hasExteriorIntegration) {\n navigate(pathBackup ?? \"/carteira\");\n } else {\n navigate(`/${currentBroker.path}/exterior-integrations`);\n }\n } else {\n navigate(pathBackup ?? \"/carteira\");\n }\n } else {\n navigate(\"/carteira\");\n }\n // navigate(\"/declaracao-irpf\");\n }\n }, [\n allPaths,\n navigate,\n pathBackup,\n integrations,\n b3Authorized,\n fromCheckout,\n b3AuthLoaded,\n currentBroker?.path,\n hasCriptoIntegration,\n hasExteriorIntegration,\n integration?.lastUpdate,\n user?.user?.skippedB3Integration,\n ]);\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const AuthContainer = styled.section`\n height: 100%;\n padding: 96px 0 0;\n box-sizing: border-box;\n overflow-y: auto;\n overflow-x: hidden;\n\n .auth-content {\n min-height: 100%;\n margin: 0 auto;\n max-width: calc(100% - 128px);\n border-left: 1px solid var(--velotax-ghost);\n padding: 48px 0;\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n flex-direction: column;\n\n :before {\n content: \"\";\n position: absolute;\n top: 48px;\n left: -2px;\n width: 6px;\n height: 32px;\n background-color: var(--ant-primary-color);\n }\n\n h1 {\n font-weight: 700;\n font-size: 1.5rem;\n line-height: 2rem;\n color: var(--velotax-font-color);\n margin: 0 0 32px;\n }\n\n p {\n font-weight: 500;\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n margin: 0 0 32px;\n text-align: center;\n }\n\n .form-container {\n width: 420px;\n\n form {\n row-gap: 0;\n display: flex;\n flex-direction: column;\n }\n\n .bottom-acessar {\n display: flex;\n justify-content: center;\n }\n\n .click-enter {\n width: 100%;\n opacity: 0.75;\n font-size: 0.75rem;\n text-align: center;\n margin: 8px 0 0 auto;\n }\n\n .back-button {\n padding: 6.4px 0;\n display: inline-flex;\n margin: 8px auto 0 0;\n }\n\n .termos {\n padding: 0;\n margin: 0 auto;\n font-size: 12px;\n text-align: justify;\n }\n }\n }\n\n .buttons {\n margin-top: 16px;\n display: flex;\n column-gap: 16px;\n align-items: center;\n justify-content: space-between;\n }\n\n .btn-underlined {\n padding: 0;\n height: 32px;\n font-weight: 700;\n border-radius: 0;\n border-bottom: 2px dashed var(--ant-primary-color);\n }\n\n .footer {\n display: flex;\n column-gap: 16px;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n margin-top: 24px;\n padding: 8px 0 8px;\n border-top: 1px solid var(--velotax-ghost);\n }\n\n .velopro {\n display: flex;\n column-gap: 16px;\n align-items: center;\n width: 100%;\n margin: 0px auto 24px;\n justify-content: space-between;\n }\n\n .ant-checkbox-wrapper {\n span {\n color: var(--velotax-font-color);\n }\n a {\n font-weight: 600;\n }\n }\n\n .checkbox {\n margin-top: 8px;\n }\n\n .password-with-eye {\n position: relative;\n\n button {\n position: absolute;\n right: 8px;\n top: 8px;\n }\n }\n\n @media screen and (max-width: 576px) {\n .auth-content {\n border-left: none;\n padding: 64px 24px 0;\n\n :before {\n display: none;\n }\n\n .form-container {\n width: 100%;\n }\n }\n\n .buttons {\n button {\n width: 100%;\n }\n\n button + button {\n display: none;\n }\n }\n\n .footer {\n margin: 8px auto 0;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 80px 0 0;\n .auth-content {\n max-width: 100%;\n padding: 48px 24px 64px;\n border-left: none;\n .form-container {\n .click-enter {\n opacity: 0;\n }\n }\n }\n .ant-checkbox + span {\n text-align: justify;\n }\n }\n`;\n","import { Drawer } from \"antd\";\nimport styled from \"styled-components\";\n\nexport const CustomDrawer = styled(Drawer)``;\n\nexport const CloseButton = styled.button`\n position: absolute;\n top: 16px;\n right: 16px;\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n`;\n\nexport const ContentWrapper = styled.div`\n height: 192px;\n margin: 80px auto;\n display: flex;\n flex-direction: column;\n gap: 40px;\n align-items: center;\n text-align: center;\n`;\n\nexport const ContainerTitle = styled.div`\n width: 320px;\n height: 192px;\n top: 80px;\n left: 80px;\n gap: 16px;\n text-align: start;\n`;\n\nexport const Title = styled.h2`\n font-size: 32px;\n font-weight: 300;\n line-height: 40px;\n letter-spacing: -1%;\n\n strong {\n font-weight: 700;\n }\n`;\n\nexport const Description = styled.p`\n font-size: 16px;\n color: #99aabb;\n line-height: 24px;\n letter-spacing: 0%;\n font-weight: 400;\n`;\n\nexport const QRCodeWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n border: 2px solid #ecf0f6;\n background-color: #ecf0f6;\n`;\n\n","export default __webpack_public_path__ + \"static/media/qrcode.b3a8a0a0.png\";","import { useEffect } from \"react\";\nimport { isMobile } from \"../../utils\"; // Certifique-se de que esta função está implementada corretamente\nimport { CloseOutlined } from \"@ant-design/icons\";\nimport {\n CustomDrawer,\n ContentWrapper,\n CloseButton,\n QRCodeWrapper,\n Title,\n Description,\n ContainerTitle,\n} from \"./styles\";\nimport qrcode from \"../../assets/qrcode.png\";\n\ninterface IDownloadModalProps {\n visible: boolean;\n setVisible: Function;\n}\n\nconst DownloadModal = ({ visible, setVisible }: IDownloadModalProps) => {\n const onClose = () => setVisible(false);\n\n if (visible && isMobile()) {\n const userAgent = navigator.userAgent;\n\n if (/android/i.test(userAgent)) {\n window.location.href =\n \"https://play.google.com/store/apps/details?id=br.com.velotax.irpf.app&pcampaignid=web_share\";\n } else if (/iPad|iPhone|iPod/.test(userAgent)) {\n window.location.href =\n \"https://apps.apple.com/br/app/velotax-irpf/id6499226151\";\n }\n\n return null;\n }\n\n return (\n <>\n \n \n \n \n\n \n \n \n Abra sua conta em <strong>poucos minutos</strong>\n \n \n Ligue a câmera do celular e aponte para o QR Code abaixo para ser\n redirecionado à loja de aplicativos, depois baixe o app do Velotax\n e abra sua conta.\n \n \n \n \n \n \n \n \n );\n};\n\nexport default DownloadModal;\n","import { Rule } from \"antd/lib/form\";\nimport {\n checkDateExpiration,\n isDateOnReferenceMonth,\n isNonDateOnFuture,\n isValidCEP,\n isValidCNPJ,\n isValidRG,\n isValidCPF,\n isValidDate,\n isValidDeclarationReceipt,\n isValidEmail,\n isValidFullName,\n isValidIPTU,\n isValidPhone,\n isValidRenavam,\n isValidShelfLife,\n isValidStateAddress,\n isValidVoterCard,\n isValidCreditCard,\n months,\n} from \".\";\n\nconst dataLimite = \"2021-12-31 23:59:59\";\n\nexport const validationCpf: Rule[] = [\n {\n required: true,\n validator: (_: any, value: string) =>\n !value || !isValidCPF(value)\n ? Promise.reject(new Error(\"Informe um CPF válido\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationCnpj: Rule[] = [\n {\n validator: (_: any, value: string) =>\n !value || !isValidCNPJ(value)\n ? Promise.reject(new Error(\"Informe um CNPJ válido\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationCreditCardNumber: Rule[] = [\n {\n validator: (rule, value: string) =>\n isValidCreditCard(value?.replace(/[^0-9\\\\.]+/g, \"\"))\n ? Promise.resolve()\n : Promise.reject(new Error(\"Número de cartão inválido\")),\n },\n];\n\nexport const validationCnpjNotRequired: Rule[] = [\n {\n validator: (_: any, value: string) =>\n value && !isValidCNPJ(value)\n ? Promise.reject(new Error(\"Informe um CNPJ válido\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationFullName: Rule[] = [\n {\n validator: (rule, value) =>\n !value || !isValidFullName(value)\n ? Promise.reject(\n new Error(\"Seu nome deve possuir duas palavras ou mais\")\n )\n : Promise.resolve(),\n },\n];\n\nexport const validationEmail: Rule[] = [\n {\n validator: (rule, value) =>\n !value || !isValidEmail(value)\n ? Promise.reject(new Error(\"Informe um email válido\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationPhone: Rule[] = [\n {\n validator: (rule, value) =>\n !value || isValidPhone(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um telefone válido\")),\n },\n];\n\nexport const validationPhoneRequired: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n !value || !isValidPhone(value)\n ? Promise.reject(new Error(\"Informe um telefone válido\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationDateNotRequired: Rule[] = [\n {\n validator: (rule, value) =>\n !value || isValidDate(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe uma data válida\")),\n },\n];\n\nexport const validationDate: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n !isValidDate(value)\n ? Promise.reject(new Error(\"Informe uma data válida\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationDateIsOnReferenceMonth: (\n month: number,\n year: number\n) => Rule[] = (month, year) => [\n {\n validator: (_: any, value: string) =>\n isDateOnReferenceMonth(month, year, value)\n ? Promise.resolve()\n : Promise.reject(\n new Error(`Informe uma data do mês de ${months[month]} de ${year}`)\n ),\n },\n];\n\nexport const validationDateIsOnReferenceMonthCompra: Rule[] = [\n {\n validator: async (_: any, value: string) => {\n const today = new Date();\n const pastLimit = today.getFullYear() - 5;\n const [day, month, year] = value.split(\"/\");\n const date = new Date(Number(year), Number(month) - 1, Number(day));\n return value.length < 10 || (value.length === 10 && !isValidDate(value))\n ? Promise.reject(new Error(`Informe uma data valida`))\n : Number(year) < pastLimit\n ? Promise.reject(new Error(`Informe um ano superior a ${pastLimit}`))\n : date.getTime() > today.getTime()\n ? Promise.reject(new Error(\"Não é permitida uma data futura\"))\n : Promise.resolve();\n },\n },\n];\n\nexport const validationDateIsOnFuture: (\n month: number,\n year: number\n) => Rule[] = (month, year) => [\n {\n validator: (_: any, value: string) =>\n isNonDateOnFuture(month, year, value)\n ? Promise.resolve()\n : Promise.reject(\n new Error(\n `Informe uma data menor ou igual ao mês de ${months[month]} de ${year}`\n )\n ),\n },\n];\n\nexport const validationIPTU: Rule[] = [\n {\n validator: (rule, value) =>\n isValidIPTU(value)\n ? Promise.resolve()\n : Promise.reject(\n new Error(\"O número do IPTU precisa ter entre 8 e 30 caracteres.\")\n ),\n },\n];\n\nexport const validationDateNotRequired2021: Rule[] = [\n {\n validator: (rule, value) =>\n value && !isValidDate(value)\n ? Promise.reject(new Error(\"Informe uma data válida\"))\n : value && !checkDateExpiration(dataLimite, value)\n ? Promise.reject(new Error(\"Informe uma data até 31/12/2021\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationDate2021: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n !isValidDate(value)\n ? Promise.reject(new Error(\"Informe uma data válida\"))\n : !checkDateExpiration(dataLimite, value)\n ? Promise.reject(new Error(\"Informe uma data até 31/12/2021\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationVoterCard: Rule[] = [\n {\n validator: (rule, value) =>\n !value || isValidVoterCard(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um Título de Eleitor válido\")),\n },\n];\n\nexport const validationRenavam: Rule[] = [\n {\n validator: (rule, value) =>\n !value || isValidRenavam(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um Renavam válido\")),\n },\n];\n\nexport const validationFieldRequired: Rule[] = [\n {\n required: true,\n message: \"Este campo é obrigatório\",\n },\n];\n\nexport const validationLengthFieldMinorThanTwenty: Rule[] = [\n ...validationFieldRequired,\n {\n validator: (rule, value) =>\n value.length <= 20\n ? Promise.resolve()\n : Promise.reject(new Error(\"Deve conter menos de 20 caracteres!\")),\n },\n]\n\nexport const validationNumberPercentageField: Rule[] = [\n ...validationFieldRequired,\n {\n min: 0.0001,\n type: \"number\",\n message: \"O valor deve ser maior que 0,0001\",\n },\n {\n max: 100,\n type: \"number\",\n message: \"O valor deve ser menor que 100 (cem)\",\n },\n];\n\nexport const validationNumberPercentageFieldPositive: Rule[] = [\n ...validationFieldRequired,\n {\n min: 0,\n type: \"number\",\n message: \"O valor deve estar entre 0 (zero) e 100 (cem)\",\n },\n {\n max: 100,\n type: \"number\",\n message: \"O valor deve estar entre 0 (zero) e 100 (cem)\",\n },\n];\n\nexport const validationNumberField: Rule[] = [\n ...validationFieldRequired,\n {\n min: 0.01,\n type: \"number\",\n message: \"O valor deve ser maior que 0 (zero)\",\n },\n];\n\nexport const validationNumberAllowNegativeField: Rule[] = [\n ...validationFieldRequired,\n {\n type: \"number\",\n message: \"Não é um número válido\",\n },\n];\n\nexport const validationNumberFieldPositive: Rule[] = [\n ...validationFieldRequired,\n {\n min: 0,\n type: \"number\",\n message: \"O valor deve ser positivo\",\n },\n];\n\nexport const validationNumberFieldPositiveGreaterThanZero: Rule[] = [\n ...validationFieldRequired,\n {\n min: 1,\n type: \"number\",\n message: \"O valor deve ser maior que 0\",\n },\n];\n\nexport const validationQuantityCryptoField: Rule[] = [\n ...validationFieldRequired,\n {\n min: 0,\n type: \"number\",\n message: \"O valor deve ser positivo\",\n },\n];\n\nexport const validationDeclarationReceipt: Rule[] = [\n {\n validator: (rule, value) =>\n isValidDeclarationReceipt(value)\n ? Promise.resolve()\n : Promise.reject(\n new Error(\"O número da declaração deve ter 10 ou 12 dígitos\")\n ),\n },\n];\n\nexport const validationStateAddress: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n value && isValidStateAddress(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um Estado válido\")),\n },\n];\n\nexport const validationCardShelfLife: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n isValidShelfLife(value)\n ? Promise.reject(new Error(\"Informe uma data válida\"))\n : Promise.resolve(),\n },\n];\n\nexport const validationCep: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n isValidCEP(value ?? \"\")\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um CEP válido\")),\n },\n];\n\nexport const validationCepStateCity: Rule[] = [\n ({ getFieldValue }) => ({\n required: true,\n validator: (rule, value) =>\n isValidCEP(value ?? \"\") &&\n !!getFieldValue(\"state\") &&\n !!getFieldValue(\"city\")\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um CEP válido\")),\n }),\n];\n\nexport const validationAmexCVV: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n (value?.replace(/[_]/g, \"\") ?? \"\")?.length === 4\n ? Promise.resolve()\n : Promise.reject(new Error(\"Insira um código de segurança válido\")),\n },\n];\n\nexport const validationCVV: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n (value?.replace(/[_]/g, \"\") ?? \"\")?.length === 3\n ? Promise.resolve()\n : Promise.reject(new Error(\"Insira um código de segurança válido\")),\n },\n];\n\nexport const validationPasswordNotRequired: Rule[] = [\n { min: 6, message: \"A senha deve ter pelo menos 6 caracteres\" },\n];\n\nexport const validationPassword: Rule[] = [\n { required: true, message: \"Informe uma senha\" },\n { min: 6, message: \"A senha deve ter pelo menos 6 caracteres\" },\n];\n\nexport const validationPassConfirmation: Rule[] = [\n ({ getFieldValue }) => ({\n validator: (_: any, value: string) =>\n value === getFieldValue(\"pass\")\n ? Promise.resolve()\n : Promise.reject(new Error(\"As senhas não coincidem\")),\n }),\n];\n\nexport const validationRG: Rule[] = [\n {\n required: true,\n validator: (rule, value) =>\n !!value && isValidRG(value)\n ? Promise.resolve()\n : Promise.reject(new Error(\"Informe um RG válido\")),\n },\n];\n","import React, { useState } from \"react\";\nimport { Form, Input } from \"antd\";\nimport ReactInputMask from \"react-input-mask\";\nimport { useNavigate } from \"react-router-dom\";\nimport Button from \"../../components/Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport DownloadModal from \"../../components/ButtonDownload\";\nimport {\n validationCpf,\n validationFieldRequired,\n} from \"../../utils/formValidations\";\n\ninterface IData {\n cpf: string;\n pass: string;\n isAd?: boolean;\n}\n\nexport const Login: React.FC = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm();\n const { handleSignIn, loading } = useAuth();\n const { getIntegrationStatus } = useBroker();\n const queryParams = new URLSearchParams(window.location.search);\n const isAd = Boolean(queryParams.get(\"ad\"));\n const [modalVisible, setModalVisible] = useState(false);\n\n const onFinish = async (data: IData) => {\n try {\n handleSignIn({ ...data, isAd });\n getIntegrationStatus({});\n } catch (err: any) {\n return;\n }\n };\n\n const onValuesChange = (changed: any, values: any) => {\n const cpf = changed.cpf ? changed.cpf.replace(/[_.-/-]/g, \"\") : values.cpf;\n form.setFieldsValue({\n ...values,\n cpf,\n });\n };\n\n // const handleNavigate = () => {\n // isAd ? navigate(\"/p/cadastrar?ad=true\") : navigate(\"/p/cadastrar\")\n // };\n\n return (\n \n
\n
\n

Acesse sua conta

\n \n \n \n \n\n \n \n \n\n
\n \n Entrar\n \n
\n
\n navigate(\"/p/forgot-password\")}\n style={{\n fontSize: \"11px\",\n width: \"150px\",\n }}\n >\n Esqueci minha senha\n \n
\n \n\n
\n Ainda não possui uma conta?\n \n setModalVisible(true)}\n className=\"btn-underlined\"\n >\n Começar\n \n
\n {/*
\n Contador ou assessor de investimentos?\n \n window.open(\n `${process.env.REACT_APP_VELOPRO_URL}/p/login`,\n \"_blank\"\n )\n }\n className=\"btn-underlined\"\n >\n Versão Profissional\n \n
*/}\n
\n
\n \n \n
\n );\n};\n","import { UserPlanEnum } from \"../../constants/plans\";\nimport { HasPlan } from \"../../contexts/AuthContext\";\n\nexport const planos = [\n {\n type: UserPlanEnum.VELOTAX_MAIN_BASIC,\n name: \"Basic\",\n price: 25.9,\n originalPrice: 25.9,\n installments: 12,\n for: \"Pra quem começou a investir agora\",\n includes: \"Basic inclui:\",\n benefits: [\n \"Cálculos automáticos de IR\",\n \"Emissão de DARF do mês corrente\",\n ],\n },\n {\n type: UserPlanEnum.VELOTAX_MAIN_PRO,\n name: \"Premium\",\n price: 59.9,\n originalPrice: 59.9,\n installments: 12,\n for: \"Pra quem investe com maior frequência\",\n includes: \"Tudo do Basic, mais:\",\n benefits: [\n \"DARFs retroativos ilimitados\",\n \"Carteira de investimentos atualizada\",\n \"Notificações de dividendos\",\n \"Isentômetro de impostos\",\n \"Informes de rendimento em PDF\",\n ],\n },\n {\n type: UserPlanEnum.VELOTAX_MAIN_CONCIERGE,\n name: \"Concierge\",\n price: 79.9,\n originalPrice: 79.9,\n installments: 12,\n for: \"Pra quem não quer ter nenhum trabalho\",\n includes: \"Tudo do Premium, mais:\",\n benefits: [\n \"Especialista dedicado para você\",\n \"DARFs revisadas por profissional\",\n \"Contato por WhatsApp exclusivo\",\n ],\n popular: true,\n },\n];\n\nexport enum UserPlanUpgradeEnum {\n BASIC_TO_PRO_VELOTAX = \"BASIC_TO_PRO_VELOTAX\",\n BASIC_TO_CONCIERGE_VELOTAX = \"BASIC_TO_CONCIERGE_VELOTAX\",\n PRO_TO_CONCIERGE = \"PRO_TO_CONCIERGE\",\n}\n\nexport const planUpgrade = {\n [UserPlanUpgradeEnum.BASIC_TO_PRO_VELOTAX]: 34,\n [UserPlanUpgradeEnum.BASIC_TO_CONCIERGE_VELOTAX]: 54,\n [UserPlanUpgradeEnum.PRO_TO_CONCIERGE]: 20,\n};\n\nexport const getPlanPrice = (\n plan: { price: number; type: UserPlanEnum },\n hasPlan: false | HasPlan\n) =>\n !hasPlan\n ? plan?.price\n : hasPlan.premium && plan?.type === UserPlanEnum.VELOTAX_MAIN_CONCIERGE\n ? planUpgrade[UserPlanUpgradeEnum.PRO_TO_CONCIERGE]\n : !hasPlan.premium && plan?.type === UserPlanEnum.VELOTAX_MAIN_PRO\n ? planUpgrade[UserPlanUpgradeEnum.BASIC_TO_PRO_VELOTAX]\n : !hasPlan.premium && plan?.type === UserPlanEnum.VELOTAX_MAIN_CONCIERGE\n ? planUpgrade[UserPlanUpgradeEnum.BASIC_TO_CONCIERGE_VELOTAX]\n : plan?.price;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n &.velotax-container {\n .velotax-content {\n width: 1032px;\n h1.page-title {\n font-size: 28px;\n margin-bottom: 8px;\n :after {\n display: none;\n }\n }\n .subtitle {\n font-size: 16px;\n color: var(--dark-gray);\n }\n .trustpilot-trustbox-widget {\n margin: 32px 0 32px -16px;\n width: calc(100% + 32px);\n }\n .selos {\n display: flex;\n /* margin: 0 0 48px; */\n .selo {\n display: flex;\n padding: 0 24px;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n width: calc(100% / 3);\n .ant-typography {\n display: block;\n margin-top: 8px;\n font-size: 16px;\n line-height: 20px;\n text-align: center;\n .anticon {\n margin-left: 5px;\n vertical-align: -0.2em;\n }\n strong {\n display: block;\n font-weight: 700;\n color: var(--ant-success-color);\n }\n }\n &.trustpilot {\n .excelente {\n display: block;\n font-size: 18px;\n font-weight: 700;\n margin: 0 0 8px;\n }\n .avaliacoes {\n display: flex;\n height: 24px;\n font-size: 16px;\n margin: 16px 0 10px;\n align-items: center;\n justify-content: center;\n svg {\n margin: 0 0 2px 0;\n }\n }\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n &.velotax-container {\n .velotax-content {\n width: 100%;\n .selos {\n flex-direction: column;\n .selo {\n width: 100%;\n padding: 12px 24px;\n }\n }\n }\n }\n }\n`;\n\nexport const PlanosContainer = styled.div`\n display: flex;\n .terms-employment {\n display: none;\n }\n .plan {\n padding: 32px;\n overflow: hidden;\n margin-left: 8px;\n position: relative;\n border-radius: 8px;\n width: calc((100% - 16px) / 3);\n border: 2px solid var(--light-gray);\n :first-of-type {\n margin-left: 0;\n .plan-for {\n width: 110px;\n }\n }\n .plan-name {\n font-size: 20px;\n font-weight: 700;\n line-height: 28px;\n text-align: center;\n margin-bottom: 24px;\n }\n .plan-price {\n text-align: center;\n font-size: 24px;\n font-weight: 700;\n line-height: 20px;\n margin-bottom: 4px;\n .plan-price-main {\n font-size: 48px;\n font-weight: 700;\n line-height: 20px;\n letter-spacing: -1.92px;\n }\n }\n .plan-price-desc {\n display: block;\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n text-align: center;\n }\n .plan-for {\n width: 128px;\n display: block;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n text-align: center;\n margin: 16px auto 24px;\n color: var(--dark-gray);\n }\n .plan-includes {\n display: block;\n margin: 24px 0 0;\n font-size: 12px;\n font-weight: 600;\n line-height: 16px;\n }\n .plan-benefits {\n .plan-benefit {\n display: flex;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n margin-top: 2px;\n svg {\n width: 16px;\n height: 16px;\n min-width: 16px;\n min-height: 16px;\n margin-right: 4px;\n }\n svg.check {\n fill: var(--ant-success-color);\n }\n .info {\n width: 12px;\n height: 12px;\n margin: 2px 0 0 4px;\n svg {\n width: 12px;\n height: 12px;\n min-width: 12px;\n min-height: 12px;\n margin-right: 0;\n }\n }\n .ant-tooltip-inner {\n background-color: rgba(0, 0, 0, 0.9);\n }\n }\n }\n .plan-popular {\n top: 0;\n right: 0;\n width: 150px;\n height: 20px;\n display: flex;\n font-size: 10px;\n font-weight: 700;\n line-height: 16px;\n position: absolute;\n color: var(--white);\n align-items: center;\n justify-content: center;\n text-transform: uppercase;\n background-color: var(--ant-primary-color);\n transform: rotateZ(45deg) translateX(45px) translateY(-12px);\n }\n }\n @media only screen and (max-device-width: 812px) {\n flex-direction: column;\n .plan {\n width: 100%;\n margin: 0 0 8px;\n }\n .terms-employment {\n display: block;\n font-size: 14px;\n width: 100%;\n font-weight: 400;\n line-height: 20px;\n }\n }\n`;\n\nexport const LogoContainer = styled.div`\n position: relative;\n display: flex;\n justify-content: center;\n padding: 40px 0;\n margin: 40px 0;\n border-top: 1px solid #343434;\n border-bottom: 1px solid #343434;\n\n .right-border {\n border-right: 1px solid #343434;\n }\n\n .left-border {\n border-left: 1px solid #343434;\n }\n\n .svg-container > :nth-child(1) {\n margin-right: 23px;\n margin-top: 5px;\n }\n\n .tooltip {\n position: absolute;\n right: 43px;\n top: 123px;\n }\n\n .tooltip svg {\n fill: black;\n }\n\n @media (max-width: 813px) {\n border-top: none;\n border-bottom: none;\n\n .svg-container {\n position: relative;\n }\n\n .tooltip {\n top: 82px;\n right: 7px;\n }\n\n .right-border {\n border-right: none;\n }\n\n .left-border {\n border-left: none;\n }\n }\n`;","import { LoadingOutlined } from \"@ant-design/icons\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\nimport Button from \"../Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\n\ninterface ReCaptchaProps {\n token?: string;\n setToken: React.Dispatch>;\n}\n\nexport const ReCaptcha: React.FC = ({ token, setToken }) => {\n const { disabledRecaptcha } = useAuth();\n const { executeRecaptcha } = useGoogleReCaptcha();\n const [loading, setLoading] = useState(true);\n\n const handleReCaptchaVerify = useCallback(async () => {\n setLoading(true);\n if (!executeRecaptcha) {\n setLoading(false);\n return;\n }\n const token = await executeRecaptcha(\"yourAction\");\n setLoading(false);\n setToken(token);\n }, [executeRecaptcha, setToken]);\n\n useEffect(() => {\n if (!disabledRecaptcha) {\n setTimeout(() => {\n handleReCaptchaVerify();\n }, 500);\n }\n }, [disabledRecaptcha, handleReCaptchaVerify]);\n\n return !disabledRecaptcha && !token ? (\n \n {loading ? : \"Não sou um robô\"}\n \n ) : (\n <>\n );\n};\n","import { Drawer, DrawerProps, Modal, ModalProps } from \"antd\";\nimport { isMobile } from \"../../utils\";\n\nexport interface DrawerModalProps\n extends Omit,\n Omit {\n visible?: boolean;\n onCancel?: (e: any) => void;\n}\n\nexport const DrawerModal: React.FC = ({\n height,\n visible,\n onCancel,\n children,\n className,\n ...props\n}) => {\n return isMobile() ? (\n \n {children}\n \n ) : (\n \n {children}\n \n );\n};\n","import { HTMLAttributes } from \"react\";\n\ninterface CopyTextProps extends HTMLAttributes {\n id: string;\n}\n\nexport const CopyText: React.FC = ({ children, ...props }) => {\n const selectText = () => {\n if ((document as any).selection) {\n // Internet Explorer\n const range = (document.body as any).createTextRange?.();\n range?.moveToElementText?.(document.getElementById(props.id)!);\n range?.select();\n } else if (window.getSelection) {\n const range = document.createRange?.();\n range?.selectNode?.(document.getElementById(props.id)!);\n window.getSelection?.()?.removeAllRanges?.();\n window.getSelection?.()?.addRange?.(range);\n }\n };\n\n return (\n {\n selectText();\n props.onClick?.(e);\n }}\n >\n {children}\n \n );\n};\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { Col, Row, Typography, Spin, message } from \"antd\";\nimport Button from \"../../Button\";\nimport apis from \"../../../services/apis\";\nimport { CopyText } from \"../../CopyText\";\nimport { ReCaptcha } from \"../../ReCaptcha\";\nimport { formatCurrency } from \"../../../utils\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport { apiPayment } from \"../../../services/apiPayment\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { getPlanPrice, planos } from \"../../../pages/Planos/planos\";\n\ninterface IPixPaymentProps {\n paymentData: any;\n handleIdBack: (event: any) => void;\n onSucess?: (event: any, delay: number) => void;\n backStep?: () => void;\n cupom?: any;\n closeModal: (event: any) => void;\n addInfo?: any;\n isDarfBatch: Boolean;\n resumo: any[];\n reCaptchaToken?: string;\n setReCaptchaToken: React.Dispatch>;\n}\n\n// const pixTaxesByInsitution: Record = {\n// \"imoveis-velotax\": 350,\n// \"rendimentos-velotax\": 14.9,\n// \"bolsa-velotax\": 14.9,\n// \"exterior-velotax\": 14.9,\n// \"crypto-velotax\": 14.9,\n// };\n\nconst PixPaymentStep: React.FC = ({\n paymentData,\n handleIdBack,\n onSucess,\n backStep,\n cupom,\n closeModal,\n addInfo,\n isDarfBatch,\n resumo,\n reCaptchaToken,\n setReCaptchaToken,\n}) => {\n const { currentPage } = useBroker();\n const {\n user,\n hasPlan,\n isIOSAPP,\n isAndroidAPP,\n showUserPlanModal,\n disabledRecaptcha,\n } = useAuth();\n const [loading, setLoading] = useState(false);\n const [qrCodeLink, setQRCodeLink] = useState(null);\n const [qrCodeLinkUrl, setQRCodeLinkUrl] = useState(null);\n const [brCode, setBrCode] = useState(\"\");\n const provider = paymentData.isPlan ? \"pagarme\" : \"starkbank\";\n\n useEffect(() => {\n if (!!reCaptchaToken || disabledRecaptcha) {\n if (provider === \"pagarme\") {\n if (addInfo?.pixClientInfo) {\n callUserPlanPayment();\n }\n } else {\n callDarfPix();\n }\n }\n // eslint-disable-next-line\n }, [reCaptchaToken, disabledRecaptcha, addInfo?.pixClientInfo]);\n\n // const planPixInfo = addInfo?.hasDiscount\n // ? {\n // value: 279.9,\n // oldValue: 310.8,\n // }\n // : {\n // ...paymentData,\n // value: 645.9,\n // oldValue: [\"prd\"].includes(process.env.REACT_APP_NODE_ENV + \"\")\n // ? 718.8\n // : 718.8,\n // };\n\n // const priceNew = useMemo(() => {\n // if (paymentData.isPlan) {\n // var planPrice = planPixInfo?.value || 0;\n\n // if (cupom?.type === \"absolute\") {\n // planPrice =\n // Number(((planPrice - Number(cupom?.discountValue)) / 12).toFixed(2)) *\n // 12;\n // } else if (cupom?.type === \"percent\") {\n // planPrice =\n // Number(\n // (\n // (planPrice - planPrice * Number(cupom?.discountValue / 100)) /\n // 12\n // ).toFixed(2)\n // ) * 12;\n // }\n\n // return planPrice;\n // }\n // }, [\n // cupom?.discountValue,\n // cupom?.type,\n // paymentData.isPlan,\n // planPixInfo?.value,\n // ]);\n\n const showMsgPremiumYear = useMemo(() => {\n if (\n !paymentData.isPlan &&\n user.user.userPlanInfoVelotax?.type === \"VELOTAX_MAIN_PRO_MONTH\"\n )\n return true;\n if (!paymentData.isPlan && !user?.user?.userPlanInfoVelotax?.active)\n return true;\n }, [\n paymentData.isPlan,\n user.user.userPlanInfoVelotax.type,\n user?.user?.userPlanInfoVelotax?.active,\n ]);\n\n const callUserPlanPayment = () => {\n let url: string = \"/user-plan/\";\n setLoading(true);\n apiPayment\n .post(\n url,\n {\n ...paymentData,\n paymentForm: \"pix\",\n from: \"VELOTAX\",\n cupomCode: cupom?.cupomCode,\n clientInfo: {\n phone: addInfo?.pixClientInfo?.phone,\n name: addInfo?.pixClientInfo?.name ?? user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n },\n }\n )\n .then((res: any) => {\n setLoading(false);\n if (onSucess && typeof onSucess === \"function\")\n onSucess(res?.data?.paymentId, 4);\n setQRCodeLinkUrl(res?.data?.qrCode);\n setBrCode(res?.data?.br_code);\n })\n .catch((err) => {\n message.error(err.response?.data?.message);\n });\n };\n\n const callDarfPix = () => {\n let url: string = isDarfBatch ? \"/darf/batch\" : \"/darf\";\n const paymentDataPayload = isDarfBatch\n ? {\n amount: paymentData.impostoTotalFinal,\n resumo,\n }\n : {\n ...paymentData,\n };\n\n setLoading(true);\n (currentPage?.api || apis)\n .post(\n url,\n {\n ...paymentDataPayload,\n paymentForm: \"pix\",\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n },\n }\n )\n .then((res: any) => {\n setLoading(false);\n handleIdBack(res?.data?.payment?.paymentId);\n setQRCodeLink(res?.data?.qrCode);\n setBrCode(res?.data?.br_code);\n })\n .catch((err) => {\n message.error(err.response?.data?.message);\n });\n };\n\n const plan = planos.find((p) => p.type === paymentData?.type);\n const price = getPlanPrice(plan!, hasPlan) ?? 25.9;\n const installments = plan?.installments ?? 12;\n let totalPrice = price * installments;\n if (cupom && cupom.active && cupom.type === \"absolute\")\n totalPrice -= cupom.discountValue;\n if (cupom && cupom.active && cupom.type === \"percent\")\n totalPrice -= totalPrice * (cupom.discountValue / 100);\n const planPrice = totalPrice / installments;\n\n return (\n \n \n {/* {paymentData.isPlan && (\n <>\n \n
\n \n \n Plano Premium: {formatCurrency(priceNew)} por ano\n \n \n
\n \n de {formatCurrency(planPixInfo.oldValue)} por ano\n \n {cupom?.type && (\n \n cupom de desconto de{\" \"}\n {cupom.type === \"percent\" ? (\n cupom.discountValue + \" %\"\n ) : (\n
\n {formatCurrency(cupom.discountValue)}\n
\n )}\n \n )}\n
\n
\n \n )} */}\n {/* \n \n \n \n */}\n {/* {provider !== \"pagarme\" && (\n \n \n \n Taxa PIX:{\" \"}\n {formatCurrency(\n pixTaxesByInsitution?.[paymentData.institution] || 9.9\n )}\n \n \n \n )} */}\n \n \n \n Abra o aplicativo do banco em que você possui o PIX cadastrado e\n selecione a opção de escanear QR Code ou PIX copia e cola.\n \n \n {paymentData.isPlan && (\n \n \n Plano anual\n \n \n 12x de {formatCurrency(planPrice)} ={\" \"}\n {formatCurrency(planPrice * 12)}\n \n \n )}\n \n {qrCodeLink && (\n \n )}\n\n {!qrCodeLink && !qrCodeLinkUrl && (\n \n )}\n\n {qrCodeLinkUrl && (\n \n )}\n \n \n \n {brCode ? (\n <>\n {isIOSAPP || isAndroidAPP ? (\n \n \n {brCode}\n \n \n ) : (\n \n {\n navigator.clipboard.writeText(brCode);\n message.success(\"Pix copiado!\");\n }}\n >\n \n Copiar código PIX\n \n \n \n )}\n {/* \n \n {cutBrCode()}\n \n */}\n \n ) : (\n \"\"\n )}\n \n {false &&\n showMsgPremiumYear &&\n paymentData?.institution !== \"imoveis-velotax\" && (\n \n \n \n \n Usuários Premium Anual não pagam taxa de serviço para\n pagamentos por PIX.\n \n {\n closeModal(e);\n showUserPlanModal(true);\n }}\n >\n Clique para saber mais.\n \n \n \n \n )}\n \n \n \n \n {\n backStep && backStep();\n }}\n >\n Voltar\n \n \n \n
\n );\n};\n\nexport default PixPaymentStep;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div``;\n","import { Col, Row, Typography } from \"antd\";\nimport React, { Dispatch, SetStateAction } from \"react\";\nimport Button from \"../../../../Button\";\nimport { ReCaptcha } from \"../../../../ReCaptcha\";\nimport { useAuth } from \"../../../../../contexts/AuthContext\";\n\ninterface IFooterProps {\n currentStep: number;\n handleProceed: () => void;\n setCurrentStep: Dispatch>;\n setReCaptchaToken: Dispatch>;\n backtoRoot?: any;\n typePurchase: string;\n reCaptchaToken?: string;\n selectedCardId?: string;\n changeCardAction?: boolean;\n}\n\nconst Footer: React.FC = ({\n backtoRoot,\n currentStep,\n typePurchase,\n handleProceed,\n setCurrentStep,\n reCaptchaToken,\n changeCardAction,\n setReCaptchaToken,\n}) => {\n const { disabledRecaptcha } = useAuth();\n return (\n \n {currentStep === 2 && (\n \n \n \n )}\n {currentStep !== 3 && currentStep !== 4 && (\n \n \n {currentStep === 1\n ? \"Prosseguir\"\n : typePurchase === \"UNIQUE\"\n ? \"Finalizar pagamento\"\n : changeCardAction\n ? \"Finalizar\"\n : \"Finalizar compra\"}\n \n \n )}\n {currentStep <= 2 && (\n \n {\n if (currentStep === 1 || currentStep === 2) {\n backtoRoot();\n return;\n }\n setCurrentStep((step) => step - 1);\n }}\n >\n Voltar\n \n \n )}\n {currentStep !== 2 && typePurchase !== \"UNIQUE\" && (\n \n \n Ao prosseguir, você declara que aceita nosso{\" \"}\n \n Termo de Contratação\n \n .\n \n \n )}\n \n );\n};\n\nexport default Footer;\n","import styled from \"styled-components\";\nimport { Row } from \"antd\";\n\nexport const CardContent = styled.div`\n display: flex;\n background-color: transparent;\n align-items: center;\n width: 100%;\n justify-content: center;\n height: 115px;\n border-radius: 7px;\n margin-top: 10px;\n cursor: pointer;\n\n .full-container {\n margin: auto;\n\n .card-number {\n display: flex;\n }\n }\n`;\n\nexport const NewCardContent = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n\n h3 {\n color: var(--ant-primary-color);\n }\n`;\n\nexport const Content = styled(Row)`\n margin-top: 4%;\n\n .list-cards-content {\n height: 400px;\n width: auto;\n display: grid;\n grid-template-columns: 1fr;\n overflow-y: auto;\n }\n\n .rccs {\n transform: scale(55%);\n }\n`;\n","export const taxes: Array = [\n 1.065, 1.105, 1.125, 1.145, 1.165, 1.185, 1.205, 1.225, 1.245, 1.265, 1.285,\n 1.305,\n];","import { Col, Row } from \"antd\";\nimport { taxes } from \"../constants/taxes\";\nimport { formatCurrency, numberToPercentage } from \"../utils\";\n\nexport default function getInstallments(\n value: number, // valor\n isPlan: boolean, // caso seja plano irá alterar a descrição\n fixedInstallments?: number //número de parcela fixo\n) {\n var _installments = [];\n var customInstallments = 12;\n\n if (value) {\n if (isPlan) {\n _installments.push({\n value: 12,\n label: (\n \n R$ {(value / 12).toFixed(2)}\n \n ),\n });\n } else if (fixedInstallments) {\n _installments.push({\n value: 12,\n label: (\n \n {fixedInstallments}x R${\" \"}\n {(value / fixedInstallments).toFixed(2)}\n \n ),\n });\n } else {\n\n let valorTaxa=0;\n if(value >=10 && value <=499.99){\n valorTaxa = 9.9\n }\n if(value >=500 && value <=999.99){\n valorTaxa = 14.9\n }\n if(value >=1000 && value <=1499.99){\n valorTaxa = 19.9\n }\n if(value >=1500 && value <=10000){\n valorTaxa = 29.9\n }\n\n const _valueTmp = value+valorTaxa;\n\n for (let i = 0; i < (customInstallments || 12); i++) {\n let _value = formatCurrency(((_valueTmp * taxes[i])) / (i + 1));\n let plural = i > 0 ? \"parcelas\" : \"parcela\";\n\n _installments.push({\n value: i + 1,\n label: (\n \n \n {i + 1}x {plural} - {_value.props.prefix} {_value.props.value}\n \n \n Taxa de serviço: {numberToPercentage((taxes[i] - 1) * 100)}\n \n \n ),\n });\n }\n }\n }\n\n return _installments;\n}\n","import React, { useEffect, useState, useMemo } from \"react\";\nimport { message, Typography, Col, Select, Form, Row } from \"antd\";\nimport { CardContent, NewCardContent, Content } from \"./styles\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport Cards from \"react-credit-cards\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Plan as IPlan, UserPlan } from \"../../constants/plans\";\nimport getInstallmentsByPrice from \"../../utils/getInstallmentsListByPrice\";\nimport { formatCurrency } from \"../../utils/format\";\n\ninterface ICardList {\n onSelectCard: (card: any) => void;\n selectedCardId: string;\n amount?: string;\n plan?: IPlan | UserPlan;\n value: number;\n onChangeInstallments?: (value: number) => void;\n installmentSelected?: number;\n}\n\nexport interface cardAttributes {\n id: string;\n first_six_digits: string;\n last_four_digits: string;\n brand: string;\n customer_id: string;\n holder_name: string;\n exp_month: number;\n exp_year: number;\n status: string;\n type: string;\n created_at: Date;\n updated_at: Date;\n billing_address: {\n street: string;\n zip_code: string;\n city: string;\n state: string;\n country: string;\n line_1: string;\n };\n}\n\nexport const CardList: React.FC = ({\n onSelectCard,\n selectedCardId,\n value,\n plan,\n onChangeInstallments,\n installmentSelected,\n}) => {\n const [cardList, setCardList] = useState([]);\n const [loading, setLoading] = useState(false);\n\n const getCardList = () => {\n setLoading(true);\n apiPayment\n .get(`/payment/list_cards`)\n .then((ret) => {\n setCardList(ret?.data?.list || []);\n\n if (ret?.data?.list?.length === 0 || !ret?.data?.list) {\n onSelectCard(undefined);\n }\n setLoading(false);\n })\n .catch((err) => {\n message.error(\"Ocorreu um erro ao buscar cartões\");\n setLoading(false);\n });\n };\n\n useEffect(() => {\n getCardList();\n // eslint-disable-next-line\n }, []);\n\n const fixedInstallments = useMemo(\n () => (!!plan?.type ? 12 : undefined),\n [plan?.type]\n );\n\n const installments = useMemo(\n () => getInstallmentsByPrice(value, !!plan?.type, fixedInstallments),\n [plan, value, fixedInstallments]\n );\n\n return (\n \n \n \n \n {!loading && (\n <>\n \n {/* {getMessage()} */}\n \n {value ? (\n {formatCurrency(value ?? 0)}\n ) : undefined}\n \n \n \n onSelectCard(undefined)}>\n

Novo Cartão

\n
\n \n \n \n {cardList &&\n cardList?.length > 0 &&\n cardList?.map((card: cardAttributes) => (\n \n onSelectCard(card)}\n >\n {\n console.log(\"cb issuer isvalid\", issuer, isValid);\n }}\n />\n \n \n ))}\n \n \n {value ? (\n \n \n target.parentElement}\n value={\n fixedInstallments || plan?.type\n ? installments[0].value\n : installmentSelected\n }\n />\n \n \n ) : (\n \"\"\n )}\n \n )}\n
\n );\n};","import Cards from \"react-credit-cards\";\nimport { MdCheck, MdWarningAmber } from \"react-icons/md\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport React, { useMemo, useState, useEffect, useCallback } from \"react\";\nimport {\n InfoCircleOutlined,\n LoadingOutlined,\n EyeOutlined,\n} from \"@ant-design/icons\";\nimport {\n Row,\n Col,\n Spin,\n message,\n Typography,\n Select,\n Popover,\n Form,\n Input,\n} from \"antd\";\nimport Button from \"../Button\";\nimport { ReCaptcha } from \"../ReCaptcha\";\nimport { DrawerModal } from \"../DrawerModal\";\nimport { cardAttributes } from \"../CardList\";\nimport { Page } from \"../../constants/brokers\";\nimport HandleTag from \"../../services/handleTag\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport PixPaymentStep from \"../Payment/PixPaymentStep\";\nimport CreditCardStep from \"../Payment/CreditCardStep\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { ETypePurchase, UserPlansTypes } from \"../../constants/plans\";\nimport { validationFieldRequired } from \"../../utils/formValidations\";\nimport getInstallmentsByPrice from \"../../utils/getInstallmentsListByPrice\";\nimport {\n errorMessage,\n formatCurrency,\n months,\n oneDayTimestamp,\n} from \"../../utils\";\nimport {\n CardButton,\n PopoverItem,\n PopoverItemValue,\n PopoverLabel,\n} from \"./style\";\n\ninterface PaymentModalProps {\n item?: Page;\n impostoTotalFinal?: number;\n show: boolean;\n onCancel?: (e: any) => void;\n paymentData: any;\n callDarf: any;\n hideDarfDownload?: boolean;\n onSucessPix?: (event: any) => void;\n onSucessCreditCard?: (event: any) => void;\n planCurrent?: any;\n disablePixOption?: boolean;\n disableCreditCardOption?: boolean;\n customInstallments?: number;\n maxPixValue?: number;\n maxCCValue?: number;\n selectedYear?: number;\n emitting?: boolean;\n cupom?: any;\n setCupom?: any;\n hidePixButton?: boolean;\n blockListCard?: string[];\n changeCardAction?: boolean;\n onSuccessGeneral?: () => void;\n closeModal?: () => void;\n closeDarfModal?: () => void;\n addInfo?: Record;\n isBatchDarf?: Boolean;\n yearBatch?: number;\n resumo?: any[];\n openPlanModal?: () => void;\n}\n\ninterface PaymentInfoContentProps {\n content: JSX.Element;\n title?: string;\n amount?: number;\n}\n\nexport interface PaymentDetailsProp {\n value?: number;\n paymentId: string;\n qrCodeLink?: string;\n name?: string;\n}\n\nenum EPlanStep {\n CHOOSE_PAYMENT = \"CHOOSE_PAYMENT\",\n PIX_PAYMENT = \"PIX_PAYMENT\",\n PIX_FORM = \"PIX_FORM\",\n CC_PAYMENT = \"CC_PAYMENT\",\n LOADING = \"LOADING\",\n FINISHED = \"FINISHED\",\n NO_VALUE = \"NO_VALUE\",\n}\n\nlet getStatus: any;\n\nexport const PaymentModal: React.FC = ({\n item,\n show,\n onCancel,\n paymentData,\n callDarf,\n hideDarfDownload,\n disablePixOption,\n disableCreditCardOption,\n onSucessPix,\n planCurrent,\n onSucessCreditCard,\n customInstallments,\n maxPixValue,\n maxCCValue,\n selectedYear,\n emitting = false,\n cupom,\n hidePixButton,\n blockListCard,\n changeCardAction,\n onSuccessGeneral,\n closeModal,\n closeDarfModal,\n addInfo,\n isBatchDarf,\n yearBatch,\n resumo,\n openPlanModal,\n}) => {\n\n const [pixForm] = Form.useForm();\n const broker = useBroker();\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const { currentPage } = useBroker();\n const { showUserPlanModal, isIOSAPP, ssoToken, getSsoToken } = useAuth();\n const [loading, setLoading] = useState(false);\n const [installment, setInstallment] = useState(1);\n const [loadingCards, setLoadingCards] = useState(false);\n const [pixClientInfo, setPixClientInfo] = useState();\n const [loadingPayment, setLoadingPayment] = useState(false);\n const [cardList, setCardList] = useState([]);\n const [reCaptchaToken, setReCaptchaToken] = useState();\n const [selectedCard, setSelectedCard] = useState();\n const [step, setStep] = useState(EPlanStep.CHOOSE_PAYMENT);\n const [data, setData] = useState({\n darf: { _id: \"\" },\n payment: { paymentId: 0 },\n });\n\n const pagarmeOff = false;\n const hasDiscount =\n (addInfo?.lastTimeOpenPlanModalVeloApp || 0) + 3 * oneDayTimestamp >\n new Date().getTime();\n\n const isPlan = useMemo(() => {\n return UserPlansTypes.includes(planCurrent?.type || \"\");\n }, [planCurrent]);\n\n const value = useMemo(() => {\n if (isPlan) {\n var isMonth = (planCurrent as any).interval === \"Mensal\";\n\n var planPrice =\n (!isMonth\n ? (hasDiscount\n ? planCurrent?.price\n : planCurrent.originalPrice || 0) * 12\n : planCurrent?.price) || 0;\n\n planPrice = Number(planPrice.toFixed(2));\n\n return planPrice && isMonth ? planPrice * 12 : planPrice;\n }\n\n return paymentData?.impostoTotalFinal; //caso nao seja plano\n }, [paymentData?.impostoTotalFinal, planCurrent, isPlan, hasDiscount]);\n\n const fixedInstallments = useMemo(\n () => (!!planCurrent?.type ? 12 : undefined),\n [planCurrent?.type]\n );\n\n const installments = useMemo(\n () => getInstallmentsByPrice(value, !!planCurrent?.type, fixedInstallments),\n [planCurrent, value, fixedInstallments]\n );\n\n const checkWasPaid = useCallback(\n (delay: number = 5) => {\n let attempts = 0;\n let check_id: any = data?.payment?.paymentId;\n\n if (step === \"PIX_PAYMENT\") {\n check_id = data;\n }\n\n if (!check_id) return;\n\n getStatus = setInterval(async () => {\n apiPayment\n .get(`/payment?id=${check_id}`)\n .then((res: any) => {\n if (res.data?.status === \"paid\") {\n clearInterval(getStatus);\n setStep(EPlanStep.FINISHED);\n setLoading(false);\n message.success(\"DARF pago com sucesso!\");\n setTimeout(() => {\n if (item?.settings?.historicUrl) {\n closeDarfModal?.();\n setTimeout(() => {\n navigate(item?.settings?.historicUrl, {\n state: { year: selectedYear ?? new Date().getFullYear() },\n });\n }, 500);\n } else {\n setTimeout(() => {\n closeDarfModal?.();\n setTimeout(() => {\n setStep(EPlanStep.CHOOSE_PAYMENT);\n }, 500);\n }, 1000);\n }\n }, 500);\n }\n })\n .finally(() => {\n attempts += 1;\n if (attempts > 100) {\n clearInterval(getStatus);\n }\n });\n }, delay * 1000);\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n data,\n step,\n item,\n navigate,\n pathname,\n selectedYear,\n broker?.currentBroker?.path,\n ]\n );\n\n const createPlanMainVelotax = () => {\n const url = \"/user-plan/create\";\n\n const cardInfo = { card_id: selectedCard?.id };\n const clientInfo = { customer_id: selectedCard?.customer_id };\n\n setLoadingPayment(true);\n\n apiPayment\n .post(\n url,\n {\n ...paymentData,\n type: planCurrent?.type,\n from: \"VELOTAX\",\n paymentForm: \"credit_card\",\n installments: 12,\n cupomCode: cupom?.cupomCode,\n cardInfo,\n clientInfo,\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n },\n }\n )\n .then((res: any) => {\n if (res.data.paymentId || res.data.paymentRecurringId)\n onSucessCreditCard && onSucessCreditCard(res.data);\n\n setLoading(true);\n setStep(EPlanStep.LOADING);\n })\n .catch((err) => {\n message.error(err.response?.data?.status);\n })\n .finally(() => {\n setLoadingPayment(false);\n });\n };\n\n const purchaseType = useMemo(() => {\n if (planCurrent?.type in ETypePurchase) return planCurrent?.type;\n\n return ETypePurchase.UNIQUE;\n }, [planCurrent]);\n\n const createUniquePayment = () => {\n apiPayment\n .get(\"/user-plan/plan-info\")\n .then((res: any) => {\n const url = isBatchDarf ? \"/darf/batch\" : \"/darf\";\n\n const cardInfo = { card_id: selectedCard?.id };\n const clientInfo = { customer_id: selectedCard?.customer_id };\n\n if (!res.data?.active) {\n if (closeModal) closeModal();\n if (openPlanModal) openPlanModal();\n } else {\n const paymentDataPayload = isBatchDarf\n ? {\n amount: paymentData.impostoTotalFinal,\n resumo,\n }\n : {\n ...paymentData,\n };\n setLoadingPayment(true);\n\n (currentPage?.api || apiPayment)\n .post(\n url,\n {\n ...paymentDataPayload,\n paymentForm: \"credit_card\",\n paymentInfo: {\n installments: installment,\n cardInfo: cardInfo,\n clientInfo: clientInfo,\n },\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n },\n }\n )\n .then((res: any) => {\n changePaymentId(res?.data);\n setStep(EPlanStep.LOADING);\n setLoading(true);\n })\n .catch((err) => {\n message.error(err.response?.data?.message || errorMessage);\n })\n .finally(() => {\n setLoadingPayment(false);\n });\n }\n })\n .catch((e: any) => console.log(e));\n };\n\n useEffect(() => {\n if (data?.payment?.paymentId !== 0) {\n checkWasPaid();\n }\n return () => getStatus && clearInterval(getStatus);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data]);\n\n useEffect(() => {\n if (isBatchDarf) {\n if (paymentData.impostoTotalFinal > 0) setStep(EPlanStep.CHOOSE_PAYMENT);\n else setStep(EPlanStep.NO_VALUE);\n }\n }, [paymentData, isBatchDarf]);\n\n useEffect(() => {\n if (show) {\n if (!isIOSAPP) {\n getCardList();\n }\n } else {\n setSelectedCard(undefined);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [show]);\n\n const navigateToBrowser = () => {\n getSsoToken();\n window.location.href = !process.env.REACT_APP_URL?.includes(\"dev\")\n ? `https://app.velotax.com.br/p/sso/${ssoToken}`\n : `https://app-dev.velotax.com.br/p/sso/${ssoToken}`;\n };\n\n const changeCardService = async () => {\n if (!selectedCard?.id) return;\n\n let cardInfo: any = { card_id: selectedCard?.id };\n\n setLoadingPayment(true);\n\n apiPayment\n .post(`/user-plan/change_signature_card`, {\n card_id: cardInfo.card_id,\n })\n .then((ret) => {\n message.success(\"Cartão atualizado com sucesso!\");\n })\n .catch((err) => {\n message.error(\"Ocorreu um erro ao alterar cartão!\");\n })\n .finally(() => {\n setLoadingPayment(false);\n onSuccessGeneral && onSuccessGeneral();\n });\n };\n\n const handlePay = () => {\n if (changeCardAction) {\n changeCardService();\n } else if (purchaseType === \"UNIQUE\") {\n createUniquePayment();\n } else if (UserPlansTypes.includes(purchaseType)) {\n createPlanMainVelotax();\n }\n };\n\n const changePaymentId = (value: any) => {\n if (step === \"CC_PAYMENT\") {\n setStep(EPlanStep.LOADING);\n setLoading(true);\n }\n setData(value);\n };\n\n const getPurchaseType = () => {\n if (planCurrent?.type in ETypePurchase) return planCurrent?.type;\n\n return ETypePurchase.UNIQUE;\n };\n\n const onChangeInstallments = (value: any) => {\n setInstallment(value);\n };\n\n const cancelActions = (e: any) => {\n setStep(EPlanStep.CHOOSE_PAYMENT);\n clearInterval(getStatus);\n setData({ darf: { _id: \"\" }, payment: { paymentId: 0 } });\n\n if (onCancel) {\n onCancel(e);\n }\n };\n\n const getCardList = () => {\n setLoadingCards(true);\n apiPayment\n .get(`/payment/list_cards`)\n .then((ret) => {\n setCardList(ret?.data?.list || []);\n })\n .catch((err) => {\n message.error(\"Ocorreu um erro ao buscar cartões\");\n })\n .finally(() => {\n setLoadingCards(false);\n });\n };\n\n const resumoPopoverContent = (\n <>\n {resumo?.map((darf, i) => {\n const impostoTotal = Math.max(\n 0,\n Number(\n (darf?.impostoComumFinal || 0) +\n (darf?.impostoDTFinal || 0) +\n (darf?.impostoFIIFinal || 0)\n ) +\n (Number(darf[\"impostoAcumulado\"] || 0) -\n Number(darf[\"irrfTotal\"] || 0))\n );\n if (Number(impostoTotal) >= 10)\n return (\n \n {months[darf?.month - 1]}\n \n {formatCurrency(\n impostoTotal + (darf?.multaAux || 0) + (darf?.jurosAux || 0)\n )}\n \n \n );\n else return <>;\n })}\n \n );\n\n const plansContentDisplay: Record = {\n [EPlanStep.CHOOSE_PAYMENT]: {\n content: (\n \n \n {(disablePixOption || disableCreditCardOption) && (\n \n \n \n   Não aceitamos o pagamento de DARFs com valor acima\n de {formatCurrency(maxPixValue || 0)} através\n de PIX ou cartão de crédito. Faça o download do seu DARF e\n realize o pagamento diretamente no aplicativo do seu banco.{\" \"}\n {/* \n \n */}\n \n \n )}\n {!disableCreditCardOption && !pagarmeOff && (\n <>\n {!isIOSAPP && loadingCards ? (\n \n \n \n \n    Carregando seus cartões\n \n \n \n ) : !isIOSAPP ? (\n <>\n {isBatchDarf && (\n \n \n \n Saldo total a pagar:\n \n {\" \"}\n {formatCurrency(paymentData.impostoTotalFinal)}\n \n \n \n \n \n \n \n )}\n {cardList\n .filter(\n (card) => !selectedCard || selectedCard.id === card.id\n )\n .map((card) => {\n if (\n blockListCard?.length &&\n blockListCard.includes(card.id)\n )\n return undefined;\n\n return (\n \n setSelectedCard(card)}\n style={{\n cursor:\n selectedCard?.id === card.id\n ? \"default\"\n : \"pointer\",\n }}\n >\n \n \n \n {\" \"}\n \n {\"**** **** **** \" + card.last_four_digits}\n \n \n {selectedCard && !isPlan && (\n \n \n target.parentElement\n }\n />\n \n )}\n \n \n \n \n );\n })}\n \n ) : (\n <>\n )}\n \n )}\n {!isIOSAPP && selectedCard ? (\n <>\n \n \n \n setSelectedCard(undefined)}\n >\n Voltar\n \n\n \n {changeCardAction ? \"Selecionar\" : \"Finalizar pagamento\"}\n \n \n \n \n ) : (\n <>\n \n {\n if (!isIOSAPP) {\n setStep(EPlanStep.CC_PAYMENT);\n } else {\n navigateToBrowser();\n }\n }}\n >\n {cardList.length > 0 ? \"NOVO \" : \"\"}CARTÃO DE CRÉDITO\n \n \n {!hidePixButton && (\n \n {\n if (isIOSAPP) {\n navigateToBrowser();\n } else if (!paymentData?.impostoTotalFinal) {\n HandleTag(\"37\");\n setStep(EPlanStep.PIX_FORM);\n } else {\n setStep(EPlanStep.PIX_PAYMENT);\n }\n }}\n >\n PIX À VISTA\n \n \n )}\n\n {!hideDarfDownload ? (\n \n callDarf(true)}\n >\n BOLETO DARF\n \n \n ) : null}\n \n )}\n\n {!selectedCard ? (\n \n \n {purchaseType !== \"UNIQUE\" && (\n {\n onCancel && onCancel(e);\n showUserPlanModal(true);\n }}\n >\n Voltar\n \n )}\n \n \n ) : undefined}\n \n \n ),\n title: selectedCard\n ? \"Cartão de crédito\"\n : changeCardAction\n ? \"Trocar Cartão\"\n : \"Escolha sua forma de pagamento\",\n },\n [EPlanStep.PIX_PAYMENT]: {\n content: (\n {\n setStep(EPlanStep.CHOOSE_PAYMENT);\n if (paymentData.stopIntervalPix) paymentData.stopIntervalPix();\n }}\n cupom={cupom}\n closeModal={cancelActions}\n reCaptchaToken={reCaptchaToken}\n setReCaptchaToken={setReCaptchaToken}\n />\n ),\n title: \"Pagamento com PIX à vista\",\n },\n [EPlanStep.CC_PAYMENT]: {\n content: (\n closeModal && closeModal()}\n changeCardAction={changeCardAction}\n typePurchase={getPurchaseType()}\n handleClosableModal={() => {}}\n status=\"\"\n plan={planCurrent}\n addInfo={{ hasDiscount }}\n handleSuccess={onSucessCreditCard}\n setInitialized={() => {}}\n darfData={paymentData}\n handleIdBack={changePaymentId}\n customInstallments={customInstallments}\n backToRoot={() => setStep(EPlanStep.CHOOSE_PAYMENT)}\n cupom={cupom}\n reCaptchaToken={reCaptchaToken}\n setReCaptchaToken={setReCaptchaToken}\n />\n ),\n title: \"Cartão de crédito\",\n },\n [EPlanStep.PIX_FORM]: {\n title: \"Pagamento com PIX à vista\",\n content: (\n {\n setStep(EPlanStep.PIX_PAYMENT);\n setPixClientInfo(data);\n }}\n onValuesChange={(values) => {\n pixForm.setFieldsValue({\n ...value,\n phone:\n values.phone?.replace(/[()_-]/g, \"\")?.replace(\" \", \"\") ?? \"\",\n });\n }}\n >\n \n \n \n \n \n \n \n \n \n \n {\n setStep(EPlanStep.CHOOSE_PAYMENT);\n }}\n >\n Voltar\n \n \n {paymentData?.isPlan && (\n \n \n Ao prosseguir, você declara que aceita nosso{\" \"}\n \n Termo de Contratação\n \n .\n \n \n )}\n \n \n ),\n },\n [EPlanStep.LOADING]: {\n content: (\n \n \n \n Processando pagamento...\n \n \n ),\n },\n [EPlanStep.FINISHED]: {\n content: (\n \n \n \n \n \n Seu pagamento foi realizado com sucesso!\n \n \n ),\n title: \"Confirmação de Pagamento\",\n },\n [EPlanStep.NO_VALUE]: {\n content: (\n \n \n \n \n \n Não há valor de imposto de renda a ser pago para o ano de{\" \"}\n {yearBatch}\n \n \n ),\n title: \"Operação inválida\",\n },\n };\n\n const title = plansContentDisplay?.[step]?.title;\n const content = plansContentDisplay?.[step]?.content;\n\n return (\n cancelActions(e)}\n >\n {content}\n \n );\n};\n","import styled from \"styled-components\";\n\nexport const CardFlagContainer = styled.div`\n &.flag-inside-input {\n position: relative;\n .rccs {\n top: 50px;\n right: 0;\n margin: 0;\n position: absolute;\n }\n }\n .rccs {\n width: 80px;\n margin: -2px 0 0;\n .rccs__card {\n width: 80px;\n height: 55.555px;\n margin: 0;\n\n .rccs__card--front {\n padding: 8px;\n box-shadow: none;\n border-radius: 4px;\n background: transparent;\n\n .rccs__card__background,\n .rccs__number,\n .rccs__expiry,\n .rccs__name,\n .rccs__chip {\n display: none;\n }\n\n .rccs__issuer {\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n position: relative;\n background-position: center center;\n\n @media only screen and (max-device-width: 812px) {\n left: -10px;\n }\n }\n }\n .rccs__card--back {\n display: none;\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .rccs {\n width: 48px;\n margin: -2px 0 0 -8px;\n\n .rccs__card {\n width: 64px;\n height: 48px;\n }\n }\n }\n\n .rccs__card--visa .rccs__issuer {\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KCjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0iTGF5ZXJfMSIKICAgeD0iMHB4IgogICB5PSIwcHgiCiAgIHdpZHRoPSIxMDAwLjA0NiIKICAgaGVpZ2h0PSIzMjMuNjUzMDIiCiAgIHZpZXdCb3g9IjAgMCAxMDAwLjA0NiAzMjMuNjUzIgogICBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNTguMzgxIDE2MS4xNTQiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTEgcjEzNzI1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJWaXNhXzIwMDYuc3ZnIj48bWV0YWRhdGEKICAgaWQ9Im1ldGFkYXRhMjMiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgaWQ9ImRlZnMyMSI+CgkKCQoJCgkKCQoJCgkKPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgYm9yZGVyb3BhY2l0eT0iMSIKICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTM2NiIKICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzA1IgogICBpZD0ibmFtZWR2aWV3MTkiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iMC4zNTM1NTMzOSIKICAgaW5rc2NhcGU6Y3g9IjM0LjY5MDg5NyIKICAgaW5rc2NhcGU6Y3k9IjEzMS4xNTQ4MyIKICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9IkxheWVyXzEiIC8+CjxnCiAgIGlkPSJnNDE1OCIKICAgdHJhbnNmb3JtPSJtYXRyaXgoNC40Mjk5NjMxLDAsMCw0LjQyOTk2MzEsLTgxLjE2NTc4MywtMTA1LjA0NzgzKSI+PHBvbHlnb24KICAgICBwb2ludHM9IjExNi4xNDUsOTUuNzE5IDk3Ljg1OCw5NS43MTkgMTA5LjI5NiwyNC45OTUgMTI3LjU4MiwyNC45OTUgIgogICAgIGlkPSJwb2x5Z29uOSIKICAgICBzdHlsZT0iZmlsbDojMDA1NzlmIiAvPjxwYXRoCiAgICAgZD0ibSAxODIuNDM3LDI2LjcyNCBjIC0zLjYwNywtMS40MzEgLTkuMzI4LC0zLjAxMSAtMTYuNDAyLC0zLjAxMSAtMTguMDU5LDAgLTMwLjc3Niw5LjYzIC0zMC44NTQsMjMuMzk4IC0wLjE1LDEwLjE1OCA5LjEwNSwxNS44IDE2LjAyNywxOS4xODcgNy4wNzUsMy40NjEgOS40OCw1LjcyIDkuNDgsOC44MDUgLTAuMDcyLDQuNzM4IC01LjcxNyw2LjkyMiAtMTAuOTgyLDYuOTIyIC03LjMwMSwwIC0xMS4yMTMsLTEuMTI2IC0xNy4xNTgsLTMuNzYyIGwgLTIuNDA4LC0xLjEzIC0yLjU1OSwxNS44NzYgYyA0LjI4OSwxLjk1NCAxMi4xOTEsMy42ODggMjAuMzk1LDMuNzY0IDE5LjE4OCwwIDMxLjY4LC05LjQ4MSAzMS44MjgsLTI0LjE1MyAwLjA3MywtOC4wNTEgLTQuODE0LC0xNC4yMiAtMTUuMzUsLTE5LjI2MSAtNi4zOTYsLTMuMjM2IC0xMC4zMTMsLTUuNDE4IC0xMC4zMTMsLTguNzI5IDAuMDc1LC0zLjAxIDMuMzEzLC02LjA5MyAxMC41MzMsLTYuMDkzIDUuOTQ1LC0wLjE1MSAxMC4zMTMsMS4yNzggMTMuNjIyLDIuNzA4IGwgMS42NTQsMC43NTEgMi40ODcsLTE1LjI3MiAwLDAgeiIKICAgICBpZD0icGF0aDExIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6IzAwNTc5ZiIgLz48cGF0aAogICAgIGQ9Im0gMjA2Ljc0Miw3MC42NjQgYyAxLjUwNiwtNC4wNjMgNy4zMDEsLTE5Ljc4OCA3LjMwMSwtMTkuNzg4IC0wLjA3NiwwLjE1MSAxLjUwMywtNC4xMzggMi40MDYsLTYuNzcxIGwgMS4yNzgsNi4wOTQgYyAwLDAgMy40NjMsMTYuOTI5IDQuMjE1LDIwLjQ2NSAtMi44NTgsMCAtMTEuNTg4LDAgLTE1LjIsMCBsIDAsMCB6IG0gMjIuNTczLC00NS42NjkgLTE0LjE0NSwwIGMgLTQuMzYyLDAgLTcuNjc2LDEuMjc4IC05LjU1OCw1Ljg2OCBsIC0yNy4xNjMsNjQuODU1IDE5LjE4OCwwIGMgMCwwIDMuMTU5LC04LjcyOSAzLjgzOCwtMTAuNjA5IDIuMTA1LDAgMjAuNzcxLDAgMjMuNDc5LDAgMC41MjUsMi40ODMgMi4xODIsMTAuNjA5IDIuMTgyLDEwLjYwOSBsIDE2LjkzMiwwIC0xNC43NTMsLTcwLjcyMyAwLDAgeiIKICAgICBpZD0icGF0aDEzIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6IzAwNTc5ZiIgLz48cGF0aAogICAgIGQ9Ik0gODIuNTg0LDI0Ljk5NSA2NC42NzUsNzMuMjIyIDYyLjcxOCw2My40NDEgQyA1OS40MDcsNTIuMTU1IDQ5LjAyMywzOS44OTMgMzcuNDM1LDMzLjc5NiBsIDE2LjQwNCw2MS44NDggMTkuMzM4LDAgMjguNzQ0LC03MC42NDkgLTE5LjMzNywwIDAsMCB6IgogICAgIGlkPSJwYXRoMTUiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojMDA1NzlmIiAvPjxwYXRoCiAgICAgZD0ibSA0OC4wNDUsMjQuOTk1IC0yOS40MjIsMCAtMC4zMDEsMS40MjkgYyAyMi45NTEsNS44NjkgMzguMTUxLDIwLjAxNiA0NC4zOTYsMzcuMDIgTCA1Ni4zMjIsMzAuOTQgYyAtMS4wNTMsLTQuNTE3IC00LjI4OSwtNS43OTYgLTguMjc3LC01Ljk0NSBsIDAsMCB6IgogICAgIGlkPSJwYXRoMTciCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojZmFhNjFhIiAvPjwvZz4KPC9zdmc+);\n }\n\n .rccs__card--visaelectron .rccs__issuer {\n background-image: url(data:image/png;base64,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);\n }\n\n .rccs__card--hipercard .rccs__issuer {\n background-image: url(data:image/png;base64,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);\n }\n`;","import Payment from \"payment\";\nimport Masked from \"react-input-mask\";\nimport Cards from \"react-credit-cards\";\nimport React, { useMemo } from \"react\";\nimport NumberFormat from \"react-number-format\";\nimport { Col, Form, FormInstance, Input, Row, Select } from \"antd\";\nimport { CardFlagContainer } from \"./styles\";\nimport { cpfInputMask } from \"../../../../../utils\";\nimport getInstallmentsListByPrice from \"../../../../../utils/getInstallmentsListByPrice\";\nimport {\n validationAmexCVV,\n validationCardShelfLife,\n validationCpf,\n validationCreditCardNumber,\n validationCVV,\n validationFieldRequired,\n} from \"../../../../../utils/formValidations\";\n\ninterface ICardFormProps {\n number: string;\n focused?: any;\n form: FormInstance;\n uniqueValue?: number;\n setCvc: (cvc: string) => void;\n setName: (name: string) => void;\n setNumber: (number: string) => void;\n setExpiry: (expiry: string) => void;\n setFocused: (focused: any) => void;\n setHolderDocument: (value: string) => void;\n setIsValidCardForm: (isValidCardForm: boolean) => void;\n handleBack: (event: any) => void;\n fixedInstallments?: number;\n signature?: boolean;\n installmentSelected?: number;\n customInstallments?: number;\n addInfo?: Record;\n}\n\nexport const CardForm: React.FC = ({\n form,\n number,\n setCvc,\n setName,\n focused,\n setNumber,\n setExpiry,\n setFocused,\n setHolderDocument,\n setIsValidCardForm,\n uniqueValue,\n fixedInstallments,\n handleBack,\n signature = true,\n installmentSelected,\n customInstallments,\n addInfo,\n}) => {\n const cardType = useMemo(() => Payment.fns.cardType(number), [number]);\n\n const onFieldsChange = () => {\n form\n .validateFields()\n .then(() => setIsValidCardForm(true))\n .catch(() => setIsValidCardForm(false));\n };\n\n let installments = useMemo(\n () =>\n getInstallmentsListByPrice(\n uniqueValue || 0,\n !!signature,\n fixedInstallments\n ),\n [signature, fixedInstallments, uniqueValue]\n );\n\n return (\n <>\n \n \n \n \n \n {\n setNumber(e.value);\n if (focused !== \"number\") setFocused(\"number\");\n }}\n />\n \n \n \n \n\n \n \n {\n setExpiry(e.target.value);\n if (focused !== \"expiry\") setFocused(\"expiry\");\n }}\n />\n \n \n \n \n {\n setCvc(e.value);\n if (focused !== \"cvc\") setFocused(\"cvc\");\n }}\n />\n \n \n\n \n \n {\n setName(e.target.value);\n if (focused !== \"name\") setFocused(\"name\");\n }}\n />\n \n \n \n \n {\n setHolderDocument(\n e.target.value?.replace(/[_.-]/g, \"\") ?? \"\"\n );\n }}\n />\n \n \n {uniqueValue && !addInfo?.isPlan ? (\n \n \n target.parentElement!}\n defaultValue={\n fixedInstallments || signature\n ? installments[0].value\n : installmentSelected\n }\n />\n \n \n ) : (\n \"\"\n )}\n \n \n \n );\n};\n","import axios from \"axios\";\n\nexport const cepApi = axios.create({\n method: \"GET\",\n baseURL: \"https://viacep.com.br/ws/\",\n});\n","import React from \"react\";\nimport NumberFormat from \"react-number-format\";\nimport { Col, Form, FormInstance, Input, Row } from \"antd\";\nimport { cepApi } from \"../../../../../services/cep\";\nimport {\n validationCep,\n validationFieldRequired,\n validationStateAddress,\n} from \"../../../../../utils/formValidations\";\n\ninterface IAddressFormProps {\n form: FormInstance;\n setLoading: (loading: boolean) => void;\n setIsValidAddressForm: (isValidAddressForm: boolean) => void;\n}\n\nconst AddressForm: React.FC = ({\n form,\n setLoading,\n setIsValidAddressForm,\n}) => {\n const getAddressSuggestion = (value: string) => {\n if (value?.length === 8) {\n setLoading(true);\n cepApi\n .get(`${value}/json`)\n .then((res) => {\n const data = res.data;\n\n if (data.cep) {\n form.setFieldsValue({\n street: data.logradouro,\n neighborhood: data.bairro,\n city: data.localidade,\n state: data.uf,\n });\n } else {\n throw Error();\n }\n })\n .catch(() => {\n form.setFieldsValue({\n street: undefined,\n neighborhood: undefined,\n city: undefined,\n state: undefined,\n number: undefined,\n });\n })\n .finally(() => {\n onFieldsChange();\n setLoading(false);\n });\n }\n };\n\n const onFieldsChange = () => {\n form\n .validateFields()\n .then(() => setIsValidAddressForm(true))\n .catch(() => setIsValidAddressForm(false));\n };\n\n return (\n <>\n \n \n \n \n getAddressSuggestion(value?.value)}\n >\n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default AddressForm;\n","import React from \"react\";\nimport { BiErrorAlt } from \"react-icons/bi\";\nimport { Col, Row, Typography } from \"antd\";\nimport Button from \"../../../../../../Button\";\n\ninterface IErrorScreenProps {\n setCurrentStep: (currentStep: number) => void;\n}\n\nexport const ErrorScreen: React.FC = ({\n setCurrentStep,\n}) => {\n const callBack = (cb: Function) => {\n setCurrentStep(0);\n setTimeout(() => cb(), 200);\n };\n\n return (\n \n \n \n \n\n \n \n Ocorreu um erro durante a confirmação do pagamento.\n \n \n\n {\n callBack(() => {});\n }}\n >\n Escolher outra forma de pagamento\n \n \n );\n};\n","import React, { useEffect } from \"react\";\nimport { MdCheck } from \"react-icons/md\";\nimport { Col, Row, Typography } from \"antd\";\nimport { Plan } from \"../../../../../../../constants/plans\";\nimport { useAuth } from \"../../../../../../../contexts/AuthContext\";\nimport { useBroker } from \"../../../../../../../contexts/BrokerContext\";\n\ninterface ConfirmedScreenProps {\n plan?: Plan;\n}\n\nexport const ConfirmedScreen: React.FC = ({ plan }) => {\n const {\n user: { token },\n } = useAuth();\n const { getIntegrationStatus } = useBroker();\n\n useEffect(() => {\n getIntegrationStatus({ token, hideLoading: true });\n }, [getIntegrationStatus, token]);\n\n return (\n \n \n \n \n \n \n {plan\n ? `Pagamento confirmado com sucesso! Parabéns você contratou o plano '\n ${plan?.title.toUpperCase()}'`\n : \"Pagamento realizado com sucesso!\"}\n \n \n \n );\n};\n","import React, { Dispatch, SetStateAction } from \"react\";\nimport { Plan } from \"../../../../../constants/plans\";\nimport { ErrorScreen } from \"./components/ErrorScreen\";\nimport { ConfirmedScreen } from \"./components/ConfirmScreen\";\n\ninterface IResultScreen {\n plan?: Plan;\n setCurrentStep: Dispatch>;\n status?: string;\n}\n\nexport const ResultScreen: React.FC = ({\n plan,\n setCurrentStep,\n status = \"pending\",\n}) => {\n return (\n <>\n {status === \"active\" ? (\n \n ) : (\n \n )}\n \n );\n};\n","import React from \"react\";\nimport { Col, Row, Typography } from \"antd\";\nimport { BsClockHistory } from \"react-icons/bs\";\n\ninterface IPendingScreenProps {}\n\nexport const PendingScreen: React.FC = () => {\n const getMessage = () =>\n \"Aguardando confirmação de pagamento no cartão, assim que confirmado o plano será ativado automaticamente.\";\n\n return (\n \n \n \n \n\n \n \n {getMessage()}\n \n \n \n );\n};\n","import { Form, message, Spin } from \"antd\";\nimport React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useState,\n useMemo,\n} from \"react\";\nimport { Container } from \"./styles\";\nimport Footer from \"./components/Footer\";\nimport { CardList } from \"../../CardList\";\nimport { CardForm } from \"./components/CardForm\";\nimport AddressForm from \"./components/AddressForm\";\nimport HandleTag from \"../../../services/handleTag\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport { ResultScreen } from \"./components/ResultScreen\";\nimport { apiPayment } from \"../../../services/apiPayment\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { errorMessage, removeSpecialCharacters } from \"../../../utils\";\nimport { PendingScreen } from \"./components/ResultScreen/components/PendingScreen\";\nimport {\n ETypePurchase,\n Plan as IPlan,\n UserPlan,\n UserPlansTypes,\n} from \"../../../constants/plans\";\n\ninterface ICreditCardStepProps {\n status: string;\n initialized: boolean;\n handleBack?: () => void;\n typePurchase: ETypePurchase;\n handleSuccess?: (res: any) => void;\n setInitialized: Dispatch>;\n handleClosableModal: Dispatch>;\n plan?: IPlan | UserPlan;\n darfData?: any;\n getCardCurrentStep?: (value: number) => void;\n handleIdBack?: (event: any) => void;\n customInstallments?: number;\n backToRoot?: () => void;\n cupom?: any;\n closeMainModal?: () => void;\n changeCardAction?: boolean;\n addInfo?: Record;\n reCaptchaToken?: string;\n setReCaptchaToken: Dispatch>;\n}\n\nexport const CreditCardStep: React.FC = ({\n plan,\n handleBack,\n handleClosableModal,\n typePurchase,\n darfData,\n handleSuccess,\n handleIdBack,\n customInstallments,\n backToRoot,\n cupom,\n closeMainModal,\n changeCardAction,\n addInfo,\n reCaptchaToken,\n setReCaptchaToken,\n}) => {\n const [cardForm] = Form.useForm();\n const [addressForm] = Form.useForm();\n\n const { user } = useAuth();\n const [cvc, setCvc] = useState(\"\");\n const [name, setName] = useState(\"\");\n const [status] = useState(\"\");\n const [number, setNumber] = useState(\"\");\n const [expiry, setExpiry] = useState(\"\");\n const [focused, setFocused] = useState();\n const [holderDocument, setHolderDocument] = useState(\"\");\n const [installments, setInstallments] = useState(1);\n const [selectedCard, setSelectedCard] = useState();\n\n const [loading, setLoading] = useState(false);\n const [currentStep, setCurrentStep] = useState(1);\n // const [isValidCard, setIsValidCard] = useState(false);\n const [isValidCardForm, setIsValidCardForm] = useState(false);\n const [isValidAddressForm, setIsValidAddressForm] = useState(false);\n\n const isPlan = useMemo(() => {\n return UserPlansTypes.includes(plan?.type || \"\");\n }, [plan]);\n\n const value = useMemo(() => {\n if (isPlan) {\n var isMonth = (plan as any).interval === \"Mensal\";\n\n var planPrice =\n (!isMonth\n ? ((addInfo?.hasDiscount ? plan?.price : plan?.originalPrice) || 0) *\n 12\n : plan?.price) || 0;\n\n if (cupom?.type === \"absolute\") {\n planPrice = planPrice - Number(cupom?.discountValue);\n } else if (cupom?.type === \"percent\") {\n planPrice = planPrice - planPrice * Number(cupom?.discountValue / 100);\n }\n\n planPrice = Number(planPrice.toFixed(2));\n\n return planPrice && isMonth ? planPrice * 12 : planPrice;\n }\n return darfData?.impostoTotalFinal;\n }, [\n darfData?.impostoTotalFinal,\n plan,\n isPlan,\n cupom?.discountValue,\n cupom?.type,\n addInfo?.hasDiscount,\n ]);\n\n const { currentPage } = useBroker();\n\n const getCardInfo = () => {\n const addressInfo = addressForm.getFieldsValue();\n const monthExp = expiry?.split(\"/\")?.[0];\n const monthYear = expiry?.split(\"/\")?.[1];\n\n let cardInfo: any = {};\n\n const cardId = selectedCard?.id;\n\n if (cardId) {\n cardInfo.card_id = cardId;\n } else {\n cardInfo = {\n line_1: `${addressInfo?.neighborhood} - ${addressInfo?.street} - ${addressInfo?.number}`,\n zip_code: addressInfo?.cep?.replace(\"-\", \"\"),\n city: addressInfo?.city,\n state: addressInfo?.state.toUpperCase(),\n holder_name: removeSpecialCharacters(name),\n number,\n exp_month: monthExp,\n exp_year: monthYear,\n holderDocument,\n cvv: cvc,\n };\n }\n\n return cardInfo;\n };\n\n const getCustomerInfo = () => {\n let customerInfo;\n if (selectedCard?.customer_id) {\n customerInfo = { customer_id: selectedCard?.customer_id };\n } else {\n customerInfo = {\n name: name ?? user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n phone:\n user?.user?.cellphone?.replace(/[()_-]/g, \"\").replace(/\\s/g, \"\") ||\n \"\",\n };\n }\n\n return customerInfo;\n };\n\n useEffect(() => {\n if (currentStep < 0) {\n backToRoot && backToRoot();\n }\n }, [currentStep, backToRoot]);\n\n const createPlanMainVelotax = () => {\n let cardInfo: any = getCardInfo();\n let clientInfo: any = getCustomerInfo();\n\n const url = \"/user-plan/create\";\n\n const isMei = [\"MEI_PREMIUM\", \"MEI_PREMIUM_MONTH\"].includes(typePurchase);\n\n setLoading(true);\n handleClosableModal(false);\n\n apiPayment\n .post(\n url,\n {\n ...darfData,\n type: plan?.type,\n from: \"VELOTAX\",\n cupomCode: cupom?.cupomCode.toUpperCase(),\n paymentForm: \"credit_card\",\n installments: 12,\n cardInfo,\n clientInfo,\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n \"x-api-provider\": isMei ? \"mei\" : \"crypto-velotax\",\n },\n }\n )\n .then((res: any) => {\n if (res.data.paymentId || res.data.paymentRecurringId) {\n handleSuccess && handleSuccess(res.data);\n if (cupom?.cupomCode.toUpperCase() === \"VELOTAXER20\") {\n HandleTag(\"171\");\n }\n }\n // setCurrentStep(4);\n })\n .catch((err) => {\n message.error(err.response?.data?.message);\n })\n .finally(() => {\n handleClosableModal(true);\n });\n };\n\n const createUniquePayment = () => {\n let cardInfo: any = getCardInfo();\n let clientInfo: any = getCustomerInfo();\n\n let url = \"/darf\";\n\n setLoading(true);\n handleClosableModal(false);\n\n (currentPage?.api || apiPayment)\n .post(\n url,\n {\n ...darfData,\n paymentForm: \"credit_card\",\n paymentInfo: {\n installments: installments,\n cardInfo: cardInfo,\n clientInfo: clientInfo,\n },\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n },\n }\n )\n .then((res: any) => {\n if (handleIdBack) handleIdBack(res?.data);\n setCurrentStep(3);\n })\n .catch((err) => {\n message.error(err.response?.data?.message || errorMessage);\n })\n .finally(() => {\n handleClosableModal(true);\n });\n };\n\n const changeCardService = async () => {\n let cardInfo: any = getCardInfo();\n\n setLoading(true);\n\n apiPayment\n .post(`/user-plan/change_signature_card`, {\n card: cardInfo,\n })\n .then((ret) => {\n message.success(\"Cartão atualizado com sucesso\");\n })\n .catch((err) => {\n message.error(\"Ocorreu um erro ao alterar cartão\");\n })\n .finally(() => {\n setLoading(false);\n closeMainModal && closeMainModal();\n });\n };\n\n const handleNextStep = () => {\n if (getConditionToDisable()) {\n if (currentStep === 1) cardForm.validateFields();\n if (currentStep === 2) addressForm.validateFields();\n message.warning(\"Preencha corretamente o formulário\");\n return;\n }\n\n if (currentStep === 1) {\n if (!darfData?.impostoTotalFinal) {\n HandleTag(\"79\");\n }\n setCurrentStep(2);\n } else if (currentStep === 2 || currentStep === 0) {\n if (changeCardAction) {\n changeCardService();\n } else if (typePurchase === \"UNIQUE\") {\n createUniquePayment();\n } else if (UserPlansTypes.includes(typePurchase)) {\n createPlanMainVelotax();\n }\n }\n };\n\n const getConditionToDisable = () => {\n if (currentStep === 0 && !selectedCard?.id) return true;\n if (currentStep === 1 && !isValidCardForm) return true;\n if (currentStep === 2 && !isValidAddressForm) return true;\n return false;\n };\n\n const changeInstallments = (value: any) => {\n setInstallments(value);\n };\n\n return (\n \n {currentStep === 0 && (\n <>\n {\n setSelectedCard(card);\n\n if (!card) setCurrentStep(1);\n }}\n />\n \n )}\n\n \n {currentStep === 1 && (\n <>\n {/* */}\n\n \n \n )}\n\n {currentStep === 2 && (\n \n )}\n\n {currentStep === 3 && (\n \n )}\n\n {currentStep === 4 && }\n \n \n \n );\n};\n\nexport default CreditCardStep;\n","import { Button } from \"antd\";\nimport styled from \"styled-components\";\n\nexport const PopoverItem = styled.div`\n display: flex;\n border: 1px solid #eaecee;\n width: 180px;\n`;\nexport const PopoverLabel = styled.div`\n background-color: #f4f6f8;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 3rem;\n`;\nexport const PopoverItemValue = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-grow: 1;\n`;\n\nexport const CardButton = styled(Button)`\n min-height: 56px !important;\n display: flex;\n align-items: center;\n height: auto !important;\n justify-content: space-between;\n font-size: 20px !important;\n font-weight: 600 !important;\n font-family: \"Consolas\", \"Courier\", monospace !important;\n color: var(--velotax-font-color-dark) !important;\n border-radius: 8px !important;\n border: 1px solid #e8e8e8 !important;\n box-shadow: 0px 4px 8px #e8e8e8 !important;\n :after {\n display: none;\n }\n .rccs {\n width: 80px;\n margin: -2px 0 0;\n .rccs__card {\n width: 72px;\n height: 50px;\n margin: 0;\n\n .rccs__card--front {\n padding: 8px;\n box-shadow: none;\n border-radius: 4px;\n background: transparent;\n\n .rccs__card__background,\n .rccs__number,\n .rccs__expiry,\n .rccs__name,\n .rccs__chip {\n display: none;\n }\n\n .rccs__issuer {\n top: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n position: relative;\n background-position: center center;\n }\n }\n .rccs__card--back {\n display: none;\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n font-size: 14px !important;\n padding: 6px 16px;\n .rccs {\n width: 48px;\n margin: -2px 0 0 -8px;\n\n .rccs__card {\n width: 64px;\n height: 48px;\n }\n }\n }\n\n .rccs__card--visa .rccs__issuer {\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KCjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIgogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0iTGF5ZXJfMSIKICAgeD0iMHB4IgogICB5PSIwcHgiCiAgIHdpZHRoPSIxMDAwLjA0NiIKICAgaGVpZ2h0PSIzMjMuNjUzMDIiCiAgIHZpZXdCb3g9IjAgMCAxMDAwLjA0NiAzMjMuNjUzIgogICBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNTguMzgxIDE2MS4xNTQiCiAgIHhtbDpzcGFjZT0icHJlc2VydmUiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTEgcjEzNzI1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJWaXNhXzIwMDYuc3ZnIj48bWV0YWRhdGEKICAgaWQ9Im1ldGFkYXRhMjMiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PGRlZnMKICAgaWQ9ImRlZnMyMSI+CgkKCQoJCgkKCQoJCgkKPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgcGFnZWNvbG9yPSIjZmZmZmZmIgogICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgYm9yZGVyb3BhY2l0eT0iMSIKICAgb2JqZWN0dG9sZXJhbmNlPSIxMCIKICAgZ3JpZHRvbGVyYW5jZT0iMTAiCiAgIGd1aWRldG9sZXJhbmNlPSIxMCIKICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTM2NiIKICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNzA1IgogICBpZD0ibmFtZWR2aWV3MTkiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iMC4zNTM1NTMzOSIKICAgaW5rc2NhcGU6Y3g9IjM0LjY5MDg5NyIKICAgaW5rc2NhcGU6Y3k9IjEzMS4xNTQ4MyIKICAgaW5rc2NhcGU6d2luZG93LXg9Ii04IgogICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9IkxheWVyXzEiIC8+CjxnCiAgIGlkPSJnNDE1OCIKICAgdHJhbnNmb3JtPSJtYXRyaXgoNC40Mjk5NjMxLDAsMCw0LjQyOTk2MzEsLTgxLjE2NTc4MywtMTA1LjA0NzgzKSI+PHBvbHlnb24KICAgICBwb2ludHM9IjExNi4xNDUsOTUuNzE5IDk3Ljg1OCw5NS43MTkgMTA5LjI5NiwyNC45OTUgMTI3LjU4MiwyNC45OTUgIgogICAgIGlkPSJwb2x5Z29uOSIKICAgICBzdHlsZT0iZmlsbDojMDA1NzlmIiAvPjxwYXRoCiAgICAgZD0ibSAxODIuNDM3LDI2LjcyNCBjIC0zLjYwNywtMS40MzEgLTkuMzI4LC0zLjAxMSAtMTYuNDAyLC0zLjAxMSAtMTguMDU5LDAgLTMwLjc3Niw5LjYzIC0zMC44NTQsMjMuMzk4IC0wLjE1LDEwLjE1OCA5LjEwNSwxNS44IDE2LjAyNywxOS4xODcgNy4wNzUsMy40NjEgOS40OCw1LjcyIDkuNDgsOC44MDUgLTAuMDcyLDQuNzM4IC01LjcxNyw2LjkyMiAtMTAuOTgyLDYuOTIyIC03LjMwMSwwIC0xMS4yMTMsLTEuMTI2IC0xNy4xNTgsLTMuNzYyIGwgLTIuNDA4LC0xLjEzIC0yLjU1OSwxNS44NzYgYyA0LjI4OSwxLjk1NCAxMi4xOTEsMy42ODggMjAuMzk1LDMuNzY0IDE5LjE4OCwwIDMxLjY4LC05LjQ4MSAzMS44MjgsLTI0LjE1MyAwLjA3MywtOC4wNTEgLTQuODE0LC0xNC4yMiAtMTUuMzUsLTE5LjI2MSAtNi4zOTYsLTMuMjM2IC0xMC4zMTMsLTUuNDE4IC0xMC4zMTMsLTguNzI5IDAuMDc1LC0zLjAxIDMuMzEzLC02LjA5MyAxMC41MzMsLTYuMDkzIDUuOTQ1LC0wLjE1MSAxMC4zMTMsMS4yNzggMTMuNjIyLDIuNzA4IGwgMS42NTQsMC43NTEgMi40ODcsLTE1LjI3MiAwLDAgeiIKICAgICBpZD0icGF0aDExIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6IzAwNTc5ZiIgLz48cGF0aAogICAgIGQ9Im0gMjA2Ljc0Miw3MC42NjQgYyAxLjUwNiwtNC4wNjMgNy4zMDEsLTE5Ljc4OCA3LjMwMSwtMTkuNzg4IC0wLjA3NiwwLjE1MSAxLjUwMywtNC4xMzggMi40MDYsLTYuNzcxIGwgMS4yNzgsNi4wOTQgYyAwLDAgMy40NjMsMTYuOTI5IDQuMjE1LDIwLjQ2NSAtMi44NTgsMCAtMTEuNTg4LDAgLTE1LjIsMCBsIDAsMCB6IG0gMjIuNTczLC00NS42NjkgLTE0LjE0NSwwIGMgLTQuMzYyLDAgLTcuNjc2LDEuMjc4IC05LjU1OCw1Ljg2OCBsIC0yNy4xNjMsNjQuODU1IDE5LjE4OCwwIGMgMCwwIDMuMTU5LC04LjcyOSAzLjgzOCwtMTAuNjA5IDIuMTA1LDAgMjAuNzcxLDAgMjMuNDc5LDAgMC41MjUsMi40ODMgMi4xODIsMTAuNjA5IDIuMTgyLDEwLjYwOSBsIDE2LjkzMiwwIC0xNC43NTMsLTcwLjcyMyAwLDAgeiIKICAgICBpZD0icGF0aDEzIgogICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiCiAgICAgc3R5bGU9ImZpbGw6IzAwNTc5ZiIgLz48cGF0aAogICAgIGQ9Ik0gODIuNTg0LDI0Ljk5NSA2NC42NzUsNzMuMjIyIDYyLjcxOCw2My40NDEgQyA1OS40MDcsNTIuMTU1IDQ5LjAyMywzOS44OTMgMzcuNDM1LDMzLjc5NiBsIDE2LjQwNCw2MS44NDggMTkuMzM4LDAgMjguNzQ0LC03MC42NDkgLTE5LjMzNywwIDAsMCB6IgogICAgIGlkPSJwYXRoMTUiCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojMDA1NzlmIiAvPjxwYXRoCiAgICAgZD0ibSA0OC4wNDUsMjQuOTk1IC0yOS40MjIsMCAtMC4zMDEsMS40MjkgYyAyMi45NTEsNS44NjkgMzguMTUxLDIwLjAxNiA0NC4zOTYsMzcuMDIgTCA1Ni4zMjIsMzAuOTQgYyAtMS4wNTMsLTQuNTE3IC00LjI4OSwtNS43OTYgLTguMjc3LC01Ljk0NSBsIDAsMCB6IgogICAgIGlkPSJwYXRoMTciCiAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIKICAgICBzdHlsZT0iZmlsbDojZmFhNjFhIiAvPjwvZz4KPC9zdmc+);\n }\n\n .rccs__card--visaelectron .rccs__issuer {\n background-image: url(data:image/png;base64,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);\n }\n\n .rccs__card--hipercard .rccs__issuer {\n background-image: url(data:image/png;base64,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);\n }\n`;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.7411 52.7731C74.0101 52.21 73.0831 51.9611 72.1654 52.0825L67.9532 52.6393C66.5627 52.8228 65.2188 52.0483 64.6838 50.751L63.0008 46.6817C62.6866 45.9196 62.0831 45.316 61.3209 45.0017L57.2519 43.3187C55.9547 42.7805 55.1801 41.4397 55.3636 40.049L55.9391 35.6749C56.048 34.8598 55.8271 34.0354 55.3263 33.3821L52.6416 29.8853C51.7861 28.7747 51.7861 27.2253 52.6416 26.1116L55.3263 22.6148C55.824 21.9646 56.0449 21.1402 55.9391 20.3251L55.3636 15.951C55.1801 14.5604 55.9547 13.2195 57.2519 12.6813L61.3209 11.0014C62.0799 10.684 62.6835 10.0805 63.0008 9.32141L64.6806 5.25218C65.2188 3.9549 66.5595 3.18024 67.9501 3.36379L72.3239 3.93933C73.1391 4.04512 73.9634 3.82423 74.6167 3.32646L78.1133 0.641649C79.2238 -0.213883 80.7731 -0.213883 81.8868 0.641649L85.3834 3.32646C86.0336 3.82423 86.8579 4.04512 87.673 3.93312L92.0468 3.35757C93.4373 3.17402 94.7812 3.94867 95.3163 5.24597L96.9993 9.3152C97.3135 10.0774 97.917 10.6809 98.6792 10.9951L102.748 12.6782C104.045 13.2165 104.82 14.5573 104.636 15.9479L104.061 20.3219C103.952 21.1371 104.173 21.9615 104.674 22.6148L107.358 26.1116C108.214 27.2223 108.214 28.7715 107.358 29.8853L104.773 33.2546C104.21 33.9856 103.961 34.9128 104.083 35.8305L104.636 40.0459C104.82 41.4365 104.045 42.7805 102.748 43.3156L98.6792 44.9987C97.917 45.3129 97.3135 45.9164 96.9993 46.6786L95.3163 50.7478C94.7781 52.0451 93.4373 52.8198 92.0468 52.6362L87.673 52.0607C86.8579 51.9518 86.0336 52.1727 85.3802 52.6735L81.8836 55.3584C80.7731 56.2139 79.2238 56.2139 78.1101 55.3584L74.7411 52.7731ZM101 28C101 39.598 91.598 49 80 49C68.402 49 59 39.598 59 28C59 16.402 68.402 7 80 7C91.598 7 101 16.402 101 28Z\",\n fill: \"#272A30\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M98 28C98 37.9411 89.9411 46 80 46C70.0589 46 62 37.9411 62 28C62 18.0589 70.0589 10 80 10C89.9411 10 98 18.0589 98 28ZM82.6354 21.7735L74.3639 39H78.7189L87 21.6813V18H73V21.63H82.6354V21.7735Z\",\n fill: \"#272A30\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.7056 70.0938C31.646 69.8864 31.5621 69.7031 31.4542 69.544C31.3462 69.3821 31.2141 69.2457 31.0579 69.1349C30.9045 69.0213 30.7283 68.9347 30.5295 68.875C30.3335 68.8153 30.1161 68.7855 29.8775 68.7855C29.4315 68.7855 29.0394 68.8963 28.7013 69.1179C28.3661 69.3395 28.1048 69.6619 27.9173 70.0852C27.7298 70.5057 27.636 71.0199 27.636 71.6278C27.636 72.2358 27.7283 72.7528 27.913 73.179C28.0977 73.6051 28.359 73.9304 28.6971 74.1548C29.0352 74.3764 29.4343 74.4872 29.8945 74.4872C30.3121 74.4872 30.6687 74.4134 30.9641 74.2656C31.2624 74.1151 31.4897 73.9034 31.646 73.6307C31.805 73.358 31.8846 73.0355 31.8846 72.6634L32.2596 72.7188H30.0096V71.3295H33.6616V72.429C33.6616 73.196 33.4996 73.8551 33.1758 74.4062C32.8519 74.9545 32.4059 75.3778 31.8377 75.6761C31.2695 75.9716 30.619 76.1193 29.886 76.1193C29.0678 76.1193 28.3491 75.9389 27.7298 75.5781C27.1104 75.2145 26.6275 74.6989 26.2809 74.0312C25.9371 73.3608 25.7653 72.5653 25.7653 71.6449C25.7653 70.9375 25.8675 70.3068 26.0721 69.7528C26.2795 69.196 26.5692 68.7244 26.9414 68.3381C27.3136 67.9517 27.7468 67.6577 28.2411 67.456C28.7354 67.2543 29.271 67.1534 29.8477 67.1534C30.342 67.1534 30.8022 67.2259 31.2283 67.3707C31.6545 67.5128 32.0323 67.7145 32.3619 67.9759C32.6942 68.2372 32.9656 68.5483 33.1758 68.9091C33.386 69.267 33.521 69.6619 33.5806 70.0938H31.7056ZM36.88 76.1236C36.4624 76.1236 36.0902 76.0511 35.7635 75.9062C35.4368 75.7585 35.1783 75.5412 34.9879 75.2543C34.8004 74.9645 34.7067 74.6037 34.7067 74.1719C34.7067 73.8082 34.7734 73.5028 34.907 73.2557C35.0405 73.0085 35.2223 72.8097 35.4524 72.6591C35.6825 72.5085 35.9439 72.3949 36.2365 72.3182C36.532 72.2415 36.8416 72.1875 37.1655 72.1562C37.5462 72.1165 37.853 72.0795 38.0859 72.0455C38.3189 72.0085 38.4879 71.9545 38.593 71.8835C38.6982 71.8125 38.7507 71.7074 38.7507 71.5682V71.5426C38.7507 71.2727 38.6655 71.0639 38.495 70.9162C38.3274 70.7685 38.0888 70.6946 37.7791 70.6946C37.4524 70.6946 37.1925 70.767 36.9993 70.9119C36.8061 71.054 36.6783 71.233 36.6158 71.4489L34.9368 71.3125C35.022 70.9148 35.1896 70.571 35.4396 70.2812C35.6896 69.9886 36.0121 69.7642 36.407 69.608C36.8047 69.4489 37.2649 69.3693 37.7876 69.3693C38.1513 69.3693 38.4993 69.4119 38.8317 69.4972C39.1669 69.5824 39.4638 69.7145 39.7223 69.8935C39.9837 70.0724 40.1896 70.3026 40.3402 70.5838C40.4908 70.8622 40.5661 71.196 40.5661 71.5852V76H38.8445V75.0923H38.7933C38.6882 75.2969 38.5476 75.4773 38.3714 75.6335C38.1953 75.7869 37.9837 75.9077 37.7365 75.9957C37.4893 76.081 37.2038 76.1236 36.88 76.1236ZM37.3999 74.8707C37.6669 74.8707 37.9027 74.8182 38.1072 74.7131C38.3118 74.6051 38.4723 74.4602 38.5888 74.2784C38.7053 74.0966 38.7635 73.8906 38.7635 73.6605V72.9659C38.7067 73.0028 38.6286 73.0369 38.5291 73.0682C38.4325 73.0966 38.3232 73.1236 38.201 73.1491C38.0788 73.1719 37.9567 73.1932 37.8345 73.2131C37.7124 73.2301 37.6016 73.2457 37.5021 73.2599C37.2891 73.2912 37.103 73.3409 36.9439 73.4091C36.7848 73.4773 36.6612 73.5696 36.5732 73.6861C36.4851 73.7997 36.4411 73.9418 36.4411 74.1122C36.4411 74.3594 36.5305 74.5483 36.7095 74.679C36.8913 74.8068 37.1214 74.8707 37.3999 74.8707ZM41.9744 76V69.4545H43.7344V70.5966H43.8026C43.9219 70.1903 44.1222 69.8835 44.4034 69.6761C44.6847 69.4659 45.0085 69.3608 45.375 69.3608C45.4659 69.3608 45.5639 69.3665 45.669 69.3778C45.7741 69.3892 45.8665 69.4048 45.946 69.4247V71.0355C45.8608 71.0099 45.7429 70.9872 45.5923 70.9673C45.4418 70.9474 45.304 70.9375 45.179 70.9375C44.9119 70.9375 44.6733 70.9957 44.4631 71.1122C44.2557 71.2259 44.0909 71.3849 43.9688 71.5895C43.8494 71.794 43.7898 72.0298 43.7898 72.2969V76H41.9744ZM48.5636 76.1236C48.146 76.1236 47.7738 76.0511 47.4471 75.9062C47.1204 75.7585 46.8619 75.5412 46.6715 75.2543C46.484 74.9645 46.3903 74.6037 46.3903 74.1719C46.3903 73.8082 46.457 73.5028 46.5906 73.2557C46.7241 73.0085 46.9059 72.8097 47.136 72.6591C47.3661 72.5085 47.6275 72.3949 47.9201 72.3182C48.2156 72.2415 48.5252 72.1875 48.8491 72.1562C49.2298 72.1165 49.5366 72.0795 49.7695 72.0455C50.0025 72.0085 50.1715 71.9545 50.2766 71.8835C50.3817 71.8125 50.4343 71.7074 50.4343 71.5682V71.5426C50.4343 71.2727 50.3491 71.0639 50.1786 70.9162C50.011 70.7685 49.7724 70.6946 49.4627 70.6946C49.136 70.6946 48.8761 70.767 48.6829 70.9119C48.4897 71.054 48.3619 71.233 48.2994 71.4489L46.6204 71.3125C46.7056 70.9148 46.8732 70.571 47.1232 70.2812C47.3732 69.9886 47.6957 69.7642 48.0906 69.608C48.4883 69.4489 48.9485 69.3693 49.4712 69.3693C49.8349 69.3693 50.1829 69.4119 50.5153 69.4972C50.8505 69.5824 51.1474 69.7145 51.4059 69.8935C51.6673 70.0724 51.8732 70.3026 52.0238 70.5838C52.1744 70.8622 52.2496 71.196 52.2496 71.5852V76H50.5281V75.0923H50.4769C50.3718 75.2969 50.2312 75.4773 50.055 75.6335C49.8789 75.7869 49.6673 75.9077 49.4201 75.9957C49.1729 76.081 48.8874 76.1236 48.5636 76.1236ZM49.0835 74.8707C49.3505 74.8707 49.5863 74.8182 49.7908 74.7131C49.9954 74.6051 50.1559 74.4602 50.2724 74.2784C50.3888 74.0966 50.4471 73.8906 50.4471 73.6605V72.9659C50.3903 73.0028 50.3121 73.0369 50.2127 73.0682C50.1161 73.0966 50.0067 73.1236 49.8846 73.1491C49.7624 73.1719 49.6403 73.1932 49.5181 73.2131C49.396 73.2301 49.2852 73.2457 49.1857 73.2599C48.9727 73.2912 48.7866 73.3409 48.6275 73.4091C48.4684 73.4773 48.3448 73.5696 48.2567 73.6861C48.1687 73.7997 48.1246 73.9418 48.1246 74.1122C48.1246 74.3594 48.2141 74.5483 48.3931 74.679C48.5749 74.8068 48.805 74.8707 49.0835 74.8707ZM55.4734 72.2159V76H53.658V69.4545H55.3881V70.6094H55.4648C55.6097 70.2287 55.8526 69.9276 56.1935 69.706C56.5344 69.4815 56.9478 69.3693 57.4336 69.3693C57.8881 69.3693 58.2844 69.4688 58.6225 69.6676C58.9606 69.8665 59.2234 70.1506 59.4109 70.5199C59.5984 70.8864 59.6921 71.3239 59.6921 71.8324V76H57.8768V72.1562C57.8796 71.7557 57.7773 71.4432 57.57 71.2188C57.3626 70.9915 57.0771 70.8778 56.7134 70.8778C56.4691 70.8778 56.2532 70.9304 56.0657 71.0355C55.881 71.1406 55.7362 71.294 55.631 71.4957C55.5288 71.6946 55.4762 71.9347 55.4734 72.2159ZM64.6044 69.4545V70.8182H60.6626V69.4545H64.6044ZM61.5575 67.8864H63.3729V73.9886C63.3729 74.1562 63.3984 74.2869 63.4496 74.3807C63.5007 74.4716 63.5717 74.5355 63.6626 74.5724C63.7564 74.6094 63.8643 74.6278 63.9865 74.6278C64.0717 74.6278 64.157 74.6207 64.2422 74.6065C64.3274 74.5895 64.3928 74.5767 64.4382 74.5682L64.7237 75.919C64.6328 75.9474 64.505 75.9801 64.3402 76.017C64.1754 76.0568 63.9751 76.081 63.7393 76.0895C63.3018 76.1065 62.9183 76.0483 62.5888 75.9148C62.2621 75.7812 62.0078 75.5739 61.826 75.2926C61.6442 75.0114 61.5547 74.6562 61.5575 74.2273V67.8864ZM65.7869 76V69.4545H67.6023V76H65.7869ZM66.6989 68.6108C66.429 68.6108 66.1974 68.5213 66.0043 68.3423C65.8139 68.1605 65.7188 67.9432 65.7188 67.6903C65.7188 67.4403 65.8139 67.2259 66.0043 67.0469C66.1974 66.8651 66.429 66.7741 66.6989 66.7741C66.9688 66.7741 67.1989 66.8651 67.3892 67.0469C67.5824 67.2259 67.679 67.4403 67.679 67.6903C67.679 67.9432 67.5824 68.1605 67.3892 68.3423C67.1989 68.5213 66.9688 68.6108 66.6989 68.6108ZM70.9229 76.1236C70.5053 76.1236 70.1332 76.0511 69.8065 75.9062C69.4798 75.7585 69.2212 75.5412 69.0309 75.2543C68.8434 74.9645 68.7496 74.6037 68.7496 74.1719C68.7496 73.8082 68.8164 73.5028 68.9499 73.2557C69.0835 73.0085 69.2653 72.8097 69.4954 72.6591C69.7255 72.5085 69.9869 72.3949 70.2795 72.3182C70.5749 72.2415 70.8846 72.1875 71.2085 72.1562C71.5891 72.1165 71.896 72.0795 72.1289 72.0455C72.3619 72.0085 72.5309 71.9545 72.636 71.8835C72.7411 71.8125 72.7937 71.7074 72.7937 71.5682V71.5426C72.7937 71.2727 72.7085 71.0639 72.538 70.9162C72.3704 70.7685 72.1317 70.6946 71.8221 70.6946C71.4954 70.6946 71.2354 70.767 71.0423 70.9119C70.8491 71.054 70.7212 71.233 70.6587 71.4489L68.9798 71.3125C69.065 70.9148 69.2326 70.571 69.4826 70.2812C69.7326 69.9886 70.055 69.7642 70.4499 69.608C70.8477 69.4489 71.3079 69.3693 71.8306 69.3693C72.1942 69.3693 72.5423 69.4119 72.8746 69.4972C73.2099 69.5824 73.5067 69.7145 73.7653 69.8935C74.0266 70.0724 74.2326 70.3026 74.3832 70.5838C74.5337 70.8622 74.609 71.196 74.609 71.5852V76H72.8874V75.0923H72.8363C72.7312 75.2969 72.5906 75.4773 72.4144 75.6335C72.2383 75.7869 72.0266 75.9077 71.7795 75.9957C71.5323 76.081 71.2468 76.1236 70.9229 76.1236ZM71.4428 74.8707C71.7099 74.8707 71.9457 74.8182 72.1502 74.7131C72.3548 74.6051 72.5153 74.4602 72.6317 74.2784C72.7482 74.0966 72.8065 73.8906 72.8065 73.6605V72.9659C72.7496 73.0028 72.6715 73.0369 72.5721 73.0682C72.4755 73.0966 72.3661 73.1236 72.244 73.1491C72.1218 73.1719 71.9996 73.1932 71.8775 73.2131C71.7553 73.2301 71.6445 73.2457 71.5451 73.2599C71.332 73.2912 71.146 73.3409 70.9869 73.4091C70.8278 73.4773 70.7042 73.5696 70.6161 73.6861C70.5281 73.7997 70.484 73.9418 70.484 74.1122C70.484 74.3594 70.5735 74.5483 70.7525 74.679C70.9343 74.8068 71.1644 74.8707 71.4428 74.8707ZM78.7947 78.4545V69.4545H80.5845V70.554H80.6655C80.745 70.3778 80.8601 70.1989 81.0107 70.017C81.1641 69.8324 81.3629 69.679 81.6072 69.5568C81.8544 69.4318 82.1612 69.3693 82.5277 69.3693C83.005 69.3693 83.4453 69.4943 83.8487 69.7443C84.2521 69.9915 84.5746 70.3651 84.8161 70.8651C85.0575 71.3622 85.1783 71.9858 85.1783 72.7358C85.1783 73.4659 85.0604 74.0824 84.8246 74.5852C84.5916 75.0852 84.2734 75.4645 83.87 75.723C83.4695 75.9787 83.0206 76.1065 82.5234 76.1065C82.1712 76.1065 81.8714 76.0483 81.6243 75.9318C81.38 75.8153 81.1797 75.669 81.0234 75.4929C80.8672 75.3139 80.7479 75.1335 80.6655 74.9517H80.6101V78.4545H78.7947ZM80.5717 72.7273C80.5717 73.1165 80.6257 73.456 80.7337 73.7457C80.8416 74.0355 80.9979 74.2614 81.2024 74.4233C81.407 74.5824 81.6555 74.6619 81.9482 74.6619C82.2436 74.6619 82.4936 74.581 82.6982 74.419C82.9027 74.2543 83.0575 74.027 83.1626 73.7372C83.2706 73.4446 83.3246 73.108 83.3246 72.7273C83.3246 72.3494 83.272 72.017 83.1669 71.7301C83.0618 71.4432 82.907 71.2187 82.7024 71.0568C82.4979 70.8949 82.2464 70.8139 81.9482 70.8139C81.6527 70.8139 81.4027 70.892 81.1982 71.0483C80.9964 71.2045 80.8416 71.4261 80.7337 71.7131C80.6257 72 80.5717 72.3381 80.5717 72.7273ZM89.3459 76.1278C88.6839 76.1278 88.1115 75.9872 87.6286 75.706C87.1484 75.4219 86.7777 75.027 86.5163 74.5213C86.255 74.0128 86.1243 73.4233 86.1243 72.7528C86.1243 72.0767 86.255 71.4858 86.5163 70.9801C86.7777 70.4716 87.1484 70.0767 87.6286 69.7955C88.1115 69.5114 88.6839 69.3693 89.3459 69.3693C90.0078 69.3693 90.5788 69.5114 91.0589 69.7955C91.5419 70.0767 91.9141 70.4716 92.1754 70.9801C92.4368 71.4858 92.5675 72.0767 92.5675 72.7528C92.5675 73.4233 92.4368 74.0128 92.1754 74.5213C91.9141 75.027 91.5419 75.4219 91.0589 75.706C90.5788 75.9872 90.0078 76.1278 89.3459 76.1278ZM89.3544 74.7216C89.6555 74.7216 89.907 74.6364 90.1087 74.4659C90.3104 74.2926 90.4624 74.0568 90.5646 73.7585C90.6697 73.4602 90.7223 73.1207 90.7223 72.7401C90.7223 72.3594 90.6697 72.0199 90.5646 71.7216C90.4624 71.4233 90.3104 71.1875 90.1087 71.0142C89.907 70.8409 89.6555 70.7543 89.3544 70.7543C89.0504 70.7543 88.7947 70.8409 88.5874 71.0142C88.3828 71.1875 88.228 71.4233 88.1229 71.7216C88.0206 72.0199 87.9695 72.3594 87.9695 72.7401C87.9695 73.1207 88.0206 73.4602 88.1229 73.7585C88.228 74.0568 88.3828 74.2926 88.5874 74.4659C88.7947 74.6364 89.0504 74.7216 89.3544 74.7216ZM93.7479 76V69.4545H95.5078V70.5966H95.576C95.6953 70.1903 95.8956 69.8835 96.1768 69.6761C96.4581 69.4659 96.782 69.3608 97.1484 69.3608C97.2393 69.3608 97.3374 69.3665 97.4425 69.3778C97.5476 69.3892 97.6399 69.4048 97.7195 69.4247V71.0355C97.6342 71.0099 97.5163 70.9872 97.3658 70.9673C97.2152 70.9474 97.0774 70.9375 96.9524 70.9375C96.6854 70.9375 96.4467 70.9957 96.2365 71.1122C96.0291 71.2259 95.8643 71.3849 95.7422 71.5895C95.6229 71.794 95.5632 72.0298 95.5632 72.2969V76H93.7479ZM101.763 76L105.381 68.8409V68.7812H101.167V67.2727H107.29V68.8026L103.668 76H101.763ZM113.761 76.1065C113.264 76.1065 112.814 75.9787 112.411 75.723C112.01 75.4645 111.692 75.0852 111.456 74.5852C111.223 74.0824 111.107 73.4659 111.107 72.7358C111.107 71.9858 111.227 71.3622 111.469 70.8651C111.71 70.3651 112.031 69.9915 112.432 69.7443C112.835 69.4943 113.277 69.3693 113.757 69.3693C114.124 69.3693 114.429 69.4318 114.673 69.5568C114.92 69.679 115.119 69.8324 115.27 70.017C115.423 70.1989 115.54 70.3778 115.619 70.554H115.675V67.2727H117.486V76H115.696V74.9517H115.619C115.534 75.1335 115.413 75.3139 115.257 75.4929C115.104 75.669 114.903 75.8153 114.656 75.9318C114.412 76.0483 114.114 76.1065 113.761 76.1065ZM114.337 74.6619C114.629 74.6619 114.876 74.5824 115.078 74.4233C115.283 74.2614 115.439 74.0355 115.547 73.7457C115.658 73.456 115.713 73.1165 115.713 72.7273C115.713 72.3381 115.659 72 115.551 71.7131C115.443 71.4261 115.287 71.2045 115.082 71.0483C114.878 70.892 114.629 70.8139 114.337 70.8139C114.038 70.8139 113.787 70.8949 113.582 71.0568C113.378 71.2187 113.223 71.4432 113.118 71.7301C113.013 72.017 112.96 72.3494 112.96 72.7273C112.96 73.108 113.013 73.4446 113.118 73.7372C113.226 74.027 113.381 74.2543 113.582 74.419C113.787 74.581 114.038 74.6619 114.337 74.6619ZM118.978 76V69.4545H120.794V76H118.978ZM119.89 68.6108C119.62 68.6108 119.389 68.5213 119.196 68.3423C119.005 68.1605 118.91 67.9432 118.91 67.6903C118.91 67.4403 119.005 67.2259 119.196 67.0469C119.389 66.8651 119.62 66.7741 119.89 66.7741C120.16 66.7741 120.39 66.8651 120.581 67.0469C120.774 67.2259 120.87 67.4403 120.87 67.6903C120.87 67.9432 120.774 68.1605 120.581 68.3423C120.39 68.5213 120.16 68.6108 119.89 68.6108ZM124.114 76.1236C123.697 76.1236 123.325 76.0511 122.998 75.9062C122.671 75.7585 122.413 75.5412 122.222 75.2543C122.035 74.9645 121.941 74.6037 121.941 74.1719C121.941 73.8082 122.008 73.5028 122.141 73.2557C122.275 73.0085 122.457 72.8097 122.687 72.6591C122.917 72.5085 123.178 72.3949 123.471 72.3182C123.766 72.2415 124.076 72.1875 124.4 72.1562C124.781 72.1165 125.087 72.0795 125.32 72.0455C125.553 72.0085 125.722 71.9545 125.827 71.8835C125.933 71.8125 125.985 71.7074 125.985 71.5682V71.5426C125.985 71.2727 125.9 71.0639 125.729 70.9162C125.562 70.7685 125.323 70.6946 125.013 70.6946C124.687 70.6946 124.427 70.767 124.234 70.9119C124.04 71.054 123.913 71.233 123.85 71.4489L122.171 71.3125C122.256 70.9148 122.424 70.571 122.674 70.2812C122.924 69.9886 123.246 69.7642 123.641 69.608C124.039 69.4489 124.499 69.3693 125.022 69.3693C125.386 69.3693 125.734 69.4119 126.066 69.4972C126.401 69.5824 126.698 69.7145 126.957 69.8935C127.218 70.0724 127.424 70.3026 127.575 70.5838C127.725 70.8622 127.8 71.196 127.8 71.5852V76H126.079V75.0923H126.028C125.923 75.2969 125.782 75.4773 125.606 75.6335C125.43 75.7869 125.218 75.9077 124.971 75.9957C124.724 76.081 124.438 76.1236 124.114 76.1236ZM124.634 74.8707C124.901 74.8707 125.137 74.8182 125.342 74.7131C125.546 74.6051 125.707 74.4602 125.823 74.2784C125.94 74.0966 125.998 73.8906 125.998 73.6605V72.9659C125.941 73.0028 125.863 73.0369 125.763 73.0682C125.667 73.0966 125.558 73.1236 125.435 73.1491C125.313 73.1719 125.191 73.1932 125.069 73.2131C124.947 73.2301 124.836 73.2457 124.737 73.2599C124.523 73.2912 124.337 73.3409 124.178 73.4091C124.019 73.4773 123.896 73.5696 123.808 73.6861C123.719 73.7997 123.675 73.9418 123.675 74.1122C123.675 74.3594 123.765 74.5483 123.944 74.679C124.126 74.8068 124.356 74.8707 124.634 74.8707ZM134.655 71.321L132.993 71.4233C132.964 71.2812 132.903 71.1534 132.81 71.0398C132.716 70.9233 132.592 70.831 132.439 70.7628C132.288 70.6918 132.108 70.6562 131.898 70.6562C131.616 70.6562 131.379 70.7159 131.186 70.8352C130.993 70.9517 130.896 71.108 130.896 71.304C130.896 71.4602 130.959 71.5923 131.084 71.7003C131.209 71.8082 131.423 71.8949 131.727 71.9602L132.912 72.1989C133.548 72.3295 134.023 72.5398 134.335 72.8295C134.648 73.1193 134.804 73.5 134.804 73.9716C134.804 74.4006 134.678 74.777 134.425 75.1009C134.175 75.4247 133.831 75.6776 133.393 75.8594C132.959 76.0384 132.457 76.1278 131.889 76.1278C131.023 76.1278 130.332 75.9474 129.818 75.5866C129.307 75.223 129.007 74.7287 128.919 74.1037L130.705 74.0099C130.759 74.2741 130.889 74.4759 131.097 74.6151C131.304 74.7514 131.57 74.8196 131.893 74.8196C132.212 74.8196 132.467 74.7585 132.661 74.6364C132.857 74.5114 132.956 74.3509 132.959 74.1548C132.956 73.9901 132.886 73.8551 132.75 73.75C132.614 73.642 132.403 73.5597 132.119 73.5028L130.986 73.277C130.347 73.1491 129.871 72.9276 129.558 72.6122C129.249 72.2969 129.094 71.8949 129.094 71.4062C129.094 70.9858 129.207 70.6236 129.435 70.3196C129.665 70.0156 129.987 69.7812 130.402 69.6165C130.82 69.4517 131.308 69.3693 131.868 69.3693C132.695 69.3693 133.345 69.544 133.82 69.8935C134.297 70.2429 134.575 70.7187 134.655 71.321ZM11.9062 88.9004V88.7656C11.9062 88.3086 11.9727 87.8848 12.1055 87.4941C12.2383 87.0996 12.4297 86.7578 12.6797 86.4688C12.9297 86.1758 13.2324 85.9492 13.5879 85.7891C13.9434 85.625 14.3418 85.543 14.7832 85.543C15.2285 85.543 15.6289 85.625 15.9844 85.7891C16.3438 85.9492 16.6484 86.1758 16.8984 86.4688C17.1523 86.7578 17.3457 87.0996 17.4785 87.4941C17.6113 87.8848 17.6777 88.3086 17.6777 88.7656V88.9004C17.6777 89.3574 17.6113 89.7812 17.4785 90.1719C17.3457 90.5625 17.1523 90.9043 16.8984 91.1973C16.6484 91.4863 16.3457 91.7129 15.9902 91.877C15.6387 92.0371 15.2402 92.1172 14.7949 92.1172C14.3496 92.1172 13.9492 92.0371 13.5938 91.877C13.2383 91.7129 12.9336 91.4863 12.6797 91.1973C12.4297 90.9043 12.2383 90.5625 12.1055 90.1719C11.9727 89.7812 11.9062 89.3574 11.9062 88.9004ZM12.9902 88.7656V88.9004C12.9902 89.2168 13.0273 89.5156 13.1016 89.7969C13.1758 90.0742 13.2871 90.3203 13.4355 90.5352C13.5879 90.75 13.7773 90.9199 14.0039 91.0449C14.2305 91.166 14.4941 91.2266 14.7949 91.2266C15.0918 91.2266 15.3516 91.166 15.5742 91.0449C15.8008 90.9199 15.9883 90.75 16.1367 90.5352C16.2852 90.3203 16.3965 90.0742 16.4707 89.7969C16.5488 89.5156 16.5879 89.2168 16.5879 88.9004V88.7656C16.5879 88.4531 16.5488 88.1582 16.4707 87.8809C16.3965 87.5996 16.2832 87.3516 16.1309 87.1367C15.9824 86.918 15.7949 86.7461 15.5684 86.6211C15.3457 86.4961 15.084 86.4336 14.7832 86.4336C14.4863 86.4336 14.2246 86.4961 13.998 86.6211C13.7754 86.7461 13.5879 86.918 13.4355 87.1367C13.2871 87.3516 13.1758 87.5996 13.1016 87.8809C13.0273 88.1582 12.9902 88.4531 12.9902 88.7656ZM22.916 90.5352V85.6602H24.0059V92H22.9688L22.916 90.5352ZM23.1211 89.1992L23.5723 89.1875C23.5723 89.6094 23.5273 90 23.4375 90.3594C23.3516 90.7148 23.2109 91.0234 23.0156 91.2852C22.8203 91.5469 22.5645 91.752 22.248 91.9004C21.9316 92.0449 21.5469 92.1172 21.0938 92.1172C20.7852 92.1172 20.502 92.0723 20.2441 91.9824C19.9902 91.8926 19.7715 91.7539 19.5879 91.5664C19.4043 91.3789 19.2617 91.1348 19.1602 90.834C19.0625 90.5332 19.0137 90.1719 19.0137 89.75V85.6602H20.0977V89.7617C20.0977 90.0469 20.1289 90.2832 20.1914 90.4707C20.2578 90.6543 20.3457 90.8008 20.4551 90.9102C20.5684 91.0156 20.6934 91.0898 20.8301 91.1328C20.9707 91.1758 21.1152 91.1973 21.2637 91.1973C21.7246 91.1973 22.0898 91.1094 22.3594 90.9336C22.6289 90.7539 22.8223 90.5137 22.9395 90.2129C23.0605 89.9082 23.1211 89.5703 23.1211 89.1992ZM32.3262 90.3184C32.3262 90.1621 32.291 90.0176 32.2207 89.8848C32.1543 89.748 32.0156 89.625 31.8047 89.5156C31.5977 89.4023 31.2852 89.3047 30.8672 89.2227C30.5156 89.1484 30.1973 89.0605 29.9121 88.959C29.6309 88.8574 29.3906 88.7344 29.1914 88.5898C28.9961 88.4453 28.8457 88.2754 28.7402 88.0801C28.6348 87.8848 28.582 87.6562 28.582 87.3945C28.582 87.1445 28.6367 86.9082 28.7461 86.6855C28.8594 86.4629 29.0176 86.2656 29.2207 86.0938C29.4277 85.9219 29.6758 85.7871 29.9648 85.6895C30.2539 85.5918 30.5762 85.543 30.9316 85.543C31.4395 85.543 31.873 85.6328 32.2324 85.8125C32.5918 85.9922 32.8672 86.2324 33.0586 86.5332C33.25 86.8301 33.3457 87.1602 33.3457 87.5234H32.2617C32.2617 87.3477 32.209 87.1777 32.1035 87.0137C32.002 86.8457 31.8516 86.707 31.6523 86.5977C31.457 86.4883 31.2168 86.4336 30.9316 86.4336C30.6309 86.4336 30.3867 86.4805 30.1992 86.5742C30.0156 86.6641 29.8809 86.7793 29.7949 86.9199C29.7129 87.0605 29.6719 87.209 29.6719 87.3652C29.6719 87.4824 29.6914 87.5879 29.7305 87.6816C29.7734 87.7715 29.8477 87.8555 29.9531 87.9336C30.0586 88.0078 30.207 88.0781 30.3984 88.1445C30.5898 88.2109 30.834 88.2773 31.1309 88.3438C31.6504 88.4609 32.0781 88.6016 32.4141 88.7656C32.75 88.9297 33 89.1309 33.1641 89.3691C33.3281 89.6074 33.4102 89.8965 33.4102 90.2363C33.4102 90.5137 33.3516 90.7676 33.2344 90.998C33.1211 91.2285 32.9551 91.4277 32.7363 91.5957C32.5215 91.7598 32.2637 91.8887 31.9629 91.9824C31.666 92.0723 31.332 92.1172 30.9609 92.1172C30.4023 92.1172 29.9297 92.0176 29.543 91.8184C29.1562 91.6191 28.8633 91.3613 28.6641 91.0449C28.4648 90.7285 28.3652 90.3945 28.3652 90.043H29.4551C29.4707 90.3398 29.5566 90.5762 29.7129 90.752C29.8691 90.9238 30.0605 91.0469 30.2871 91.1211C30.5137 91.1914 30.7383 91.2266 30.9609 91.2266C31.2578 91.2266 31.5059 91.1875 31.7051 91.1094C31.9082 91.0312 32.0625 90.9238 32.168 90.7871C32.2734 90.6504 32.3262 90.4941 32.3262 90.3184ZM37.4648 92.1172C37.0234 92.1172 36.623 92.043 36.2637 91.8945C35.9082 91.7422 35.6016 91.5293 35.3438 91.2559C35.0898 90.9824 34.8945 90.6582 34.7578 90.2832C34.6211 89.9082 34.5527 89.498 34.5527 89.0527V88.8066C34.5527 88.291 34.6289 87.832 34.7812 87.4297C34.9336 87.0234 35.1406 86.6797 35.4023 86.3984C35.6641 86.1172 35.9609 85.9043 36.293 85.7598C36.625 85.6152 36.9688 85.543 37.3242 85.543C37.7773 85.543 38.168 85.6211 38.4961 85.7773C38.8281 85.9336 39.0996 86.1523 39.3105 86.4336C39.5215 86.7109 39.6777 87.0391 39.7793 87.418C39.8809 87.793 39.9316 88.2031 39.9316 88.6484V89.1348H35.1973V88.25H38.8477V88.168C38.832 87.8867 38.7734 87.6133 38.6719 87.3477C38.5742 87.082 38.418 86.8633 38.2031 86.6914C37.9883 86.5195 37.6953 86.4336 37.3242 86.4336C37.0781 86.4336 36.8516 86.4863 36.6445 86.5918C36.4375 86.6934 36.2598 86.8457 36.1113 87.0488C35.9629 87.252 35.8477 87.5 35.7656 87.793C35.6836 88.0859 35.6426 88.4238 35.6426 88.8066V89.0527C35.6426 89.3535 35.6836 89.6367 35.7656 89.9023C35.8516 90.1641 35.9746 90.3945 36.1348 90.5938C36.2988 90.793 36.4961 90.9492 36.7266 91.0625C36.9609 91.1758 37.2266 91.2324 37.5234 91.2324C37.9062 91.2324 38.2305 91.1543 38.4961 90.998C38.7617 90.8418 38.9941 90.6328 39.1934 90.3711L39.8496 90.8926C39.7129 91.0996 39.5391 91.2969 39.3281 91.4844C39.1172 91.6719 38.8574 91.8242 38.5488 91.9414C38.2441 92.0586 37.8828 92.1172 37.4648 92.1172ZM45.0762 90.5352V85.6602H46.166V92H45.1289L45.0762 90.5352ZM45.2812 89.1992L45.7324 89.1875C45.7324 89.6094 45.6875 90 45.5977 90.3594C45.5117 90.7148 45.3711 91.0234 45.1758 91.2852C44.9805 91.5469 44.7246 91.752 44.4082 91.9004C44.0918 92.0449 43.707 92.1172 43.2539 92.1172C42.9453 92.1172 42.6621 92.0723 42.4043 91.9824C42.1504 91.8926 41.9316 91.7539 41.748 91.5664C41.5645 91.3789 41.4219 91.1348 41.3203 90.834C41.2227 90.5332 41.1738 90.1719 41.1738 89.75V85.6602H42.2578V89.7617C42.2578 90.0469 42.2891 90.2832 42.3516 90.4707C42.418 90.6543 42.5059 90.8008 42.6152 90.9102C42.7285 91.0156 42.8535 91.0898 42.9902 91.1328C43.1309 91.1758 43.2754 91.1973 43.4238 91.1973C43.8848 91.1973 44.25 91.1094 44.5195 90.9336C44.7891 90.7539 44.9824 90.5137 45.0996 90.2129C45.2207 89.9082 45.2812 89.5703 45.2812 89.1992ZM54.791 90.7695V83H55.8809V92H54.8848L54.791 90.7695ZM50.5254 88.9004V88.7773C50.5254 88.293 50.584 87.8535 50.7012 87.459C50.8223 87.0605 50.9922 86.7188 51.2109 86.4336C51.4336 86.1484 51.6973 85.9297 52.002 85.7773C52.3105 85.6211 52.6543 85.543 53.0332 85.543C53.4316 85.543 53.7793 85.6133 54.0762 85.7539C54.377 85.8906 54.6309 86.0918 54.8379 86.3574C55.0488 86.6191 55.2148 86.9355 55.3359 87.3066C55.457 87.6777 55.541 88.0977 55.5879 88.5664V89.1055C55.5449 89.5703 55.4609 89.9883 55.3359 90.3594C55.2148 90.7305 55.0488 91.0469 54.8379 91.3086C54.6309 91.5703 54.377 91.7715 54.0762 91.9121C53.7754 92.0488 53.4238 92.1172 53.0215 92.1172C52.6504 92.1172 52.3105 92.0371 52.002 91.877C51.6973 91.7168 51.4336 91.4922 51.2109 91.2031C50.9922 90.9141 50.8223 90.5742 50.7012 90.1836C50.584 89.7891 50.5254 89.3613 50.5254 88.9004ZM51.6152 88.7773V88.9004C51.6152 89.2168 51.6465 89.5137 51.709 89.791C51.7754 90.0684 51.877 90.3125 52.0137 90.5234C52.1504 90.7344 52.3242 90.9004 52.5352 91.0215C52.7461 91.1387 52.998 91.1973 53.291 91.1973C53.6504 91.1973 53.9453 91.1211 54.1758 90.9688C54.4102 90.8164 54.5977 90.6152 54.7383 90.3652C54.8789 90.1152 54.9883 89.8438 55.0664 89.5508V88.1387C55.0195 87.9238 54.9512 87.7168 54.8613 87.5176C54.7754 87.3145 54.6621 87.1348 54.5215 86.9785C54.3848 86.8184 54.2148 86.6914 54.0117 86.5977C53.8125 86.5039 53.5762 86.457 53.3027 86.457C53.0059 86.457 52.75 86.5195 52.5352 86.6445C52.3242 86.7656 52.1504 86.9336 52.0137 87.1484C51.877 87.3594 51.7754 87.6055 51.709 87.8867C51.6465 88.1641 51.6152 88.4609 51.6152 88.7773ZM58.7461 85.6602V92H57.6562V85.6602H58.7461ZM57.5742 83.9785C57.5742 83.8027 57.627 83.6543 57.7324 83.5332C57.8418 83.4121 58.002 83.3516 58.2129 83.3516C58.4199 83.3516 58.5781 83.4121 58.6875 83.5332C58.8008 83.6543 58.8574 83.8027 58.8574 83.9785C58.8574 84.1465 58.8008 84.291 58.6875 84.4121C58.5781 84.5293 58.4199 84.5879 58.2129 84.5879C58.002 84.5879 57.8418 84.5293 57.7324 84.4121C57.627 84.291 57.5742 84.1465 57.5742 83.9785ZM61.5703 87.0137V92H60.4863V85.6602H61.5117L61.5703 87.0137ZM61.3125 88.5898L60.8613 88.5723C60.8652 88.1387 60.9297 87.7383 61.0547 87.3711C61.1797 87 61.3555 86.6777 61.582 86.4043C61.8086 86.1309 62.0781 85.9199 62.3906 85.7715C62.707 85.6191 63.0566 85.543 63.4395 85.543C63.752 85.543 64.0332 85.5859 64.2832 85.6719C64.5332 85.7539 64.7461 85.8867 64.9219 86.0703C65.1016 86.2539 65.2383 86.4922 65.332 86.7852C65.4258 87.0742 65.4727 87.4277 65.4727 87.8457V92H64.3828V87.834C64.3828 87.502 64.334 87.2363 64.2363 87.0371C64.1387 86.834 63.9961 86.6875 63.8086 86.5977C63.6211 86.5039 63.3906 86.457 63.1172 86.457C62.8477 86.457 62.6016 86.5137 62.3789 86.627C62.1602 86.7402 61.9707 86.8965 61.8105 87.0957C61.6543 87.2949 61.5312 87.5234 61.4414 87.7812C61.3555 88.0352 61.3125 88.3047 61.3125 88.5898ZM68.2031 83V92H67.1191V83H68.2031ZM67.9453 88.5898L67.4941 88.5723C67.498 88.1387 67.5625 87.7383 67.6875 87.3711C67.8125 87 67.9883 86.6777 68.2148 86.4043C68.4414 86.1309 68.7109 85.9199 69.0234 85.7715C69.3398 85.6191 69.6895 85.543 70.0723 85.543C70.3848 85.543 70.666 85.5859 70.916 85.6719C71.166 85.7539 71.3789 85.8867 71.5547 86.0703C71.7344 86.2539 71.8711 86.4922 71.9648 86.7852C72.0586 87.0742 72.1055 87.4277 72.1055 87.8457V92H71.0156V87.834C71.0156 87.502 70.9668 87.2363 70.8691 87.0371C70.7715 86.834 70.6289 86.6875 70.4414 86.5977C70.2539 86.5039 70.0234 86.457 69.75 86.457C69.4805 86.457 69.2344 86.5137 69.0117 86.627C68.793 86.7402 68.6035 86.8965 68.4434 87.0957C68.2871 87.2949 68.1641 87.5234 68.0742 87.7812C67.9883 88.0352 67.9453 88.3047 67.9453 88.5898ZM76.3594 92.1172C75.918 92.1172 75.5176 92.043 75.1582 91.8945C74.8027 91.7422 74.4961 91.5293 74.2383 91.2559C73.9844 90.9824 73.7891 90.6582 73.6523 90.2832C73.5156 89.9082 73.4473 89.498 73.4473 89.0527V88.8066C73.4473 88.291 73.5234 87.832 73.6758 87.4297C73.8281 87.0234 74.0352 86.6797 74.2969 86.3984C74.5586 86.1172 74.8555 85.9043 75.1875 85.7598C75.5195 85.6152 75.8633 85.543 76.2188 85.543C76.6719 85.543 77.0625 85.6211 77.3906 85.7773C77.7227 85.9336 77.9941 86.1523 78.2051 86.4336C78.416 86.7109 78.5723 87.0391 78.6738 87.418C78.7754 87.793 78.8262 88.2031 78.8262 88.6484V89.1348H74.0918V88.25H77.7422V88.168C77.7266 87.8867 77.668 87.6133 77.5664 87.3477C77.4688 87.082 77.3125 86.8633 77.0977 86.6914C76.8828 86.5195 76.5898 86.4336 76.2188 86.4336C75.9727 86.4336 75.7461 86.4863 75.5391 86.5918C75.332 86.6934 75.1543 86.8457 75.0059 87.0488C74.8574 87.252 74.7422 87.5 74.6602 87.793C74.5781 88.0859 74.5371 88.4238 74.5371 88.8066V89.0527C74.5371 89.3535 74.5781 89.6367 74.6602 89.9023C74.7461 90.1641 74.8691 90.3945 75.0293 90.5938C75.1934 90.793 75.3906 90.9492 75.6211 91.0625C75.8555 91.1758 76.1211 91.2324 76.418 91.2324C76.8008 91.2324 77.125 91.1543 77.3906 90.998C77.6562 90.8418 77.8887 90.6328 78.0879 90.3711L78.7441 90.8926C78.6074 91.0996 78.4336 91.2969 78.2227 91.4844C78.0117 91.6719 77.752 91.8242 77.4434 91.9414C77.1387 92.0586 76.7773 92.1172 76.3594 92.1172ZM81.2695 85.6602V92H80.1797V85.6602H81.2695ZM80.0977 83.9785C80.0977 83.8027 80.1504 83.6543 80.2559 83.5332C80.3652 83.4121 80.5254 83.3516 80.7363 83.3516C80.9434 83.3516 81.1016 83.4121 81.2109 83.5332C81.3242 83.6543 81.3809 83.8027 81.3809 83.9785C81.3809 84.1465 81.3242 84.291 81.2109 84.4121C81.1016 84.5293 80.9434 84.5879 80.7363 84.5879C80.5254 84.5879 80.3652 84.5293 80.2559 84.4121C80.1504 84.291 80.0977 84.1465 80.0977 83.9785ZM84.0938 86.6562V92H83.0098V85.6602H84.0645L84.0938 86.6562ZM86.0742 85.625L86.0684 86.6328C85.9785 86.6133 85.8926 86.6016 85.8105 86.5977C85.7324 86.5898 85.6426 86.5859 85.541 86.5859C85.291 86.5859 85.0703 86.625 84.8789 86.7031C84.6875 86.7812 84.5254 86.8906 84.3926 87.0312C84.2598 87.1719 84.1543 87.3398 84.0762 87.5352C84.002 87.7266 83.9531 87.9375 83.9297 88.168L83.625 88.3438C83.625 87.9609 83.6621 87.6016 83.7363 87.2656C83.8145 86.9297 83.9336 86.6328 84.0938 86.375C84.2539 86.1133 84.457 85.9102 84.7031 85.7656C84.9531 85.6172 85.25 85.543 85.5938 85.543C85.6719 85.543 85.7617 85.5527 85.8633 85.5723C85.9648 85.5879 86.0352 85.6055 86.0742 85.625ZM86.6719 88.9004V88.7656C86.6719 88.3086 86.7383 87.8848 86.8711 87.4941C87.0039 87.0996 87.1953 86.7578 87.4453 86.4688C87.6953 86.1758 87.998 85.9492 88.3535 85.7891C88.709 85.625 89.1074 85.543 89.5488 85.543C89.9941 85.543 90.3945 85.625 90.75 85.7891C91.1094 85.9492 91.4141 86.1758 91.6641 86.4688C91.918 86.7578 92.1113 87.0996 92.2441 87.4941C92.377 87.8848 92.4434 88.3086 92.4434 88.7656V88.9004C92.4434 89.3574 92.377 89.7812 92.2441 90.1719C92.1113 90.5625 91.918 90.9043 91.6641 91.1973C91.4141 91.4863 91.1113 91.7129 90.7559 91.877C90.4043 92.0371 90.0059 92.1172 89.5605 92.1172C89.1152 92.1172 88.7148 92.0371 88.3594 91.877C88.0039 91.7129 87.6992 91.4863 87.4453 91.1973C87.1953 90.9043 87.0039 90.5625 86.8711 90.1719C86.7383 89.7812 86.6719 89.3574 86.6719 88.9004ZM87.7559 88.7656V88.9004C87.7559 89.2168 87.793 89.5156 87.8672 89.7969C87.9414 90.0742 88.0527 90.3203 88.2012 90.5352C88.3535 90.75 88.543 90.9199 88.7695 91.0449C88.9961 91.166 89.2598 91.2266 89.5605 91.2266C89.8574 91.2266 90.1172 91.166 90.3398 91.0449C90.5664 90.9199 90.7539 90.75 90.9023 90.5352C91.0508 90.3203 91.1621 90.0742 91.2363 89.7969C91.3145 89.5156 91.3535 89.2168 91.3535 88.9004V88.7656C91.3535 88.4531 91.3145 88.1582 91.2363 87.8809C91.1621 87.5996 91.0488 87.3516 90.8965 87.1367C90.748 86.918 90.5605 86.7461 90.334 86.6211C90.1113 86.4961 89.8496 86.4336 89.5488 86.4336C89.252 86.4336 88.9902 86.4961 88.7637 86.6211C88.541 86.7461 88.3535 86.918 88.2012 87.1367C88.0527 87.3516 87.9414 87.5996 87.8672 87.8809C87.793 88.1582 87.7559 88.4531 87.7559 88.7656ZM100.775 90.7695V83H101.865V92H100.869L100.775 90.7695ZM96.5098 88.9004V88.7773C96.5098 88.293 96.5684 87.8535 96.6855 87.459C96.8066 87.0605 96.9766 86.7188 97.1953 86.4336C97.418 86.1484 97.6816 85.9297 97.9863 85.7773C98.2949 85.6211 98.6387 85.543 99.0176 85.543C99.416 85.543 99.7637 85.6133 100.061 85.7539C100.361 85.8906 100.615 86.0918 100.822 86.3574C101.033 86.6191 101.199 86.9355 101.32 87.3066C101.441 87.6777 101.525 88.0977 101.572 88.5664V89.1055C101.529 89.5703 101.445 89.9883 101.32 90.3594C101.199 90.7305 101.033 91.0469 100.822 91.3086C100.615 91.5703 100.361 91.7715 100.061 91.9121C99.7598 92.0488 99.4082 92.1172 99.0059 92.1172C98.6348 92.1172 98.2949 92.0371 97.9863 91.877C97.6816 91.7168 97.418 91.4922 97.1953 91.2031C96.9766 90.9141 96.8066 90.5742 96.6855 90.1836C96.5684 89.7891 96.5098 89.3613 96.5098 88.9004ZM97.5996 88.7773V88.9004C97.5996 89.2168 97.6309 89.5137 97.6934 89.791C97.7598 90.0684 97.8613 90.3125 97.998 90.5234C98.1348 90.7344 98.3086 90.9004 98.5195 91.0215C98.7305 91.1387 98.9824 91.1973 99.2754 91.1973C99.6348 91.1973 99.9297 91.1211 100.16 90.9688C100.395 90.8164 100.582 90.6152 100.723 90.3652C100.863 90.1152 100.973 89.8438 101.051 89.5508V88.1387C101.004 87.9238 100.936 87.7168 100.846 87.5176C100.76 87.3145 100.646 87.1348 100.506 86.9785C100.369 86.8184 100.199 86.6914 99.9961 86.5977C99.7969 86.5039 99.5605 86.457 99.2871 86.457C98.9902 86.457 98.7344 86.5195 98.5195 86.6445C98.3086 86.7656 98.1348 86.9336 97.998 87.1484C97.8613 87.3594 97.7598 87.6055 97.6934 87.8867C97.6309 88.1641 97.5996 88.4609 97.5996 88.7773ZM106.184 92.1172C105.742 92.1172 105.342 92.043 104.982 91.8945C104.627 91.7422 104.32 91.5293 104.062 91.2559C103.809 90.9824 103.613 90.6582 103.477 90.2832C103.34 89.9082 103.271 89.498 103.271 89.0527V88.8066C103.271 88.291 103.348 87.832 103.5 87.4297C103.652 87.0234 103.859 86.6797 104.121 86.3984C104.383 86.1172 104.68 85.9043 105.012 85.7598C105.344 85.6152 105.688 85.543 106.043 85.543C106.496 85.543 106.887 85.6211 107.215 85.7773C107.547 85.9336 107.818 86.1523 108.029 86.4336C108.24 86.7109 108.396 87.0391 108.498 87.418C108.6 87.793 108.65 88.2031 108.65 88.6484V89.1348H103.916V88.25H107.566V88.168C107.551 87.8867 107.492 87.6133 107.391 87.3477C107.293 87.082 107.137 86.8633 106.922 86.6914C106.707 86.5195 106.414 86.4336 106.043 86.4336C105.797 86.4336 105.57 86.4863 105.363 86.5918C105.156 86.6934 104.979 86.8457 104.83 87.0488C104.682 87.252 104.566 87.5 104.484 87.793C104.402 88.0859 104.361 88.4238 104.361 88.8066V89.0527C104.361 89.3535 104.402 89.6367 104.484 89.9023C104.57 90.1641 104.693 90.3945 104.854 90.5938C105.018 90.793 105.215 90.9492 105.445 91.0625C105.68 91.1758 105.945 91.2324 106.242 91.2324C106.625 91.2324 106.949 91.1543 107.215 90.998C107.48 90.8418 107.713 90.6328 107.912 90.3711L108.568 90.8926C108.432 91.0996 108.258 91.2969 108.047 91.4844C107.836 91.6719 107.576 91.8242 107.268 91.9414C106.963 92.0586 106.602 92.1172 106.184 92.1172ZM114.82 91.0215L116.555 85.6602H117.662L115.383 92H114.656L114.82 91.0215ZM113.373 85.6602L115.16 91.0508L115.283 92H114.557L112.26 85.6602H113.373ZM118.324 88.9004V88.7656C118.324 88.3086 118.391 87.8848 118.523 87.4941C118.656 87.0996 118.848 86.7578 119.098 86.4688C119.348 86.1758 119.65 85.9492 120.006 85.7891C120.361 85.625 120.76 85.543 121.201 85.543C121.646 85.543 122.047 85.625 122.402 85.7891C122.762 85.9492 123.066 86.1758 123.316 86.4688C123.57 86.7578 123.764 87.0996 123.896 87.4941C124.029 87.8848 124.096 88.3086 124.096 88.7656V88.9004C124.096 89.3574 124.029 89.7812 123.896 90.1719C123.764 90.5625 123.57 90.9043 123.316 91.1973C123.066 91.4863 122.764 91.7129 122.408 91.877C122.057 92.0371 121.658 92.1172 121.213 92.1172C120.768 92.1172 120.367 92.0371 120.012 91.877C119.656 91.7129 119.352 91.4863 119.098 91.1973C118.848 90.9043 118.656 90.5625 118.523 90.1719C118.391 89.7812 118.324 89.3574 118.324 88.9004ZM119.408 88.7656V88.9004C119.408 89.2168 119.445 89.5156 119.52 89.7969C119.594 90.0742 119.705 90.3203 119.854 90.5352C120.006 90.75 120.195 90.9199 120.422 91.0449C120.648 91.166 120.912 91.2266 121.213 91.2266C121.51 91.2266 121.77 91.166 121.992 91.0449C122.219 90.9199 122.406 90.75 122.555 90.5352C122.703 90.3203 122.814 90.0742 122.889 89.7969C122.967 89.5156 123.006 89.2168 123.006 88.9004V88.7656C123.006 88.4531 122.967 88.1582 122.889 87.8809C122.814 87.5996 122.701 87.3516 122.549 87.1367C122.4 86.918 122.213 86.7461 121.986 86.6211C121.764 86.4961 121.502 86.4336 121.201 86.4336C120.904 86.4336 120.643 86.4961 120.416 86.6211C120.193 86.7461 120.006 86.918 119.854 87.1367C119.705 87.3516 119.594 87.5996 119.52 87.8809C119.445 88.1582 119.408 88.4531 119.408 88.7656ZM126.633 83V92H125.543V83H126.633ZM131.027 85.6602V86.4922H127.6V85.6602H131.027ZM128.76 84.1191H129.844V90.4297C129.844 90.6445 129.877 90.8066 129.943 90.916C130.01 91.0254 130.096 91.0977 130.201 91.1328C130.307 91.168 130.42 91.1855 130.541 91.1855C130.631 91.1855 130.725 91.1777 130.822 91.1621C130.924 91.1426 131 91.127 131.051 91.1152L131.057 92C130.971 92.0273 130.857 92.0527 130.717 92.0762C130.58 92.1035 130.414 92.1172 130.219 92.1172C129.953 92.1172 129.709 92.0645 129.486 91.959C129.264 91.8535 129.086 91.6777 128.953 91.4316C128.824 91.1816 128.76 90.8457 128.76 90.4238V84.1191ZM136.037 90.916V87.6523C136.037 87.4023 135.986 87.1855 135.885 87.002C135.787 86.8145 135.639 86.6699 135.439 86.5684C135.24 86.4668 134.994 86.416 134.701 86.416C134.428 86.416 134.188 86.4629 133.98 86.5566C133.777 86.6504 133.617 86.7734 133.5 86.9258C133.387 87.0781 133.33 87.2422 133.33 87.418H132.246C132.246 87.1914 132.305 86.9668 132.422 86.7441C132.539 86.5215 132.707 86.3203 132.926 86.1406C133.148 85.957 133.414 85.8125 133.723 85.707C134.035 85.5977 134.383 85.543 134.766 85.543C135.227 85.543 135.633 85.6211 135.984 85.7773C136.34 85.9336 136.617 86.1699 136.816 86.4863C137.02 86.7988 137.121 87.1914 137.121 87.6641V90.6172C137.121 90.8281 137.139 91.0527 137.174 91.291C137.213 91.5293 137.27 91.7344 137.344 91.9062V92H136.213C136.158 91.875 136.115 91.709 136.084 91.502C136.053 91.291 136.037 91.0957 136.037 90.916ZM136.225 88.1562L136.236 88.918H135.141C134.832 88.918 134.557 88.9434 134.314 88.9941C134.072 89.041 133.869 89.1133 133.705 89.2109C133.541 89.3086 133.416 89.4316 133.33 89.5801C133.244 89.7246 133.201 89.8945 133.201 90.0898C133.201 90.2891 133.246 90.4707 133.336 90.6348C133.426 90.7988 133.561 90.9297 133.74 91.0273C133.924 91.1211 134.148 91.168 134.414 91.168C134.746 91.168 135.039 91.0977 135.293 90.957C135.547 90.8164 135.748 90.6445 135.896 90.4414C136.049 90.2383 136.131 90.041 136.143 89.8496L136.605 90.3711C136.578 90.5352 136.504 90.7168 136.383 90.916C136.262 91.1152 136.1 91.3066 135.896 91.4902C135.697 91.6699 135.459 91.8203 135.182 91.9414C134.908 92.0586 134.6 92.1172 134.256 92.1172C133.826 92.1172 133.449 92.0332 133.125 91.8652C132.805 91.6973 132.555 91.4727 132.375 91.1914C132.199 90.9062 132.111 90.5879 132.111 90.2363C132.111 89.8965 132.178 89.5977 132.311 89.3398C132.443 89.0781 132.635 88.8613 132.885 88.6895C133.135 88.5137 133.436 88.3809 133.787 88.291C134.139 88.2012 134.531 88.1562 134.965 88.1562H136.225Z\",\n fill: \"#272A30\"\n});\nfunction SvgSelo7Dias(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 138,\n height: 96,\n viewBox: \"0 0 138 96\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSelo7Dias);\nexport default __webpack_public_path__ + \"static/media/selo-7-dias.8a060319.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M118.305 40C113.812 49.4598 104.17 56 93 56C81.8304 56 72.1884 49.4598 67.6945 40H70.4943C74.7868 48.0337 83.255 53.5 93 53.5C102.745 53.5 111.213 48.0337 115.506 40H118.305ZM118.305 16C113.812 6.54021 104.17 0 93 0C81.8304 0 72.1884 6.54021 67.6945 16H70.4943C74.7868 7.96634 83.255 2.5 93 2.5C102.745 2.5 111.213 7.96634 115.506 16H118.305ZM112.036 16C108.051 9.6905 101.015 5.5 93 5.5C84.9853 5.5 77.9494 9.6905 73.9637 16H76.9985C80.6474 11.1422 86.4567 8 93 8C99.5433 8 105.353 11.1422 109.001 16H112.036ZM112.036 40C108.051 46.3095 101.015 50.5 93 50.5C84.9853 50.5 77.9494 46.3095 73.9637 40H76.9985C80.6474 44.8578 86.4567 48 93 48C99.5433 48 105.353 44.8578 109.001 40H112.036ZM65.0002 27.8858C65.0001 27.9239 65 27.9619 65 28C65 28.0381 65.0001 28.0761 65.0002 28.1142V27.8858Z\",\n fill: \"#272A30\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.329 28.9096L126.529 37H57.4709L60.6711 28.9096L60.6711 28.9096L60.8854 28.3678L61.0309 28L60.8854 27.6322L60.6711 27.0904L60.6711 27.0904L57.4709 19H126.529L123.329 27.0904L124.259 27.4582L123.329 27.0905L123.115 27.6322L122.969 28L123.115 28.3678L123.329 28.9095L124.259 28.5418L123.329 28.9096Z\",\n stroke: \"#272A30\",\n strokeWidth: 2\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.5522 27.8696V31.0225C71.4233 31.1693 71.2264 31.3268 70.9614 31.4951C70.7 31.6634 70.3652 31.8084 69.957 31.9302C69.5488 32.0483 69.0618 32.1074 68.4961 32.1074C67.984 32.1074 67.5186 32.0251 67.0996 31.8604C66.6807 31.6921 66.3208 31.4468 66.02 31.1245C65.7192 30.7987 65.4865 30.4012 65.3218 29.9321C65.1606 29.4631 65.0801 28.9259 65.0801 28.3208V27.8589C65.0801 27.2537 65.1606 26.7166 65.3218 26.2476C65.4829 25.7785 65.7103 25.3828 66.0039 25.0605C66.2975 24.7347 66.6466 24.4876 67.0513 24.3193C67.4559 24.151 67.9035 24.0669 68.394 24.0669C69.0923 24.0669 69.6634 24.1797 70.1074 24.4053C70.5514 24.6273 70.888 24.9352 71.1172 25.3291C71.3499 25.723 71.4932 26.1759 71.5469 26.688H69.8604C69.8245 26.4266 69.7529 26.201 69.6455 26.0112C69.5417 25.8215 69.3931 25.6764 69.1997 25.5762C69.0063 25.4723 68.7557 25.4204 68.4478 25.4204C68.2007 25.4204 67.9769 25.4723 67.7764 25.5762C67.5794 25.6764 67.4129 25.8286 67.2769 26.0327C67.1408 26.2368 67.0369 26.491 66.9653 26.7954C66.8937 27.0962 66.8579 27.4471 66.8579 27.8481V28.3208C66.8579 28.7218 66.8937 29.0745 66.9653 29.3789C67.0405 29.6833 67.1497 29.9375 67.293 30.1416C67.4362 30.3421 67.617 30.4943 67.8354 30.5981C68.0575 30.702 68.3153 30.7539 68.6089 30.7539C68.8381 30.7539 69.0314 30.736 69.189 30.7002C69.3465 30.6608 69.4754 30.6125 69.5757 30.5552C69.6759 30.4943 69.7511 30.4388 69.8013 30.3887V29.0889H68.4102V27.8696H71.5522ZM75.9995 25.6675L73.98 32H72.1108L75.0059 24.1797H76.1875L75.9995 25.6675ZM77.6753 32L75.6504 25.6675L75.4409 24.1797H76.6387L79.5444 32H77.6753ZM77.5894 29.0889V30.4424H73.5127V29.0889H77.5894ZM80.1943 24.1797H83.1968C83.7948 24.1797 84.3122 24.2692 84.749 24.4482C85.1895 24.6273 85.5278 24.8923 85.7642 25.2432C86.0005 25.5941 86.1187 26.0273 86.1187 26.543C86.1187 26.9727 86.0488 27.3379 85.9092 27.6387C85.7695 27.9395 85.5726 28.1883 85.3184 28.3853C85.0677 28.5822 84.7741 28.7415 84.4375 28.8633L83.8682 29.1748H81.3115L81.3008 27.8159H83.2021C83.4635 27.8159 83.6802 27.7694 83.8521 27.6763C84.0239 27.5832 84.1528 27.4525 84.2388 27.2842C84.3283 27.1123 84.373 26.9118 84.373 26.6826C84.373 26.4463 84.3283 26.2422 84.2388 26.0703C84.1493 25.8984 84.0168 25.7677 83.8413 25.6782C83.6694 25.5851 83.4546 25.5386 83.1968 25.5386H81.9453V32H80.1943V24.1797ZM84.5234 32L82.7671 28.5249L84.6147 28.5195L86.3979 31.9194V32H84.5234ZM90.5552 25.6675L88.5356 32H86.6665L89.5615 24.1797H90.7432L90.5552 25.6675ZM92.231 32L90.2061 25.6675L89.9966 24.1797H91.1943L94.1001 32H92.231ZM92.145 29.0889V30.4424H88.0684V29.0889H92.145ZM101.201 24.1797V32H99.4551L96.501 26.9458V32H94.75V24.1797H96.501L99.4604 29.2339V24.1797H101.201ZM105.976 24.1797V32H104.23V24.1797H105.976ZM108.355 24.1797V25.5386H101.899V24.1797H108.355ZM111.083 24.1797V32H109.338V24.1797H111.083ZM115.842 25.6675L113.823 32H111.954L114.849 24.1797H116.03L115.842 25.6675ZM117.518 32L115.493 25.6675L115.284 24.1797H116.481L119.387 32H117.518ZM117.432 29.0889V30.4424H113.355V29.0889H117.432Z\",\n fill: \"#272A30\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0788 76V67.2727H17.522C18.1839 67.2727 18.7479 67.3991 19.2138 67.652C19.6797 67.902 20.0348 68.25 20.2791 68.696C20.5263 69.1392 20.6499 69.6506 20.6499 70.2301C20.6499 70.8097 20.5249 71.321 20.2749 71.7642C20.0249 72.2074 19.6626 72.5526 19.1882 72.7997C18.7166 73.0469 18.1456 73.1705 17.4751 73.1705H15.2805V71.6918H17.1768C17.532 71.6918 17.8246 71.6307 18.0547 71.5085C18.2876 71.3835 18.4609 71.2116 18.5746 70.9929C18.6911 70.7713 18.7493 70.517 18.7493 70.2301C18.7493 69.9403 18.6911 69.6875 18.5746 69.4716C18.4609 69.2528 18.2876 69.0838 18.0547 68.9645C17.8217 68.8423 17.5263 68.7812 17.1683 68.7812H15.924V76H14.0788ZM21.8143 76V69.4545H23.5742V70.5966H23.6424C23.7617 70.1903 23.962 69.8835 24.2433 69.6761C24.5245 69.4659 24.8484 69.3608 25.2148 69.3608C25.3058 69.3608 25.4038 69.3665 25.5089 69.3778C25.614 69.3892 25.7063 69.4048 25.7859 69.4247V71.0355C25.7006 71.0099 25.5827 70.9872 25.4322 70.9673C25.2816 70.9474 25.1438 70.9375 25.0188 70.9375C24.7518 70.9375 24.5131 70.9957 24.3029 71.1122C24.0955 71.2259 23.9308 71.3849 23.8086 71.5895C23.6893 71.794 23.6296 72.0298 23.6296 72.2969V76H21.8143ZM29.3771 76.1278C28.7152 76.1278 28.1428 75.9872 27.6598 75.706C27.1797 75.4219 26.8089 75.027 26.5476 74.5213C26.2862 74.0128 26.1555 73.4233 26.1555 72.7528C26.1555 72.0767 26.2862 71.4858 26.5476 70.9801C26.8089 70.4716 27.1797 70.0767 27.6598 69.7955C28.1428 69.5114 28.7152 69.3693 29.3771 69.3693C30.0391 69.3693 30.6101 69.5114 31.0902 69.7955C31.5732 70.0767 31.9453 70.4716 32.2067 70.9801C32.468 71.4858 32.5987 72.0767 32.5987 72.7528C32.5987 73.4233 32.468 74.0128 32.2067 74.5213C31.9453 75.027 31.5732 75.4219 31.0902 75.706C30.6101 75.9872 30.0391 76.1278 29.3771 76.1278ZM29.3857 74.7216C29.6868 74.7216 29.9382 74.6364 30.1399 74.4659C30.3416 74.2926 30.4936 74.0568 30.5959 73.7585C30.701 73.4602 30.7536 73.1207 30.7536 72.7401C30.7536 72.3594 30.701 72.0199 30.5959 71.7216C30.4936 71.4233 30.3416 71.1875 30.1399 71.0142C29.9382 70.8409 29.6868 70.7543 29.3857 70.7543C29.0817 70.7543 28.826 70.8409 28.6186 71.0142C28.4141 71.1875 28.2592 71.4233 28.1541 71.7216C28.0518 72.0199 28.0007 72.3594 28.0007 72.7401C28.0007 73.1207 28.0518 73.4602 28.1541 73.7585C28.2592 74.0568 28.4141 74.2926 28.6186 74.4659C28.826 74.6364 29.0817 74.7216 29.3857 74.7216ZM37.2607 69.4545V70.8182H33.3189V69.4545H37.2607ZM34.2138 67.8864H36.0291V73.9886C36.0291 74.1562 36.0547 74.2869 36.1058 74.3807C36.157 74.4716 36.228 74.5355 36.3189 74.5724C36.4126 74.6094 36.5206 74.6278 36.6428 74.6278C36.728 74.6278 36.8132 74.6207 36.8984 74.6065C36.9837 74.5895 37.049 74.5767 37.0945 74.5682L37.38 75.919C37.2891 75.9474 37.1612 75.9801 36.9964 76.017C36.8317 76.0568 36.6314 76.081 36.3956 76.0895C35.9581 76.1065 35.5746 76.0483 35.245 75.9148C34.9183 75.7812 34.6641 75.5739 34.4822 75.2926C34.3004 75.0114 34.2109 74.6562 34.2138 74.2273V67.8864ZM41.3558 76.1278C40.6825 76.1278 40.103 75.9915 39.6172 75.7188C39.1342 75.4432 38.7621 75.054 38.5007 74.5511C38.2393 74.0455 38.1087 73.4474 38.1087 72.7571C38.1087 72.0838 38.2393 71.4929 38.5007 70.9844C38.7621 70.4759 39.13 70.0795 39.6044 69.7955C40.0817 69.5114 40.6413 69.3693 41.2834 69.3693C41.7152 69.3693 42.1172 69.4389 42.4893 69.5781C42.8643 69.7145 43.1911 69.9205 43.4695 70.196C43.7507 70.4716 43.9695 70.8182 44.1257 71.2358C44.282 71.6506 44.3601 72.1364 44.3601 72.6932V73.1918H38.8331V72.0668H42.6513C42.6513 71.8054 42.5945 71.5739 42.4808 71.3722C42.3672 71.1705 42.2095 71.0128 42.0078 70.8991C41.8089 70.7827 41.5774 70.7244 41.3132 70.7244C41.0376 70.7244 40.7933 70.7884 40.5803 70.9162C40.37 71.0412 40.2053 71.2102 40.0859 71.4233C39.9666 71.6335 39.9055 71.8679 39.9027 72.1264V73.196C39.9027 73.5199 39.9624 73.7997 40.0817 74.0355C40.2038 74.2713 40.3757 74.4531 40.5973 74.581C40.8189 74.7088 41.0817 74.7727 41.3857 74.7727C41.5874 74.7727 41.772 74.7443 41.9396 74.6875C42.1072 74.6307 42.2507 74.5455 42.37 74.4318C42.4893 74.3182 42.5803 74.179 42.6428 74.0142L44.3217 74.125C44.2365 74.5284 44.0618 74.8807 43.7976 75.1818C43.5362 75.4801 43.1982 75.7131 42.7834 75.8807C42.3714 76.0455 41.8956 76.1278 41.3558 76.1278ZM48.5021 76.1278C47.8317 76.1278 47.255 75.9858 46.772 75.7017C46.2919 75.4148 45.9226 75.017 45.6641 74.5085C45.4084 74 45.2805 73.4148 45.2805 72.7528C45.2805 72.0824 45.4098 71.4943 45.6683 70.9886C45.9297 70.4801 46.3004 70.0838 46.7805 69.7997C47.2607 69.5128 47.8317 69.3693 48.4936 69.3693C49.0646 69.3693 49.5646 69.473 49.9936 69.6804C50.4226 69.8878 50.7621 70.179 51.0121 70.554C51.2621 70.929 51.3999 71.3693 51.4254 71.875H49.7124C49.6641 71.5483 49.5362 71.2855 49.3288 71.0866C49.1243 70.8849 48.8558 70.7841 48.5234 70.7841C48.2422 70.7841 47.9964 70.8608 47.7862 71.0142C47.5788 71.1648 47.4169 71.3849 47.3004 71.6747C47.1839 71.9645 47.1257 72.3153 47.1257 72.7273C47.1257 73.1449 47.1825 73.5 47.2962 73.7926C47.4126 74.0852 47.576 74.3082 47.7862 74.4616C47.9964 74.6151 48.2422 74.6918 48.5234 74.6918C48.7308 74.6918 48.9169 74.6491 49.0817 74.5639C49.2493 74.4787 49.3871 74.3551 49.495 74.1932C49.6058 74.0284 49.6783 73.831 49.7124 73.6009H51.4254C51.397 74.1009 51.2607 74.5412 51.0163 74.9219C50.7749 75.2997 50.4411 75.5952 50.0149 75.8082C49.5888 76.0213 49.0845 76.1278 48.5021 76.1278ZM48.076 75.9659H48.9112L48.843 76.3366C49.1357 76.3821 49.3743 76.4915 49.5589 76.6648C49.7464 76.8381 49.8416 77.0739 49.8445 77.3722C49.8473 77.7955 49.6513 78.1321 49.2564 78.3821C48.8615 78.6349 48.3075 78.7614 47.5945 78.7614L47.5774 77.9517C47.9354 77.9517 48.2152 77.9077 48.4169 77.8196C48.6214 77.7344 48.728 77.6009 48.7365 77.419C48.7422 77.2457 48.6754 77.1136 48.5362 77.0227C48.397 76.9318 48.1797 76.8679 47.8842 76.831L48.076 75.9659ZM54.4542 76.1236C54.0366 76.1236 53.6644 76.0511 53.3377 75.9062C53.011 75.7585 52.7525 75.5412 52.5621 75.2543C52.3746 74.9645 52.2809 74.6037 52.2809 74.1719C52.2809 73.8082 52.3477 73.5028 52.4812 73.2557C52.6147 73.0085 52.7965 72.8097 53.0266 72.6591C53.2567 72.5085 53.5181 72.3949 53.8107 72.3182C54.1062 72.2415 54.4158 72.1875 54.7397 72.1562C55.1204 72.1165 55.4272 72.0795 55.6602 72.0455C55.8931 72.0085 56.0621 71.9545 56.1673 71.8835C56.2724 71.8125 56.3249 71.7074 56.3249 71.5682V71.5426C56.3249 71.2727 56.2397 71.0639 56.0692 70.9162C55.9016 70.7685 55.663 70.6946 55.3533 70.6946C55.0266 70.6946 54.7667 70.767 54.5735 70.9119C54.3803 71.054 54.2525 71.233 54.19 71.4489L52.511 71.3125C52.5962 70.9148 52.7638 70.571 53.0138 70.2812C53.2638 69.9886 53.5863 69.7642 53.9812 69.608C54.3789 69.4489 54.8391 69.3693 55.3619 69.3693C55.7255 69.3693 56.0735 69.4119 56.4059 69.4972C56.7411 69.5824 57.038 69.7145 57.2965 69.8935C57.5579 70.0724 57.7638 70.3026 57.9144 70.5838C58.065 70.8622 58.1403 71.196 58.1403 71.5852V76H56.4187V75.0923H56.3675C56.2624 75.2969 56.1218 75.4773 55.9457 75.6335C55.7695 75.7869 55.5579 75.9077 55.3107 75.9957C55.0636 76.081 54.7781 76.1236 54.4542 76.1236ZM54.9741 74.8707C55.2411 74.8707 55.4769 74.8182 55.6815 74.7131C55.886 74.6051 56.0465 74.4602 56.163 74.2784C56.2795 74.0966 56.3377 73.8906 56.3377 73.6605V72.9659C56.2809 73.0028 56.2028 73.0369 56.1033 73.0682C56.0067 73.0966 55.8974 73.1236 55.7752 73.1491C55.6531 73.1719 55.5309 73.1932 55.4087 73.2131C55.2866 73.2301 55.1758 73.2457 55.0763 73.2599C54.8633 73.2912 54.6772 73.3409 54.5181 73.4091C54.359 73.4773 54.2354 73.5696 54.1474 73.6861C54.0593 73.7997 54.0153 73.9418 54.0153 74.1122C54.0153 74.3594 54.1048 74.5483 54.2837 74.679C54.4656 74.8068 54.6957 74.8707 54.9741 74.8707ZM54.2113 68.6491L53.2013 68.6364C53.2013 68.0938 53.3349 67.6776 53.6019 67.3878C53.8718 67.098 54.1999 66.9517 54.5863 66.9489C54.7852 66.9489 54.9556 66.9815 55.0977 67.0469C55.2425 67.1094 55.3718 67.1832 55.4854 67.2685C55.6019 67.3537 55.7127 67.429 55.8178 67.4943C55.9229 67.5568 56.0366 67.5881 56.1587 67.5881C56.3235 67.5852 56.4485 67.5241 56.5337 67.4048C56.6218 67.2827 56.6658 67.1236 56.6658 66.9276L57.6587 66.9574C57.6531 67.4943 57.5167 67.9091 57.2496 68.2017C56.9826 68.4915 56.6573 68.6378 56.2738 68.6406C56.0607 68.6406 55.8817 68.6094 55.7369 68.5469C55.5948 68.4815 55.4698 68.4077 55.3619 68.3253C55.2539 68.2401 55.1488 68.1648 55.0465 68.0994C54.9442 68.0341 54.8292 68.0014 54.7013 68.0014C54.5536 68.0014 54.4343 68.0597 54.3434 68.1761C54.2553 68.2926 54.2113 68.4503 54.2113 68.6491ZM62.506 76.1278C61.8441 76.1278 61.2717 75.9872 60.7887 75.706C60.3086 75.4219 59.9379 75.027 59.6765 74.5213C59.4151 74.0128 59.2844 73.4233 59.2844 72.7528C59.2844 72.0767 59.4151 71.4858 59.6765 70.9801C59.9379 70.4716 60.3086 70.0767 60.7887 69.7955C61.2717 69.5114 61.8441 69.3693 62.506 69.3693C63.168 69.3693 63.739 69.5114 64.2191 69.7955C64.7021 70.0767 65.0742 70.4716 65.3356 70.9801C65.5969 71.4858 65.7276 72.0767 65.7276 72.7528C65.7276 73.4233 65.5969 74.0128 65.3356 74.5213C65.0742 75.027 64.7021 75.4219 64.2191 75.706C63.739 75.9872 63.168 76.1278 62.506 76.1278ZM62.5146 74.7216C62.8157 74.7216 63.0671 74.6364 63.2688 74.4659C63.4705 74.2926 63.6225 74.0568 63.7248 73.7585C63.8299 73.4602 63.8825 73.1207 63.8825 72.7401C63.8825 72.3594 63.8299 72.0199 63.7248 71.7216C63.6225 71.4233 63.4705 71.1875 63.2688 71.0142C63.0671 70.8409 62.8157 70.7543 62.5146 70.7543C62.2106 70.7543 61.9549 70.8409 61.7475 71.0142C61.543 71.1875 61.3881 71.4233 61.283 71.7216C61.1808 72.0199 61.1296 72.3594 61.1296 72.7401C61.1296 73.1207 61.1808 73.4602 61.283 73.7585C61.3881 74.0568 61.543 74.2926 61.7475 74.4659C61.9549 74.6364 62.2106 74.7216 62.5146 74.7216ZM72.6428 76.1278C71.9723 76.1278 71.3956 75.9858 70.9126 75.7017C70.4325 75.4148 70.0632 75.017 69.8047 74.5085C69.549 74 69.4212 73.4148 69.4212 72.7528C69.4212 72.0824 69.5504 71.4943 69.8089 70.9886C70.0703 70.4801 70.4411 70.0838 70.9212 69.7997C71.4013 69.5128 71.9723 69.3693 72.6342 69.3693C73.2053 69.3693 73.7053 69.473 74.1342 69.6804C74.5632 69.8878 74.9027 70.179 75.1527 70.554C75.4027 70.929 75.5405 71.3693 75.5661 71.875H73.853C73.8047 71.5483 73.6768 71.2855 73.4695 71.0866C73.2649 70.8849 72.9964 70.7841 72.6641 70.7841C72.3828 70.7841 72.1371 70.8608 71.9268 71.0142C71.7195 71.1648 71.5575 71.3849 71.4411 71.6747C71.3246 71.9645 71.2663 72.3153 71.2663 72.7273C71.2663 73.1449 71.3232 73.5 71.4368 73.7926C71.5533 74.0852 71.7166 74.3082 71.9268 74.4616C72.1371 74.6151 72.3828 74.6918 72.6641 74.6918C72.8714 74.6918 73.0575 74.6491 73.2223 74.5639C73.3899 74.4787 73.5277 74.3551 73.6357 74.1932C73.7464 74.0284 73.8189 73.831 73.853 73.6009H75.5661C75.5376 74.1009 75.4013 74.5412 75.157 74.9219C74.9155 75.2997 74.5817 75.5952 74.1555 75.8082C73.7294 76.0213 73.2251 76.1278 72.6428 76.1278ZM79.6857 76.1278C79.0238 76.1278 78.4513 75.9872 77.9684 75.706C77.4883 75.4219 77.1175 75.027 76.8562 74.5213C76.5948 74.0128 76.4641 73.4233 76.4641 72.7528C76.4641 72.0767 76.5948 71.4858 76.8562 70.9801C77.1175 70.4716 77.4883 70.0767 77.9684 69.7955C78.4513 69.5114 79.0238 69.3693 79.6857 69.3693C80.3477 69.3693 80.9187 69.5114 81.3988 69.7955C81.8817 70.0767 82.2539 70.4716 82.5153 70.9801C82.7766 71.4858 82.9073 72.0767 82.9073 72.7528C82.9073 73.4233 82.7766 74.0128 82.5153 74.5213C82.2539 75.027 81.8817 75.4219 81.3988 75.706C80.9187 75.9872 80.3477 76.1278 79.6857 76.1278ZM79.6942 74.7216C79.9954 74.7216 80.2468 74.6364 80.4485 74.4659C80.6502 74.2926 80.8022 74.0568 80.9045 73.7585C81.0096 73.4602 81.0621 73.1207 81.0621 72.7401C81.0621 72.3594 81.0096 72.0199 80.9045 71.7216C80.8022 71.4233 80.6502 71.1875 80.4485 71.0142C80.2468 70.8409 79.9954 70.7543 79.6942 70.7543C79.3903 70.7543 79.1346 70.8409 78.9272 71.0142C78.7227 71.1875 78.5678 71.4233 78.4627 71.7216C78.3604 72.0199 78.3093 72.3594 78.3093 72.7401C78.3093 73.1207 78.3604 73.4602 78.4627 73.7585C78.5678 74.0568 78.7227 74.2926 78.9272 74.4659C79.1346 74.6364 79.3903 74.7216 79.6942 74.7216ZM85.9031 72.2159V76H84.0877V69.4545H85.8178V70.6094H85.8945C86.0394 70.2287 86.2823 69.9276 86.6232 69.706C86.9641 69.4815 87.3775 69.3693 87.8633 69.3693C88.3178 69.3693 88.7141 69.4688 89.0522 69.6676C89.3903 69.8665 89.6531 70.1506 89.8406 70.5199C90.0281 70.8864 90.1218 71.3239 90.1218 71.8324V76H88.3065V72.1562C88.3093 71.7557 88.207 71.4432 87.9996 71.2188C87.7923 70.9915 87.5067 70.8778 87.1431 70.8778C86.8988 70.8778 86.6829 70.9304 86.4954 71.0355C86.3107 71.1406 86.1658 71.294 86.0607 71.4957C85.9585 71.6946 85.9059 71.9347 85.9031 72.2159ZM95.0341 69.4545V70.8182H91.0923V69.4545H95.0341ZM91.9872 67.8864H93.8026V73.9886C93.8026 74.1562 93.8281 74.2869 93.8793 74.3807C93.9304 74.4716 94.0014 74.5355 94.0923 74.5724C94.1861 74.6094 94.294 74.6278 94.4162 74.6278C94.5014 74.6278 94.5866 74.6207 94.6719 74.6065C94.7571 74.5895 94.8224 74.5767 94.8679 74.5682L95.1534 75.919C95.0625 75.9474 94.9347 75.9801 94.7699 76.017C94.6051 76.0568 94.4048 76.081 94.169 76.0895C93.7315 76.1065 93.348 76.0483 93.0185 75.9148C92.6918 75.7812 92.4375 75.5739 92.2557 75.2926C92.0739 75.0114 91.9844 74.6562 91.9872 74.2273V67.8864ZM96.2166 76V69.4545H97.9766V70.5966H98.0447C98.1641 70.1903 98.3643 69.8835 98.6456 69.6761C98.9268 69.4659 99.2507 69.3608 99.6172 69.3608C99.7081 69.3608 99.8061 69.3665 99.9112 69.3778C100.016 69.3892 100.109 69.4048 100.188 69.4247V71.0355C100.103 71.0099 99.9851 70.9872 99.8345 70.9673C99.6839 70.9474 99.5462 70.9375 99.4212 70.9375C99.1541 70.9375 98.9155 70.9957 98.7053 71.1122C98.4979 71.2259 98.3331 71.3849 98.2109 71.5895C98.0916 71.794 98.032 72.0298 98.032 72.2969V76H96.2166ZM102.806 76.1236C102.388 76.1236 102.016 76.0511 101.689 75.9062C101.363 75.7585 101.104 75.5412 100.914 75.2543C100.726 74.9645 100.632 74.6037 100.632 74.1719C100.632 73.8082 100.699 73.5028 100.833 73.2557C100.966 73.0085 101.148 72.8097 101.378 72.6591C101.608 72.5085 101.87 72.3949 102.162 72.3182C102.458 72.2415 102.767 72.1875 103.091 72.1562C103.472 72.1165 103.779 72.0795 104.012 72.0455C104.245 72.0085 104.414 71.9545 104.519 71.8835C104.624 71.8125 104.676 71.7074 104.676 71.5682V71.5426C104.676 71.2727 104.591 71.0639 104.421 70.9162C104.253 70.7685 104.015 70.6946 103.705 70.6946C103.378 70.6946 103.118 70.767 102.925 70.9119C102.732 71.054 102.604 71.233 102.542 71.4489L100.863 71.3125C100.948 70.9148 101.115 70.571 101.365 70.2812C101.615 69.9886 101.938 69.7642 102.333 69.608C102.73 69.4489 103.191 69.3693 103.713 69.3693C104.077 69.3693 104.425 69.4119 104.757 69.4972C105.093 69.5824 105.39 69.7145 105.648 69.8935C105.909 70.0724 106.115 70.3026 106.266 70.5838C106.417 70.8622 106.492 71.196 106.492 71.5852V76H104.77V75.0923H104.719C104.614 75.2969 104.473 75.4773 104.297 75.6335C104.121 75.7869 103.909 75.9077 103.662 75.9957C103.415 76.081 103.13 76.1236 102.806 76.1236ZM103.326 74.8707C103.593 74.8707 103.828 74.8182 104.033 74.7131C104.238 74.6051 104.398 74.4602 104.515 74.2784C104.631 74.0966 104.689 73.8906 104.689 73.6605V72.9659C104.632 73.0028 104.554 73.0369 104.455 73.0682C104.358 73.0966 104.249 73.1236 104.127 73.1491C104.005 73.1719 103.882 73.1932 103.76 73.2131C103.638 73.2301 103.527 73.2457 103.428 73.2599C103.215 73.2912 103.029 73.3409 102.87 73.4091C102.711 73.4773 102.587 73.5696 102.499 73.6861C102.411 73.7997 102.367 73.9418 102.367 74.1122C102.367 74.3594 102.456 74.5483 102.635 74.679C102.817 74.8068 103.047 74.8707 103.326 74.8707ZM110.678 76V69.4545H112.408V70.6094H112.484C112.621 70.2259 112.848 69.9233 113.166 69.7017C113.484 69.4801 113.865 69.3693 114.308 69.3693C114.757 69.3693 115.139 69.4815 115.455 69.706C115.77 69.9276 115.98 70.2287 116.085 70.6094H116.153C116.287 70.2344 116.528 69.9347 116.878 69.7102C117.23 69.483 117.646 69.3693 118.126 69.3693C118.737 69.3693 119.233 69.5639 119.614 69.9531C119.997 70.3395 120.189 70.8878 120.189 71.598V76H118.378V71.956C118.378 71.5923 118.281 71.3196 118.088 71.1378C117.895 70.956 117.653 70.8651 117.364 70.8651C117.034 70.8651 116.777 70.9702 116.592 71.1804C116.408 71.3878 116.315 71.6619 116.315 72.0028V76H114.555V71.9176C114.555 71.5966 114.463 71.3409 114.278 71.1506C114.097 70.9602 113.857 70.8651 113.558 70.8651C113.357 70.8651 113.175 70.9162 113.013 71.0185C112.854 71.1179 112.727 71.2585 112.634 71.4403C112.54 71.6193 112.493 71.8295 112.493 72.071V76H110.678ZM123.489 76.1236C123.072 76.1236 122.7 76.0511 122.373 75.9062C122.046 75.7585 121.788 75.5412 121.597 75.2543C121.41 74.9645 121.316 74.6037 121.316 74.1719C121.316 73.8082 121.383 73.5028 121.516 73.2557C121.65 73.0085 121.832 72.8097 122.062 72.6591C122.292 72.5085 122.553 72.3949 122.846 72.3182C123.141 72.2415 123.451 72.1875 123.775 72.1562C124.156 72.1165 124.462 72.0795 124.695 72.0455C124.928 72.0085 125.097 71.9545 125.202 71.8835C125.308 71.8125 125.36 71.7074 125.36 71.5682V71.5426C125.36 71.2727 125.275 71.0639 125.104 70.9162C124.937 70.7685 124.698 70.6946 124.388 70.6946C124.062 70.6946 123.802 70.767 123.609 70.9119C123.415 71.054 123.288 71.233 123.225 71.4489L121.546 71.3125C121.631 70.9148 121.799 70.571 122.049 70.2812C122.299 69.9886 122.621 69.7642 123.016 69.608C123.414 69.4489 123.874 69.3693 124.397 69.3693C124.761 69.3693 125.109 69.4119 125.441 69.4972C125.776 69.5824 126.073 69.7145 126.332 69.8935C126.593 70.0724 126.799 70.3026 126.95 70.5838C127.1 70.8622 127.175 71.196 127.175 71.5852V76H125.454V75.0923H125.403C125.298 75.2969 125.157 75.4773 124.981 75.6335C124.805 75.7869 124.593 75.9077 124.346 75.9957C124.099 76.081 123.813 76.1236 123.489 76.1236ZM124.009 74.8707C124.276 74.8707 124.512 74.8182 124.717 74.7131C124.921 74.6051 125.082 74.4602 125.198 74.2784C125.315 74.0966 125.373 73.8906 125.373 73.6605V72.9659C125.316 73.0028 125.238 73.0369 125.138 73.0682C125.042 73.0966 124.933 73.1236 124.81 73.1491C124.688 73.1719 124.566 73.1932 124.444 73.2131C124.322 73.2301 124.211 73.2457 124.112 73.2599C123.898 73.2912 123.712 73.3409 123.553 73.4091C123.394 73.4773 123.271 73.5696 123.183 73.6861C123.094 73.7997 123.05 73.9418 123.05 74.1122C123.05 74.3594 123.14 74.5483 123.319 74.679C123.501 74.8068 123.731 74.8707 124.009 74.8707ZM130.399 67.2727V76H128.584V67.2727H130.399ZM133.669 72.2159V76H131.853V67.2727H133.618V70.6094H133.694C133.842 70.223 134.081 69.9205 134.41 69.7017C134.74 69.4801 135.153 69.3693 135.65 69.3693C136.105 69.3693 136.501 69.4688 136.839 69.6676C137.18 69.8636 137.444 70.1463 137.632 70.5156C137.822 70.8821 137.916 71.321 137.913 71.8324V76H136.098V72.1562C136.1 71.7528 135.998 71.4389 135.791 71.2145C135.586 70.9901 135.299 70.8778 134.93 70.8778C134.683 70.8778 134.464 70.9304 134.274 71.0355C134.086 71.1406 133.939 71.294 133.831 71.4957C133.725 71.6946 133.672 71.9347 133.669 72.2159ZM141.208 76.1236C140.79 76.1236 140.418 76.0511 140.092 75.9062C139.765 75.7585 139.506 75.5412 139.316 75.2543C139.129 74.9645 139.035 74.6037 139.035 74.1719C139.035 73.8082 139.102 73.5028 139.235 73.2557C139.369 73.0085 139.55 72.8097 139.781 72.6591C140.011 72.5085 140.272 72.3949 140.565 72.3182C140.86 72.2415 141.17 72.1875 141.494 72.1562C141.874 72.1165 142.181 72.0795 142.414 72.0455C142.647 72.0085 142.816 71.9545 142.921 71.8835C143.026 71.8125 143.079 71.7074 143.079 71.5682V71.5426C143.079 71.2727 142.994 71.0639 142.823 70.9162C142.656 70.7685 142.417 70.6946 142.107 70.6946C141.781 70.6946 141.521 70.767 141.327 70.9119C141.134 71.054 141.006 71.233 140.944 71.4489L139.265 71.3125C139.35 70.9148 139.518 70.571 139.768 70.2812C140.018 69.9886 140.34 69.7642 140.735 69.608C141.133 69.4489 141.593 69.3693 142.116 69.3693C142.479 69.3693 142.827 69.4119 143.16 69.4972C143.495 69.5824 143.792 69.7145 144.05 69.8935C144.312 70.0724 144.518 70.3026 144.668 70.5838C144.819 70.8622 144.894 71.196 144.894 71.5852V76H143.173V75.0923H143.121C143.016 75.2969 142.876 75.4773 142.7 75.6335C142.523 75.7869 142.312 75.9077 142.065 75.9957C141.817 76.081 141.532 76.1236 141.208 76.1236ZM141.728 74.8707C141.995 74.8707 142.231 74.8182 142.435 74.7131C142.64 74.6051 142.8 74.4602 142.917 74.2784C143.033 74.0966 143.092 73.8906 143.092 73.6605V72.9659C143.035 73.0028 142.957 73.0369 142.857 73.0682C142.761 73.0966 142.651 73.1236 142.529 73.1491C142.407 73.1719 142.285 73.1932 142.163 73.2131C142.04 73.2301 141.93 73.2457 141.83 73.2599C141.617 73.2912 141.431 73.3409 141.272 73.4091C141.113 73.4773 140.989 73.5696 140.901 73.6861C140.813 73.7997 140.769 73.9418 140.769 74.1122C140.769 74.3594 140.859 74.5483 141.038 74.679C141.219 74.8068 141.45 74.8707 141.728 74.8707ZM152.6 69.4545V70.8182H148.56V69.4545H152.6ZM149.485 76V68.9815C149.485 68.5071 149.577 68.1136 149.762 67.8011C149.949 67.4886 150.205 67.2543 150.529 67.098C150.853 66.9418 151.221 66.8636 151.632 66.8636C151.911 66.8636 152.165 66.8849 152.395 66.9276C152.628 66.9702 152.801 67.0085 152.915 67.0426L152.591 68.4062C152.52 68.3835 152.432 68.3622 152.327 68.3423C152.225 68.3224 152.12 68.3125 152.012 68.3125C151.745 68.3125 151.559 68.375 151.453 68.5C151.348 68.6222 151.296 68.794 151.296 69.0156V76H149.485ZM153.709 76V69.4545H155.524V76H153.709ZM154.621 68.6108C154.351 68.6108 154.119 68.5213 153.926 68.3423C153.736 68.1605 153.641 67.9432 153.641 67.6903C153.641 67.4403 153.736 67.2259 153.926 67.0469C154.119 66.8651 154.351 66.7741 154.621 66.7741C154.891 66.7741 155.121 66.8651 155.311 67.0469C155.504 67.2259 155.601 67.4403 155.601 67.6903C155.601 67.9432 155.504 68.1605 155.311 68.3423C155.121 68.5213 154.891 68.6108 154.621 68.6108ZM158.794 72.2159V76H156.978V69.4545H158.708V70.6094H158.785C158.93 70.2287 159.173 69.9276 159.514 69.706C159.855 69.4815 160.268 69.3693 160.754 69.3693C161.208 69.3693 161.605 69.4688 161.943 69.6676C162.281 69.8665 162.544 70.1506 162.731 70.5199C162.919 70.8864 163.012 71.3239 163.012 71.8324V76H161.197V72.1562C161.2 71.7557 161.098 71.4432 160.89 71.2188C160.683 70.9915 160.397 70.8778 160.034 70.8778C159.789 70.8778 159.574 70.9304 159.386 71.0355C159.201 71.1406 159.056 71.294 158.951 71.4957C158.849 71.6946 158.797 71.9347 158.794 72.2159ZM166.31 76.1236C165.892 76.1236 165.52 76.0511 165.193 75.9062C164.866 75.7585 164.608 75.5412 164.418 75.2543C164.23 74.9645 164.136 74.6037 164.136 74.1719C164.136 73.8082 164.203 73.5028 164.337 73.2557C164.47 73.0085 164.652 72.8097 164.882 72.6591C165.112 72.5085 165.374 72.3949 165.666 72.3182C165.962 72.2415 166.271 72.1875 166.595 72.1562C166.976 72.1165 167.283 72.0795 167.516 72.0455C167.749 72.0085 167.918 71.9545 168.023 71.8835C168.128 71.8125 168.18 71.7074 168.18 71.5682V71.5426C168.18 71.2727 168.095 71.0639 167.925 70.9162C167.757 70.7685 167.518 70.6946 167.209 70.6946C166.882 70.6946 166.622 70.767 166.429 70.9119C166.236 71.054 166.108 71.233 166.045 71.4489L164.366 71.3125C164.452 70.9148 164.619 70.571 164.869 70.2812C165.119 69.9886 165.442 69.7642 165.837 69.608C166.234 69.4489 166.695 69.3693 167.217 69.3693C167.581 69.3693 167.929 69.4119 168.261 69.4972C168.597 69.5824 168.893 69.7145 169.152 69.8935C169.413 70.0724 169.619 70.3026 169.77 70.5838C169.92 70.8622 169.996 71.196 169.996 71.5852V76H168.274V75.0923H168.223C168.118 75.2969 167.977 75.4773 167.801 75.6335C167.625 75.7869 167.413 75.9077 167.166 75.9957C166.919 76.081 166.634 76.1236 166.31 76.1236ZM166.83 74.8707C167.097 74.8707 167.332 74.8182 167.537 74.7131C167.741 74.6051 167.902 74.4602 168.018 74.2784C168.135 74.0966 168.193 73.8906 168.193 73.6605V72.9659C168.136 73.0028 168.058 73.0369 167.959 73.0682C167.862 73.0966 167.753 73.1236 167.631 73.1491C167.509 73.1719 167.386 73.1932 167.264 73.2131C167.142 73.2301 167.031 73.2457 166.932 73.2599C166.719 73.2912 166.533 73.3409 166.374 73.4091C166.214 73.4773 166.091 73.5696 166.003 73.6861C165.915 73.7997 165.871 73.9418 165.871 74.1122C165.871 74.3594 165.96 74.5483 166.139 74.679C166.321 74.8068 166.551 74.8707 166.83 74.8707ZM35.0762 91.2266C35.334 91.2266 35.5723 91.1738 35.791 91.0684C36.0098 90.9629 36.1895 90.8184 36.3301 90.6348C36.4707 90.4473 36.5508 90.2344 36.5703 89.9961H37.6016C37.582 90.3711 37.4551 90.7207 37.2207 91.0449C36.9902 91.3652 36.6875 91.625 36.3125 91.8242C35.9375 92.0195 35.5254 92.1172 35.0762 92.1172C34.5996 92.1172 34.1836 92.0332 33.8281 91.8652C33.4766 91.6973 33.1836 91.4668 32.9492 91.1738C32.7188 90.8809 32.5449 90.5449 32.4277 90.166C32.3145 89.7832 32.2578 89.3789 32.2578 88.9531V88.707C32.2578 88.2812 32.3145 87.8789 32.4277 87.5C32.5449 87.1172 32.7188 86.7793 32.9492 86.4863C33.1836 86.1934 33.4766 85.9629 33.8281 85.7949C34.1836 85.627 34.5996 85.543 35.0762 85.543C35.5723 85.543 36.0059 85.6445 36.377 85.8477C36.748 86.0469 37.0391 86.3203 37.25 86.668C37.4648 87.0117 37.582 87.4023 37.6016 87.8398H36.5703C36.5508 87.5781 36.4766 87.3418 36.3477 87.1309C36.2227 86.9199 36.0508 86.752 35.832 86.627C35.6172 86.498 35.3652 86.4336 35.0762 86.4336C34.7441 86.4336 34.4648 86.5 34.2383 86.6328C34.0156 86.7617 33.8379 86.9375 33.7051 87.1602C33.5762 87.3789 33.4824 87.623 33.4238 87.8926C33.3691 88.1582 33.3418 88.4297 33.3418 88.707V88.9531C33.3418 89.2305 33.3691 89.5039 33.4238 89.7734C33.4785 90.043 33.5703 90.2871 33.6992 90.5059C33.832 90.7246 34.0098 90.9004 34.2324 91.0332C34.459 91.1621 34.7402 91.2266 35.0762 91.2266ZM38.5332 88.9004V88.7656C38.5332 88.3086 38.5996 87.8848 38.7324 87.4941C38.8652 87.0996 39.0566 86.7578 39.3066 86.4688C39.5566 86.1758 39.8594 85.9492 40.2148 85.7891C40.5703 85.625 40.9688 85.543 41.4102 85.543C41.8555 85.543 42.2559 85.625 42.6113 85.7891C42.9707 85.9492 43.2754 86.1758 43.5254 86.4688C43.7793 86.7578 43.9727 87.0996 44.1055 87.4941C44.2383 87.8848 44.3047 88.3086 44.3047 88.7656V88.9004C44.3047 89.3574 44.2383 89.7812 44.1055 90.1719C43.9727 90.5625 43.7793 90.9043 43.5254 91.1973C43.2754 91.4863 42.9727 91.7129 42.6172 91.877C42.2656 92.0371 41.8672 92.1172 41.4219 92.1172C40.9766 92.1172 40.5762 92.0371 40.2207 91.877C39.8652 91.7129 39.5605 91.4863 39.3066 91.1973C39.0566 90.9043 38.8652 90.5625 38.7324 90.1719C38.5996 89.7812 38.5332 89.3574 38.5332 88.9004ZM39.6172 88.7656V88.9004C39.6172 89.2168 39.6543 89.5156 39.7285 89.7969C39.8027 90.0742 39.9141 90.3203 40.0625 90.5352C40.2148 90.75 40.4043 90.9199 40.6309 91.0449C40.8574 91.166 41.1211 91.2266 41.4219 91.2266C41.7188 91.2266 41.9785 91.166 42.2012 91.0449C42.4277 90.9199 42.6152 90.75 42.7637 90.5352C42.9121 90.3203 43.0234 90.0742 43.0977 89.7969C43.1758 89.5156 43.2148 89.2168 43.2148 88.9004V88.7656C43.2148 88.4531 43.1758 88.1582 43.0977 87.8809C43.0234 87.5996 42.9102 87.3516 42.7578 87.1367C42.6094 86.918 42.4219 86.7461 42.1953 86.6211C41.9727 86.4961 41.7109 86.4336 41.4102 86.4336C41.1133 86.4336 40.8516 86.4961 40.625 86.6211C40.4023 86.7461 40.2148 86.918 40.0625 87.1367C39.9141 87.3516 39.8027 87.5996 39.7285 87.8809C39.6543 88.1582 39.6172 88.4531 39.6172 88.7656ZM46.7422 86.9199V92H45.6523V85.6602H46.6836L46.7422 86.9199ZM46.5195 88.5898L46.0156 88.5723C46.0195 88.1387 46.0762 87.7383 46.1855 87.3711C46.2949 87 46.457 86.6777 46.6719 86.4043C46.8867 86.1309 47.1543 85.9199 47.4746 85.7715C47.7949 85.6191 48.166 85.543 48.5879 85.543C48.8848 85.543 49.1582 85.5859 49.4082 85.6719C49.6582 85.7539 49.875 85.8848 50.0586 86.0645C50.2422 86.2441 50.3848 86.4746 50.4863 86.7559C50.5879 87.0371 50.6387 87.377 50.6387 87.7754V92H49.5547V87.8281C49.5547 87.4961 49.498 87.2305 49.3848 87.0312C49.2754 86.832 49.1191 86.6875 48.916 86.5977C48.7129 86.5039 48.4746 86.457 48.2012 86.457C47.8809 86.457 47.6133 86.5137 47.3984 86.627C47.1836 86.7402 47.0117 86.8965 46.8828 87.0957C46.7539 87.2949 46.6602 87.5234 46.6016 87.7812C46.5469 88.0352 46.5195 88.3047 46.5195 88.5898ZM50.627 87.9922L49.9004 88.2148C49.9043 87.8672 49.9609 87.5332 50.0703 87.2129C50.1836 86.8926 50.3457 86.6074 50.5566 86.3574C50.7715 86.1074 51.0352 85.9102 51.3477 85.7656C51.6602 85.6172 52.0176 85.543 52.4199 85.543C52.7598 85.543 53.0605 85.5879 53.3223 85.6777C53.5879 85.7676 53.8105 85.9062 53.9902 86.0938C54.1738 86.2773 54.3125 86.5137 54.4062 86.8027C54.5 87.0918 54.5469 87.4355 54.5469 87.834V92H53.457V87.8223C53.457 87.4668 53.4004 87.1914 53.2871 86.9961C53.1777 86.7969 53.0215 86.6582 52.8184 86.5801C52.6191 86.498 52.3809 86.457 52.1035 86.457C51.8652 86.457 51.6543 86.498 51.4707 86.5801C51.2871 86.6621 51.1328 86.7754 51.0078 86.9199C50.8828 87.0605 50.7871 87.2227 50.7207 87.4062C50.6582 87.5898 50.627 87.7852 50.627 87.9922ZM62.6094 83.4219V92H61.5254V84.7754L59.3398 85.5723V84.5938L62.4395 83.4219H62.6094ZM71.1523 87.0547V88.3555C71.1523 89.0547 71.0898 89.6445 70.9648 90.125C70.8398 90.6055 70.6602 90.9922 70.4258 91.2852C70.1914 91.5781 69.9082 91.791 69.5762 91.9238C69.248 92.0527 68.877 92.1172 68.4629 92.1172C68.1348 92.1172 67.832 92.0762 67.5547 91.9941C67.2773 91.9121 67.0273 91.7812 66.8047 91.6016C66.5859 91.418 66.3984 91.1797 66.2422 90.8867C66.0859 90.5938 65.9668 90.2383 65.8848 89.8203C65.8027 89.4023 65.7617 88.9141 65.7617 88.3555V87.0547C65.7617 86.3555 65.8242 85.7695 65.9492 85.2969C66.0781 84.8242 66.2598 84.4453 66.4941 84.1602C66.7285 83.8711 67.0098 83.6641 67.3379 83.5391C67.6699 83.4141 68.041 83.3516 68.4512 83.3516C68.7832 83.3516 69.0879 83.3926 69.3652 83.4746C69.6465 83.5527 69.8965 83.6797 70.1152 83.8555C70.334 84.0273 70.5195 84.2578 70.6719 84.5469C70.8281 84.832 70.9473 85.1816 71.0293 85.5957C71.1113 86.0098 71.1523 86.4961 71.1523 87.0547ZM70.0625 88.5312V86.873C70.0625 86.4902 70.0391 86.1543 69.9922 85.8652C69.9492 85.5723 69.8848 85.3223 69.7988 85.1152C69.7129 84.9082 69.6035 84.7402 69.4707 84.6113C69.3418 84.4824 69.1914 84.3887 69.0195 84.3301C68.8516 84.2676 68.6621 84.2363 68.4512 84.2363C68.1934 84.2363 67.9648 84.2852 67.7656 84.3828C67.5664 84.4766 67.3984 84.627 67.2617 84.834C67.1289 85.041 67.0273 85.3125 66.957 85.6484C66.8867 85.9844 66.8516 86.3926 66.8516 86.873V88.5312C66.8516 88.9141 66.873 89.252 66.916 89.5449C66.9629 89.8379 67.0312 90.0918 67.1211 90.3066C67.2109 90.5176 67.3203 90.6914 67.4492 90.8281C67.5781 90.9648 67.7266 91.0664 67.8945 91.1328C68.0664 91.1953 68.2559 91.2266 68.4629 91.2266C68.7285 91.2266 68.9609 91.1758 69.1602 91.0742C69.3594 90.9727 69.5254 90.8145 69.6582 90.5996C69.7949 90.3809 69.8965 90.1016 69.9629 89.7617C70.0293 89.418 70.0625 89.0078 70.0625 88.5312ZM77.9023 87.0547V88.3555C77.9023 89.0547 77.8398 89.6445 77.7148 90.125C77.5898 90.6055 77.4102 90.9922 77.1758 91.2852C76.9414 91.5781 76.6582 91.791 76.3262 91.9238C75.998 92.0527 75.627 92.1172 75.2129 92.1172C74.8848 92.1172 74.582 92.0762 74.3047 91.9941C74.0273 91.9121 73.7773 91.7812 73.5547 91.6016C73.3359 91.418 73.1484 91.1797 72.9922 90.8867C72.8359 90.5938 72.7168 90.2383 72.6348 89.8203C72.5527 89.4023 72.5117 88.9141 72.5117 88.3555V87.0547C72.5117 86.3555 72.5742 85.7695 72.6992 85.2969C72.8281 84.8242 73.0098 84.4453 73.2441 84.1602C73.4785 83.8711 73.7598 83.6641 74.0879 83.5391C74.4199 83.4141 74.791 83.3516 75.2012 83.3516C75.5332 83.3516 75.8379 83.3926 76.1152 83.4746C76.3965 83.5527 76.6465 83.6797 76.8652 83.8555C77.084 84.0273 77.2695 84.2578 77.4219 84.5469C77.5781 84.832 77.6973 85.1816 77.7793 85.5957C77.8613 86.0098 77.9023 86.4961 77.9023 87.0547ZM76.8125 88.5312V86.873C76.8125 86.4902 76.7891 86.1543 76.7422 85.8652C76.6992 85.5723 76.6348 85.3223 76.5488 85.1152C76.4629 84.9082 76.3535 84.7402 76.2207 84.6113C76.0918 84.4824 75.9414 84.3887 75.7695 84.3301C75.6016 84.2676 75.4121 84.2363 75.2012 84.2363C74.9434 84.2363 74.7148 84.2852 74.5156 84.3828C74.3164 84.4766 74.1484 84.627 74.0117 84.834C73.8789 85.041 73.7773 85.3125 73.707 85.6484C73.6367 85.9844 73.6016 86.3926 73.6016 86.873V88.5312C73.6016 88.9141 73.623 89.252 73.666 89.5449C73.7129 89.8379 73.7812 90.0918 73.8711 90.3066C73.9609 90.5176 74.0703 90.6914 74.1992 90.8281C74.3281 90.9648 74.4766 91.0664 74.6445 91.1328C74.8164 91.1953 75.0059 91.2266 75.2129 91.2266C75.4785 91.2266 75.7109 91.1758 75.9102 91.0742C76.1094 90.9727 76.2754 90.8145 76.4082 90.5996C76.5449 90.3809 76.6465 90.1016 76.7129 89.7617C76.7793 89.418 76.8125 89.0078 76.8125 88.5312ZM79.2031 85.5605V85.1094C79.2031 84.7852 79.2734 84.4902 79.4141 84.2246C79.5547 83.959 79.7559 83.7461 80.0176 83.5859C80.2793 83.4258 80.5898 83.3457 80.9492 83.3457C81.3164 83.3457 81.6289 83.4258 81.8867 83.5859C82.1484 83.7461 82.3496 83.959 82.4902 84.2246C82.6309 84.4902 82.7012 84.7852 82.7012 85.1094V85.5605C82.7012 85.877 82.6309 86.168 82.4902 86.4336C82.3535 86.6992 82.1543 86.9121 81.8926 87.0723C81.6348 87.2324 81.3242 87.3125 80.9609 87.3125C80.5977 87.3125 80.2832 87.2324 80.0176 87.0723C79.7559 86.9121 79.5547 86.6992 79.4141 86.4336C79.2734 86.168 79.2031 85.877 79.2031 85.5605ZM80.0176 85.1094V85.5605C80.0176 85.7402 80.0508 85.9102 80.1172 86.0703C80.1875 86.2305 80.293 86.3613 80.4336 86.4629C80.5742 86.5605 80.75 86.6094 80.9609 86.6094C81.1719 86.6094 81.3457 86.5605 81.4824 86.4629C81.6191 86.3613 81.7207 86.2305 81.7871 86.0703C81.8535 85.9102 81.8867 85.7402 81.8867 85.5605V85.1094C81.8867 84.9258 81.8516 84.7539 81.7812 84.5938C81.7148 84.4297 81.6113 84.2988 81.4707 84.2012C81.334 84.0996 81.1602 84.0488 80.9492 84.0488C80.7422 84.0488 80.5684 84.0996 80.4277 84.2012C80.291 84.2988 80.1875 84.4297 80.1172 84.5938C80.0508 84.7539 80.0176 84.9258 80.0176 85.1094ZM83.3574 90.3652V89.9082C83.3574 89.5879 83.4277 89.2949 83.5684 89.0293C83.709 88.7637 83.9102 88.5508 84.1719 88.3906C84.4336 88.2305 84.7441 88.1504 85.1035 88.1504C85.4707 88.1504 85.7832 88.2305 86.041 88.3906C86.3027 88.5508 86.5039 88.7637 86.6445 89.0293C86.7852 89.2949 86.8555 89.5879 86.8555 89.9082V90.3652C86.8555 90.6855 86.7852 90.9785 86.6445 91.2441C86.5078 91.5098 86.3086 91.7227 86.0469 91.8828C85.7891 92.043 85.4785 92.123 85.1152 92.123C84.752 92.123 84.4395 92.043 84.1777 91.8828C83.916 91.7227 83.7129 91.5098 83.5684 91.2441C83.4277 90.9785 83.3574 90.6855 83.3574 90.3652ZM84.1719 89.9082V90.3652C84.1719 90.5449 84.2051 90.7168 84.2715 90.8809C84.3418 91.041 84.4473 91.1719 84.5879 91.2734C84.7285 91.3711 84.9043 91.4199 85.1152 91.4199C85.3262 91.4199 85.5 91.3711 85.6367 91.2734C85.7773 91.1719 85.8809 91.041 85.9473 90.8809C86.0137 90.7207 86.0469 90.5488 86.0469 90.3652V89.9082C86.0469 89.7246 86.0117 89.5527 85.9414 89.3926C85.875 89.2324 85.7715 89.1035 85.6309 89.0059C85.4941 88.9043 85.3184 88.8535 85.1035 88.8535C84.8965 88.8535 84.7227 88.9043 84.582 89.0059C84.4453 89.1035 84.3418 89.2324 84.2715 89.3926C84.2051 89.5527 84.1719 89.7246 84.1719 89.9082ZM85.373 84.6816L81.207 91.3496L80.5977 90.9629L84.7637 84.2949L85.373 84.6816ZM95.1758 90.7695V83H96.2656V92H95.2695L95.1758 90.7695ZM90.9102 88.9004V88.7773C90.9102 88.293 90.9688 87.8535 91.0859 87.459C91.207 87.0605 91.377 86.7188 91.5957 86.4336C91.8184 86.1484 92.082 85.9297 92.3867 85.7773C92.6953 85.6211 93.0391 85.543 93.418 85.543C93.8164 85.543 94.1641 85.6133 94.4609 85.7539C94.7617 85.8906 95.0156 86.0918 95.2227 86.3574C95.4336 86.6191 95.5996 86.9355 95.7207 87.3066C95.8418 87.6777 95.9258 88.0977 95.9727 88.5664V89.1055C95.9297 89.5703 95.8457 89.9883 95.7207 90.3594C95.5996 90.7305 95.4336 91.0469 95.2227 91.3086C95.0156 91.5703 94.7617 91.7715 94.4609 91.9121C94.1602 92.0488 93.8086 92.1172 93.4062 92.1172C93.0352 92.1172 92.6953 92.0371 92.3867 91.877C92.082 91.7168 91.8184 91.4922 91.5957 91.2031C91.377 90.9141 91.207 90.5742 91.0859 90.1836C90.9688 89.7891 90.9102 89.3613 90.9102 88.9004ZM92 88.7773V88.9004C92 89.2168 92.0312 89.5137 92.0938 89.791C92.1602 90.0684 92.2617 90.3125 92.3984 90.5234C92.5352 90.7344 92.709 90.9004 92.9199 91.0215C93.1309 91.1387 93.3828 91.1973 93.6758 91.1973C94.0352 91.1973 94.3301 91.1211 94.5605 90.9688C94.7949 90.8164 94.9824 90.6152 95.123 90.3652C95.2637 90.1152 95.373 89.8438 95.4512 89.5508V88.1387C95.4043 87.9238 95.3359 87.7168 95.2461 87.5176C95.1602 87.3145 95.0469 87.1348 94.9062 86.9785C94.7695 86.8184 94.5996 86.6914 94.3965 86.5977C94.1973 86.5039 93.9609 86.457 93.6875 86.457C93.3906 86.457 93.1348 86.5195 92.9199 86.6445C92.709 86.7656 92.5352 86.9336 92.3984 87.1484C92.2617 87.3594 92.1602 87.6055 92.0938 87.8867C92.0312 88.1641 92 88.4609 92 88.7773ZM100.584 92.1172C100.143 92.1172 99.7422 92.043 99.3828 91.8945C99.0273 91.7422 98.7207 91.5293 98.4629 91.2559C98.209 90.9824 98.0137 90.6582 97.877 90.2832C97.7402 89.9082 97.6719 89.498 97.6719 89.0527V88.8066C97.6719 88.291 97.748 87.832 97.9004 87.4297C98.0527 87.0234 98.2598 86.6797 98.5215 86.3984C98.7832 86.1172 99.0801 85.9043 99.4121 85.7598C99.7441 85.6152 100.088 85.543 100.443 85.543C100.896 85.543 101.287 85.6211 101.615 85.7773C101.947 85.9336 102.219 86.1523 102.43 86.4336C102.641 86.7109 102.797 87.0391 102.898 87.418C103 87.793 103.051 88.2031 103.051 88.6484V89.1348H98.3164V88.25H101.967V88.168C101.951 87.8867 101.893 87.6133 101.791 87.3477C101.693 87.082 101.537 86.8633 101.322 86.6914C101.107 86.5195 100.814 86.4336 100.443 86.4336C100.197 86.4336 99.9707 86.4863 99.7637 86.5918C99.5566 86.6934 99.3789 86.8457 99.2305 87.0488C99.082 87.252 98.9668 87.5 98.8848 87.793C98.8027 88.0859 98.7617 88.4238 98.7617 88.8066V89.0527C98.7617 89.3535 98.8027 89.6367 98.8848 89.9023C98.9707 90.1641 99.0938 90.3945 99.2539 90.5938C99.418 90.793 99.6152 90.9492 99.8457 91.0625C100.08 91.1758 100.346 91.2324 100.643 91.2324C101.025 91.2324 101.35 91.1543 101.615 90.998C101.881 90.8418 102.113 90.6328 102.312 90.3711L102.969 90.8926C102.832 91.0996 102.658 91.2969 102.447 91.4844C102.236 91.6719 101.977 91.8242 101.668 91.9414C101.363 92.0586 101.002 92.1172 100.584 92.1172ZM108.377 86.8789V94.4375H107.287V85.6602H108.283L108.377 86.8789ZM112.648 88.7773V88.9004C112.648 89.3613 112.594 89.7891 112.484 90.1836C112.375 90.5742 112.215 90.9141 112.004 91.2031C111.797 91.4922 111.541 91.7168 111.236 91.877C110.932 92.0371 110.582 92.1172 110.188 92.1172C109.785 92.1172 109.43 92.0508 109.121 91.918C108.812 91.7852 108.551 91.5918 108.336 91.3379C108.121 91.084 107.949 90.7793 107.82 90.4238C107.695 90.0684 107.609 89.668 107.562 89.2227V88.5664C107.609 88.0977 107.697 87.6777 107.826 87.3066C107.955 86.9355 108.125 86.6191 108.336 86.3574C108.551 86.0918 108.811 85.8906 109.115 85.7539C109.42 85.6133 109.771 85.543 110.17 85.543C110.568 85.543 110.922 85.6211 111.23 85.7773C111.539 85.9297 111.799 86.1484 112.01 86.4336C112.221 86.7188 112.379 87.0605 112.484 87.459C112.594 87.8535 112.648 88.293 112.648 88.7773ZM111.559 88.9004V88.7773C111.559 88.4609 111.525 88.1641 111.459 87.8867C111.393 87.6055 111.289 87.3594 111.148 87.1484C111.012 86.9336 110.836 86.7656 110.621 86.6445C110.406 86.5195 110.15 86.457 109.854 86.457C109.58 86.457 109.342 86.5039 109.139 86.5977C108.939 86.6914 108.77 86.8184 108.629 86.9785C108.488 87.1348 108.373 87.3145 108.283 87.5176C108.197 87.7168 108.133 87.9238 108.09 88.1387V89.6562C108.168 89.9297 108.277 90.1875 108.418 90.4297C108.559 90.668 108.746 90.8613 108.98 91.0098C109.215 91.1543 109.51 91.2266 109.865 91.2266C110.158 91.2266 110.41 91.166 110.621 91.0449C110.836 90.9199 111.012 90.75 111.148 90.5352C111.289 90.3203 111.393 90.0742 111.459 89.7969C111.525 89.5156 111.559 89.2168 111.559 88.9004ZM115.115 86.6562V92H114.031V85.6602H115.086L115.115 86.6562ZM117.096 85.625L117.09 86.6328C117 86.6133 116.914 86.6016 116.832 86.5977C116.754 86.5898 116.664 86.5859 116.562 86.5859C116.312 86.5859 116.092 86.625 115.9 86.7031C115.709 86.7812 115.547 86.8906 115.414 87.0312C115.281 87.1719 115.176 87.3398 115.098 87.5352C115.023 87.7266 114.975 87.9375 114.951 88.168L114.646 88.3438C114.646 87.9609 114.684 87.6016 114.758 87.2656C114.836 86.9297 114.955 86.6328 115.115 86.375C115.275 86.1133 115.479 85.9102 115.725 85.7656C115.975 85.6172 116.271 85.543 116.615 85.543C116.693 85.543 116.783 85.5527 116.885 85.5723C116.986 85.5879 117.057 85.6055 117.096 85.625ZM120.611 92.1172C120.17 92.1172 119.77 92.043 119.41 91.8945C119.055 91.7422 118.748 91.5293 118.49 91.2559C118.236 90.9824 118.041 90.6582 117.904 90.2832C117.768 89.9082 117.699 89.498 117.699 89.0527V88.8066C117.699 88.291 117.775 87.832 117.928 87.4297C118.08 87.0234 118.287 86.6797 118.549 86.3984C118.811 86.1172 119.107 85.9043 119.439 85.7598C119.771 85.6152 120.115 85.543 120.471 85.543C120.924 85.543 121.314 85.6211 121.643 85.7773C121.975 85.9336 122.246 86.1523 122.457 86.4336C122.668 86.7109 122.824 87.0391 122.926 87.418C123.027 87.793 123.078 88.2031 123.078 88.6484V89.1348H118.344V88.25H121.994V88.168C121.979 87.8867 121.92 87.6133 121.818 87.3477C121.721 87.082 121.564 86.8633 121.35 86.6914C121.135 86.5195 120.842 86.4336 120.471 86.4336C120.225 86.4336 119.998 86.4863 119.791 86.5918C119.584 86.6934 119.406 86.8457 119.258 87.0488C119.109 87.252 118.994 87.5 118.912 87.793C118.83 88.0859 118.789 88.4238 118.789 88.8066V89.0527C118.789 89.3535 118.83 89.6367 118.912 89.9023C118.998 90.1641 119.121 90.3945 119.281 90.5938C119.445 90.793 119.643 90.9492 119.873 91.0625C120.107 91.1758 120.373 91.2324 120.67 91.2324C121.053 91.2324 121.377 91.1543 121.643 90.998C121.908 90.8418 122.141 90.6328 122.34 90.3711L122.996 90.8926C122.859 91.0996 122.686 91.2969 122.475 91.4844C122.264 91.6719 122.004 91.8242 121.695 91.9414C121.391 92.0586 121.029 92.1172 120.611 92.1172ZM126.881 91.2266C127.139 91.2266 127.377 91.1738 127.596 91.0684C127.814 90.9629 127.994 90.8184 128.135 90.6348C128.275 90.4473 128.355 90.2344 128.375 89.9961H129.406C129.387 90.3711 129.26 90.7207 129.025 91.0449C128.795 91.3652 128.492 91.625 128.117 91.8242C127.742 92.0195 127.33 92.1172 126.881 92.1172C126.404 92.1172 125.988 92.0332 125.633 91.8652C125.281 91.6973 124.988 91.4668 124.754 91.1738C124.523 90.8809 124.35 90.5449 124.232 90.166C124.119 89.7832 124.062 89.3789 124.062 88.9531V88.707C124.062 88.2812 124.119 87.8789 124.232 87.5C124.35 87.1172 124.523 86.7793 124.754 86.4863C124.988 86.1934 125.281 85.9629 125.633 85.7949C125.988 85.627 126.404 85.543 126.881 85.543C127.377 85.543 127.811 85.6445 128.182 85.8477C128.553 86.0469 128.844 86.3203 129.055 86.668C129.27 87.0117 129.387 87.4023 129.406 87.8398H128.375C128.355 87.5781 128.281 87.3418 128.152 87.1309C128.027 86.9199 127.855 86.752 127.637 86.627C127.422 86.498 127.17 86.4336 126.881 86.4336C126.549 86.4336 126.27 86.5 126.043 86.6328C125.82 86.7617 125.643 86.9375 125.51 87.1602C125.381 87.3789 125.287 87.623 125.229 87.8926C125.174 88.1582 125.146 88.4297 125.146 88.707V88.9531C125.146 89.2305 125.174 89.5039 125.229 89.7734C125.283 90.043 125.375 90.2871 125.504 90.5059C125.637 90.7246 125.814 90.9004 126.037 91.0332C126.264 91.1621 126.545 91.2266 126.881 91.2266ZM131.803 85.6602V92H130.713V85.6602H131.803ZM130.631 83.9785C130.631 83.8027 130.684 83.6543 130.789 83.5332C130.898 83.4121 131.059 83.3516 131.27 83.3516C131.477 83.3516 131.635 83.4121 131.744 83.5332C131.857 83.6543 131.914 83.8027 131.914 83.9785C131.914 84.1465 131.857 84.291 131.744 84.4121C131.635 84.5293 131.477 84.5879 131.27 84.5879C131.059 84.5879 130.898 84.5293 130.789 84.4121C130.684 84.291 130.631 84.1465 130.631 83.9785ZM137.234 90.3184C137.234 90.1621 137.199 90.0176 137.129 89.8848C137.062 89.748 136.924 89.625 136.713 89.5156C136.506 89.4023 136.193 89.3047 135.775 89.2227C135.424 89.1484 135.105 89.0605 134.82 88.959C134.539 88.8574 134.299 88.7344 134.1 88.5898C133.904 88.4453 133.754 88.2754 133.648 88.0801C133.543 87.8848 133.49 87.6562 133.49 87.3945C133.49 87.1445 133.545 86.9082 133.654 86.6855C133.768 86.4629 133.926 86.2656 134.129 86.0938C134.336 85.9219 134.584 85.7871 134.873 85.6895C135.162 85.5918 135.484 85.543 135.84 85.543C136.348 85.543 136.781 85.6328 137.141 85.8125C137.5 85.9922 137.775 86.2324 137.967 86.5332C138.158 86.8301 138.254 87.1602 138.254 87.5234H137.17C137.17 87.3477 137.117 87.1777 137.012 87.0137C136.91 86.8457 136.76 86.707 136.561 86.5977C136.365 86.4883 136.125 86.4336 135.84 86.4336C135.539 86.4336 135.295 86.4805 135.107 86.5742C134.924 86.6641 134.789 86.7793 134.703 86.9199C134.621 87.0605 134.58 87.209 134.58 87.3652C134.58 87.4824 134.6 87.5879 134.639 87.6816C134.682 87.7715 134.756 87.8555 134.861 87.9336C134.967 88.0078 135.115 88.0781 135.307 88.1445C135.498 88.2109 135.742 88.2773 136.039 88.3438C136.559 88.4609 136.986 88.6016 137.322 88.7656C137.658 88.9297 137.908 89.1309 138.072 89.3691C138.236 89.6074 138.318 89.8965 138.318 90.2363C138.318 90.5137 138.26 90.7676 138.143 90.998C138.029 91.2285 137.863 91.4277 137.645 91.5957C137.43 91.7598 137.172 91.8887 136.871 91.9824C136.574 92.0723 136.24 92.1172 135.869 92.1172C135.311 92.1172 134.838 92.0176 134.451 91.8184C134.064 91.6191 133.771 91.3613 133.572 91.0449C133.373 90.7285 133.273 90.3945 133.273 90.043H134.363C134.379 90.3398 134.465 90.5762 134.621 90.752C134.777 90.9238 134.969 91.0469 135.195 91.1211C135.422 91.1914 135.646 91.2266 135.869 91.2266C136.166 91.2266 136.414 91.1875 136.613 91.1094C136.816 91.0312 136.971 90.9238 137.076 90.7871C137.182 90.6504 137.234 90.4941 137.234 90.3184ZM143.48 90.916V87.6523C143.48 87.4023 143.43 87.1855 143.328 87.002C143.23 86.8145 143.082 86.6699 142.883 86.5684C142.684 86.4668 142.438 86.416 142.145 86.416C141.871 86.416 141.631 86.4629 141.424 86.5566C141.221 86.6504 141.061 86.7734 140.943 86.9258C140.83 87.0781 140.773 87.2422 140.773 87.418H139.689C139.689 87.1914 139.748 86.9668 139.865 86.7441C139.982 86.5215 140.15 86.3203 140.369 86.1406C140.592 85.957 140.857 85.8125 141.166 85.707C141.479 85.5977 141.826 85.543 142.209 85.543C142.67 85.543 143.076 85.6211 143.428 85.7773C143.783 85.9336 144.061 86.1699 144.26 86.4863C144.463 86.7988 144.564 87.1914 144.564 87.6641V90.6172C144.564 90.8281 144.582 91.0527 144.617 91.291C144.656 91.5293 144.713 91.7344 144.787 91.9062V92H143.656C143.602 91.875 143.559 91.709 143.527 91.502C143.496 91.291 143.48 91.0957 143.48 90.916ZM143.668 88.1562L143.68 88.918H142.584C142.275 88.918 142 88.9434 141.758 88.9941C141.516 89.041 141.312 89.1133 141.148 89.2109C140.984 89.3086 140.859 89.4316 140.773 89.5801C140.688 89.7246 140.645 89.8945 140.645 90.0898C140.645 90.2891 140.689 90.4707 140.779 90.6348C140.869 90.7988 141.004 90.9297 141.184 91.0273C141.367 91.1211 141.592 91.168 141.857 91.168C142.189 91.168 142.482 91.0977 142.736 90.957C142.99 90.8164 143.191 90.6445 143.34 90.4414C143.492 90.2383 143.574 90.041 143.586 89.8496L144.049 90.3711C144.021 90.5352 143.947 90.7168 143.826 90.916C143.705 91.1152 143.543 91.3066 143.34 91.4902C143.141 91.6699 142.902 91.8203 142.625 91.9414C142.352 92.0586 142.043 92.1172 141.699 92.1172C141.27 92.1172 140.893 92.0332 140.568 91.8652C140.248 91.6973 139.998 91.4727 139.818 91.1914C139.643 90.9062 139.555 90.5879 139.555 90.2363C139.555 89.8965 139.621 89.5977 139.754 89.3398C139.887 89.0781 140.078 88.8613 140.328 88.6895C140.578 88.5137 140.879 88.3809 141.23 88.291C141.582 88.2012 141.975 88.1562 142.408 88.1562H143.668ZM143.674 83.1172L144.406 83.1816C144.406 83.4668 144.35 83.7168 144.236 83.9316C144.123 84.1465 143.971 84.3125 143.779 84.4297C143.592 84.5469 143.379 84.6055 143.141 84.6055C142.941 84.6055 142.777 84.5781 142.648 84.5234C142.52 84.4648 142.404 84.4004 142.303 84.3301C142.201 84.2559 142.094 84.1914 141.98 84.1367C141.871 84.0781 141.734 84.0488 141.57 84.0488C141.406 84.0488 141.268 84.1113 141.154 84.2363C141.045 84.3613 140.99 84.5156 140.99 84.6992L140.258 84.6641C140.258 84.3789 140.312 84.1289 140.422 83.9141C140.535 83.6953 140.688 83.5254 140.879 83.4043C141.07 83.2793 141.283 83.2168 141.518 83.2168C141.686 83.2168 141.832 83.2461 141.957 83.3047C142.086 83.3594 142.207 83.4238 142.32 83.498C142.434 83.5684 142.551 83.6328 142.672 83.6914C142.793 83.7461 142.932 83.7734 143.088 83.7734C143.252 83.7734 143.391 83.7109 143.504 83.5859C143.617 83.457 143.674 83.3008 143.674 83.1172ZM145.982 88.9004V88.7656C145.982 88.3086 146.049 87.8848 146.182 87.4941C146.314 87.0996 146.506 86.7578 146.756 86.4688C147.006 86.1758 147.309 85.9492 147.664 85.7891C148.02 85.625 148.418 85.543 148.859 85.543C149.305 85.543 149.705 85.625 150.061 85.7891C150.42 85.9492 150.725 86.1758 150.975 86.4688C151.229 86.7578 151.422 87.0996 151.555 87.4941C151.688 87.8848 151.754 88.3086 151.754 88.7656V88.9004C151.754 89.3574 151.688 89.7812 151.555 90.1719C151.422 90.5625 151.229 90.9043 150.975 91.1973C150.725 91.4863 150.422 91.7129 150.066 91.877C149.715 92.0371 149.316 92.1172 148.871 92.1172C148.426 92.1172 148.025 92.0371 147.67 91.877C147.314 91.7129 147.01 91.4863 146.756 91.1973C146.506 90.9043 146.314 90.5625 146.182 90.1719C146.049 89.7812 145.982 89.3574 145.982 88.9004ZM147.066 88.7656V88.9004C147.066 89.2168 147.104 89.5156 147.178 89.7969C147.252 90.0742 147.363 90.3203 147.512 90.5352C147.664 90.75 147.854 90.9199 148.08 91.0449C148.307 91.166 148.57 91.2266 148.871 91.2266C149.168 91.2266 149.428 91.166 149.65 91.0449C149.877 90.9199 150.064 90.75 150.213 90.5352C150.361 90.3203 150.473 90.0742 150.547 89.7969C150.625 89.5156 150.664 89.2168 150.664 88.9004V88.7656C150.664 88.4531 150.625 88.1582 150.547 87.8809C150.473 87.5996 150.359 87.3516 150.207 87.1367C150.059 86.918 149.871 86.7461 149.645 86.6211C149.422 86.4961 149.16 86.4336 148.859 86.4336C148.562 86.4336 148.301 86.4961 148.074 86.6211C147.852 86.7461 147.664 86.918 147.512 87.1367C147.363 87.3516 147.252 87.5996 147.178 87.8809C147.104 88.1582 147.066 88.4531 147.066 88.7656Z\",\n fill: \"#272A30\"\n});\nfunction SvgSeloGarantia(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 184,\n height: 96,\n viewBox: \"0 0 184 96\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSeloGarantia);\nexport default __webpack_public_path__ + \"static/media/selo-garantia.f9e63314.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M127.054 26.1126H129.519V9.59581H127.054V26.1126ZM149.258 15.546L146.433 22.7064H146.348L143.415 15.546H140.76L145.159 25.5537L142.65 31.1209H145.221L152 15.5465L149.258 15.546ZM135.277 24.2365C134.471 24.2365 133.345 23.8323 133.345 22.8338C133.345 21.559 134.748 21.0703 135.958 21.0703C137.041 21.0703 137.552 21.3037 138.21 21.6226C138.019 23.1527 136.702 24.2365 135.277 24.2365ZM135.576 15.1847C133.791 15.1847 131.943 15.9712 131.178 17.7135L133.366 18.6269C133.833 17.7135 134.704 17.4163 135.618 17.4163C136.893 17.4163 138.189 18.1805 138.21 19.5409V19.7106C137.764 19.4557 136.807 19.0733 135.639 19.0733C133.28 19.0733 130.879 20.3691 130.879 22.7915C130.879 25.0013 132.813 26.4251 134.98 26.4251C136.637 26.4251 137.552 25.6814 138.124 24.8099H138.21V26.0855H140.591V19.7529C140.591 16.8206 138.4 15.1847 135.576 15.1847ZM120.34 17.5565H116.834V11.8954H120.34C122.183 11.8954 123.23 13.4209 123.23 14.7259C123.23 16.0058 122.183 17.5565 120.34 17.5565ZM120.277 9.5962H114.37V26.113H116.834V19.8557H120.277C123.009 19.8557 125.695 17.8782 125.695 14.7265C125.695 11.5755 123.009 9.5962 120.277 9.5962ZM88.0668 24.2392C86.3637 24.2392 84.9384 22.8128 84.9384 20.8554C84.9384 18.8753 86.3637 17.4287 88.0668 17.4287C89.7482 17.4287 91.0678 18.8754 91.0678 20.8554C91.0678 22.8128 89.7482 24.2392 88.0668 24.2392ZM90.8974 16.4705H90.8122C90.2591 15.8109 89.1943 15.2149 87.8542 15.2149C85.0442 15.2149 82.469 17.6843 82.469 20.8554C82.469 24.005 85.0442 26.4526 87.8542 26.4526C89.1943 26.4526 90.259 25.8565 90.8122 25.1759H90.8974V25.984C90.8974 28.1345 89.7482 29.2832 87.8965 29.2832C86.3859 29.2832 85.4494 28.1979 85.0659 27.2829L82.9166 28.1767C83.5333 29.666 85.1717 31.4971 87.8966 31.4971C90.7917 31.4971 93.2394 29.794 93.2394 25.6433V15.5553H90.8976L90.8974 16.4705ZM94.9424 26.1121H97.4102V9.59531H94.9424V26.1121ZM101.05 20.6635C100.987 18.4924 102.732 17.3859 103.987 17.3859C104.967 17.3859 105.796 17.8756 106.074 18.5775L101.05 20.6635ZM108.712 18.7902C108.244 17.5351 106.818 15.2149 103.902 15.2149C101.007 15.2149 98.6023 17.4922 98.6023 20.8338C98.6023 23.9839 100.987 26.4527 104.178 26.4527C106.754 26.4527 108.244 24.8782 108.862 23.9627L106.946 22.6855C106.307 23.6221 105.435 24.2393 104.178 24.2393C102.923 24.2393 102.029 23.6645 101.455 22.5364L108.967 19.4292L108.712 18.7902ZM48.8548 16.939V19.3227H54.5587C54.3884 20.6636 53.9415 21.6425 53.2603 22.3237C52.4299 23.1535 51.1316 24.069 48.8547 24.069C45.3428 24.069 42.5974 21.2384 42.5974 17.7266C42.5974 14.2147 45.3428 11.3837 48.8547 11.3837C50.749 11.3837 52.1322 12.1288 53.1539 13.0866L54.8358 11.4048C53.4093 10.0429 51.5154 9 48.8547 9C44.0438 9 40 12.9163 40 17.7266C40 22.5363 44.0438 26.4527 48.8547 26.4527C51.4509 26.4527 53.4094 25.6013 54.9416 24.0051C56.5167 22.43 57.0063 20.2166 57.0063 18.4285C57.0063 17.8757 56.9634 17.3649 56.8783 16.939H48.8548ZM63.4919 24.2392C61.7888 24.2392 60.3201 22.8345 60.3201 20.8338C60.3201 18.8119 61.7888 17.4288 63.4919 17.4288C65.1943 17.4288 66.6629 18.8119 66.6629 20.8338C66.6629 22.8345 65.1943 24.2392 63.4919 24.2392ZM63.4919 15.2149C60.3835 15.2149 57.8512 17.5773 57.8512 20.8338C57.8512 24.069 60.3835 26.4527 63.4919 26.4527C66.599 26.4527 69.1319 24.069 69.1319 20.8338C69.1319 17.5773 66.599 15.2149 63.4919 15.2149ZM75.7955 24.2392C74.0935 24.2392 72.6244 22.8345 72.6244 20.8338C72.6244 18.8119 74.0936 17.4288 75.7955 17.4288C77.4986 17.4288 78.9667 18.8119 78.9667 20.8338C78.9667 22.8345 77.4986 24.2392 75.7955 24.2392ZM75.7955 15.2149C72.6883 15.2149 70.1559 17.5773 70.1559 20.8338C70.1559 24.069 72.6883 26.4527 75.7955 26.4527C78.9038 26.4527 81.4362 24.069 81.4362 20.8338C81.4362 17.5773 78.9038 15.2149 75.7955 15.2149Z\",\n fill: \"#2F2F33\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43.9155 62.1367V70H42.9219V63.3774L40.9185 64.1079V63.2109L43.7598 62.1367H43.9155ZM51.7466 65.4668V66.6592C51.7466 67.3001 51.6893 67.8408 51.5747 68.2812C51.4601 68.7217 51.2954 69.0762 51.0806 69.3447C50.8657 69.6133 50.6061 69.8084 50.3018 69.9302C50.001 70.0483 49.6608 70.1074 49.2812 70.1074C48.9805 70.1074 48.703 70.0698 48.4487 69.9946C48.1945 69.9194 47.9653 69.7995 47.7612 69.6348C47.5607 69.4665 47.3888 69.248 47.2456 68.9795C47.1024 68.7109 46.9932 68.3851 46.918 68.002C46.8428 67.6188 46.8052 67.1712 46.8052 66.6592V65.4668C46.8052 64.8258 46.8625 64.2887 46.9771 63.8555C47.0952 63.4222 47.2617 63.0749 47.4766 62.8135C47.6914 62.5485 47.9492 62.3587 48.25 62.2441C48.5544 62.1296 48.8945 62.0723 49.2705 62.0723C49.5749 62.0723 49.8542 62.1099 50.1084 62.1851C50.3662 62.2567 50.5954 62.373 50.7959 62.5342C50.9964 62.6917 51.1665 62.903 51.3062 63.168C51.4494 63.4294 51.5586 63.7498 51.6338 64.1294C51.709 64.509 51.7466 64.9548 51.7466 65.4668ZM50.7476 66.8203V65.3003C50.7476 64.9494 50.7261 64.6414 50.6831 64.3765C50.6437 64.1079 50.5846 63.8787 50.5059 63.689C50.4271 63.4992 50.3268 63.3452 50.2051 63.2271C50.0869 63.1089 49.9491 63.0229 49.7915 62.9692C49.6375 62.9119 49.4639 62.8833 49.2705 62.8833C49.0342 62.8833 48.8247 62.9281 48.6421 63.0176C48.4595 63.1035 48.3055 63.2414 48.1802 63.4312C48.0584 63.6209 47.9653 63.8698 47.9009 64.1777C47.8364 64.4857 47.8042 64.8599 47.8042 65.3003V66.8203C47.8042 67.1712 47.8239 67.481 47.8633 67.7495C47.9062 68.0181 47.9689 68.2508 48.0513 68.4478C48.1336 68.6411 48.2339 68.8005 48.3521 68.9258C48.4702 69.0511 48.6063 69.1442 48.7603 69.2051C48.9178 69.2624 49.0915 69.291 49.2812 69.291C49.5247 69.291 49.7378 69.2445 49.9204 69.1514C50.103 69.0583 50.2552 68.9132 50.377 68.7163C50.5023 68.5158 50.5954 68.2598 50.6562 67.9482C50.7171 67.6331 50.7476 67.2572 50.7476 66.8203ZM56.8491 65.3433V70H55.8501V64.1885H56.7954L56.8491 65.3433ZM56.645 66.874L56.1831 66.8579C56.1867 66.4604 56.2386 66.0934 56.3389 65.7568C56.4391 65.4167 56.5877 65.1213 56.7847 64.8706C56.9816 64.62 57.2269 64.4266 57.5205 64.2905C57.8141 64.1509 58.1543 64.0811 58.541 64.0811C58.8132 64.0811 59.0638 64.1204 59.293 64.1992C59.5221 64.2744 59.7209 64.3944 59.8892 64.5591C60.0575 64.7238 60.1882 64.9351 60.2812 65.1929C60.3743 65.4507 60.4209 65.7622 60.4209 66.1274V70H59.4272V66.1758C59.4272 65.8714 59.3753 65.6279 59.2715 65.4453C59.1712 65.2627 59.028 65.1302 58.8418 65.0479C58.6556 64.9619 58.4372 64.9189 58.1865 64.9189C57.8929 64.9189 57.6476 64.9709 57.4507 65.0747C57.2537 65.1785 57.0962 65.3218 56.978 65.5044C56.8599 65.687 56.7739 65.8965 56.7202 66.1328C56.6701 66.3656 56.645 66.6126 56.645 66.874ZM60.4102 66.3262L59.7441 66.5303C59.7477 66.2116 59.7996 65.9054 59.8999 65.6118C60.0037 65.3182 60.1523 65.0568 60.3457 64.8276C60.5426 64.5985 60.7843 64.4176 61.0708 64.2852C61.3573 64.1491 61.6849 64.0811 62.0537 64.0811C62.3652 64.0811 62.641 64.1222 62.8809 64.2046C63.1243 64.2869 63.3285 64.4141 63.4932 64.5859C63.6615 64.7542 63.7886 64.9709 63.8745 65.2358C63.9604 65.5008 64.0034 65.8159 64.0034 66.1812V70H63.0044V66.1704C63.0044 65.8446 62.9525 65.5921 62.8486 65.4131C62.7484 65.2305 62.6051 65.1034 62.4189 65.0317C62.2363 64.9565 62.0179 64.9189 61.7637 64.9189C61.5452 64.9189 61.3519 64.9565 61.1836 65.0317C61.0153 65.1069 60.8739 65.2108 60.7593 65.3433C60.6447 65.4722 60.557 65.6208 60.4961 65.7891C60.4388 65.9574 60.4102 66.1364 60.4102 66.3262ZM66.5869 64.1885V70H65.5879V64.1885H66.5869ZM65.5127 62.647C65.5127 62.4858 65.561 62.3498 65.6577 62.2388C65.758 62.1278 65.9048 62.0723 66.0981 62.0723C66.2879 62.0723 66.4329 62.1278 66.5332 62.2388C66.637 62.3498 66.689 62.4858 66.689 62.647C66.689 62.8009 66.637 62.9334 66.5332 63.0444C66.4329 63.1519 66.2879 63.2056 66.0981 63.2056C65.9048 63.2056 65.758 63.1519 65.6577 63.0444C65.561 62.9334 65.5127 62.8009 65.5127 62.647ZM69.2617 61.75V70H68.2627V61.75H69.2617ZM77.0122 69.0063V66.0146C77.0122 65.7855 76.9657 65.5868 76.8726 65.4185C76.783 65.2466 76.647 65.1141 76.4644 65.021C76.2817 64.9279 76.0562 64.8813 75.7876 64.8813C75.5369 64.8813 75.3167 64.9243 75.127 65.0103C74.9408 65.0962 74.7939 65.209 74.6865 65.3486C74.5827 65.4883 74.5308 65.6387 74.5308 65.7998H73.5371C73.5371 65.5921 73.5908 65.3862 73.6982 65.1821C73.8057 64.978 73.9596 64.7936 74.1602 64.6289C74.3643 64.4606 74.6077 64.3281 74.8906 64.2314C75.1771 64.1312 75.4958 64.0811 75.8467 64.0811C76.2692 64.0811 76.6416 64.1527 76.9639 64.2959C77.2897 64.4391 77.5439 64.6558 77.7266 64.9458C77.9128 65.2323 78.0059 65.5921 78.0059 66.0254V68.7324C78.0059 68.9258 78.022 69.1317 78.0542 69.3501C78.09 69.5685 78.1419 69.7565 78.21 69.9141V70H77.1733C77.1232 69.8854 77.0838 69.7332 77.0552 69.5435C77.0265 69.3501 77.0122 69.1711 77.0122 69.0063ZM77.1841 66.4766L77.1948 67.1748H76.1904C75.9076 67.1748 75.6551 67.1981 75.4331 67.2446C75.2111 67.2876 75.0249 67.3538 74.8745 67.4434C74.7241 67.5329 74.6095 67.6457 74.5308 67.7817C74.452 67.9142 74.4126 68.07 74.4126 68.249C74.4126 68.4316 74.4538 68.5981 74.5361 68.7485C74.6185 68.8989 74.742 69.0189 74.9067 69.1084C75.075 69.1943 75.2809 69.2373 75.5244 69.2373C75.8288 69.2373 76.0973 69.1729 76.3301 69.0439C76.5628 68.915 76.7472 68.7575 76.8833 68.5713C77.0229 68.3851 77.0981 68.2043 77.1089 68.0288L77.5332 68.5068C77.5081 68.6572 77.4401 68.8237 77.3291 69.0063C77.2181 69.189 77.0695 69.3644 76.8833 69.5327C76.7007 69.6974 76.4823 69.8353 76.228 69.9463C75.9774 70.0537 75.6945 70.1074 75.3794 70.1074C74.9855 70.1074 74.64 70.0304 74.3428 69.8765C74.0492 69.7225 73.82 69.5166 73.6553 69.2588C73.4941 68.9974 73.4136 68.7056 73.4136 68.3833C73.4136 68.0718 73.4744 67.7979 73.5962 67.5615C73.7179 67.3216 73.8934 67.1229 74.1226 66.9653C74.3517 66.8042 74.6274 66.6825 74.9497 66.6001C75.272 66.5177 75.6318 66.4766 76.0293 66.4766H77.1841ZM81.25 69.103L82.8398 64.1885H83.855L81.7656 70H81.0996L81.25 69.103ZM79.9233 64.1885L81.5615 69.1299L81.6743 70H81.0083L78.9028 64.1885H79.9233ZM88.1519 69.0063V66.0146C88.1519 65.7855 88.1053 65.5868 88.0122 65.4185C87.9227 65.2466 87.7866 65.1141 87.604 65.021C87.4214 64.9279 87.1958 64.8813 86.9272 64.8813C86.6766 64.8813 86.4564 64.9243 86.2666 65.0103C86.0804 65.0962 85.9336 65.209 85.8262 65.3486C85.7223 65.4883 85.6704 65.6387 85.6704 65.7998H84.6768C84.6768 65.5921 84.7305 65.3862 84.8379 65.1821C84.9453 64.978 85.0993 64.7936 85.2998 64.6289C85.5039 64.4606 85.7474 64.3281 86.0303 64.2314C86.3167 64.1312 86.6354 64.0811 86.9863 64.0811C87.4089 64.0811 87.7812 64.1527 88.1035 64.2959C88.4294 64.4391 88.6836 64.6558 88.8662 64.9458C89.0524 65.2323 89.1455 65.5921 89.1455 66.0254V68.7324C89.1455 68.9258 89.1616 69.1317 89.1938 69.3501C89.2297 69.5685 89.2816 69.7565 89.3496 69.9141V70H88.313C88.2629 69.8854 88.2235 69.7332 88.1948 69.5435C88.1662 69.3501 88.1519 69.1711 88.1519 69.0063ZM88.3237 66.4766L88.3345 67.1748H87.3301C87.0472 67.1748 86.7948 67.1981 86.5728 67.2446C86.3507 67.2876 86.1646 67.3538 86.0142 67.4434C85.8638 67.5329 85.7492 67.6457 85.6704 67.7817C85.5916 67.9142 85.5522 68.07 85.5522 68.249C85.5522 68.4316 85.5934 68.5981 85.6758 68.7485C85.7581 68.8989 85.8817 69.0189 86.0464 69.1084C86.2147 69.1943 86.4206 69.2373 86.6641 69.2373C86.9684 69.2373 87.237 69.1729 87.4697 69.0439C87.7025 68.915 87.8869 68.7575 88.0229 68.5713C88.1626 68.3851 88.2378 68.2043 88.2485 68.0288L88.6729 68.5068C88.6478 68.6572 88.5798 68.8237 88.4688 69.0063C88.3577 69.189 88.2091 69.3644 88.0229 69.5327C87.8403 69.6974 87.6219 69.8353 87.3677 69.9463C87.117 70.0537 86.8341 70.1074 86.519 70.1074C86.1252 70.1074 85.7796 70.0304 85.4824 69.8765C85.1888 69.7225 84.9596 69.5166 84.7949 69.2588C84.6338 68.9974 84.5532 68.7056 84.5532 68.3833C84.5532 68.0718 84.6141 67.7979 84.7358 67.5615C84.8576 67.3216 85.033 67.1229 85.2622 66.9653C85.4914 66.8042 85.7671 66.6825 86.0894 66.6001C86.4116 66.5177 86.7715 66.4766 87.1689 66.4766H88.3237ZM91.7881 61.75V70H90.7891V61.75H91.7881ZM94.4629 64.1885V70H93.4639V64.1885H94.4629ZM93.3887 62.647C93.3887 62.4858 93.437 62.3498 93.5337 62.2388C93.634 62.1278 93.7808 62.0723 93.9741 62.0723C94.1639 62.0723 94.3089 62.1278 94.4092 62.2388C94.513 62.3498 94.5649 62.4858 94.5649 62.647C94.5649 62.8009 94.513 62.9334 94.4092 63.0444C94.3089 63.1519 94.1639 63.2056 93.9741 63.2056C93.7808 63.2056 93.634 63.1519 93.5337 63.0444C93.437 62.9334 93.3887 62.8009 93.3887 62.647ZM99.4849 69.0063V66.0146C99.4849 65.7855 99.4383 65.5868 99.3452 65.4185C99.2557 65.2466 99.1196 65.1141 98.937 65.021C98.7544 64.9279 98.5288 64.8813 98.2603 64.8813C98.0096 64.8813 97.7894 64.9243 97.5996 65.0103C97.4134 65.0962 97.2666 65.209 97.1592 65.3486C97.0553 65.4883 97.0034 65.6387 97.0034 65.7998H96.0098C96.0098 65.5921 96.0635 65.3862 96.1709 65.1821C96.2783 64.978 96.4323 64.7936 96.6328 64.6289C96.8369 64.4606 97.0804 64.3281 97.3633 64.2314C97.6497 64.1312 97.9684 64.0811 98.3193 64.0811C98.7419 64.0811 99.1143 64.1527 99.4365 64.2959C99.7624 64.4391 100.017 64.6558 100.199 64.9458C100.385 65.2323 100.479 65.5921 100.479 66.0254V68.7324C100.479 68.9258 100.495 69.1317 100.527 69.3501C100.563 69.5685 100.615 69.7565 100.683 69.9141V70H99.646C99.5959 69.8854 99.5565 69.7332 99.5278 69.5435C99.4992 69.3501 99.4849 69.1711 99.4849 69.0063ZM99.6567 66.4766L99.6675 67.1748H98.6631C98.3802 67.1748 98.1278 67.1981 97.9058 67.2446C97.6838 67.2876 97.4976 67.3538 97.3472 67.4434C97.1968 67.5329 97.0822 67.6457 97.0034 67.7817C96.9246 67.9142 96.8853 68.07 96.8853 68.249C96.8853 68.4316 96.9264 68.5981 97.0088 68.7485C97.0911 68.8989 97.2147 69.0189 97.3794 69.1084C97.5477 69.1943 97.7536 69.2373 97.9971 69.2373C98.3014 69.2373 98.57 69.1729 98.8027 69.0439C99.0355 68.915 99.2199 68.7575 99.356 68.5713C99.4956 68.3851 99.5708 68.2043 99.5815 68.0288L100.006 68.5068C99.9808 68.6572 99.9128 68.8237 99.8018 69.0063C99.6908 69.189 99.5422 69.3644 99.356 69.5327C99.1733 69.6974 98.9549 69.8353 98.7007 69.9463C98.45 70.0537 98.1672 70.1074 97.8521 70.1074C97.4582 70.1074 97.1126 70.0304 96.8154 69.8765C96.5218 69.7225 96.2926 69.5166 96.1279 69.2588C95.9668 68.9974 95.8862 68.7056 95.8862 68.3833C95.8862 68.0718 95.9471 67.7979 96.0688 67.5615C96.1906 67.3216 96.366 67.1229 96.5952 66.9653C96.8244 66.8042 97.1001 66.6825 97.4224 66.6001C97.7446 66.5177 98.1045 66.4766 98.502 66.4766H99.6567ZM104.367 69.291C104.604 69.291 104.822 69.2427 105.022 69.146C105.223 69.0493 105.388 68.9168 105.517 68.7485C105.646 68.5767 105.719 68.3815 105.737 68.1631H106.682C106.664 68.5068 106.548 68.8273 106.333 69.1245C106.122 69.4181 105.844 69.6562 105.5 69.8389C105.157 70.0179 104.779 70.1074 104.367 70.1074C103.93 70.1074 103.549 70.0304 103.223 69.8765C102.901 69.7225 102.632 69.5112 102.417 69.2427C102.206 68.9741 102.047 68.6662 101.939 68.3188C101.836 67.9679 101.784 67.5973 101.784 67.207V66.9814C101.784 66.5911 101.836 66.2223 101.939 65.875C102.047 65.5241 102.206 65.2144 102.417 64.9458C102.632 64.6772 102.901 64.466 103.223 64.312C103.549 64.158 103.93 64.0811 104.367 64.0811C104.822 64.0811 105.219 64.1742 105.56 64.3604C105.9 64.543 106.167 64.7936 106.36 65.1123C106.557 65.4274 106.664 65.7855 106.682 66.1865H105.737C105.719 65.9466 105.651 65.73 105.533 65.5366C105.418 65.3433 105.261 65.1893 105.06 65.0747C104.863 64.9565 104.632 64.8975 104.367 64.8975C104.063 64.8975 103.807 64.9583 103.599 65.0801C103.395 65.1982 103.232 65.3594 103.11 65.5635C102.992 65.764 102.906 65.9878 102.853 66.2349C102.802 66.4784 102.777 66.7272 102.777 66.9814V67.207C102.777 67.4613 102.802 67.7119 102.853 67.959C102.903 68.2061 102.987 68.4299 103.105 68.6304C103.227 68.8309 103.39 68.992 103.594 69.1138C103.801 69.2319 104.059 69.291 104.367 69.291ZM103.819 70.0537H104.534L104.469 70.3384C104.677 70.3742 104.865 70.4601 105.033 70.5962C105.205 70.7323 105.291 70.9561 105.291 71.2676C105.291 71.4359 105.255 71.5881 105.184 71.7241C105.116 71.8638 105.014 71.9819 104.877 72.0786C104.741 72.1789 104.571 72.2559 104.367 72.3096C104.167 72.3633 103.932 72.3901 103.664 72.3901L103.626 71.8154C103.791 71.8154 103.939 71.7975 104.072 71.7617C104.208 71.7259 104.315 71.6686 104.394 71.5898C104.476 71.5111 104.518 71.409 104.518 71.2837C104.518 71.1655 104.487 71.0724 104.426 71.0044C104.365 70.9364 104.271 70.8844 104.142 70.8486C104.016 70.8164 103.853 70.7931 103.653 70.7788L103.819 70.0537ZM107.536 67.1587V67.0352C107.536 66.6162 107.597 66.2277 107.719 65.8696C107.84 65.508 108.016 65.1947 108.245 64.9297C108.474 64.6611 108.752 64.4535 109.078 64.3066C109.403 64.1562 109.769 64.0811 110.173 64.0811C110.582 64.0811 110.949 64.1562 111.274 64.3066C111.604 64.4535 111.883 64.6611 112.112 64.9297C112.345 65.1947 112.522 65.508 112.644 65.8696C112.766 66.2277 112.827 66.6162 112.827 67.0352V67.1587C112.827 67.5776 112.766 67.9661 112.644 68.3242C112.522 68.6823 112.345 68.9956 112.112 69.2642C111.883 69.5291 111.606 69.7368 111.28 69.8872C110.958 70.034 110.592 70.1074 110.184 70.1074C109.776 70.1074 109.409 70.034 109.083 69.8872C108.757 69.7368 108.478 69.5291 108.245 69.2642C108.016 68.9956 107.84 68.6823 107.719 68.3242C107.597 67.9661 107.536 67.5776 107.536 67.1587ZM108.53 67.0352V67.1587C108.53 67.4487 108.564 67.7227 108.632 67.9805C108.7 68.2347 108.802 68.4603 108.938 68.6572C109.078 68.8542 109.251 69.0099 109.459 69.1245C109.667 69.2355 109.908 69.291 110.184 69.291C110.456 69.291 110.694 69.2355 110.898 69.1245C111.106 69.0099 111.278 68.8542 111.414 68.6572C111.55 68.4603 111.652 68.2347 111.72 67.9805C111.792 67.7227 111.828 67.4487 111.828 67.1587V67.0352C111.828 66.7487 111.792 66.4784 111.72 66.2241C111.652 65.9663 111.548 65.7389 111.409 65.542C111.273 65.3415 111.101 65.1839 110.893 65.0693C110.689 64.9548 110.449 64.8975 110.173 64.8975C109.901 64.8975 109.661 64.9548 109.454 65.0693C109.25 65.1839 109.078 65.3415 108.938 65.542C108.802 65.7389 108.7 65.9663 108.632 66.2241C108.564 66.4784 108.53 66.7487 108.53 67.0352ZM111.366 61.8574L112.037 61.9165C112.037 62.1779 111.985 62.4071 111.881 62.604C111.778 62.8009 111.638 62.9531 111.462 63.0605C111.291 63.168 111.095 63.2217 110.877 63.2217C110.694 63.2217 110.544 63.1966 110.426 63.1465C110.308 63.0928 110.202 63.0337 110.109 62.9692C110.016 62.9012 109.917 62.8421 109.813 62.792C109.713 62.7383 109.588 62.7114 109.438 62.7114C109.287 62.7114 109.16 62.7687 109.056 62.8833C108.956 62.9979 108.906 63.1393 108.906 63.3076L108.234 63.2754C108.234 63.014 108.285 62.7848 108.385 62.5879C108.489 62.3874 108.628 62.2316 108.804 62.1206C108.979 62.006 109.174 61.9487 109.389 61.9487C109.543 61.9487 109.677 61.9756 109.792 62.0293C109.91 62.0794 110.021 62.1385 110.125 62.2065C110.229 62.271 110.336 62.3301 110.447 62.3838C110.558 62.4339 110.685 62.459 110.829 62.459C110.979 62.459 111.106 62.4017 111.21 62.2871C111.314 62.1689 111.366 62.0257 111.366 61.8574ZM116.484 70.1074C116.08 70.1074 115.713 70.0394 115.383 69.9033C115.057 69.7637 114.776 69.5685 114.54 69.3179C114.307 69.0672 114.128 68.77 114.003 68.4263C113.878 68.0825 113.815 67.7065 113.815 67.2983V67.0728C113.815 66.6001 113.885 66.1794 114.024 65.8105C114.164 65.4382 114.354 65.123 114.594 64.8652C114.834 64.6074 115.106 64.4123 115.41 64.2798C115.715 64.1473 116.03 64.0811 116.355 64.0811C116.771 64.0811 117.129 64.1527 117.43 64.2959C117.734 64.4391 117.983 64.6396 118.176 64.8975C118.37 65.1517 118.513 65.4525 118.606 65.7998C118.699 66.1436 118.746 66.5195 118.746 66.9277V67.3735H114.406V66.5625H117.752V66.4873C117.738 66.2295 117.684 65.9788 117.591 65.7354C117.501 65.4919 117.358 65.2913 117.161 65.1338C116.964 64.9762 116.696 64.8975 116.355 64.8975C116.13 64.8975 115.922 64.9458 115.732 65.0425C115.543 65.1356 115.38 65.2752 115.244 65.4614C115.108 65.6476 115.002 65.875 114.927 66.1436C114.852 66.4121 114.814 66.7218 114.814 67.0728V67.2983C114.814 67.5741 114.852 67.8337 114.927 68.0771C115.006 68.3171 115.118 68.5283 115.265 68.7109C115.416 68.8936 115.596 69.0368 115.808 69.1406C116.022 69.2445 116.266 69.2964 116.538 69.2964C116.889 69.2964 117.186 69.2248 117.43 69.0815C117.673 68.9383 117.886 68.7467 118.069 68.5068L118.67 68.9849C118.545 69.1746 118.386 69.3555 118.192 69.5273C117.999 69.6992 117.761 69.8389 117.478 69.9463C117.199 70.0537 116.868 70.1074 116.484 70.1074ZM123.29 68.4585C123.29 68.3153 123.257 68.1828 123.193 68.061C123.132 67.9357 123.005 67.8229 122.812 67.7227C122.622 67.6188 122.335 67.5293 121.952 67.4541C121.63 67.3861 121.338 67.3055 121.077 67.2124C120.819 67.1193 120.599 67.0065 120.416 66.874C120.237 66.7415 120.099 66.5858 120.002 66.4067C119.906 66.2277 119.857 66.0182 119.857 65.7783C119.857 65.5492 119.908 65.3325 120.008 65.1284C120.112 64.9243 120.257 64.7435 120.443 64.5859C120.633 64.4284 120.86 64.3049 121.125 64.2153C121.39 64.1258 121.685 64.0811 122.011 64.0811C122.477 64.0811 122.874 64.1634 123.204 64.3281C123.533 64.4928 123.785 64.7131 123.961 64.9888C124.136 65.2609 124.224 65.5635 124.224 65.8965H123.23C123.23 65.7354 123.182 65.5796 123.085 65.4292C122.992 65.2752 122.854 65.1481 122.672 65.0479C122.493 64.9476 122.273 64.8975 122.011 64.8975C121.736 64.8975 121.512 64.9404 121.34 65.0264C121.172 65.1087 121.048 65.2144 120.969 65.3433C120.894 65.4722 120.856 65.6082 120.856 65.7515C120.856 65.8589 120.874 65.9556 120.91 66.0415C120.95 66.1239 121.018 66.2008 121.114 66.2725C121.211 66.3405 121.347 66.4049 121.522 66.4658C121.698 66.5267 121.922 66.5876 122.194 66.6484C122.67 66.7559 123.062 66.8848 123.37 67.0352C123.678 67.1855 123.907 67.37 124.058 67.5884C124.208 67.8068 124.283 68.0718 124.283 68.3833C124.283 68.6375 124.229 68.8703 124.122 69.0815C124.018 69.2928 123.866 69.4754 123.666 69.6294C123.469 69.7798 123.232 69.8979 122.957 69.9839C122.684 70.0662 122.378 70.1074 122.038 70.1074C121.526 70.1074 121.093 70.0161 120.738 69.8335C120.384 69.6509 120.115 69.4146 119.933 69.1245C119.75 68.8345 119.659 68.5283 119.659 68.2061H120.658C120.672 68.4782 120.751 68.6948 120.894 68.856C121.037 69.0135 121.213 69.1263 121.42 69.1943C121.628 69.2588 121.834 69.291 122.038 69.291C122.31 69.291 122.538 69.2552 122.72 69.1836C122.906 69.112 123.048 69.0135 123.145 68.8882C123.241 68.7629 123.29 68.6196 123.29 68.4585Z\",\n fill: \"#2F2F33\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.6562 49.2812V50.8262H40.4854L40.3896 49.6299L44.5391 43.0469H46.1045L44.4092 45.8838L42.3447 49.2812H47.6562ZM46.5283 43.0469V53H44.5596V43.0469H46.5283ZM48.9004 52.0498C48.9004 51.7581 49.0007 51.5143 49.2012 51.3184C49.4062 51.1224 49.6774 51.0244 50.0146 51.0244C50.3519 51.0244 50.6208 51.1224 50.8213 51.3184C51.0264 51.5143 51.1289 51.7581 51.1289 52.0498C51.1289 52.3415 51.0264 52.5853 50.8213 52.7812C50.6208 52.9772 50.3519 53.0752 50.0146 53.0752C49.6774 53.0752 49.4062 52.9772 49.2012 52.7812C49.0007 52.5853 48.9004 52.3415 48.9004 52.0498ZM59.7559 49.2812V50.8262H52.585L52.4893 49.6299L56.6387 43.0469H58.2041L56.5088 45.8838L54.4443 49.2812H59.7559ZM58.6279 43.0469V53H56.6592V43.0469H58.6279Z\",\n fill: \"#2F2F33\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.4333 41.6304C73.62 41.0931 74.38 41.0931 74.5667 41.6304L75.7438 45.0168C75.8262 45.2538 76.0474 45.4145 76.2983 45.4197L79.8827 45.4927C80.4514 45.5043 80.6863 46.227 80.233 46.5707L77.3761 48.7366C77.1761 48.8882 77.0916 49.1483 77.1643 49.3885L78.2024 52.82C78.3672 53.3645 77.7524 53.8111 77.2854 53.4862L74.3427 51.4385C74.1367 51.2951 73.8633 51.2951 73.6573 51.4385L70.7146 53.4862C70.2476 53.8111 69.6328 53.3645 69.7976 52.82L70.8357 49.3885C70.9084 49.1483 70.8239 48.8882 70.6239 48.7366L67.767 46.5707C67.3137 46.227 67.5486 45.5043 68.1173 45.4927L71.7017 45.4197C71.9526 45.4145 72.1738 45.2538 72.2562 45.0168L73.4333 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.4333 41.6304C89.62 41.0931 90.38 41.0931 90.5667 41.6304L91.7438 45.0168C91.8262 45.2538 92.0474 45.4145 92.2983 45.4197L95.8827 45.4927C96.4514 45.5043 96.6863 46.227 96.233 46.5707L93.3761 48.7366C93.1761 48.8882 93.0916 49.1483 93.1643 49.3885L94.2024 52.82C94.3672 53.3645 93.7524 53.8111 93.2854 53.4862L90.3427 51.4385C90.1367 51.2951 89.8633 51.2951 89.6573 51.4385L86.7146 53.4862C86.2476 53.8111 85.6328 53.3645 85.7976 52.82L86.8357 49.3885C86.9084 49.1483 86.8239 48.8882 86.6239 48.7366L83.767 46.5707C83.3137 46.227 83.5486 45.5043 84.1173 45.4927L87.7017 45.4197C87.9526 45.4145 88.1738 45.2538 88.2562 45.0168L89.4333 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.433 41.6304C105.62 41.0931 106.38 41.0931 106.567 41.6304L107.744 45.0168C107.826 45.2538 108.047 45.4145 108.298 45.4197L111.883 45.4927C112.451 45.5043 112.686 46.227 112.233 46.5707L109.376 48.7366C109.176 48.8882 109.092 49.1483 109.164 49.3885L110.202 52.82C110.367 53.3645 109.752 53.8111 109.285 53.4862L106.343 51.4385C106.137 51.2951 105.863 51.2951 105.657 51.4385L102.715 53.4862C102.248 53.8111 101.633 53.3645 101.798 52.82L102.836 49.3885C102.908 49.1483 102.824 48.8882 102.624 48.7366L99.767 46.5707C99.3137 46.227 99.5486 45.5043 100.117 45.4927L103.702 45.4197C103.953 45.4145 104.174 45.2538 104.256 45.0168L105.433 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M121.433 41.6304C121.62 41.0931 122.38 41.0931 122.567 41.6304L123.744 45.0168C123.826 45.2538 124.047 45.4145 124.298 45.4197L127.883 45.4927C128.451 45.5043 128.686 46.227 128.233 46.5707L125.376 48.7366C125.176 48.8882 125.092 49.1483 125.164 49.3885L126.202 52.82C126.367 53.3645 125.752 53.8111 125.285 53.4862L122.343 51.4385C122.137 51.2951 121.863 51.2951 121.657 51.4385L118.715 53.4862C118.248 53.8111 117.633 53.3645 117.798 52.82L118.836 49.3885C118.908 49.1483 118.824 48.8882 118.624 48.7366L115.767 46.5707C115.314 46.227 115.549 45.5043 116.117 45.4927L119.702 45.4197C119.953 45.4145 120.174 45.2538 120.256 45.0168L121.433 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.433 41.6304C137.62 41.0931 138.38 41.0931 138.567 41.6304L139.744 45.0168C139.826 45.2538 140.047 45.4145 140.298 45.4197L143.883 45.4927C144.451 45.5043 144.686 46.227 144.233 46.5707L141.376 48.7366C141.176 48.8882 141.092 49.1483 141.164 49.3885L142.202 52.82C142.367 53.3645 141.752 53.8111 141.285 53.4862L138.343 51.4385C138.137 51.2951 137.863 51.2951 137.657 51.4385L134.715 53.4862C134.248 53.8111 133.633 53.3645 133.798 52.82L134.836 49.3885C134.908 49.1483 134.824 48.8882 134.624 48.7366L131.767 46.5707C131.314 46.227 131.549 45.5043 132.117 45.4927L135.702 45.4197C135.953 45.4145 136.174 45.2538 136.256 45.0168L137.433 41.6304Z\",\n fill: \"url(#paint0_linear_8708_87274)\"\n});\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.353 15.2824L0.123047 29.341C0.123545 29.3439 0.124538 29.3463 0.125004 29.3493C0.530757 30.8759 1.92354 32 3.57649 32C4.23726 32 4.85763 31.8211 5.38966 31.5072L5.43191 31.4824L20.3247 22.8789L13.353 15.2824Z\",\n fill: \"#EB3131\"\n});\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M26.7389 12.8889L26.7262 12.8802L20.2966 9.14862L13.0527 15.6018L20.3217 22.8781L26.7175 19.1836C27.8388 18.5776 28.6 17.3942 28.6 16.0295C28.6 14.6746 27.8491 13.4969 26.7389 12.8889Z\",\n fill: \"#F6B60B\"\n});\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.121337 2.65802C0.0418032 2.95164 0 3.25919 0 3.57857V28.4214C0 28.7402 0.0413099 29.0488 0.121841 29.3414L13.8085 15.642L0.121337 2.65802Z\",\n fill: \"#5778C5\"\n});\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4508 16L20.2991 9.14602L5.42311 0.511349C4.8824 0.187121 4.2513 0 3.57601 0C1.92307 0 0.528395 1.12611 0.122568 2.65449C0.12207 2.65598 0.12207 2.65701 0.12207 2.65831L13.4508 16Z\",\n fill: \"#3BAD49\"\n});\nvar _ref14 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_8708_87274\",\n x1: 146,\n y1: 48,\n x2: 130,\n y2: 48,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.495,\n stopColor: \"#ABAAA8\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.4951,\n stopColor: \"#FBC105\"\n})));\nfunction SvgSeloPlayStore(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 152,\n height: 73,\n viewBox: \"0 0 152 73\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSeloPlayStore);\nexport default __webpack_public_path__ + \"static/media/selo-play-store.d5c7c7de.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M55.525 26.2846H52.7911L51.2935 21.5704H46.0882L44.6617 26.2846H42L47.1572 10.2353H50.3425L55.525 26.2846ZM50.8421 19.5926L49.4878 15.4017C49.3445 14.9736 49.0761 13.9654 48.68 12.3783H48.6319C48.4742 13.0609 48.2202 14.0691 47.8711 15.4017L46.5408 19.5926H50.8421Z\",\n fill: \"#2F2F33\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.7872 20.3559C68.7872 22.3241 68.2563 23.8798 67.1945 25.0219C66.2435 26.0385 65.0625 26.5463 63.6529 26.5463C62.1312 26.5463 61.0381 25.9987 60.3724 24.9037H60.3243V31H57.7577V18.5216C57.7577 17.2842 57.7252 16.0143 57.6626 14.7118H59.9198L60.063 16.5461H60.1112C60.9671 15.1641 62.266 14.4742 64.0092 14.4742C65.3719 14.4742 66.5095 15.0133 67.4196 16.0927C68.3321 17.1733 68.7872 18.5939 68.7872 20.3559ZM66.1725 20.45C66.1725 19.3236 65.9197 18.3949 65.4116 17.6641C64.8567 16.9019 64.1115 16.5208 63.1773 16.5208C62.5441 16.5208 61.9687 16.7331 61.4547 17.1516C60.9394 17.5737 60.6024 18.1248 60.4447 18.8074C60.3652 19.1258 60.3255 19.3863 60.3255 19.5913V21.5209C60.3255 22.3627 60.5831 23.073 61.0983 23.6531C61.6136 24.2332 62.2829 24.5226 63.1063 24.5226C64.073 24.5226 64.8254 24.1487 65.3635 23.4034C65.9028 22.6569 66.1725 21.6728 66.1725 20.45Z\",\n fill: \"#2F2F33\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.0742 20.3559C82.0742 22.3241 81.5433 23.8798 80.4803 25.0219C79.5305 26.0385 78.3495 26.5463 76.9399 26.5463C75.4182 26.5463 74.3251 25.9987 73.6606 24.9037H73.6125V31H71.0459V18.5216C71.0459 17.2842 71.0134 16.0143 70.9508 14.7118H73.208L73.3513 16.5461H73.3994C74.2541 15.1641 75.5531 14.4742 77.2974 14.4742C78.6589 14.4742 79.7965 15.0133 80.709 16.0927C81.6179 17.1733 82.0742 18.5939 82.0742 20.3559ZM79.4595 20.45C79.4595 19.3236 79.2055 18.3949 78.6974 17.6641C78.1425 16.9019 77.3997 16.5208 76.4643 16.5208C75.8299 16.5208 75.2557 16.7331 74.7405 17.1516C74.2252 17.5737 73.8894 18.1248 73.7317 18.8074C73.6534 19.1258 73.6125 19.3863 73.6125 19.5913V21.5209C73.6125 22.3627 73.8701 23.073 74.3829 23.6531C74.8982 24.232 75.5675 24.5226 76.3933 24.5226C77.36 24.5226 78.1124 24.1487 78.6505 23.4034C79.1898 22.6569 79.4595 21.6728 79.4595 20.45Z\",\n fill: \"#2F2F33\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M96.9297 21.7838C96.9297 23.149 96.4566 24.2597 95.5068 25.1172C94.4631 26.0542 93.0101 26.5221 91.143 26.5221C89.4191 26.5221 88.0371 26.1893 86.9909 25.5224L87.5856 23.3793C88.7124 24.0619 89.9488 24.4044 91.2958 24.4044C92.2625 24.4044 93.0149 24.1849 93.5554 23.7483C94.0935 23.3118 94.362 22.7257 94.362 21.9948C94.362 21.3436 94.1405 20.7949 93.6963 20.3499C93.2545 19.9048 92.5165 19.4912 91.486 19.1089C88.6811 18.0609 87.2799 16.5256 87.2799 14.5068C87.2799 13.1874 87.771 12.1057 88.7546 11.2639C89.7345 10.4209 91.0418 10 92.6766 10C94.1345 10 95.3455 10.2545 96.3122 10.7622L95.6705 12.8582C94.7677 12.3662 93.7468 12.1201 92.6044 12.1201C91.7015 12.1201 90.9961 12.3432 90.4905 12.7871C90.0631 13.1838 89.8488 13.6674 89.8488 14.2403C89.8488 14.8746 90.0932 15.3992 90.5844 15.8117C91.0117 16.1928 91.7882 16.6052 92.915 17.0502C94.2934 17.6062 95.3058 18.2562 95.9571 19.0015C96.6059 19.7444 96.9297 20.6743 96.9297 21.7838Z\",\n fill: \"#2F2F33\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M105.415 16.6414H102.586V22.2602C102.586 23.6893 103.085 24.4032 104.084 24.4032C104.542 24.4032 104.923 24.3634 105.224 24.2838L105.295 26.2363C104.789 26.4257 104.123 26.5209 103.299 26.5209C102.285 26.5209 101.493 26.211 100.921 25.5923C100.352 24.9724 100.065 23.9329 100.065 22.4724V16.639H98.38V14.7094H100.065V12.5905L102.586 11.8283V14.7094H105.415V16.6414Z\",\n fill: \"#2F2F33\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.179 20.4029C118.179 22.1818 117.671 23.6422 116.658 24.7843C115.595 25.9601 114.184 26.5463 112.425 26.5463C110.73 26.5463 109.38 25.9831 108.374 24.8567C107.368 23.7303 106.864 22.3084 106.864 20.5947C106.864 18.8013 107.382 17.3324 108.421 16.1904C109.457 15.0471 110.856 14.4754 112.615 14.4754C114.31 14.4754 115.674 15.0386 116.703 16.1663C117.688 17.2601 118.179 18.6723 118.179 20.4029ZM115.516 20.4861C115.516 19.4188 115.289 18.5035 114.828 17.7401C114.29 16.8163 113.52 16.3556 112.524 16.3556C111.492 16.3556 110.708 16.8175 110.17 17.7401C109.709 18.5047 109.482 19.4345 109.482 20.5344C109.482 21.6017 109.709 22.517 110.17 23.2792C110.725 24.203 111.5 24.6637 112.501 24.6637C113.481 24.6637 114.25 24.1934 114.805 23.2551C115.278 22.4772 115.516 21.5522 115.516 20.4861Z\",\n fill: \"#2F2F33\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M126.522 16.9731C126.268 16.926 125.997 16.9019 125.713 16.9019C124.811 16.9019 124.112 17.2432 123.621 17.927C123.194 18.53 122.98 19.2922 122.98 20.2124V26.2846H120.414L120.438 18.3563C120.438 17.0225 120.406 15.8081 120.342 14.713H122.577L122.671 16.9272H122.742C123.013 16.1663 123.441 15.5536 124.026 15.0941C124.597 14.6805 125.215 14.4742 125.881 14.4742C126.118 14.4742 126.332 14.4911 126.522 14.5213V16.9731Z\",\n fill: \"#2F2F33\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M138 19.9507C138 20.4114 137.97 20.7997 137.906 21.1169H130.206C130.237 22.2602 130.609 23.1345 131.324 23.7375C131.972 24.2766 132.812 24.5467 133.842 24.5467C134.982 24.5467 136.022 24.3646 136.957 23.9992L137.36 25.7841C136.266 26.2616 134.976 26.4992 133.487 26.4992C131.696 26.4992 130.289 25.971 129.266 24.9158C128.245 23.8605 127.734 22.4435 127.734 20.6658C127.734 18.9208 128.209 17.4675 129.162 16.3086C130.158 15.0712 131.505 14.4525 133.2 14.4525C134.865 14.4525 136.126 15.0712 136.982 16.3086C137.659 17.2915 138 18.5071 138 19.9507ZM135.553 19.2838C135.569 18.5216 135.402 17.8631 135.054 17.3071C134.61 16.592 133.927 16.235 133.009 16.235C132.17 16.235 131.487 16.5835 130.966 17.283C130.539 17.839 130.285 18.5059 130.206 19.2826L135.553 19.2838Z\",\n fill: \"#2F2F33\"\n});\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M47.9351 67.3682V68.1846H42.2847V67.5991L45.7866 62.1797H46.5977L45.7275 63.748L43.4126 67.3682H47.9351ZM46.8447 62.1797V70H45.8511V62.1797H46.8447ZM53.7681 67.8838C53.7681 68.36 53.6571 68.7646 53.4351 69.0977C53.2166 69.4271 52.9194 69.6777 52.5435 69.8496C52.1711 70.0215 51.7503 70.1074 51.2812 70.1074C50.8122 70.1074 50.3896 70.0215 50.0137 69.8496C49.6377 69.6777 49.3405 69.4271 49.1221 69.0977C48.9036 68.7646 48.7944 68.36 48.7944 67.8838C48.7944 67.5723 48.8535 67.2876 48.9717 67.0298C49.0934 66.7684 49.2635 66.541 49.4819 66.3477C49.7039 66.1543 49.9653 66.0057 50.2661 65.9019C50.5705 65.7944 50.9053 65.7407 51.2705 65.7407C51.7503 65.7407 52.1782 65.8338 52.5542 66.02C52.9302 66.2026 53.2256 66.4551 53.4404 66.7773C53.6589 67.0996 53.7681 67.4684 53.7681 67.8838ZM52.769 67.8623C52.769 67.5723 52.7064 67.3162 52.5811 67.0942C52.4557 66.8687 52.2803 66.6932 52.0547 66.5679C51.8291 66.4425 51.5677 66.3799 51.2705 66.3799C50.9661 66.3799 50.703 66.4425 50.481 66.5679C50.2625 66.6932 50.0924 66.8687 49.9707 67.0942C49.849 67.3162 49.7881 67.5723 49.7881 67.8623C49.7881 68.1631 49.8472 68.4209 49.9653 68.6357C50.0871 68.847 50.259 69.0099 50.481 69.1245C50.7065 69.2355 50.9733 69.291 51.2812 69.291C51.5892 69.291 51.8542 69.2355 52.0762 69.1245C52.2982 69.0099 52.4683 68.847 52.5864 68.6357C52.7082 68.4209 52.769 68.1631 52.769 67.8623ZM53.5854 64.2153C53.5854 64.5949 53.4852 64.9368 53.2847 65.2412C53.0841 65.5456 52.8102 65.7855 52.4629 65.9609C52.1156 66.1364 51.7217 66.2241 51.2812 66.2241C50.8337 66.2241 50.4344 66.1364 50.0835 65.9609C49.7362 65.7855 49.464 65.5456 49.2671 65.2412C49.0701 64.9368 48.9717 64.5949 48.9717 64.2153C48.9717 63.7606 49.0701 63.3739 49.2671 63.0552C49.4676 62.7365 49.7415 62.493 50.0889 62.3247C50.4362 62.1564 50.8319 62.0723 51.2759 62.0723C51.7235 62.0723 52.1209 62.1564 52.4683 62.3247C52.8156 62.493 53.0877 62.7365 53.2847 63.0552C53.4852 63.3739 53.5854 63.7606 53.5854 64.2153ZM52.5918 64.2314C52.5918 63.9701 52.5363 63.7391 52.4253 63.5386C52.3143 63.3381 52.1603 63.1805 51.9634 63.0659C51.7664 62.9478 51.5373 62.8887 51.2759 62.8887C51.0145 62.8887 50.7853 62.9442 50.5884 63.0552C50.395 63.1626 50.2428 63.3166 50.1318 63.5171C50.0244 63.7176 49.9707 63.9557 49.9707 64.2314C49.9707 64.5 50.0244 64.7345 50.1318 64.9351C50.2428 65.1356 50.3968 65.2913 50.5938 65.4023C50.7907 65.5133 51.0199 65.5688 51.2812 65.5688C51.5426 65.5688 51.77 65.5133 51.9634 65.4023C52.1603 65.2913 52.3143 65.1356 52.4253 64.9351C52.5363 64.7345 52.5918 64.5 52.5918 64.2314ZM59.9556 67.8838C59.9556 68.36 59.8446 68.7646 59.6226 69.0977C59.4041 69.4271 59.1069 69.6777 58.731 69.8496C58.3586 70.0215 57.9378 70.1074 57.4688 70.1074C56.9997 70.1074 56.5771 70.0215 56.2012 69.8496C55.8252 69.6777 55.528 69.4271 55.3096 69.0977C55.0911 68.7646 54.9819 68.36 54.9819 67.8838C54.9819 67.5723 55.041 67.2876 55.1592 67.0298C55.2809 66.7684 55.451 66.541 55.6694 66.3477C55.8914 66.1543 56.1528 66.0057 56.4536 65.9019C56.758 65.7944 57.0928 65.7407 57.458 65.7407C57.9378 65.7407 58.3657 65.8338 58.7417 66.02C59.1177 66.2026 59.4131 66.4551 59.6279 66.7773C59.8464 67.0996 59.9556 67.4684 59.9556 67.8838ZM58.9565 67.8623C58.9565 67.5723 58.8939 67.3162 58.7686 67.0942C58.6432 66.8687 58.4678 66.6932 58.2422 66.5679C58.0166 66.4425 57.7552 66.3799 57.458 66.3799C57.1536 66.3799 56.8905 66.4425 56.6685 66.5679C56.45 66.6932 56.2799 66.8687 56.1582 67.0942C56.0365 67.3162 55.9756 67.5723 55.9756 67.8623C55.9756 68.1631 56.0347 68.4209 56.1528 68.6357C56.2746 68.847 56.4465 69.0099 56.6685 69.1245C56.894 69.2355 57.1608 69.291 57.4688 69.291C57.7767 69.291 58.0417 69.2355 58.2637 69.1245C58.4857 69.0099 58.6558 68.847 58.7739 68.6357C58.8957 68.4209 58.9565 68.1631 58.9565 67.8623ZM59.7729 64.2153C59.7729 64.5949 59.6727 64.9368 59.4722 65.2412C59.2716 65.5456 58.9977 65.7855 58.6504 65.9609C58.3031 66.1364 57.9092 66.2241 57.4688 66.2241C57.0212 66.2241 56.6219 66.1364 56.271 65.9609C55.9237 65.7855 55.6515 65.5456 55.4546 65.2412C55.2576 64.9368 55.1592 64.5949 55.1592 64.2153C55.1592 63.7606 55.2576 63.3739 55.4546 63.0552C55.6551 62.7365 55.929 62.493 56.2764 62.3247C56.6237 62.1564 57.0194 62.0723 57.4634 62.0723C57.911 62.0723 58.3084 62.1564 58.6558 62.3247C59.0031 62.493 59.2752 62.7365 59.4722 63.0552C59.6727 63.3739 59.7729 63.7606 59.7729 64.2153ZM58.7793 64.2314C58.7793 63.9701 58.7238 63.7391 58.6128 63.5386C58.5018 63.3381 58.3478 63.1805 58.1509 63.0659C57.9539 62.9478 57.7248 62.8887 57.4634 62.8887C57.202 62.8887 56.9728 62.9442 56.7759 63.0552C56.5825 63.1626 56.4303 63.3166 56.3193 63.5171C56.2119 63.7176 56.1582 63.9557 56.1582 64.2314C56.1582 64.5 56.2119 64.7345 56.3193 64.9351C56.4303 65.1356 56.5843 65.2913 56.7812 65.4023C56.9782 65.5133 57.2074 65.5688 57.4688 65.5688C57.7301 65.5688 57.9575 65.5133 58.1509 65.4023C58.3478 65.2913 58.5018 65.1356 58.6128 64.9351C58.7238 64.7345 58.7793 64.5 58.7793 64.2314ZM67.4751 69.0063V66.0146C67.4751 65.7855 67.4285 65.5868 67.3354 65.4185C67.2459 65.2466 67.1099 65.1141 66.9272 65.021C66.7446 64.9279 66.519 64.8813 66.2505 64.8813C65.9998 64.8813 65.7796 64.9243 65.5898 65.0103C65.4036 65.0962 65.2568 65.209 65.1494 65.3486C65.0456 65.4883 64.9937 65.6387 64.9937 65.7998H64C64 65.5921 64.0537 65.3862 64.1611 65.1821C64.2686 64.978 64.4225 64.7936 64.623 64.6289C64.8271 64.4606 65.0706 64.3281 65.3535 64.2314C65.64 64.1312 65.9587 64.0811 66.3096 64.0811C66.7321 64.0811 67.1045 64.1527 67.4268 64.2959C67.7526 64.4391 68.0068 64.6558 68.1895 64.9458C68.3757 65.2323 68.4688 65.5921 68.4688 66.0254V68.7324C68.4688 68.9258 68.4849 69.1317 68.5171 69.3501C68.5529 69.5685 68.6048 69.7565 68.6729 69.9141V70H67.6362C67.5861 69.8854 67.5467 69.7332 67.5181 69.5435C67.4894 69.3501 67.4751 69.1711 67.4751 69.0063ZM67.647 66.4766L67.6577 67.1748H66.6533C66.3704 67.1748 66.118 67.1981 65.896 67.2446C65.674 67.2876 65.4878 67.3538 65.3374 67.4434C65.187 67.5329 65.0724 67.6457 64.9937 67.7817C64.9149 67.9142 64.8755 68.07 64.8755 68.249C64.8755 68.4316 64.9167 68.5981 64.999 68.7485C65.0814 68.8989 65.2049 69.0189 65.3696 69.1084C65.5379 69.1943 65.7438 69.2373 65.9873 69.2373C66.2917 69.2373 66.5602 69.1729 66.793 69.0439C67.0257 68.915 67.2101 68.7575 67.3462 68.5713C67.4858 68.3851 67.561 68.2043 67.5718 68.0288L67.9961 68.5068C67.971 68.6572 67.903 68.8237 67.792 69.0063C67.681 69.189 67.5324 69.3644 67.3462 69.5327C67.1636 69.6974 66.9451 69.8353 66.6909 69.9463C66.4403 70.0537 66.1574 70.1074 65.8423 70.1074C65.4484 70.1074 65.1029 70.0304 64.8057 69.8765C64.512 69.7225 64.2829 69.5166 64.1182 69.2588C63.957 68.9974 63.8765 68.7056 63.8765 68.3833C63.8765 68.0718 63.9373 67.7979 64.0591 67.5615C64.1808 67.3216 64.3563 67.1229 64.5854 66.9653C64.8146 66.8042 65.0903 66.6825 65.4126 66.6001C65.7349 66.5177 66.0947 66.4766 66.4922 66.4766H67.647ZM71.7129 69.103L73.3027 64.1885H74.3179L72.2285 70H71.5625L71.7129 69.103ZM70.3862 64.1885L72.0244 69.1299L72.1372 70H71.4712L69.3657 64.1885H70.3862ZM78.6147 69.0063V66.0146C78.6147 65.7855 78.5682 65.5868 78.4751 65.4185C78.3856 65.2466 78.2495 65.1141 78.0669 65.021C77.8843 64.9279 77.6587 64.8813 77.3901 64.8813C77.1395 64.8813 76.9193 64.9243 76.7295 65.0103C76.5433 65.0962 76.3965 65.209 76.2891 65.3486C76.1852 65.4883 76.1333 65.6387 76.1333 65.7998H75.1396C75.1396 65.5921 75.1934 65.3862 75.3008 65.1821C75.4082 64.978 75.5622 64.7936 75.7627 64.6289C75.9668 64.4606 76.2103 64.3281 76.4932 64.2314C76.7796 64.1312 77.0983 64.0811 77.4492 64.0811C77.8717 64.0811 78.2441 64.1527 78.5664 64.2959C78.8923 64.4391 79.1465 64.6558 79.3291 64.9458C79.5153 65.2323 79.6084 65.5921 79.6084 66.0254V68.7324C79.6084 68.9258 79.6245 69.1317 79.6567 69.3501C79.6925 69.5685 79.7445 69.7565 79.8125 69.9141V70H78.7759C78.7257 69.8854 78.6864 69.7332 78.6577 69.5435C78.6291 69.3501 78.6147 69.1711 78.6147 69.0063ZM78.7866 66.4766L78.7974 67.1748H77.793C77.5101 67.1748 77.2576 67.1981 77.0356 67.2446C76.8136 67.2876 76.6274 67.3538 76.4771 67.4434C76.3267 67.5329 76.2121 67.6457 76.1333 67.7817C76.0545 67.9142 76.0151 68.07 76.0151 68.249C76.0151 68.4316 76.0563 68.5981 76.1387 68.7485C76.221 68.8989 76.3446 69.0189 76.5093 69.1084C76.6776 69.1943 76.8835 69.2373 77.127 69.2373C77.4313 69.2373 77.6999 69.1729 77.9326 69.0439C78.1654 68.915 78.3498 68.7575 78.4858 68.5713C78.6255 68.3851 78.7007 68.2043 78.7114 68.0288L79.1357 68.5068C79.1107 68.6572 79.0426 68.8237 78.9316 69.0063C78.8206 69.189 78.672 69.3644 78.4858 69.5327C78.3032 69.6974 78.0848 69.8353 77.8306 69.9463C77.5799 70.0537 77.297 70.1074 76.9819 70.1074C76.5881 70.1074 76.2425 70.0304 75.9453 69.8765C75.6517 69.7225 75.4225 69.5166 75.2578 69.2588C75.0967 68.9974 75.0161 68.7056 75.0161 68.3833C75.0161 68.0718 75.077 67.7979 75.1987 67.5615C75.3205 67.3216 75.4959 67.1229 75.7251 66.9653C75.9543 66.8042 76.23 66.6825 76.5522 66.6001C76.8745 66.5177 77.2344 66.4766 77.6318 66.4766H78.7866ZM82.251 61.75V70H81.252V61.75H82.251ZM84.9258 64.1885V70H83.9268V64.1885H84.9258ZM83.8516 62.647C83.8516 62.4858 83.8999 62.3498 83.9966 62.2388C84.0968 62.1278 84.2437 62.0723 84.437 62.0723C84.6268 62.0723 84.7718 62.1278 84.8721 62.2388C84.9759 62.3498 85.0278 62.4858 85.0278 62.647C85.0278 62.8009 84.9759 62.9334 84.8721 63.0444C84.7718 63.1519 84.6268 63.2056 84.437 63.2056C84.2437 63.2056 84.0968 63.1519 83.9966 63.0444C83.8999 62.9334 83.8516 62.8009 83.8516 62.647ZM89.9478 69.0063V66.0146C89.9478 65.7855 89.9012 65.5868 89.8081 65.4185C89.7186 65.2466 89.5825 65.1141 89.3999 65.021C89.2173 64.9279 88.9917 64.8813 88.7231 64.8813C88.4725 64.8813 88.2523 64.9243 88.0625 65.0103C87.8763 65.0962 87.7295 65.209 87.6221 65.3486C87.5182 65.4883 87.4663 65.6387 87.4663 65.7998H86.4727C86.4727 65.5921 86.5264 65.3862 86.6338 65.1821C86.7412 64.978 86.8952 64.7936 87.0957 64.6289C87.2998 64.4606 87.5433 64.3281 87.8262 64.2314C88.1126 64.1312 88.4313 64.0811 88.7822 64.0811C89.2048 64.0811 89.5771 64.1527 89.8994 64.2959C90.2253 64.4391 90.4795 64.6558 90.6621 64.9458C90.8483 65.2323 90.9414 65.5921 90.9414 66.0254V68.7324C90.9414 68.9258 90.9575 69.1317 90.9897 69.3501C91.0256 69.5685 91.0775 69.7565 91.1455 69.9141V70H90.1089C90.0588 69.8854 90.0194 69.7332 89.9907 69.5435C89.9621 69.3501 89.9478 69.1711 89.9478 69.0063ZM90.1196 66.4766L90.1304 67.1748H89.126C88.8431 67.1748 88.5907 67.1981 88.3687 67.2446C88.1466 67.2876 87.9604 67.3538 87.8101 67.4434C87.6597 67.5329 87.5451 67.6457 87.4663 67.7817C87.3875 67.9142 87.3481 68.07 87.3481 68.249C87.3481 68.4316 87.3893 68.5981 87.4717 68.7485C87.554 68.8989 87.6776 69.0189 87.8423 69.1084C88.0106 69.1943 88.2165 69.2373 88.46 69.2373C88.7643 69.2373 89.0329 69.1729 89.2656 69.0439C89.4984 68.915 89.6828 68.7575 89.8188 68.5713C89.9585 68.3851 90.0337 68.2043 90.0444 68.0288L90.4688 68.5068C90.4437 68.6572 90.3757 68.8237 90.2646 69.0063C90.1536 69.189 90.005 69.3644 89.8188 69.5327C89.6362 69.6974 89.4178 69.8353 89.1636 69.9463C88.9129 70.0537 88.63 70.1074 88.3149 70.1074C87.9211 70.1074 87.5755 70.0304 87.2783 69.8765C86.9847 69.7225 86.7555 69.5166 86.5908 69.2588C86.4297 68.9974 86.3491 68.7056 86.3491 68.3833C86.3491 68.0718 86.41 67.7979 86.5317 67.5615C86.6535 67.3216 86.8289 67.1229 87.0581 66.9653C87.2873 66.8042 87.563 66.6825 87.8853 66.6001C88.2075 66.5177 88.5674 66.4766 88.9648 66.4766H90.1196ZM94.8301 69.291C95.0664 69.291 95.2848 69.2427 95.4854 69.146C95.6859 69.0493 95.8506 68.9168 95.9795 68.7485C96.1084 68.5767 96.1818 68.3815 96.1997 68.1631H97.145C97.1271 68.5068 97.0107 68.8273 96.7959 69.1245C96.5846 69.4181 96.3071 69.6562 95.9634 69.8389C95.6196 70.0179 95.2419 70.1074 94.8301 70.1074C94.3932 70.1074 94.0119 70.0304 93.686 69.8765C93.3638 69.7225 93.0952 69.5112 92.8804 69.2427C92.6691 68.9741 92.5098 68.6662 92.4023 68.3188C92.2985 67.9679 92.2466 67.5973 92.2466 67.207V66.9814C92.2466 66.5911 92.2985 66.2223 92.4023 65.875C92.5098 65.5241 92.6691 65.2144 92.8804 64.9458C93.0952 64.6772 93.3638 64.466 93.686 64.312C94.0119 64.158 94.3932 64.0811 94.8301 64.0811C95.2848 64.0811 95.6823 64.1742 96.0225 64.3604C96.3626 64.543 96.6294 64.7936 96.8228 65.1123C97.0197 65.4274 97.1271 65.7855 97.145 66.1865H96.1997C96.1818 65.9466 96.1138 65.73 95.9956 65.5366C95.881 65.3433 95.7235 65.1893 95.5229 65.0747C95.326 64.9565 95.0951 64.8975 94.8301 64.8975C94.5257 64.8975 94.2697 64.9583 94.062 65.0801C93.8579 65.1982 93.695 65.3594 93.5732 65.5635C93.4551 65.764 93.3691 65.9878 93.3154 66.2349C93.2653 66.4784 93.2402 66.7272 93.2402 66.9814V67.207C93.2402 67.4613 93.2653 67.7119 93.3154 67.959C93.3656 68.2061 93.4497 68.4299 93.5679 68.6304C93.6896 68.8309 93.8525 68.992 94.0566 69.1138C94.2643 69.2319 94.5221 69.291 94.8301 69.291ZM94.2822 70.0537H94.9966L94.9321 70.3384C95.1398 70.3742 95.3278 70.4601 95.4961 70.5962C95.668 70.7323 95.7539 70.9561 95.7539 71.2676C95.7539 71.4359 95.7181 71.5881 95.6465 71.7241C95.5785 71.8638 95.4764 71.9819 95.3403 72.0786C95.2043 72.1789 95.0342 72.2559 94.8301 72.3096C94.6296 72.3633 94.395 72.3901 94.1265 72.3901L94.0889 71.8154C94.2536 71.8154 94.4022 71.7975 94.5347 71.7617C94.6707 71.7259 94.7782 71.6686 94.8569 71.5898C94.9393 71.5111 94.9805 71.409 94.9805 71.2837C94.9805 71.1655 94.95 71.0724 94.8892 71.0044C94.8283 70.9364 94.7334 70.8844 94.6045 70.8486C94.4792 70.8164 94.3162 70.7931 94.1157 70.7788L94.2822 70.0537ZM97.999 67.1587V67.0352C97.999 66.6162 98.0599 66.2277 98.1816 65.8696C98.3034 65.508 98.4788 65.1947 98.708 64.9297C98.9372 64.6611 99.2147 64.4535 99.5405 64.3066C99.8664 64.1562 100.232 64.0811 100.636 64.0811C101.044 64.0811 101.411 64.1562 101.737 64.3066C102.067 64.4535 102.346 64.6611 102.575 64.9297C102.808 65.1947 102.985 65.508 103.107 65.8696C103.229 66.2277 103.29 66.6162 103.29 67.0352V67.1587C103.29 67.5776 103.229 67.9661 103.107 68.3242C102.985 68.6823 102.808 68.9956 102.575 69.2642C102.346 69.5291 102.069 69.7368 101.743 69.8872C101.42 70.034 101.055 70.1074 100.647 70.1074C100.239 70.1074 99.8717 70.034 99.5459 69.8872C99.2201 69.7368 98.9408 69.5291 98.708 69.2642C98.4788 68.9956 98.3034 68.6823 98.1816 68.3242C98.0599 67.9661 97.999 67.5776 97.999 67.1587ZM98.9927 67.0352V67.1587C98.9927 67.4487 99.0267 67.7227 99.0947 67.9805C99.1628 68.2347 99.2648 68.4603 99.4009 68.6572C99.5405 68.8542 99.7142 69.0099 99.9219 69.1245C100.13 69.2355 100.371 69.291 100.647 69.291C100.919 69.291 101.157 69.2355 101.361 69.1245C101.569 69.0099 101.741 68.8542 101.877 68.6572C102.013 68.4603 102.115 68.2347 102.183 67.9805C102.255 67.7227 102.291 67.4487 102.291 67.1587V67.0352C102.291 66.7487 102.255 66.4784 102.183 66.2241C102.115 65.9663 102.011 65.7389 101.872 65.542C101.736 65.3415 101.564 65.1839 101.356 65.0693C101.152 64.9548 100.912 64.8975 100.636 64.8975C100.364 64.8975 100.124 64.9548 99.9165 65.0693C99.7124 65.1839 99.5405 65.3415 99.4009 65.542C99.2648 65.7389 99.1628 65.9663 99.0947 66.2241C99.0267 66.4784 98.9927 66.7487 98.9927 67.0352ZM101.829 61.8574L102.5 61.9165C102.5 62.1779 102.448 62.4071 102.344 62.604C102.24 62.8009 102.101 62.9531 101.925 63.0605C101.753 63.168 101.558 63.2217 101.34 63.2217C101.157 63.2217 101.007 63.1966 100.889 63.1465C100.771 63.0928 100.665 63.0337 100.572 62.9692C100.479 62.9012 100.38 62.8421 100.276 62.792C100.176 62.7383 100.051 62.7114 99.9004 62.7114C99.75 62.7114 99.6229 62.7687 99.519 62.8833C99.4188 62.9979 99.3687 63.1393 99.3687 63.3076L98.6973 63.2754C98.6973 63.014 98.7474 62.7848 98.8477 62.5879C98.9515 62.3874 99.0911 62.2316 99.2666 62.1206C99.4421 62.006 99.6372 61.9487 99.8521 61.9487C100.006 61.9487 100.14 61.9756 100.255 62.0293C100.373 62.0794 100.484 62.1385 100.588 62.2065C100.692 62.271 100.799 62.3301 100.91 62.3838C101.021 62.4339 101.148 62.459 101.292 62.459C101.442 62.459 101.569 62.4017 101.673 62.2871C101.777 62.1689 101.829 62.0257 101.829 61.8574ZM106.947 70.1074C106.543 70.1074 106.176 70.0394 105.846 69.9033C105.52 69.7637 105.239 69.5685 105.003 69.3179C104.77 69.0672 104.591 68.77 104.466 68.4263C104.34 68.0825 104.278 67.7065 104.278 67.2983V67.0728C104.278 66.6001 104.348 66.1794 104.487 65.8105C104.627 65.4382 104.817 65.123 105.057 64.8652C105.297 64.6074 105.569 64.4123 105.873 64.2798C106.177 64.1473 106.493 64.0811 106.818 64.0811C107.234 64.0811 107.592 64.1527 107.893 64.2959C108.197 64.4391 108.446 64.6396 108.639 64.8975C108.833 65.1517 108.976 65.4525 109.069 65.7998C109.162 66.1436 109.208 66.5195 109.208 66.9277V67.3735H104.869V66.5625H108.215V66.4873C108.201 66.2295 108.147 65.9788 108.054 65.7354C107.964 65.4919 107.821 65.2913 107.624 65.1338C107.427 64.9762 107.159 64.8975 106.818 64.8975C106.593 64.8975 106.385 64.9458 106.195 65.0425C106.006 65.1356 105.843 65.2752 105.707 65.4614C105.57 65.6476 105.465 65.875 105.39 66.1436C105.314 66.4121 105.277 66.7218 105.277 67.0728V67.2983C105.277 67.5741 105.314 67.8337 105.39 68.0771C105.468 68.3171 105.581 68.5283 105.728 68.7109C105.878 68.8936 106.059 69.0368 106.271 69.1406C106.485 69.2445 106.729 69.2964 107.001 69.2964C107.352 69.2964 107.649 69.2248 107.893 69.0815C108.136 68.9383 108.349 68.7467 108.532 68.5068L109.133 68.9849C109.008 69.1746 108.849 69.3555 108.655 69.5273C108.462 69.6992 108.224 69.8389 107.941 69.9463C107.662 70.0537 107.33 70.1074 106.947 70.1074ZM113.752 68.4585C113.752 68.3153 113.72 68.1828 113.656 68.061C113.595 67.9357 113.468 67.8229 113.274 67.7227C113.085 67.6188 112.798 67.5293 112.415 67.4541C112.093 67.3861 111.801 67.3055 111.54 67.2124C111.282 67.1193 111.062 67.0065 110.879 66.874C110.7 66.7415 110.562 66.5858 110.465 66.4067C110.369 66.2277 110.32 66.0182 110.32 65.7783C110.32 65.5492 110.37 65.3325 110.471 65.1284C110.575 64.9243 110.72 64.7435 110.906 64.5859C111.096 64.4284 111.323 64.3049 111.588 64.2153C111.853 64.1258 112.148 64.0811 112.474 64.0811C112.94 64.0811 113.337 64.1634 113.667 64.3281C113.996 64.4928 114.248 64.7131 114.424 64.9888C114.599 65.2609 114.687 65.5635 114.687 65.8965H113.693C113.693 65.7354 113.645 65.5796 113.548 65.4292C113.455 65.2752 113.317 65.1481 113.135 65.0479C112.956 64.9476 112.736 64.8975 112.474 64.8975C112.198 64.8975 111.975 64.9404 111.803 65.0264C111.634 65.1087 111.511 65.2144 111.432 65.3433C111.357 65.4722 111.319 65.6082 111.319 65.7515C111.319 65.8589 111.337 65.9556 111.373 66.0415C111.412 66.1239 111.48 66.2008 111.577 66.2725C111.674 66.3405 111.81 66.4049 111.985 66.4658C112.161 66.5267 112.385 66.5876 112.657 66.6484C113.133 66.7559 113.525 66.8848 113.833 67.0352C114.141 67.1855 114.37 67.37 114.521 67.5884C114.671 67.8068 114.746 68.0718 114.746 68.3833C114.746 68.6375 114.692 68.8703 114.585 69.0815C114.481 69.2928 114.329 69.4754 114.128 69.6294C113.931 69.7798 113.695 69.8979 113.419 69.9839C113.147 70.0662 112.841 70.1074 112.501 70.1074C111.989 70.1074 111.556 70.0161 111.201 69.8335C110.847 69.6509 110.578 69.4146 110.396 69.1245C110.213 68.8345 110.122 68.5283 110.122 68.2061H111.121C111.135 68.4782 111.214 68.6948 111.357 68.856C111.5 69.0135 111.676 69.1263 111.883 69.1943C112.091 69.2588 112.297 69.291 112.501 69.291C112.773 69.291 113 69.2552 113.183 69.1836C113.369 69.112 113.511 69.0135 113.607 68.8882C113.704 68.7629 113.752 68.6196 113.752 68.4585Z\",\n fill: \"#2F2F33\"\n});\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.6562 49.2812V50.8262H42.4854L42.3896 49.6299L46.5391 43.0469H48.1045L46.4092 45.8838L44.3447 49.2812H49.6562ZM48.5283 43.0469V53H46.5596V43.0469H48.5283ZM50.9004 52.0498C50.9004 51.7581 51.0007 51.5143 51.2012 51.3184C51.4062 51.1224 51.6774 51.0244 52.0146 51.0244C52.3519 51.0244 52.6208 51.1224 52.8213 51.3184C53.0264 51.5143 53.1289 51.7581 53.1289 52.0498C53.1289 52.3415 53.0264 52.5853 52.8213 52.7812C52.6208 52.9772 52.3519 53.0752 52.0146 53.0752C51.6774 53.0752 51.4062 52.9772 51.2012 52.7812C51.0007 52.5853 50.9004 52.3415 50.9004 52.0498ZM61.5439 43.0469V44.1064L57.6953 53H55.6172L59.4658 44.585H54.5098V43.0469H61.5439Z\",\n fill: \"#2F2F33\"\n});\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M75.4333 41.6304C75.62 41.0931 76.38 41.0931 76.5667 41.6304L77.7438 45.0168C77.8262 45.2538 78.0474 45.4145 78.2983 45.4197L81.8827 45.4927C82.4514 45.5043 82.6863 46.227 82.233 46.5707L79.3761 48.7366C79.1761 48.8882 79.0916 49.1483 79.1643 49.3885L80.2024 52.82C80.3672 53.3645 79.7524 53.8111 79.2854 53.4862L76.3427 51.4385C76.1367 51.2951 75.8633 51.2951 75.6573 51.4385L72.7146 53.4862C72.2476 53.8111 71.6328 53.3645 71.7976 52.82L72.8357 49.3885C72.9084 49.1483 72.8239 48.8882 72.6239 48.7366L69.767 46.5707C69.3137 46.227 69.5486 45.5043 70.1173 45.4927L73.7017 45.4197C73.9526 45.4145 74.1738 45.2538 74.2562 45.0168L75.4333 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.4333 41.6304C91.62 41.0931 92.38 41.0931 92.5667 41.6304L93.7438 45.0168C93.8262 45.2538 94.0474 45.4145 94.2983 45.4197L97.8827 45.4927C98.4514 45.5043 98.6863 46.227 98.233 46.5707L95.3761 48.7366C95.1761 48.8882 95.0916 49.1483 95.1643 49.3885L96.2024 52.82C96.3672 53.3645 95.7524 53.8111 95.2854 53.4862L92.3427 51.4385C92.1367 51.2951 91.8633 51.2951 91.6573 51.4385L88.7146 53.4862C88.2476 53.8111 87.6328 53.3645 87.7976 52.82L88.8357 49.3885C88.9084 49.1483 88.8239 48.8882 88.6239 48.7366L85.767 46.5707C85.3137 46.227 85.5486 45.5043 86.1173 45.4927L89.7017 45.4197C89.9526 45.4145 90.1738 45.2538 90.2562 45.0168L91.4333 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.433 41.6304C107.62 41.0931 108.38 41.0931 108.567 41.6304L109.744 45.0168C109.826 45.2538 110.047 45.4145 110.298 45.4197L113.883 45.4927C114.451 45.5043 114.686 46.227 114.233 46.5707L111.376 48.7366C111.176 48.8882 111.092 49.1483 111.164 49.3885L112.202 52.82C112.367 53.3645 111.752 53.8111 111.285 53.4862L108.343 51.4385C108.137 51.2951 107.863 51.2951 107.657 51.4385L104.715 53.4862C104.248 53.8111 103.633 53.3645 103.798 52.82L104.836 49.3885C104.908 49.1483 104.824 48.8882 104.624 48.7366L101.767 46.5707C101.314 46.227 101.549 45.5043 102.117 45.4927L105.702 45.4197C105.953 45.4145 106.174 45.2538 106.256 45.0168L107.433 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.433 41.6304C123.62 41.0931 124.38 41.0931 124.567 41.6304L125.744 45.0168C125.826 45.2538 126.047 45.4145 126.298 45.4197L129.883 45.4927C130.451 45.5043 130.686 46.227 130.233 46.5707L127.376 48.7366C127.176 48.8882 127.092 49.1483 127.164 49.3885L128.202 52.82C128.367 53.3645 127.752 53.8111 127.285 53.4862L124.343 51.4385C124.137 51.2951 123.863 51.2951 123.657 51.4385L120.715 53.4862C120.248 53.8111 119.633 53.3645 119.798 52.82L120.836 49.3885C120.908 49.1483 120.824 48.8882 120.624 48.7366L117.767 46.5707C117.314 46.227 117.549 45.5043 118.117 45.4927L121.702 45.4197C121.953 45.4145 122.174 45.2538 122.256 45.0168L123.433 41.6304Z\",\n fill: \"#FBC105\"\n});\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M139.433 41.6304C139.62 41.0931 140.38 41.0931 140.567 41.6304L141.744 45.0168C141.826 45.2538 142.047 45.4145 142.298 45.4197L145.883 45.4927C146.451 45.5043 146.686 46.227 146.233 46.5707L143.376 48.7366C143.176 48.8882 143.092 49.1483 143.164 49.3885L144.202 52.82C144.367 53.3645 143.752 53.8111 143.285 53.4862L140.343 51.4385C140.137 51.2951 139.863 51.2951 139.657 51.4385L136.715 53.4862C136.248 53.8111 135.633 53.3645 135.798 52.82L136.836 49.3885C136.908 49.1483 136.824 48.8882 136.624 48.7366L133.767 46.5707C133.314 46.227 133.549 45.5043 134.117 45.4927L137.702 45.4197C137.953 45.4145 138.174 45.2538 138.256 45.0168L139.433 41.6304Z\",\n fill: \"url(#paint0_linear_8708_87293)\"\n});\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.716 17.0176C21.6796 12.9748 25.0217 11.008 25.1745 10.9165C23.2818 8.15318 20.3481 7.77563 19.3171 7.74553C16.8532 7.48588 14.4631 9.22188 13.208 9.22188C11.9278 9.22188 9.99497 7.77061 7.91182 7.81326C5.23116 7.85465 2.72337 9.40877 1.34796 11.8221C-1.49053 16.7429 0.626442 23.9741 3.34593 27.9516C4.7063 29.8996 6.29591 32.0746 8.37655 31.9981C10.4121 31.914 11.1725 30.6986 13.6289 30.6986C16.0628 30.6986 16.7768 31.9981 18.8988 31.9491C21.0834 31.914 22.4588 29.9924 23.7715 28.0268C25.3436 25.7941 25.9749 23.5953 26 23.4824C25.9486 23.4648 21.7573 21.863 21.716 17.0176Z\",\n fill: \"#2F2F33\"\n});\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.708 5.12897C18.8028 3.75798 19.5519 1.89279 19.3439 0C17.7594 0.0702427 15.7777 1.09754 14.6365 2.43842C13.6269 3.62001 12.725 5.5567 12.958 7.37799C14.738 7.51095 16.5656 6.47863 17.708 5.12897Z\",\n fill: \"#2F2F33\"\n});\nvar _ref19 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_8708_87293\",\n x1: 148,\n y1: 48,\n x2: 132,\n y2: 48,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.495,\n stopColor: \"#ABAAA8\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.4951,\n stopColor: \"#FBC105\"\n})));\nfunction SvgSeloAppStore(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 152,\n height: 73,\n viewBox: \"0 0 152 73\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSeloAppStore);\nexport default __webpack_public_path__ + \"static/media/selo-app-store.4900992d.svg\";\nexport { ForwardRef as ReactComponent };","import { BiCheck } from \"react-icons/bi\";\nimport { useNavigate } from \"react-router-dom\";\nimport { Tooltip, Typography, message } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport Button from \"../../components/Button\";\nimport HandleTag from \"../../services/handleTag\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { UserPlanEnum } from \"../../constants/plans\";\nimport { Container, LogoContainer, PlanosContainer } from \"./styles\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { UserPlanUpgradeEnum, planos } from \"./planos\";\nimport { ReactComponent as Selo7dias } from \"../../assets/icons/selo-7-dias.svg\";\nimport { ReactComponent as SeloGarantia } from \"../../assets/icons/selo-garantia.svg\";\nimport { ReactComponent as SeloGoogleStore } from \"../../assets/icons/selo-play-store.svg\";\nimport { ReactComponent as SeloAppStore } from \"../../assets/icons/selo-app-store.svg\";\n\nvar getStatus: NodeJS.Timeout;\n\nexport const Planos = () => {\n const navigate = useNavigate();\n const {\n user,\n hasPlan,\n isIOSAPP,\n getUserInfo,\n directPayment,\n initIOSPlanCheck,\n setDirectPayment,\n } = useAuth();\n const [selectedPlan, setSelectedPlan] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [planUpgrade, setPlanUpgrade] = useState();\n\n const handleSelectPlan = (plan: any) => {\n if (isIOSAPP) {\n initIOSPlanCheck();\n window.location.href = !process.env.REACT_APP_URL?.includes(\"dev\")\n ? \"https://checkout.velotax.com.br/\"\n : \"https://checkout-dev.velotax.com.br/\";\n } else {\n setPaymentModal(true);\n }\n setSelectedPlan(plan);\n };\n\n const checkWasPaid = useCallback(\n (id: string, delay: number = 2) => {\n let attempts = 0;\n getStatus = setInterval(async () => {\n apiPayment\n .get(`/user-plan/plan-info`)\n .then((res) => {\n if (res.data?.active) {\n clearInterval(getStatus);\n message.success(\"Pagamento Confirmado com sucesso!\");\n HandleTag(\"75\");\n getUserInfo();\n user?.user?.isAd\n ? navigate(\"/sucesso?ad=true\")\n : navigate(\"/sucesso\");\n }\n })\n .finally(() => {\n attempts += 1;\n if (attempts > 100) {\n clearInterval(getStatus);\n }\n });\n }, delay * 1000);\n },\n [navigate, getUserInfo, user?.user?.isAd]\n );\n\n const handleSuccess = (data: any) => {\n checkWasPaid(data.paymentId, 4);\n };\n\n const stopIntervalPix = () => {\n if (getStatus) clearInterval(getStatus);\n };\n\n useEffect(() => {\n return () => getStatus && clearInterval(getStatus);\n }, [checkWasPaid]);\n\n useEffect(() => {\n if (directPayment) {\n setPaymentModal(true);\n setSelectedPlan(\n planos.find(\n (plan) => plan.type === user.user.userPlanInfoVelotax?.type\n ) ?? planos[1]\n );\n }\n }, [directPayment, user?.user?.userPlanInfoVelotax?.type]);\n\n return (\n \n
\n \n Selecione seu plano\n \n \n Junte-se a nossa comunidade com mais de{\" \"}\n 500 mil usuários satisfeitos!\n \n \n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n \n {planos.map((plan) => {\n const actionTypeText = !hasPlan\n ? \"Selecionar\"\n : (hasPlan.basic &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_BASIC) ||\n (hasPlan.premium &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_PRO) ||\n (hasPlan.concierge &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_CONCIERGE)\n ? \"Ativo\"\n : \"Fazer upgrade\";\n\n const isUpgrade = actionTypeText === \"Fazer upgrade\";\n const price = plan.price.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n\n return (\n
\n {plan.popular &&
Popular
}\n \n {plan.name}\n \n \n {isUpgrade ? \"\" : \"\"}R${\" \"}\n {price.split(\",\")[0]}\n ,{price.split(\",\")[1]}\n \n \n por mês no plano anual\n \n \n {plan.for}\n \n {\n if (hasPlan) {\n setPlanUpgrade(\n hasPlan.premium &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_CONCIERGE\n ? UserPlanUpgradeEnum.PRO_TO_CONCIERGE\n : !hasPlan.premium &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_PRO\n ? UserPlanUpgradeEnum.BASIC_TO_PRO_VELOTAX\n : !hasPlan.premium &&\n plan?.type === UserPlanEnum.VELOTAX_MAIN_CONCIERGE\n ? UserPlanUpgradeEnum.BASIC_TO_CONCIERGE_VELOTAX\n : undefined\n );\n }\n handleSelectPlan(plan);\n }}\n >\n {actionTypeText}\n \n \n {plan.includes}\n \n
\n {plan.benefits.map((benefit, index) => (\n
\n \n {benefit.split(\"{\")[0]}\n {benefit.split(\"{\")?.[1]?.length > 0 ? (\n target.parentElement!}\n >\n \n \n ) : (\n <>\n )}\n
\n ))}\n
\n
\n );\n })}\n \n Ao prosseguir, você declara que leu, entendeu e aceitou nossos{\" \"}\n \n Termos de contratação\n \n \n
\n
\n {}}\n planCurrent={selectedPlan}\n onSucessPix={checkWasPaid}\n onSucessCreditCard={handleSuccess}\n hidePixButton={\n !!hasPlan || \"VELOTAX_MAIN_PRO_MONTH\" === selectedPlan?.type\n }\n paymentData={{\n planUpgrade,\n type: selectedPlan?.type,\n isPlan: true,\n stopIntervalPix,\n }}\n onCancel={(e: any) => {\n setPaymentModal(false);\n setSelectedPlan(undefined);\n setDirectPayment(false);\n }}\n />\n
\n );\n};","import { Col, Row, message } from \"antd\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Container } from \"./styles\";\nimport api from \"../../services/api\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\n\nlet getStatus: NodeJS.Timeout;\n\ninterface PlanIosProps {}\n\nexport const PlanIos: React.FC = () => {\n const navigate = useNavigate();\n const [loading] = useState(true);\n const [showDrawer, setShowDrawer] = useState(true);\n\n useEffect(() => {\n let attempts = 0;\n getStatus = setInterval(() => {\n api\n .get(\"/irpf/payment/check_payment\")\n .then((res) => {\n if (res.data?.status === \"paid\") {\n clearInterval(getStatus);\n message.success(\"Pagamento confirmado com sucesso!\");\n navigate(\"/carteira\");\n setTimeout(() => {\n window.location.reload();\n }, 1000);\n }\n })\n .catch((err) => {\n message.error(\"Erro ao verificar contratação de plano no IOS\", err);\n })\n .finally(() => {\n attempts += 1;\n if (attempts > 200) {\n clearInterval(getStatus);\n }\n });\n }, 5000);\n return () => {\n clearInterval(getStatus);\n };\n }, [navigate]);\n\n return (\n \n {\n navigate(\"/\");\n setShowDrawer(false);\n }}\n >\n \n {loading && }\n \n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const Content = styled.div`\n .ant-btn-primary {\n height: 36px;\n font-weight: 500;\n padding: 4px 16px !important;\n }\n .ant-list.ant-list-split {\n clear: both;\n padding: 0 16px;\n border-radius: 8px;\n background-color: var(--light-gray);\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-title {\n font-size: 16px;\n font-weight: 700;\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n @media only screen and (max-device-width: 812px) {\n .ant-list.ant-list-split {\n a,\n button {\n font-size: 14px;\n padding-left: 10px;\n padding-right: 10px;\n }\n }\n }\n`;\n\nexport const ModalContent = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n & > div {\n width: 100%;\n }\n .subtitle {\n text-transform: uppercase;\n opacity: 0.6;\n font-size: 13px;\n font-weight: 600;\n margin-bottom: 8px;\n :first-of-type {\n margin-bottom: -2px;\n }\n }\n .content {\n display: flex;\n align-items: center;\n font-weight: 500;\n margin-bottom: 24px;\n text-transform: uppercase;\n .status {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n display: inline-block;\n &.success {\n border-radius: 50%;\n background-color: var(--ant-success-color);\n }\n }\n button {\n display: inline-flex;\n }\n }\n`;\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { useState } from \"react\";\nimport { GoSync } from \"react-icons/go\";\nimport { useNavigate } from \"react-router-dom\";\nimport { List, Skeleton, Typography } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport api from \"../../services/api\";\nimport Button from \"../../components/Button\";\nimport { Content, ModalContent } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\n\ninterface IRPFData {\n status: {\n type: string;\n message: string;\n };\n lastUpdate: Date;\n restituionDate: Date;\n bank: string;\n}\n\nexport const IRPFPage = () => {\n const { ssoToken } = useAuth();\n const navigate = useNavigate();\n const [loading, setLoading] = useState(false);\n const [irpfData, setIrpfData] = useState();\n const [selectedYear, setSelectedYear] = useState();\n\n const initialYear = 2022;\n const yearsList = Array.from(\n Array(new Date().getFullYear() - initialYear)\n ).map((_, i) => initialYear + 1 + i);\n\n const openModal = (item: number) => {\n setLoading(true);\n setSelectedYear(item);\n api\n .get(\"/irpf/dec/details\")\n .then(({ data }) => {\n setIrpfData(data);\n })\n .catch(() => {\n setIrpfData({\n status: {\n type: \"success\",\n message: \"Declaração processada sem pendências\",\n },\n bank: \"ITAU UNIBANCO SA (AGÊNCIA 7069)\",\n restituionDate: new Date(\"2023-08-31\"),\n lastUpdate: new Date(\"2023-06-12T18:17:00\"),\n });\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n return (\n
\n \n \n Declaração IRPF\n \n
\n (\n }\n // onClick={() => {\n // openModal(item);\n // }}\n // >\n // Consultar\n // ,\n \n Retificar\n ,\n ]}\n >\n \n \n \n \n )}\n />\n
\n {\n navigate(\"/carteira\");\n }}\n >\n Voltar\n \n setSelectedYear(undefined)}\n title={`Consulta ao imposto de renda: ${selectedYear}`}\n >\n \n {loading ? (\n \n ) : (\n
\n \n Atualizado em\n \n \n {moment(irpfData?.lastUpdate).format(\"DD/MM/YYYY à\\\\s HH:mm\")}{\" \"}\n }\n onClick={() => {\n openModal(selectedYear!);\n }}\n />\n \n \n Status ano {selectedYear}\n \n \n \n {irpfData?.status.message}\n \n \n Restituição do imposto de renda\n \n \n
\n
\n Data da liberação:{\" \"}\n \n {moment(irpfData?.restituionDate).format(\"DD/MM/YYYY\")}\n \n
\n
\n Banco: {irpfData?.bank}\n
\n
\n
\n
\n )}\n
\n \n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n &.velotax-container {\n height: 100%;\n padding: 64px 32px;\n .velotax-content {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n .top-content {\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: flex-start;\n .success {\n width: 80px;\n height: 80px;\n display: flex;\n margin-top: 64px;\n position: relative;\n border-radius: 50%;\n align-items: center;\n justify-content: center;\n background-color: var(--ant-primary-color);\n :after,\n :before {\n content: \"\";\n position: absolute;\n border-radius: 50%;\n background-color: var(--ant-primary-color);\n }\n :before {\n top: -16px;\n left: -16px;\n width: 112px;\n height: 112px;\n opacity: 0.1;\n }\n :after {\n top: -28px;\n left: -28px;\n width: 136px;\n height: 136px;\n opacity: 0.08;\n }\n svg {\n width: 40px;\n height: 40px;\n fill: var(--white);\n }\n }\n h1 {\n font-size: 24px;\n font-weight: 700;\n line-height: 32px;\n font-style: normal;\n margin: 48px 0 8px;\n letter-spacing: -0.24px;\n }\n div.ant-typography {\n font-size: 16px;\n font-weight: 400;\n max-width: 450px;\n line-height: 24px;\n font-style: normal;\n text-align: center;\n margin-bottom: 40px;\n color: var(--dark-gray);\n }\n .ant-btn-primary {\n width: 200px;\n }\n }\n .footer {\n opacity: 0.6;\n display: flex;\n align-items: center;\n justify-content: center;\n .ant-typography {\n display: block;\n font-size: 11px;\n max-width: 400px;\n text-align: center;\n strong {\n font-weight: 500;\n white-space: nowrap;\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n &.velotax-container {\n height: auto;\n min-height: 100%;\n .velotax-content {\n .footer {\n margin-top: 48px;\n }\n }\n }\n }\n`;\n","import { Typography } from \"antd\";\nimport { HiCheck } from \"react-icons/hi\";\nimport { useNavigate } from \"react-router\";\nimport { useEffect } from \"react\";\nimport { Container } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\n\nexport const Sucesso = () => {\n const navigate = useNavigate();\n const { user, b3Authorized } = useAuth();\n\n useEffect(() => {\n const isProd = process.env.REACT_APP_NODE_ENV === \"prd\";\n isProd &&\n (window as any).gtag &&\n (window as any).gtag(\"event\", \"conversion\", {\n send_to: \"AW-414293187/T0L8CI76-MUYEMO5xsUB\",\n });\n }, []);\n\n return (\n \n
\n
\n
\n \n
\n Sucesso!\n \n Agora você já consegue acessar todos os módulos da plataforma e\n emitir DARFs ilimitados sem custo adicional.\n \n {\n if (!b3Authorized) {\n navigate(\"/velotax/bolsa-integration\");\n } else {\n navigate(\"/carteira\");\n }\n }}\n >\n Continuar\n \n
\n
\n \n O comprovante de compra foi enviado para o e-mail{\" \"}\n {user?.user?.email} e para o WhatsApp{\" \"}\n {user?.user?.cellphone}.\n \n
\n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div``;\n","import React, { useState } from \"react\";\nimport ReactInputMask from \"react-input-mask\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiOutlineArrowDown } from \"react-icons/ai\";\nimport { Checkbox, Form, Input, Typography } from \"antd\";\nimport { EyeInvisibleOutlined, EyeOutlined } from \"@ant-design/icons\";\nimport Button from \"../../components/Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport {\n validationCpf,\n validationEmail,\n validationFullName,\n validationPassword,\n} from \"../../utils/formValidations\";\n\ninterface IData {\n cpf: string;\n email: string;\n phone: string;\n isAd: boolean;\n}\n\ninterface IProps {\n className?: string;\n}\n\nexport const Cadastro: React.FC = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm();\n const { handleSignUp, loading } = useAuth();\n const [visiblePass, setVisiblePass] = useState(false);\n const queryParams = new URLSearchParams(window.location.search);\n const isAd = Boolean(queryParams.get(\"ad\"));\n\n const onFinish = (data: IData) => {\n handleSignUp({ ...data, isAd }, {});\n };\n\n const onValuesChange = (changed: any, values: any) => {\n const cpf = changed.cpf ? changed.cpf.replace(/[_.-/-]/g, \"\") : values.cpf;\n form.setFieldsValue({\n ...values,\n cpf,\n });\n };\n\n return (\n \n
\n
\n \n Faça seu cadastro\n\n \n \n \n\n \n \n \n\n \n \n \n\n
\n \n {visiblePass ? (\n \n ) : (\n \n )}\n \n setVisiblePass((visible) => !visible)}\n icon={visiblePass ? : }\n />\n
\n\n {/* }\n >\n Começar\n */}\n\n
\n e.target.checked}\n >\n \n Li, entendi e estou de acordo com os{\" \"}\n \n Termos de Uso\n \n ,{\" \"}\n \n Política de Privacidade\n {\" \"}\n e{\" \"}\n \n Política de Cookies\n {\" \"}\n do Velotax\n \n \n
\n \n\n
\n Já possui uma conta?\n navigate(\"/p/login\")}\n >\n Entrar\n \n
\n
\n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const AvisosContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n\n .client-integration-card {\n padding: 24px;\n display: flex;\n align-items: start;\n border-radius: 8px;\n margin-bottom: 1rem;\n background-color: var(--ant-primary-1);\n & > svg {\n min-width: 32px;\n min-height: 32px;\n color: var(--ant-primary-color);\n stroke: var(--ant-primary-color);\n &.fill {\n fill: var(--ant-primary-color);\n }\n }\n\n .client-integration-card-content {\n width: 100%;\n margin-left: 16px;\n h3 {\n font-size: 16px;\n font-weight: 700;\n line-height: 24px;\n margin-bottom: 8px;\n color: var(--ant-primary-color);\n }\n div.ant-typography {\n color: var(--dark-gray);\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n width: calc(100% - 48px);\n }\n .ant-btn {\n padding: 0;\n border: none;\n height: 40px;\n font-size: 14px;\n margin: -12px 0;\n span {\n font-weight: 700;\n }\n }\n button {\n display: flex;\n align-items: center;\n\n svg {\n margin-left: 4px;\n }\n }\n }\n }\n\n div:first-of-type {\n width: 100%;\n }\n\n .title {\n h3 {\n font-weight: 600;\n }\n }\n .divider {\n width: 100%;\n background-color: var(--ant-primary-color);\n height: 2px;\n margin-bottom: 2rem;\n }\n\n .plan-boxes {\n flex-wrap: nowrap;\n margin-top: 1rem !important;\n margin-bottom: 1rem !important;\n }\n\n .ant-divider {\n margin: 8px 0;\n }\n\n .ant-btn {\n height: 56px;\n\n span {\n font-weight: 500;\n svg {\n display: none;\n }\n }\n }\n .total-contratado {\n display: none;\n }\n .dismiss {\n cursor: pointer;\n transition: 0.3s;\n &:hover {\n color: var(--ant-primary-7);\n transition: 0.3s;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .ant-card-body {\n padding: 16px;\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const B3Link = styled.a`\n margin: auto;\n font-size: 10px;\n text-align: center;\n white-space: normal;\n display: inline-block;\n word-break: break-all;\n color: rgb(1, 103, 153);\n\n &:hover {\n text-decoration: underline;\n color: rgb(1, 103, 153);\n }\n`;\n\nexport const CopyLink = styled.button`\n color: #0566cd;\n font-weight: 500;\n text-decoration: underline;\n\n &:hover {\n text-decoration: underline;\n color: #06417f;\n }\n`;\n\nexport const ShareItem = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n color: #06417f;\n }\n\n img {\n width: 40px;\n height: 40px;\n }\n\n p {\n font-size: 11px;\n margin: 0.5rem 0;\n }\n`;\n\nexport const Instructions = styled.p`\n font-size: 13px;\n margin-bottom: 4px;\n`;\n","export default __webpack_public_path__ + \"static/media/Integracao_B3.635b7422.gif\";","import { Typography, Image, message } from \"antd\";\nimport { DrawerModal } from \"../../DrawerModal\";\nimport { B3Link, CopyLink, Instructions } from \"./styles\";\nimport b3IntegrationExample from \"../../../assets/Integracao_B3.gif\";\n// import xpIntegrationExample from \"../../../assets/integracao_xp_exterior_fundo_branco.gif\";\n\nexport type TIntegrationModal = \"B3\" | \"XP International\" | null;\ninterface IProps {\n integrationModal: TIntegrationModal;\n setIntegrationModal: React.Dispatch>;\n}\n\nconst b3Link =\n \"https://b3investidor.b2clogin.com/b3Investidor.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1A_FINTECH&client_id=069ecfdf-7471-48eb-be82-d50799c99e5c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fwww.investidor.b3.com.br&scope=openid&response_type=code&prompt=login\";\n// const b3Encoded =\n// \"https%3A%2F%2Fb3investidor.b2clogin.com%2Fb3Investidor.onmicrosoft.com%2Foauth2%2Fv2.0%2Fauthorize%3Fp%3DB2C_1A_FINTECH%26client_id%3D069ecfdf-7471-48eb-be82-d50799c99e5c%26nonce%3DdefaultNonce%26redirect_uri%3Dhttps%253A%252F%252Fwww.investidor.b3.com.br%26scope%3Dopenid%26response_type%3Dcode%26prompt%3Dlogin\";\n\nexport const IntegrationModal = ({\n integrationModal,\n setIntegrationModal,\n}: IProps) => {\n return (\n {\n setIntegrationModal(null);\n }}\n >\n {integrationModal === \"B3\" ? (\n \n Permita a conexão entre Velotax e B3 para leitura das operações\n realizadas na bolsa de valores.\n \n ) : (\n \n Realize a conexão com pelo menos uma das corretoras de investimento no\n exterior.\n \n )}\n {integrationModal === \"B3\" && (\n \n \n \n )}\n\n {integrationModal === \"B3\" ? (\n <>\n \n {b3Link}\n \n\n \n {\n navigator.clipboard.writeText(b3Link);\n message.success(\"Link copiado\");\n }}\n >\n Copiar link\n \n \n \n ) : (\n <>\n \n Instruções\n \n
\n \n Passo 1. Acesse a aba de{\" \"}\n Investimento Global dentro do aplicativo da XP\n \n \n Passo 2. Deslize a tela para baixo e clique em{\" \"}\n Imposto de Renda e DARF\n \n \n Passo 3. Clique em{\" \"}\n Calcular Imposto de Renda e aceite os termos\n \n
\n \n )}\n \n );\n};\n","import { BiX } from \"react-icons/bi\";\nimport { useEffect, useState } from \"react\";\nimport { FiArrowRight } from \"react-icons/fi\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiOutlineLink } from \"react-icons/ai\";\nimport { Button, Spin, Typography, message } from \"antd\";\nimport api from \"../../services/api\";\nimport { AvisosContainer } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { IntegrationModal } from \"./IntegrationModal\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\n\nexport const Avisos = () => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const { integration, hasExteriorIntegration } = useBroker();\n\n const [loading, setLoading] = useState(false);\n const [dismissBolsa, setDismissBolsa] = useState(true);\n const [dismissExterior, setDismissExterior] = useState(true);\n const [integrationModal, setIntegrationModal] = useState<\n \"B3\" | \"XP International\" | null\n >(null);\n\n const getCloseBanner = async () => {\n try {\n setLoading(true);\n const { data } = await api.post(\"user/xp/close-banner\", {\n cpf: user?.user?.cpf,\n });\n setDismissBolsa(data.closeBannerBolsaXp);\n setDismissExterior(data.closeBannerExteriorXp);\n } catch (error) {\n message.error(\"Algo deu errado, tente mais tarde!\");\n } finally {\n setLoading(false);\n }\n };\n\n const handleDismissBolsa = async () => {\n try {\n setLoading(true);\n setDismissBolsa(true);\n const { data } = await api.put(\"user/xp/close-banner\", {\n cpf: user?.user?.cpf,\n closeBannerBolsaXp: true,\n });\n setDismissBolsa(data.closeBannerBolsaXp);\n } catch (error) {\n message.error(\"Algo deu errado, tente mais tarde!\");\n } finally {\n setLoading(false);\n }\n };\n\n const handleDismissExterior = async () => {\n try {\n setLoading(true);\n setDismissExterior(true);\n const { data } = await api.put(\"user/xp/close-banner\", {\n cpf: user?.user?.cpf,\n closeBannerExteriorXp: true,\n });\n setDismissExterior(data.closeBannerExteriorXp);\n } catch (error) {\n message.error(\"Algo deu errado, tente mais tarde!\");\n } finally {\n setLoading(false);\n }\n };\n\n useEffect(() => {\n getCloseBanner();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n
\n \n {!integration.integrated && !dismissBolsa && (\n
\n \n
\n \n Integração com bolsa pendente\n \n \n Conceda a permissão na B3 para que seja possível acessar suas\n operações da bolsa de valores de forma automática.\n \n {\n navigate(\"/velotax/bolsa-integration\");\n }}\n >\n Saiba mais\n \n \n
\n
\n )}\n {!hasExteriorIntegration && !dismissExterior && (\n
\n \n
\n \n Conecte com uma corretora de investimentos no exterior\n \n \n Realize a conexão com pelo menos uma das corretoras de\n investimento no exterior.\n \n {\n navigate(\"/velotax/exterior-integrations\");\n }}\n >\n Saiba mais\n \n \n
\n {\n handleDismissExterior();\n }}\n />\n
\n )}\n
\n
\n \n
\n );\n};\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\n\nconst Container = styled.div`\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: 64px 32px 0;\n height: calc(100vh - 64px);\n .anticon.anticon-loading.anticon-spin {\n width: 48px;\n height: 48px;\n svg {\n width: 48px;\n height: 48px;\n fill: var(--ant-primary-color);\n }\n }\n`;\n\nconst Loading: React.FC = () => {\n return (\n \n \n \n );\n};\n\nexport default Loading;\n","import _ from \"lodash\";\nimport moment from \"moment\";\nimport { useEffect, useState } from \"react\";\nimport {\n Bar,\n BarChart,\n Legend,\n ResponsiveContainer,\n XAxis,\n YAxis,\n Tooltip,\n} from \"recharts\";\nimport Loading from \"../Loading\";\nimport { isMobile } from \"../../utils\";\n\nexport const ChartBar = ({\n monthReport,\n proventos,\n yearProventos,\n typeProventos,\n hideValues,\n}: any) => {\n const [data, setDataChart] = useState([]);\n const [bars, setBars] = useState([]);\n const [loading, setLoading] = useState(false);\n const [totalDiv, setTotalDiv] = useState(0);\n const [totalJscp, setTotalJscp] = useState(0);\n const [totalBonds, setTotalBonds] = useState(0);\n const [totalRendi, setTotalRendi] = useState(0);\n const [totalAmort, setTotalAmort] = useState(0);\n\n const chartColors = [\n { background: \"#1634ff\", label: \"white\" },\n { background: \"#C8D200\", label: \"black\" },\n { background: \"#FF2B01\", label: \"white\" },\n { background: \"#E50045\", label: \"white\" },\n { background: \"#CC13AF\", label: \"white\" },\n { background: \"#5B0084\", label: \"white\" },\n { background: \"#79002B\", label: \"white\" },\n { background: \"#0A9E5A\", label: \"white\" },\n { background: \"#FF7F00\", label: \"white\" },\n ];\n\n const getProviderColor = (provider: string, index: number) => {\n while (index > 8) {\n const differnce = index - 8;\n index = differnce - 1;\n }\n return chartColors[index].background;\n };\n\n useEffect(() => {\n setLoading(true);\n let totalJscp = 0;\n let totalDiv = 0;\n let totalBonds = 0;\n let totalRendi = 0;\n let totalAmort = 0;\n if (typeProventos === \"provento\") {\n const proventoByMonth: any = [\n {\n name: \"Jan\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Fev\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Mar\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Abr\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Mai\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Jun\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Jul\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Ago\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Set\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Out\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Nov\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n {\n name: \"Dez\",\n juros: 0,\n dividendo: 0,\n rendimento: 0,\n amortizacao: 0,\n bonds: 0,\n },\n ];\n\n const groupedProventos = _.groupBy(proventos, (item) => {\n return moment(item.date).format(\"YYYY-MM\");\n });\n\n for (const key in groupedProventos) {\n const year = +moment(key).format(\"Y\");\n const month = +moment(key).format(\"M\");\n const operations = groupedProventos[key];\n if (Number(year) === yearProventos) {\n operations.forEach((el: any) => {\n if (\n el?.corporateActionTypeDescription?.toLowerCase() === \"rendimento\"\n ) {\n proventoByMonth[month - 1].rendimento =\n proventoByMonth[month - 1]?.rendimento + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"dividendo\" ||\n el?.corporateActionTypeDescription?.toLowerCase() === \"dividendos\"\n ) {\n proventoByMonth[month - 1].dividendo =\n proventoByMonth[month - 1]?.dividendo + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"juros sobre capital próprio\"\n ) {\n proventoByMonth[month - 1].juros =\n proventoByMonth[month - 1]?.juros + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"amortização\"\n ) {\n proventoByMonth[month - 1].amortizacao =\n proventoByMonth[month - 1]?.amortizacao + el.grossAmount;\n }\n if (el?.corporateActionTypeDescription?.toLowerCase() === \"cupom\") {\n proventoByMonth[month - 1].bonds =\n proventoByMonth[month - 1]?.bonds + el.grossAmount;\n }\n });\n }\n }\n for (const el of proventoByMonth) {\n totalAmort += el.amortizacao || 0;\n totalJscp += el.juros || 0;\n totalDiv += el.dividendo || 0;\n totalBonds += el.bonds || 0;\n totalRendi += el.rendimento || 0;\n }\n\n setTotalAmort(totalAmort);\n setTotalBonds(totalBonds);\n setTotalDiv(totalDiv);\n setTotalJscp(totalJscp);\n setTotalRendi(totalRendi);\n setDataChart(proventoByMonth);\n }\n if (typeProventos === \"corretora\") {\n const proventoByMonth: any = [\n {\n name: \"Jan\",\n },\n {\n name: \"Fev\",\n },\n {\n name: \"Mar\",\n },\n {\n name: \"Abr\",\n },\n {\n name: \"Mai\",\n },\n {\n name: \"Jun\",\n },\n {\n name: \"Jul\",\n },\n {\n name: \"Ago\",\n },\n {\n name: \"Set\",\n },\n {\n name: \"Out\",\n },\n {\n name: \"Nov\",\n },\n {\n name: \"Dez\",\n },\n ];\n const barsChart: any = [];\n\n const groupedProventos = _.groupBy(proventos, (item) => {\n return item.corretora;\n });\n\n for (const key in groupedProventos) {\n barsChart.push(key);\n const operations = groupedProventos[key];\n operations.forEach((el: any) => {\n if (Number(moment(el.date).format(\"YYYY\")) === yearProventos) {\n const month = Number(moment(el.date).format(\"M\"));\n if (\n el?.corporateActionTypeDescription?.toLowerCase() === \"rendimento\"\n ) {\n proventoByMonth[month - 1][key] =\n (proventoByMonth[month - 1][key] || 0) + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"dividendo\" ||\n el?.corporateActionTypeDescription?.toLowerCase() === \"dividendos\"\n ) {\n proventoByMonth[month - 1][key] =\n (proventoByMonth[month - 1][key] || 0) + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"juros sobre capital próprio\"\n ) {\n proventoByMonth[month - 1][key] =\n (proventoByMonth[month - 1][key] || 0) + el.grossAmount;\n }\n if (\n el?.corporateActionTypeDescription?.toLowerCase() ===\n \"amortização\"\n ) {\n proventoByMonth[month - 1][key] =\n (proventoByMonth[month - 1][key] || 0) + el.grossAmount;\n }\n if (el?.corporateActionTypeDescription?.toLowerCase() === \"cupom\") {\n proventoByMonth[month - 1][key] =\n (proventoByMonth[month - 1][key] || 0) + el.grossAmount;\n }\n }\n });\n }\n\n setBars(barsChart);\n setDataChart(proventoByMonth);\n }\n if (typeProventos === \"data\") {\n const proventoByMonth: any = [\n {\n name: \"Jan\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Fev\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Mar\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Abr\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Mai\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Jun\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Jul\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Ago\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Set\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Out\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Nov\",\n futuro: 0,\n liquidado: 0,\n },\n {\n name: \"Dez\",\n futuro: 0,\n liquidado: 0,\n },\n ];\n const types = [\n \"rendimento\",\n \"juros sobre capital próprio\",\n \"dividendo\",\n \"dividendos\",\n \"amortização\",\n \"cupom\",\n \"cupom\",\n ];\n\n proventos?.forEach((el: any) => {\n const year = Number(moment(el.date).format(\"Y\"));\n if (\n year === yearProventos &&\n types.includes(el.corporateActionTypeDescription.toLowerCase())\n ) {\n const month = Number(moment(el.date).format(\"M\"));\n if (el.isFuturo) {\n proventoByMonth[month - 1].futuro += el.grossAmount;\n } else {\n proventoByMonth[month - 1].liquidado += el.grossAmount;\n }\n }\n });\n setDataChart(proventoByMonth);\n }\n setLoading(false);\n }, [yearProventos, typeProventos, proventos]);\n\n const renderLegend = (value: string, entry: any) => {\n return {value};\n };\n\n const labelFormatter = (value: any) => {\n return value > 0\n ? hideValues\n ? \"R$ ***\"\n : \"R$ \" +\n value?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n : \"\";\n };\n\n const renderTooltip = (value: any) => {\n const payload = value?.payload || [];\n\n const verificacaoValorFinal = payload.reduce(\n (acumulador: any, item: any) => {\n if (item.value !== undefined) {\n return acumulador + item.value;\n }\n return acumulador;\n },\n 0\n );\n\n if (\n typeProventos === \"provento\" &&\n payload?.[0] &&\n verificacaoValorFinal !== 0\n ) {\n const total =\n payload[0]?.payload?.dividendo +\n payload[0]?.payload?.rendimento +\n payload[0]?.payload?.juros +\n payload[0]?.payload?.amortizacao +\n payload[0]?.payload?.bonds;\n return (\n <>\n
\n {payload[0]?.payload?.dividendo > 0 && (\n \n Dividendos: R${\" \"}\n {payload[0]?.payload?.dividendo?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.dividendo * 100) / total).toFixed(2)\n : 0}\n %)\n \n )}\n {payload[0]?.payload?.rendimento > 0 && (\n \n Rendimento: R${\" \"}\n {payload[0]?.payload?.rendimento?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.rendimento * 100) / total).toFixed(2)\n : 0}\n %)\n \n )}\n {payload[0]?.payload?.juros > 0 && (\n \n Juros sobre capital próprio: R${\" \"}\n {payload[0]?.payload?.juros?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.juros * 100) / total).toFixed(2)\n : 0}\n %)\n \n )}\n {payload[0]?.payload?.amortizacao > 0 && (\n \n Amortização: R${\" \"}\n {payload[0]?.payload?.amortizacao?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.amortizacao * 100) / total).toFixed(\n 2\n )\n : 0}\n %)\n \n )}\n {payload[0]?.payload?.bonds > 0 && (\n \n Cupom: R${\" \"}\n {payload[0]?.payload?.bonds?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.bonds * 100) / total).toFixed(2)\n : 0}\n %)\n \n )}\n
\n \n );\n }\n if (typeProventos === \"corretora\" && payload?.[0]) {\n const keys = Object.keys(payload[0]?.payload || {});\n let total = 0;\n keys.forEach((el) => {\n if (el !== \"name\") {\n total += payload[0]?.payload[el] || 0;\n }\n });\n\n return (\n
\n {keys.map((el) => {\n if (el !== \"name\") {\n return (\n \n {el}: R${\" \"}\n {payload[0]?.payload[el]?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload[el] * 100) / total).toFixed(2)\n : 0}\n %)\n \n );\n }\n return <>;\n })}\n
\n );\n }\n if (typeProventos === \"data\" && payload?.[0]) {\n const total =\n payload[0]?.payload?.futuro + payload[0]?.payload?.liquidado;\n return (\n <>\n
\n \n Futuro: R${\" \"}\n {payload[0]?.payload?.futuro?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.futuro * 100) / total).toFixed(2)\n : 0}\n %)\n \n \n Liquidado: R${\" \"}\n {payload[0]?.payload?.liquidado?.toLocaleString?.(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })}{\" \"}\n (\n {total > 0\n ? ((payload[0]?.payload?.liquidado * 100) / total).toFixed(2)\n : 0}\n %)\n \n
\n \n );\n }\n return <>;\n };\n return loading ? (\n \n ) : (\n \n \n \n \n \n \n {typeProventos === \"provento\" && (\n <>\n {totalJscp > 0 && (\n \n )}\n {totalRendi > 0 && (\n \n )}\n {totalDiv > 0 && (\n \n )}\n {totalAmort > 0 && (\n \n )}\n {totalBonds > 0 && (\n \n )}\n {!isMobile() && (\n \n )}\n \n )}\n {typeProventos === \"corretora\" && (\n <>\n {bars.map((el, index) => {\n return (\n \n );\n })}\n {!isMobile() && (\n \n )}\n \n )}\n {typeProventos === \"data\" && (\n <>\n \n \n {!isMobile() && (\n \n )}\n \n )}\n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const BlurContent: any = styled.div`\n .recharts-responsive-container {\n filter: ${(props: any) => (!props.hasPlan ? \"blur(10px)\" : \"\")};\n }\n height: 100%;\n margin-top: 8px;\n position: relative;\n user-select: none;\n border-radius: 4px;\n .blur-content {\n opacity: 0.5;\n filter: blur(4px);\n }\n .blur-content-title {\n z-index: 1;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0 100px;\n font-weight: 500;\n font-size: 1.25rem;\n text-align: center;\n row-gap: 16px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n color: var(--velotax-font-color);\n }\n\n @media only screen and (max-device-width: 812px) {\n .blur-content-title {\n padding: 0 16px;\n font-size: 1rem;\n }\n }\n`;\n\nexport const ContainerProventos: any = styled.div`\n @media only screen and (max-device-width: 812px) {\n .recharts-responsive-container\n .recharts-legend-wrapper\n .recharts-legend-item\n .recharts-legend-item-text {\n max-width: 100%;\n }\n }\n height: 400px;\n width: 100%;\n .recharts-tooltip-wrapper {\n box-shadow: 0px 8px 24px rgba(0, 0, 88, 0.08);\n }\n .container-tooltip {\n display: flex;\n flex-direction: column;\n background-color: white;\n margin-top: 5px;\n padding: 5px;\n }\n .recharts-default-legend {\n display: inline !important;\n li {\n margin-right: 15px !important;\n }\n }\n .recharts-bar-rectangle {\n cursor: pointer;\n }\n .ant-select-selection-placeholder {\n display: flex;\n align-items: center;\n }\n\n .recharts-surface {\n margin-left: 0px !important;\n }\n\n .recharts-legend-wrapper {\n left: 10px !important;\n }\n\n .recharts-responsive-container .recharts-wrapper .recharts-legend-wrapper {\n width: 100% !important;\n }\n\n .recharts-layer > text {\n font-size: 12px;\n font-weight: 400;\n }\n .ant-btn {\n border-radius: 10px;\n align-items: center;\n display: flex;\n }\n .filter-proventos {\n width: 100%;\n display: flex;\n margin-bottom: 16px;\n button.ant-btn.ant-btn-default {\n height: 40px;\n svg.fill {\n fill: var(--ant-primary-color);\n }\n }\n .ant-select {\n height: 38px;\n font-size: 16px;\n margin-right: 8px;\n .ant-select-selector {\n height: 38px;\n }\n }\n .ant-select:not(:first-of-type) {\n margin-right: auto;\n }\n .proventos-btns {\n display: flex;\n column-gap: 8px;\n align-items: center;\n button.ant-btn {\n min-width: 32px;\n font-size: 14px;\n font-weight: 500;\n padding: 5px 12px;\n border-radius: 4px;\n border-radius: 24px;\n display: inline-flex;\n height: 38px !important;\n background-color: var(--white);\n border: 1px solid var(--light-gray) !important;\n svg {\n width: 18px;\n height: 18px;\n fill: var(--ant-primary-color);\n stroke: var(--ant-primary-color);\n &.fill {\n path {\n stroke: var(--ant-primary-color);\n }\n }\n }\n }\n }\n }\n @media only screen and (max-device-width: 812px) {\n .filter-proventos {\n flex-wrap: wrap;\n .ant-select:first-of-type {\n width: 25%;\n }\n .ant-select:not(:first-of-type) {\n margin-right: 0;\n width: calc(75% - 8px);\n }\n .proventos-btns {\n width: 100%;\n margin-top: 8px;\n button.ant-btn.ant-btn-text {\n width: 50%;\n }\n }\n }\n }\n`;\n\nexport const Content = styled.div`\n width: 100% !important;\n .ant-tooltip {\n z-index: 999;\n }\n &.velotax-content {\n box-shadow: none !important;\n padding: 0 4px 64px !important;\n }\n .range {\n display: flex;\n justify-content: space-between;\n\n div.ant-typography {\n font-size: 13px;\n }\n }\n .isentometro {\n margin-bottom: 5px;\n font-size: 14px;\n }\n .box {\n margin: 50px 0px;\n }\n .overview {\n color: var(--ant-primary-color);\n font-size: 18px;\n font-weight: bold;\n }\n .ant-progress-success-bg {\n background-color: var(--ant-primary-color);\n height: 13px !important;\n }\n .ant-progress-inner {\n height: 13px !important;\n }\n .ant-progress-bg {\n height: 13px !important;\n }\n & > .ant-collapse {\n border: none;\n & > .ant-collapse-item.ativos-categoria {\n margin-bottom: 48px;\n &:last-of-type {\n margin-bottom: 0;\n }\n & > .ant-collapse-header {\n padding: 0;\n align-items: center;\n .ant-collapse-arrow {\n right: 0;\n }\n h2 {\n margin: 0;\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.5rem;\n color: var(--ant-primary-color);\n }\n .collapse-title-divider {\n flex-grow: 1;\n display: block;\n margin: 0 16px;\n border-bottom: 2px solid var(--light-gray);\n }\n .collapse-title-hidden {\n width: 24px;\n height: 24px;\n display: block;\n visibility: hidden;\n }\n }\n & > .ant-collapse-content {\n border: none;\n background-color: transparent;\n & > .ant-collapse-content-box {\n padding: 24px 0 0;\n & > .ant-collapse {\n border: none;\n }\n & > div {\n font-size: 13px;\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n margin-bottom: 0;\n border-radius: 0;\n &.velotax-content {\n padding: 24px 0 96px !important;\n }\n\n h1,\n h2 {\n padding: 0;\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const ContainerModal: any = styled.div`\n width: 100%;\n .ant-typography {\n color: var(--velotax-font-color);\n }\n .container-table {\n width: 100%;\n overflow-y: auto;\n .ant-table-thead {\n .ant-table-cell {\n font-weight: bold;\n }\n }\n }\n .year-resume {\n width: 100%;\n display: flex;\n margin: 16px 0;\n padding: 20px 24px;\n border-radius: 12px;\n justify-content: space-between;\n background-color: var(--light-gray);\n .ant-typography {\n font-size: 15px;\n margin: 0px;\n font-weight: 900;\n }\n }\n .container-1 {\n gap: 8px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n .ant-btn {\n display: flex;\n align-items: center;\n border-radius: 10px;\n }\n .ant-select {\n color: var(--velotax-font-color) !important;\n .ant-select-arrow {\n .anticon {\n color: var(--velotax-font-color);\n }\n }\n .ant-select-selector {\n height: 40px;\n border-radius: 4px !important;\n border: 1px solid var(--light-gray) !important;\n background-color: var(--light-gray) !important;\n .ant-select-selection-search,\n .ant-select-selection-item,\n .ant-select-selection-search input {\n font-size: 14px !important;\n font-weight: 900 !important;\n }\n }\n .ant-select-dropdown {\n border: none;\n border-radius: 2px;\n background-color: var(--white) !important;\n box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n .ant-select-item {\n background-color: var(--white);\n color: var(--velotax-font-color);\n :hover {\n background-color: var(--light-gray) !important;\n }\n }\n .ant-select-item-option-selected {\n font-weight: bold;\n background-color: var(--light-gray) !important;\n color: var(--velotax-font-color) !important;\n :hover {\n background-color: var(--light-gray) !important;\n }\n }\n }\n }\n }\n .ant-table {\n .ant-table-container {\n border-color: var(--light-gray);\n }\n thead.ant-table-thead {\n .ant-table-cell {\n border-color: var(--light-gray);\n background-color: var(--light-gray);\n }\n }\n }\n .client-wallet-header-btns {\n display: flex;\n column-gap: 8px;\n align-items: center;\n .ant-btn {\n height: 32px;\n min-width: 32px;\n font-weight: 500;\n box-shadow: none;\n border-radius: 24px;\n border: 1px solid var(--light-gray);\n &.filtro-aplicado {\n color: var(--ant-primary-color);\n border: 1px solid var(--ant-primary-color);\n background-color: var(--ant-primary-1);\n }\n svg {\n fill: none;\n width: 18px;\n height: 18px;\n stroke: var(--ant-primary-color);\n &.fill {\n path {\n stroke: var(--ant-primary-color);\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .container-1 {\n flex-direction: column;\n .client-wallet-header-btns {\n width: 100%;\n .ant-select {\n width: 35%;\n }\n .ant-select:first-of-type {\n width: calc(65% - 8px);\n }\n .ant-btn {\n width: calc(50% - 4px);\n }\n }\n }\n .container-table {\n .ant-pagination.ant-table-pagination {\n right: 24px;\n position: fixed;\n }\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const ReportTypeContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n height: 100%;\n\n .divider {\n width: 100%;\n max-width: 80px;\n background-color: var(--ant-primary-color);\n height: 2px;\n margin-bottom: 1rem;\n }\n\n .loading {\n display: flex;\n\n h5 {\n margin-left: 1rem;\n }\n }\n\n button.ant-btn.buttonDownload {\n svg {\n width: 22px;\n height: 22px;\n }\n }\n\n .textInfo {\n display: flex;\n align-items: start;\n gap: 12px;\n padding: 2px;\n font-size: 11px;\n color: var(--velotax-font-color-ghost);\n }\n\n button.ant-btn {\n font-size: 12px !important;\n text-transform: none !important;\n svg {\n width: 16px;\n height: 16px;\n }\n }\n`;\n","import { Drawer, Typography } from \"antd\";\nimport { AiOutlineArrowLeft, AiOutlineDownload } from \"react-icons/ai\";\nimport { InfoCircleOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport Button from \"../Button\";\nimport { isMobile } from \"../../utils\";\nimport { ReportTypeContainer } from \"./styles\";\n\ninterface IProps {\n open: boolean;\n loading?: boolean;\n setType: Function;\n onClose:\n | ((\n e: React.MouseEvent | React.KeyboardEvent\n ) => void)\n | undefined;\n}\n\nexport const ReportTypeDrawer = ({\n open,\n loading,\n setType,\n onClose,\n}: IProps) => {\n return (\n }\n title={\n
\n Voltar\n
\n }\n {...(isMobile() ? { width: \"100%\" } : { width: \"420px\" })}\n >\n \n Baixar\n
\n \n Qual tipo de arquivo deseja baixar?\n \n
\n
\n \n \n {\" \"}\n O arquivo baixado mostrará suas informações de acordo com os filtros\n selecionados no momento do download.\n \n
\n }\n onClick={() => setType(\"pdf\")}\n >\n \n Arquivo em PDF \n {!isMobile() ? \" para simples conferência de dados.\" : \"\"}\n \n \n }\n onClick={() => setType(\"xlsx\")}\n >\n \n Arquivo em Excel \n {!isMobile() ? \" para ser importado em planilhas.\" : \"\"}\n \n \n {loading && (\n
\n )}\n \n \n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3.33333H14M2 3.33333H9.33333M6.66667 8H14M2 8H4M12 12.6667H14M2 12.6667H9.33333M11.6095 2.39052C12.1302 2.91122 12.1302 3.75544 11.6095 4.27614C11.0888 4.79684 10.2445 4.79684 9.72385 4.27614C9.20315 3.75545 9.20315 2.91122 9.72385 2.39052C10.2445 1.86983 11.0888 1.86983 11.6095 2.39052ZM6.27614 7.0572C6.79684 7.5779 6.79684 8.42212 6.27614 8.94282C5.75544 9.46352 4.91122 9.46352 4.39052 8.94282C3.86982 8.42212 3.86982 7.5779 4.39052 7.0572C4.91122 6.5365 5.75544 6.5365 6.27614 7.0572ZM11.6095 11.7239C12.1302 12.2446 12.1302 13.0888 11.6095 13.6095C11.0888 14.1302 10.2445 14.1302 9.72385 13.6095C9.20315 13.0888 9.20315 12.2446 9.72385 11.7239C10.2445 11.2032 11.0888 11.2032 11.6095 11.7239Z\",\n strokeWidth: 1.2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgFiltro(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgFiltro);\nexport default __webpack_public_path__ + \"static/media/filtro.d769fa77.svg\";\nexport { ForwardRef as ReactComponent };","import clsx from \"clsx\";\nimport React, { useState } from \"react\";\nimport { VscClose } from \"react-icons/vsc\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport NumberFormat from \"react-number-format\";\nimport { Form, List, message, Typography } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport {\n currencyToNumber,\n errorMessage,\n formatCurrency,\n isMobile,\n isValidDate,\n months,\n numberToPercentage,\n replaceDotByComma,\n zero,\n getQuoteFortnight\n} from \"../../utils\";\nimport {\n validationDateIsOnReferenceMonth,\n validationDateIsOnReferenceMonthCompra,\n validationFieldRequired,\n validationNumberAllowNegativeField,\n validationNumberFieldPositive,\n} from \"../../utils/formValidations\";\nimport {\n CurrencyFormItem,\n DateFormItem,\n NumberFormItem,\n TextFormItem,\n SelectFormItem,\n} from \"../formItems\";\nimport moment from \"moment\";\n\nexport enum FormCurrencyMode {\n BRL = \"R$\",\n USD = \"US$\",\n}\n\nexport const historicoVendasEmptyText =\n \"Nenhuma operação de venda realizada neste mês\";\n\nexport const yearConfigPL4173 = 2024\n\nexport enum FormMovimentTypeMode {\n VENDA = \"Venda de ativos\",\n JUROS = \"Juros de aplicações\",\n}\n\nexport enum FormMovimentTypeModeNew {\n VENDA = \"Venda de ativos\",\n JUROS = \"Juros de bonds\",\n DIVIDENDOS = \"Dividendos\",\n OUTROS = \"Outros rendimentos\",\n}\n\nexport const TipoMercado: { [key: string]: string } = {\n mercado: \"Mercado à vista\",\n mercadoAVista: \"Mercado a Vista\",\n mercadoOpcoes: \"Mercado de opções\",\n outros: \"Outros mercados\",\n mercadoFracionario: \"Merc. Fracionário\",\n opcaoCompra: \"Opção de Compra\",\n opcaoVenda: \"Opção de Venda\",\n dayTrade: \"Day Trade\",\n};\n\nexport const TipoOperacao: { [key: string]: string } = {\n comum: \"Comum\",\n daytrade: \"Day Trade\",\n fii: \"FII\",\n};\n\nexport enum YearResumeStatusFromBackEnum {\n PAYED = \"PAYED\",\n PENDING = \"PENDING\",\n REGULAR = \"REGULAR\",\n NOT_PAYED = \"NOT_PAYED\",\n}\n\nexport enum YearResumeStatusCSSClassEnum {\n PAYED = \"payed\",\n PENDING = \"pending\",\n REGULAR = \"not-payed\",\n NOT_PAYED = \"not-payed\",\n}\n\nexport enum YearResumeStatusColorEnum {\n PAYED = \"var(--ant-success-color)\",\n PENDING = \"var(--ant-error-color)\",\n REGULAR = \"var(--ant-success-color)\",\n NOT_PAYED = \"var(--ant-warning-color)\",\n}\n\nexport enum YearResumeStatusTextEnum {\n PAYED = \"Imposto apurado\",\n PENDING = \"Imposto devido\",\n REGULAR = \"Não há imposto devido\",\n NOT_PAYED = \"DARF Emitido e não pago\",\n}\n\nexport interface IDarf {\n payed?: boolean;\n emitted?: boolean;\n multa: number;\n juros: number;\n totalAlienado: number;\n totalGanho: number;\n aliquotaDevida: number;\n impostoDevido: number;\n impostoTotal: number;\n impostoAcumulado: number;\n totalImpostoDevido: number;\n memoriaCalculo: any[];\n transactions?: any[];\n regular?: boolean;\n status?: keyof typeof YearResumeStatusFromBackEnum;\n prejuizoComum?: number;\n prejuizoDayTrade?: number;\n prejuizoFII?: number;\n userPrejuizoComum?: number;\n userPrejuizoDayTrade?: number;\n userPrejuizoFII?: number;\n irrfExterior?: number;\n}\n\nexport interface IQuote {\n venda: number;\n compra: number;\n}\n\nexport interface IQuotes {\n [key: string]: IQuote;\n}\n\nexport const defaultDarf: IDarf = {\n totalAlienado: 0,\n impostoDevido: 0,\n impostoTotal: 0,\n impostoAcumulado: 0,\n totalImpostoDevido: 0,\n aliquotaDevida: 0,\n totalGanho: 0,\n juros: 0,\n multa: 0,\n memoriaCalculo: [],\n status: \"REGULAR\",\n prejuizoComum: 0,\n prejuizoDayTrade: 0,\n prejuizoFII: 0,\n};\n\nexport interface IDarfBolsa {\n buffer?: any;\n payed?: boolean;\n emitted?: boolean;\n aliquotaComum?: number;\n aliquotaDT?: number;\n aliquotaFII?: number;\n alienacoesComum?: number;\n alienacoesDT?: number;\n alienacoesFII?: number;\n ganhoComum?: number;\n ganhoDT?: number;\n ganhoFII?: number;\n impostoComumFinal?: number;\n impostoDTFinal?: number;\n impostoFIIFinal?: number;\n impostoTotal?: number;\n impostoTotalFinal?: number;\n irrfComum?: number;\n irrfDayTrade?: number;\n irrfFII?: number;\n irrfTotal?: number;\n irrfExterior?: number;\n jurosAux?: number;\n mercadoOpcoesComum?: number;\n mercadoOpcoesDT?: number;\n mercadoOutrosComum?: number;\n mercadoOutrosDT?: number;\n mercadoOutrosFII?: number;\n mercadoVistaComum?: number;\n mercadoVistaDT?: number;\n multaAux?: number;\n memoriaCalculo: any[];\n impostoAcumulado?: number;\n impostoDevido?: number;\n multa?: number;\n juros?: number;\n prejuizoComum?: number;\n prejuizoDayTrade?: number;\n prejuizoFII?: number;\n userPrejuizoComum?: number;\n userPrejuizoDayTrade?: number;\n userPrejuizoFII?: number;\n userIrrfComum?: number;\n userIrrfDayTrade?: number;\n userIrrfFII?: number;\n userIrrfTotal?: number;\n varTotaisComum?: number;\n varTotaisDT?: number;\n varTotaisFII?: number;\n totalImpostoDevido?: number;\n totalGanho?: number\n}\n\nexport const defaultDarfBolsa: IDarfBolsa = {\n alienacoesComum: 0,\n alienacoesDT: 0,\n alienacoesFII: 0,\n impostoComumFinal: 0,\n impostoDTFinal: 0,\n impostoFIIFinal: 0,\n impostoTotal: 0,\n impostoTotalFinal: 0,\n irrfComum: 0,\n irrfDayTrade: 0,\n irrfFII: 0,\n irrfTotal: 0,\n jurosAux: 0,\n mercadoOpcoesDT: 0,\n mercadoOutrosComum: 0,\n mercadoOutrosDT: 0,\n mercadoVistaComum: 0,\n mercadoVistaDT: 0,\n multaAux: 0,\n memoriaCalculo: [],\n impostoAcumulado: 0,\n prejuizoComum: 0,\n prejuizoDayTrade: 0,\n prejuizoFII: 0,\n};\n\nexport const minDarfPrice = 10;\nexport const maxDarfPrice = 10000;\nexport const maxPixValue = 10000;\nexport const maxPixPayment = 10000;\nexport const maxCreditCardPayment = 10000;\n\nexport const MultaModalProps = {\n title: \"Multa de Atraso\",\n content: (\n
\n

\n O pagamento dos impostos deve ser feito sempre até o último dia útil do\n mês subsequente aos ganhos realizados.\n

\n

\n Caso você tenha atrasado no pagamento do seu DARF, a sua multa de atraso\n será de 0,33% por dia de atraso (chegando, no máximo, a 20%) sobre o\n valor do principal, calculados a partir do primeiro dia útil depois do\n dia do vencimento do DARF.\n

\n
\n ),\n};\n\nexport const JurosModalProps = {\n title: \"Juros de Atraso\",\n content: (\n
\n

\n O pagamento dos impostos deve ser feito sempre até o último dia útil do\n mês subsequente aos ganhos realizados.\n

\n

\n Caso você tenha atrasado no pagamento do seu DARF, os seus juros de\n atraso serão equivalentes a taxa Selic acumulada até o mês anterior ao\n do pagamento, mais 1% no mês do pagamento, sobre o valor principal,\n contados a partir do mês subsequente ao vencimento do DARF.\n

\n
\n ),\n};\n\nexport const MinPriceModalProps = {\n title: <>DARF abaixo de {formatCurrency(minDarfPrice)},\n content: (\n
\n

\n O sistema da Receita Federal não permite a emissão de um único DARF com\n valor abaixo de {formatCurrency(minDarfPrice)}.\n

\n

\n Caso seu DARF tenha ficado com um valor abaixo de{\" \"}\n {formatCurrency(minDarfPrice)}, o valor será repassado automaticamente\n para o mês seguinte e ficará visível no campo{\" \"}\n \n DARFs passados abaixo de {formatCurrency(minDarfPrice)}\n \n .\n

\n
\n ),\n};\n\nconst AliquotaModalProps = (type: \"cripto\" | \"exterior\") => ({\n title: `Alíquota sobre ganhos com ${\n type === \"cripto\" ? \"criptoativos\" : \"ativos no exterior\"\n }`,\n content: (\n
\n

\n Caso o valor total vendido no mês seja superior a R$ 35 mil, os ganhos\n obtidos serão tributados a título de ganho de capital. As alíquotas\n (percentuais) aplicadas sobre o lucro são progressivas:\n

\n \n \n a) 15% sobre a parcela dos ganhos que não ultrapassar R$ 5.000.000,00;\n \n \n b) 17,5% sobre a parcela dos ganhos que exceder R$ 5.000.000,00 e não\n ultrapassar R$ 10.000.000,00;\n \n \n c) 20% sobre a parcela dos ganhos que exceder R$ 10.000.000,00 e não\n ultrapassar R$ 30.000.000,00; e\n \n \n d) 22,5% sobre a parcela dos ganhos que ultrapassar R$ 30.000.000,00.\n \n \n
\n ),\n});\n\ninterface IEdit {\n value: any;\n id: string;\n isEditting: boolean;\n}\ninterface DarfResultDescriptionsProps {\n id: string;\n label: (onClick: Function) => React.ReactNode;\n Component: React.FC<{\n data: IDarf | IDarfBolsa;\n url: string;\n year: number;\n month: number;\n loading: boolean;\n disabled: boolean;\n view?: boolean;\n handleEdit?: Function;\n setDataCripto?: React.Dispatch>;\n setDataBolsa?: React.Dispatch>;\n }>;\n}\n\nexport const DarfResultDescriptionsExterior: DarfResultDescriptionsProps[] = [\n {\n id: \"impostoDevido\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data, view, year, month }) =>\n formatCurrency(\n Math.max((Number(data[\"impostoDevido\"] || 0) + ((year < yearConfigPL4173 || month == 0) ? Number(data[\"impostoAcumulado\"] || 0) : 0\n )) - Number(data[\"irrfExterior\"] || 0), 0)\n ),\n },\n {\n id: \"impostoDevido\",\n label: () => (\n \n (+) Imposto devido\n \n ),\n Component: ({ data, view }) =>\n formatCurrency(Number(data[\"impostoDevido\"] || 0)),\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passados abaixo de R$ {minDarfPrice}\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({\n data,\n year,\n month,\n loading,\n disabled,\n setDataBolsa,\n setDataCripto,\n url,\n }) => {\n const { currentPage } = useBroker();\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data[id as keyof (IDarf | IDarfBolsa)];\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n (currentPage?.api || apis)\n .post(`${url}/updateDataDarf`, {\n year,\n month: month + 1,\n [edit.id]: edit.value,\n })\n .then(() =>\n (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() => message.error(errorMessage))\n .finally(() => handleEditValueCancel());\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n {!isMobile() && (\n \n {isMobile() && (\n
\n ) : (\n \n {formatCurrency(Number(data.impostoAcumulado || 0))}\n {(disabled && year < yearConfigPL4173) && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"irrfTotal\",\n label: () => (\n \n (-) Imposto de Renda Retido na Fonte\n \n ),\n Component: ({ data, handleEdit }) => (\n
\n {formatCurrency(\n Number(\n (data as IDarfBolsa)[\"userIrrfTotal\"] ||\n (data as IDarfBolsa)[\"irrfTotal\"] ||\n 0\n )\n )}\n }\n onClick={() => handleEdit?.()}\n />\n
\n ),\n },\n {\n id: \"irrfExterior\",\n label: () => (\n \n (-) Imposto de Renda Retido na Fonte\n \n ),\n Component: ({ data, handleEdit }) => {\n return (\n
\n {formatCurrency(\n Number(\n (data as IDarfBolsa)[\"irrfExterior\"] ||\n 0\n )\n )}\n {/* }\n onClick={() => handleEdit?.()}\n /> */}\n
\n )},\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) - (data[\"irrfExterior\"] || 0) >=\n minDarfPrice\n ? Number(data[\"multa\"])\n : 0\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) - (data[\"irrfExterior\"] || 0) >=\n minDarfPrice\n ? Number(data[\"juros\"])\n : 0\n ),\n },\n];\n\nexport const DarfResultDescriptions: DarfResultDescriptionsProps[] = [\n {\n id: \"impostoDevido\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data, view }) =>\n formatCurrency(\n Number(data[\"impostoDevido\"] || 0) +\n Number(data[\"impostoAcumulado\"] || 0)\n ),\n },\n {\n id: \"impostoDevido\",\n label: () => (\n \n (+) Imposto devido\n \n ),\n Component: ({ data, view }) =>\n formatCurrency(Number(data[\"impostoDevido\"] || 0)),\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passados abaixo de R$ {minDarfPrice}\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({\n data,\n year,\n month,\n loading,\n disabled,\n setDataBolsa,\n setDataCripto,\n url,\n }) => {\n const { currentPage } = useBroker();\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data[id as keyof (IDarf | IDarfBolsa)];\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n (currentPage?.api || apis)\n .post(`${url}/updateDataDarf`, {\n year,\n month: month + 1,\n [edit.id]: edit.value,\n })\n .then(() =>\n (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() => message.error(errorMessage))\n .finally(() => handleEditValueCancel());\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n {!isMobile() && (\n \n {isMobile() && (\n
\n ) : (\n \n {formatCurrency(Number(data.impostoAcumulado || 0))}\n {disabled && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"irrfTotal\",\n label: () => (\n \n (-) Imposto de Renda Retido na Fonte\n \n ),\n Component: ({ data, handleEdit }) => (\n
\n {formatCurrency(\n Number(\n (data as IDarfBolsa)[\"userIrrfTotal\"] ||\n (data as IDarfBolsa)[\"irrfTotal\"] ||\n 0\n )\n )}\n }\n onClick={() => handleEdit?.()}\n />\n
\n ),\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) >=\n minDarfPrice\n ? Number(data[\"multa\"])\n : 0\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) >=\n minDarfPrice\n ? Number(data[\"juros\"])\n : 0\n ),\n },\n];\n\nexport const DarfImpostosDevidosDescriptions = [\n {\n id: \"totalGanho\",\n label: () => \"Ganho total\",\n },\n {\n id: \"prejuizoExterior\",\n label: () => \"(-) Prejuízos a compensar\",\n render: (data: any, view?: boolean, year?: number) => {\n return formatCurrency(Number(data[\"prejuizoExterior\"] || 0))\n },\n },\n {\n id: \"aliquotaDevida\",\n label: (onClick: any, year?: number) => (\n
\n (x) Alíquota devida\n {(year || 0) < yearConfigPL4173 && }\n onClick={() => onClick(AliquotaModalProps)}\n />}\n
\n ),\n render: (data: any, view?: any, year?: number) =>\n `${replaceDotByComma(\n Number(((year || 0) >= yearConfigPL4173 ? 15 : (data[\"aliquotaDevida\"] || 0)).toFixed(2))\n )} %`,\n },\n {\n id: \"impostoDevido\",\n label: () => \"Imposto devido\",\n render: (data: any, view?: boolean, year?: number) =>\n formatCurrency(\n !view\n ? Math.max(Number(data[\"impostoDevido\"] || data[\"totalImpostoDevido\"]) || 0, 0)\n : Math.max(Number(data[\"impostoDevido\"] || data[\"totalImpostoDevido\"]) || 0, 0)\n ),\n },\n];\n\nconst FormItemsCrypto = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n data: (month: number, year: number) =>\n DateFormItem({\n name: \"data\",\n label: \"Data\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n ativo: (placeholder: string) =>\n TextFormItem({\n name: \"ativo\",\n label: \"Ativo\",\n placeholder,\n rules: validationFieldRequired,\n }),\n quantidade: (placeholder: string) =>\n NumberFormItem({\n name: \"quantidade\",\n label: \"Quantidade\",\n placeholder,\n decimalScale: 12,\n rules: validationNumberFieldPositive,\n }),\n precoVenda: CurrencyFormItem({\n name: \"precoVenda\",\n label: \"Preço de venda\",\n decimalScale: 8,\n }),\n custoCompra: CurrencyFormItem({\n name: \"custoCompra\",\n label: \"Custo de compra\",\n decimalScale: 8,\n }),\n taxas: CurrencyFormItem({ name: \"taxas\", label: \"Taxas\" }),\n ganho: CurrencyFormItem({\n name: \"ganho\",\n label: \"Ganho\",\n disabled: true,\n onChange: (changed, values) => {\n const precoVenda = changed.precoVenda\n ? currencyToNumber(changed.precoVenda)\n : values.precoVenda;\n const custoCompra = changed.custoCompra\n ? currencyToNumber(changed.custoCompra)\n : values.custoCompra;\n const taxas = changed.taxas\n ? currencyToNumber(changed.taxas)\n : values.taxas;\n return Number(\n Math.max(\n 0,\n Number(values.quantidade) * (precoVenda - custoCompra) - taxas\n ).toFixed(2)\n );\n },\n }),\n operacao: SelectFormItem({\n name: \"operacao\",\n label: \"Operação\",\n placeholder: \"Selecione\",\n options: [\n { label: \"Comum\", value: \"comum\" },\n { label: \"Day Trade\", value: \"daytrade\" },\n ],\n }),\n mercado: SelectFormItem({\n name: \"mercado\",\n label: \"Mercado\",\n placeholder: \"Selecione\",\n options: [\n { label: \"Mercado à vista\", value: \"mercado\" },\n { label: \"Mercado de opções\", value: \"mercadoOpcoes\" },\n { label: \"Outros mercados\", value: \"outros\" },\n ],\n }),\n};\n\nconst FormItemsExterior = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n movimentType: (movimentType: any, setMovimentType: any, year: number) =>\n SelectFormItem({\n name: \"movimentType\",\n label: \"Tipo de movimentação\",\n value: movimentType,\n defaultValue: FormMovimentTypeMode.VENDA,\n rules: [],\n options: year < yearConfigPL4173 \n ? [\n { label: \"Venda de ativos\", value: FormMovimentTypeMode.VENDA },\n { label: \"Juros de aplicações\", value: FormMovimentTypeMode.JUROS },\n ] \n : [\n { label: \"Venda de ativos\", value: FormMovimentTypeModeNew.VENDA },\n { label: \"Juros de bonds\", value: FormMovimentTypeModeNew.JUROS },\n { label: \"Dividendos\", value: FormMovimentTypeModeNew.DIVIDENDOS },\n { label: \"Outros rendimentos\", value: FormMovimentTypeModeNew.OUTROS },\n ],\n onChange(changed, values) {\n setMovimentType(\n changed.movimentType !== undefined\n ? changed.movimentType\n : movimentType\n );\n return changed.movimentType !== undefined\n ? changed.movimentType\n : movimentType;\n },\n }),\n ativo: (placeholder: string) =>\n TextFormItem({\n name: \"ativo\",\n label: \"Ativo\",\n placeholder,\n rules: validationFieldRequired,\n }),\n valueOriginBRA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valueOriginBRA\",\n label: \"Origem BRA (US$)\",\n placeholder: \"US$ 0,00\",\n }),\n valueOriginEUA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valueOriginEUA\",\n label: \"Origem USA (US$)\",\n placeholder: \"US$ 0,00\",\n }),\n dataCompra: () =>\n DateFormItem({\n name: \"dataCompra\",\n label: \"Data da Liquidação\",\n placeholder: \"DD/MM/YYYY\",\n mask: `99/99/9999`,\n rules: validationDateIsOnReferenceMonthCompra,\n }),\n cotacaoCompra: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioCompra\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.dataCompra)) {\n let i = 0;\n let keycompra = changed.dataCompra || values.dataCompra;\n const isComplete = !String(keycompra).includes(\"_\");\n if (!keycompra || !isComplete) return values.cotacaoCompra;\n while (isComplete && !quotations[keycompra] && i <= 10) {\n keycompra = moment(keycompra, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n const { venda } = quotations[keycompra] || { venda: 0 };\n return venda;\n }\n },\n }),\n precoVenda: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valor\",\n placeholder: \"US$ 0,00\",\n label: \"Valor Bruto (US$)\",\n }),\n fee: CurrencyFormItem({\n name: \"fee\",\n label: \"Taxa de corretagem (US$)\",\n placeholder: \"US$ 0,00\",\n prefix: \"US$ \",\n }),\n dataVenda: (month: number, year: number) =>\n DateFormItem({\n name: \"data\",\n label: \"Data da Liquidação\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n dataVendaFee: (month: number, year: number) =>\n DateFormItem({\n name: \"dataFee\",\n label: \"Data da Liquidação\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n cotacaoVenda: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioVenda\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.data)) {\n let i = 0;\n let keyvenda = changed.data || values.data;\n const isComplete = !String(keyvenda).includes(\"_\");\n if (!keyvenda || !isComplete) return values.cotacaoVenda;\n while ((isComplete && !quotations[keyvenda]) || i === 5) {\n keyvenda = moment(keyvenda, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n const { compra } = quotations[keyvenda] || { compra: 0 };\n return compra;\n }\n },\n }),\n cotacaoVendaFee: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioVendaFee\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.dataFee)) {\n let i = 0;\n let keyvenda = changed.dataFee || values.dataFee;\n const isComplete = !String(keyvenda).includes(\"_\");\n if (!keyvenda || !isComplete) return values.cotacaoVendaFee;\n while ((isComplete && !quotations[keyvenda]) || i === 5) {\n keyvenda = moment(keyvenda, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n\n if (values.movimentType == 'Dividendos') {\n const day = keyvenda.split('/')[0];\n const month = keyvenda.split('/')[1];\n const year = keyvenda.split('/')[2];\n const dateToQuote = new Date(`${month}/${day}/${year}`);\n const cotacaoCompra = getQuoteFortnight(dateToQuote, quotations);\n return cotacaoCompra;\n }\n\n const { venda } = quotations[keyvenda] || { venda: 0 };\n return venda;\n }\n },\n }),\n ganho: CurrencyFormItem({\n name: \"ganho\",\n label: `Ganho (R$)`,\n disabled: true,\n rules: [],\n onChange: (changed, values) => {\n // TODO Atualmente há perda de centavos entre a conversão sucessiva entre BRL e USD\n let A = changed.valueOriginBRA\n ? currencyToNumber(changed.valueOriginBRA, \"US$\")\n : values.valueOriginBRA || 0;\n let B = changed.valueOriginEUA\n ? currencyToNumber(changed.valueOriginEUA, \"US$\")\n : values.valueOriginEUA || 0;\n const C = values.cambioCompra || 1;\n const D = changed.valor\n ? currencyToNumber(changed.valor, \"US$\")\n : values.valor || 0;\n const E = changed.fee\n ? currencyToNumber(changed.fee, \"US$\")\n : values.fee || 0;\n const F = values.cambioVenda || 1;\n\n const correctionZero = 1e-50;\n if (A === 0) A = correctionZero;\n if (B === 0) B = correctionZero;\n\n const ganho =\n (A / (A + B)) * (D - E) * F - A * C + ((B / (A + B)) * (D - E) - B) * F;\n\n return Number(Math.max(ganho, 0).toFixed(2));\n },\n }),\n ganhoFee: CurrencyFormItem({\n name: \"ganhoFee\",\n label: `Rendimento (R$)`,\n disabled: true,\n rules: [],\n onChange: (changed, values) => {\n // TODO Atualmente há perda de centavos entre a conversão sucessiva entre BRL e USD\n const A = values.cambioVendaFee || 1;\n\n const B = changed.valor\n ? currencyToNumber(changed.valor, \"US$\")\n : values.valor || 0;\n\n const C = changed.fee\n ? currencyToNumber(changed.fee, \"US$\")\n : values.fee || 0;\n\n const ganho = (B - C) * A;\n return Number(Math.max(ganho, 0).toFixed(2));\n },\n }),\n date: (month: number, year: number) =>\n DateFormItem({\n name: \"data\",\n label: `Dia do mês de ${months[month]}/${year}`,\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n quantidade: (placeholder: string) =>\n NumberFormItem({\n name: \"quantidade\",\n label: \"Quantidade\",\n placeholder,\n decimalScale: 12,\n rules: validationNumberFieldPositive,\n }),\n valor: CurrencyFormItem({ name: \"valor\", label: \"Preço de venda\" }),\n capitalGain: CurrencyFormItem({\n name: \"ganho\",\n label: \"Ganho\",\n disabled: true,\n allowNegative: true,\n rules: validationNumberAllowNegativeField,\n onChange: (changed, values) => {\n const precoVenda = changed.valor\n ? currencyToNumber(changed.valor)\n : values.valor;\n const custoCompra = changed.valueOriginBRA\n ? currencyToNumber(changed.valueOriginBRA)\n : values.valueOriginBRA;\n const taxas = changed.fee\n ? currencyToNumber(changed.fee)\n : values.fee;\n return Number(values.quantidade) * (precoVenda - custoCompra) - taxas;\n },\n }),\n};\n\nconst PrejuFormItems = {\n userPrejuizoComum: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoComum\",\n label: \"Prejuízo Comum\",\n }),\n userPrejuizoDayTrade: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoDayTrade\",\n label: \"Prejuízo Day Trade\",\n }),\n userPrejuizoFII: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoFII\",\n label: \"Prejuízo FII\",\n }),\n};\n\nconst IrrfFormItem = {\n userIrrfComum: CurrencyFormItem({\n name: \"userIrrfComum\",\n label: \"IRRF Comum\",\n }),\n userIrrfDayTrade: CurrencyFormItem({\n name: \"userIrrfDayTrade\",\n label: \"IRRF Day Trade\",\n }),\n userIrrfFII: CurrencyFormItem({\n name: \"userIrrfFII\",\n label: \"IRRF FII\",\n }),\n userIrrfTotal: CurrencyFormItem({\n name: \"userIrrfTotal\",\n label: \"IRRF Total (Comum + Day Trade + FII)\",\n disabled: true,\n onChange: (changed, values) => {\n const userIrrfComum = changed.userIrrfComum\n ? currencyToNumber(changed.userIrrfComum)\n : values.userIrrfComum;\n const userIrrfDayTrade = changed.userIrrfDayTrade\n ? currencyToNumber(changed.userIrrfDayTrade)\n : values.userIrrfDayTrade;\n const userIrrfFII = changed.userIrrfFII\n ? currencyToNumber(changed.userIrrfFII)\n : values.userIrrfFII;\n return (\n Number(userIrrfComum ?? 0) +\n Number(userIrrfDayTrade ?? 0) +\n Number(userIrrfFII ?? 0)\n );\n },\n }),\n};\n\nexport const IrrfFormItemRows = [\n [IrrfFormItem.userIrrfComum],\n [IrrfFormItem.userIrrfDayTrade],\n [IrrfFormItem.userIrrfFII],\n [IrrfFormItem.userIrrfTotal],\n];\n\nexport const PrejuFormItemRows = (disabled: boolean) => [\n [PrejuFormItems.userPrejuizoComum(disabled)],\n [PrejuFormItems.userPrejuizoDayTrade(disabled)],\n [PrejuFormItems.userPrejuizoFII(disabled)],\n];\n\nexport const DarfFormItemRows = (month: number, year: number) => [\n [FormItemsCrypto.id],\n [FormItemsCrypto.data(month, year), FormItemsCrypto.ativo(\"Ex: BTC\")],\n [FormItemsCrypto.quantidade(\"Ex: 0,00101\")],\n [FormItemsCrypto.precoVenda, FormItemsCrypto.custoCompra],\n [FormItemsCrypto.taxas],\n [FormItemsCrypto.ganho],\n];\n\nexport const ExteriorFormItemRows = (\n month: number,\n year: number,\n quotations: IQuotes,\n editAsset: any,\n asset: any,\n movimentType: string | undefined,\n setMovimentType: React.Dispatch>\n) => {\n return [\n asset && !asset?.valueOriginBRA\n ? []\n : asset\n ? [FormItemsExterior.ativo(\"Ex: XP\")]\n : [\n FormItemsExterior.movimentType(movimentType, setMovimentType, year),\n FormItemsExterior.ativo(\"Ex: XP\"),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : asset\n ? []\n : [\n FormItemsExterior.movimentType(movimentType, setMovimentType, year),\n FormItemsExterior.ativo(\"Ex: XP\"),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : [\n {\n label: \"\",\n name: \"\",\n input: (\n
\n {movimentType === \"Juros de aplicações\" ? \"Juros\" : \"Compra\"}\n
\n ),\n },\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [FormItemsExterior.valueOriginBRA, FormItemsExterior.valueOriginEUA]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n FormItemsExterior.dataCompra(),\n FormItemsExterior.cotacaoCompra(quotations),\n ]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n {\n label: \"\",\n name: \"\",\n input:
Venda
,\n },\n ]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : [FormItemsExterior.precoVenda, FormItemsExterior.fee],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n FormItemsExterior.dataVenda(month, year),\n FormItemsExterior.cotacaoVenda(quotations),\n ]\n : [\n FormItemsExterior.dataVendaFee(month, year),\n FormItemsExterior.cotacaoVendaFee(quotations),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [FormItemsExterior.ganho]\n : [FormItemsExterior.ganhoFee],\n ];\n};\n\nexport const ExteriorNewFormItemRows = (\n month: number,\n year: number,\n quotations: IQuotes,\n editAsset: any,\n asset: any,\n movimentType: string,\n setMovimentType: React.Dispatch>\n) => {\n return [\n asset && !asset?.valueOriginBRA ? [] \n : asset ? [FormItemsExterior.ativo(\"Ex: XP\")]\n : movimentType === \"Venda de ativos\" ? [FormItemsExterior.movimentType(movimentType, setMovimentType, year)] \n : [\n FormItemsExterior.movimentType(movimentType, setMovimentType, year),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType === \"Venda de ativos\" ? [] : [\n {\n label: \"\",\n name: \"\",\n input: (\n
\n {\n ['Juros de bonds'].includes(movimentType || '') ? \"Juros\" \n : ['Dividendos'].includes(movimentType || '') ? \"Dividendos\" \n : \"Rendimentos\"\n }\n
\n ),\n },\n ],\n asset && !asset?.valueOriginBRA ? [] \n : asset ? []\n : movimentType === \"Venda de ativos\" ? [] \n : [\n FormItemsExterior.ativo(\"Ex: XP\"),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType === \"Venda de ativos\"\n ? [FormItemsExterior.date(month, year), FormItemsExterior.ativo(\"Ex: XP\")]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType === \"Venda de ativos\"\n ? [\n FormItemsExterior.quantidade(\"Ex: 100\"),\n FormItemsExterior.valor,\n ]\n : [],\n asset && !asset?.valueOriginBRA ? []\n : movimentType === 'Venda de ativos' ? [FormItemsExterior.valueOriginBRA, FormItemsExterior.fee]\n : [FormItemsExterior.precoVenda, FormItemsExterior.fee],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType === \"Venda de ativos\"\n ? [\n FormItemsExterior.capitalGain,\n ]\n : [\n FormItemsExterior.dataVendaFee(month, year),\n FormItemsExterior.cotacaoVendaFee(quotations),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType === \"Venda de ativos\"\n ? []\n : [FormItemsExterior.ganhoFee],\n ];\n};\n\nexport const DarfExteriorTabs: (\n data: IDarfBolsa,\n rest: any\n) => { class: string; tabs: { content: React.ReactNode }[] }[] = (\n data,\n rest\n) => [\n {\n class: \"sub-header header-ext\",\n tabs: [\n {\n content: \"Ganho total\",\n },\n {\n content: {formatCurrency(data.totalGanho ?? 0)},\n },\n ],\n },\n // {\n // class: \"sub-header header-ext\",\n // tabs: [\n // {\n // content: (\n // <>\n // (-) Prejuízos a compensar\n // {rest.handleEditPreju}\n // {/* {!rest.view && (\n // }\n // onClick={rest.handleEditPreju}\n // />\n // )} */}\n // \n // ),\n // },\n // {\n // content: formatCurrency(\n // data.userPrejuizoComum ?? data.prejuizoComum ?? 0\n // ),\n // },\n // ],\n // },\n {\n class: \"sub-header header-ext\",\n tabs: [\n {\n content: \"(x) Alíquota devida\",\n },\n {\n content: {numberToPercentage(15, 0)},\n },\n ],\n },\n {\n class: \"sub-header header-ext strong\",\n tabs: [\n {\n content: \"Imposto devido\",\n },\n {\n content: formatCurrency(data.impostoDevido ?? data.totalImpostoDevido ?? 0),\n },\n ],\n },\n];\n\nexport const SuportPremiumText = (\n \n {\" \"}\n \n O suporte ao vivo está disponível apenas para usuários do Plano PREMIUM.{\" \"}\n Atualize o seu plano\n \n \n);\n","import _ from \"lodash\";\nimport moment from \"moment\";\nimport * as XLSX from \"xlsx\";\nimport { HiOutlineDownload } from \"react-icons/hi\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport {\n Checkbox,\n Col,\n DatePicker,\n Modal,\n Row,\n Select,\n Table,\n Typography,\n message,\n} from \"antd\";\nimport { ContainerModal } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport { DrawerModal } from \"../DrawerModal\";\nimport apiBolsa from \"../../services/apiBolsa\";\nimport { ReportTypeDrawer } from \"../ReportType/ReportType\";\nimport { downloadExcelFromApi, isIosPlatform } from \"../../utils/webview\";\nimport { ReactComponent as FiltroIcon } from \"../../assets/icons/filtro.svg\";\nimport {\n currencyToNumber,\n download,\n downloadPDF,\n formatCurrency,\n monthsExtended,\n} from \"../../utils\";\n\nconst months: any = {\n Jan: 1,\n Fev: 2,\n Mar: 3,\n Abr: 4,\n Mai: 5,\n Jun: 6,\n Jul: 7,\n Ago: 8,\n Set: 9,\n Out: 10,\n Nov: 11,\n Dez: 12,\n};\n\nexport const ProventosModal: React.FC = ({\n open,\n month,\n proventos,\n setOpenModal,\n yearProventos,\n proventosLoading,\n setYearProventos,\n setMonthProventos,\n}) => {\n const date = new Date();\n const dateFormat = \"DD/MM/YYYY\";\n const selectYears = [1, 0, -1, -2, -3];\n const dateBeginRef = useRef(null);\n const [data, setData] = useState([]);\n const [total, setTotal] = useState(0);\n const [loading, setLoading] = useState(false);\n const [filters, setFilters] = useState({});\n const [, setDataModalPDF] = useState([]);\n const [originalData, setOriginalData] = useState([]);\n const [dateBeginFilter, setDateBeginFilter] = useState(\"\");\n const [appliedFilters, setAppliedFilters] = useState({});\n const [showFilterModal, setShowFilterModal] = useState(false);\n const [reportDrawerProventos, setReportDrawerProventos] = useState(false);\n const [dateEndFilter, setDateEndFilter] = useState(\n moment().format(dateFormat)\n );\n\n /*const serializeDataExcel = (data: any) => {\n return data\n .filter(\n (el: any) => yearProventos === Number(moment(el?.date).format(\"Y\"))\n )\n .map((el: any) => {\n return {\n Produto: el?.code,\n Pagamento: moment(el?.date).format(\"DD/MM/YYYY\"),\n Tipo: _.capitalize(el?.corporateActionTypeDescription),\n Instituição: el?.corretora,\n \"Qtde.\": el?.quantity || \"-\",\n \"Preço unit.\":\n el?.unitPrice === null || el?.unitPrice === undefined\n ? \"-\"\n : \"R$ \" +\n el?.unitPrice?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n \"Valor líquido\":\n \"R$ \" +\n el?.grossAmount?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n };\n });\n };*/\n\n const downloadExcel = (data: any) => {\n setLoading(true);\n apiBolsa\n .post(\"/wallet/report-proventos\", {\n data: data,\n })\n .then((result) => {\n if (isIosPlatform()) {\n downloadExcelFromApi(result);\n return;\n }\n\n const worksheet = XLSX.utils.json_to_sheet(data);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, \"Proventos\");\n XLSX.writeFile(workbook, \"Proventos.xlsx\");\n })\n .finally(() => {\n message.success(\"O relatório foi enviado para o seu e-mail\");\n setLoading(false);\n });\n };\n\n const downloadRelatorio = async (type: string) => {\n try {\n setLoading(true);\n if (type === \"pdf\") {\n let fileUrl = \"\";\n let file = \"\";\n const newProventos = proventos.map((el: any) => {\n return {\n code: el.code || \"\",\n date: moment(el?.date).format(\"DD/MM/YYYY\"),\n corporateActionTypeDescription: _.capitalize(\n el?.corporateActionTypeDescription\n ),\n corretora: el?.corretora,\n quantity: el?.quantity || \"-\",\n unitPrice: el?.unitPrice || \"-\",\n grossAmount: el?.grossAmount,\n };\n });\n const ret = await apiBolsa.post(\"/wallet/report-proventos-pdf\", {\n proventos: newProventos,\n });\n if (ret) {\n fileUrl = ret?.data?.fileUrl;\n file = ret?.data?.file;\n }\n if (file) {\n downloadPDF(file, \"Proventos\");\n } else if (fileUrl) {\n download(fileUrl);\n }\n } else if (type === \"xlsx\") {\n downloadExcel(data);\n }\n setLoading(false);\n } catch (err: any) {\n setLoading(false);\n message.error(\n \"Não foi possível baixar o relatório de Proventos. Tente novamente mais tarde\"\n );\n }\n };\n\n const reportPDFData = (data: any, type: string) => {\n const formatModalPDF = data.map((el: any) => {\n if (type === \"prov\") {\n return {\n code: el.code || \"\",\n date: moment(el?.date).format(dateFormat),\n corporateActionTypeDescription: _.capitalize(\n el?.corporateActionTypeDescription\n ),\n corretora: el?.corretora,\n quantity: el?.quantity || \"-\",\n unitPrice:\n typeof el?.unitPrice === \"string\"\n ? currencyToNumber(el?.unitPrice)\n : el?.unitPrice || \"-\",\n grossAmount:\n typeof el?.grossAmount === \"string\"\n ? currencyToNumber(el?.grossAmount)\n : el.grossAmount || \"-\",\n };\n } else if (type === \"other\") {\n return {\n code: el[\"Produto\"] || \"\",\n date: el[\"Pagamento\"],\n corporateActionTypeDescription: _.capitalize(el[\"Tipo\"]),\n corretora: el[\"Instituição\"],\n quantity: el[\"Qtde.\"] || \"-\",\n unitPrice:\n typeof el[\"Preço unit.\"] === \"string\"\n ? currencyToNumber(el[\"Preço unit.\"])\n : el[\"Preço unit.\"] || \"-\",\n grossAmount:\n typeof el[\"Valor líquido\"] === \"string\"\n ? currencyToNumber(el[\"Valor líquido\"])\n : el[\"Valor líquido\"] || \"-\",\n };\n }\n return {};\n });\n return formatModalPDF;\n };\n\n useEffect(() => {\n let total = 0;\n const monthNumber = months[month];\n\n const dataFiltered = proventos.filter((el: any) => {\n const monthOp = Number(moment(el?.date).format(\"M\"));\n const yearOp = Number(moment(el?.date).format(\"YYYY\"));\n if (monthNumber === monthOp && yearProventos === yearOp) {\n return true;\n }\n return false;\n });\n setDataModalPDF(reportPDFData(dataFiltered, \"prov\"));\n const dataSerialized = dataFiltered.map((el: any) => {\n total += el?.grossAmount;\n\n return {\n Produto: el?.code,\n Pagamento: moment(el?.date).format(dateFormat),\n Tipo: _.capitalize(el?.corporateActionTypeDescription),\n Instituição: el?.corretora,\n \"Qtde.\": el?.quantity || \"-\",\n \"Preço unit.\": !el?.unitPrice\n ? \"-\"\n : \"R$ \" +\n el?.unitPrice?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n \"Valor líquido\":\n \"R$ \" +\n el?.grossAmount?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n };\n });\n setTotal(total);\n setData(dataSerialized);\n setOriginalData(dataSerialized);\n }, [month, yearProventos, proventos]);\n\n useEffect(() => {\n if (Object.keys(filters).length > 0 || (dateBeginFilter && dateEndFilter))\n setData(originalData);\n }, [filters, dateBeginFilter, dateEndFilter, originalData]);\n\n const handleOpenFilterModal = () => {\n setShowFilterModal(true);\n };\n\n const getCorretFilters = () => {\n const newCorret: any[] = [];\n if (originalData && originalData.length > 0)\n originalData.forEach((el: any) => {\n if (el[\"Instituição\"] && !newCorret.includes(el[\"Instituição\"])) {\n newCorret.push(el[\"Instituição\"]);\n }\n });\n return newCorret;\n };\n\n return (\n setOpenModal(false)}\n >\n \n
\n \n setMonthProventos({ name })}\n getPopupContainer={(trigger) => trigger.parentElement!}\n options={Object.keys(months).map((m, i) => ({\n value: m,\n label: monthsExtended[i],\n }))}\n />\n setYearProventos(e)}\n getPopupContainer={(trigger) => trigger.parentElement!}\n options={selectYears.map((y) => ({\n value: date.getFullYear() + y,\n label: date.getFullYear() + y,\n }))}\n />\n \n \n \n }\n onClick={() => {\n setReportDrawerProventos(true);\n }}\n >\n Baixar\n \n \n
\n \n
\n Total recebido no mês:\n {formatCurrency(total)}\n
\n
\n \n
\n \n
\n
\n
\n {\n setFilters(appliedFilters);\n setShowFilterModal(false);\n }}\n >\n \n \n \n {getCorretFilters().length > 0 && (\n <>\n \n Instituição\n \n \n {\n setFilters((filters: any) => ({\n ...filters,\n corretoras,\n }));\n }}\n >\n \n {getCorretFilters().map((el: any) => {\n const value = `${el?.split?.(\" \")?.[0]}_${\n el?.split?.(\" \")?.[1]\n }`;\n return (\n \n \n {el}\n \n \n );\n })}\n \n \n \n \n )}\n \n Período de pagamento\n \n \n Data inicial\n setDateBeginFilter(\"\")}\n onChange={(el) => {\n if (el) setDateBeginFilter(moment(el).format(dateFormat));\n }}\n style={{\n width: \"50%\",\n marginTop: \"5px\",\n marginBottom: \"10px\",\n }}\n />\n Data final\n setDateEndFilter(\"\")}\n onChange={(el) => {\n if (el) setDateEndFilter(moment(el).format(dateFormat));\n }}\n style={{\n width: \"50%\",\n marginTop: \"5px\",\n marginBottom: \"10px\",\n }}\n />\n \n \n \n \n {\n setAppliedFilters(filters);\n const getProventosWithFilter = (filters: any) => {\n const corretoras = filters?.corretoras || [];\n const dataFiltered: any = [];\n const dataFinal: any = [];\n if (corretoras.length > 0) {\n corretoras.forEach((corret: string) => {\n data.forEach((el: any) => {\n const corretEl = `corret_${\n el[\"Instituição\"]?.split(\" \")[0]\n }_${el[\"Instituição\"]?.split(\" \")[1]}`;\n if (corretEl === corret) dataFiltered.push(el);\n });\n });\n setData(dataFiltered);\n if (dateBeginFilter && dateEndFilter) {\n const dateBegin = moment(\n dateBeginFilter,\n dateFormat\n ).toDate();\n const dateEnd = moment(\n dateEndFilter,\n dateFormat\n ).toDate();\n dataFiltered.forEach((el: any) => {\n const datePagamento = moment(\n el[\"Pagamento\"],\n dateFormat\n ).toDate();\n if (\n datePagamento >= dateBegin &&\n datePagamento <= dateEnd\n )\n dataFinal.push(el);\n });\n setData(dataFinal);\n }\n setDataModalPDF(\n reportPDFData(\n dataFinal.length === 0 ? dataFiltered : dataFinal,\n \"other\"\n )\n );\n return;\n } else if (dateBeginFilter && dateEndFilter) {\n const dateBegin = moment(\n dateBeginFilter,\n dateFormat\n ).toDate();\n const dateEnd = moment(dateEndFilter, dateFormat).toDate();\n data.forEach((el: any) => {\n const datePagamento = moment(\n el[\"Pagamento\"],\n dateFormat\n ).toDate();\n if (\n datePagamento >= dateBegin &&\n datePagamento <= dateEnd\n )\n dataFinal.push(el);\n });\n setData(dataFinal);\n setDataModalPDF(reportPDFData(dataFinal, \"other\"));\n return;\n }\n setData(originalData);\n };\n getProventosWithFilter(filters);\n setTimeout(() => {\n setShowFilterModal(false);\n }, 500);\n }}\n >\n Aplicar\n \n \n \n \n setReportDrawerProventos(false)}\n setType={(type: string) => downloadRelatorio(type)}\n />\n \n );\n};\n","import { message } from \"antd\";\nimport {\n SetStateAction,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport api from \"../services/apiBolsa\";\nimport { useAuth } from \"./AuthContext\";\n\ninterface INotification {\n message: string;\n type: string;\n date: Date;\n viewed: boolean;\n viewedDate?: Date;\n meta: any;\n}\n\ninterface INotificationContext {\n notification: INotification[];\n setNotification: React.Dispatch>;\n loading: boolean;\n getNotification: () => void;\n}\n\nexport const NotificationContext = createContext(\n {} as INotificationContext\n);\n\nexport const NotificationProvider: React.FC = ({ children }) => {\n const [notification, setNotification] = useState([]);\n const [loading, setLoading] = useState(false);\n const [fetched, setFetched] = useState(false);\n\n const { user } = useAuth();\n\n const getNotification = useCallback(() => {\n if (user?.token) {\n setLoading(true);\n api.defaults.headers.common[\"Authorization\"] = `Bearer ${user?.token}`;\n api\n .get(`/wallet/notification`)\n .then((res) => {\n setFetched(true);\n setNotification(res.data);\n })\n .catch(() => message.error(\"Não foi possível buscar notificações\"))\n .finally(() => setLoading(false));\n }\n }, [user?.token]);\n\n useEffect(() => {\n if (!fetched) {\n getNotification();\n }\n }, [fetched, getNotification]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useNotification = () => useContext(NotificationContext);\n","import _ from \"lodash\";\nimport moment from \"moment\";\nimport { useState } from \"react\";\nimport { useEffect } from \"react\";\nimport { BsDownload } from \"react-icons/bs\";\nimport { Select, Tooltip, message } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { AiOutlineLock, AiOutlineSearch } from \"react-icons/ai\";\nimport Loading from \"../Loading\";\nimport { ChartBar } from \"../ChartBar\";\nimport { BlurContent } from \"./styles\";\nimport apiBolsa from \"../../services/apiBolsa\";\nimport AntButton from \"../../components/Button\";\nimport HandleTag from \"../../services/handleTag\";\nimport { ProventosModal } from \"../ProventosModal\";\nimport { download, downloadPDF } from \"../../utils\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { ContainerProventos, Content } from \"./styles\";\nimport { ReportTypeDrawer } from \"../ReportType/ReportType\";\nimport { useNotification } from \"../../contexts/NotificationContext\";\nimport * as XLSX from \"xlsx\";\nimport { downloadExcelFromApi, isIosPlatform } from \"../../utils/webview\";\n\nexport const Proventos = ({ hideValues }: any) => {\n const { getNotification } = useNotification();\n\n const { user, hasPlan, showUserPlanModal } = useAuth();\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n\n const [openModal, setOpenModal] = useState(false);\n const [proventos, setProventos] = useState([]);\n const [monthProventos, setMonthProventos] = useState({});\n const [loadingDownload, setLoadingDownload] = useState(false);\n // const [appliedFilters, setAppliedFilters] = useState({});\n const [proventosLoading, setProventosLoading] = useState({});\n const [loadingReport, setLoadingReport] = useState(false);\n const [typeProventos, setTypeProventos] = useState(\"provento\");\n const [reportDrawerProventos, setReportDrawerProventos] = useState(false);\n const [yearProventos, setYearProventos] = useState(\n new Date().getFullYear()\n );\n\n useEffect(() => {\n setProventosLoading(true);\n apiBolsa\n .get(`/wallet/get-proventos`, {\n params: { year: yearProventos },\n })\n .then((res) => {\n setProventos(res.data.proventos);\n if (res?.data?.updated) {\n getNotification();\n }\n })\n .finally(() => setProventosLoading(false));\n }, [user?.user?.cpf, getNotification, yearProventos]);\n\n const monthReport = (data?: any, index?: any) => {\n setOpenModal(true);\n if (data) {\n setMonthProventos(data);\n } else {\n const date = new Date();\n const y = date.getFullYear();\n const m = date.toLocaleString(\"pt-BR\", { month: \"short\" });\n const name = `${m[0].toUpperCase()}${m.substring(1, 3)}`;\n setMonthProventos({ name });\n setYearProventos(y);\n }\n };\n\n const serializeDataExcel = (data: any) => {\n return data\n .filter(\n (el: any) => yearProventos === Number(moment(el?.date).format(\"Y\"))\n )\n .map((el: any) => {\n return {\n Produto: el?.code,\n Pagamento: moment(el?.date).format(\"DD/MM/YYYY\"),\n Tipo: _.capitalize(el?.corporateActionTypeDescription),\n Instituição: el?.corretora,\n \"Qtde.\": el?.quantity || \"-\",\n \"Preço unit.\":\n el?.unitPrice === null || el?.unitPrice === undefined\n ? \"-\"\n : \"R$ \" +\n el?.unitPrice?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n \"Valor líquido\":\n \"R$ \" +\n el?.grossAmount?.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n }),\n };\n });\n };\n\n const downloadExcel = (data: any) => {\n const serializedData = serializeDataExcel(data);\n setLoadingReport(true);\n apiBolsa\n .post(\"/wallet/report-proventos\", {\n data: serializedData,\n })\n .then((result) => {\n if (isIosPlatform()) {\n downloadExcelFromApi(result);\n return;\n }\n\n const worksheet = XLSX.utils.json_to_sheet(serializedData);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, \"Proventos\");\n XLSX.writeFile(workbook, \"Proventos.xlsx\");\n })\n .finally(() => {\n message.success(\"O relatório foi enviado para o seu e-mail\");\n setLoadingReport(false);\n });\n };\n\n const downloadRelatorio = async (type: string, item: any) => {\n try {\n setLoadingDownload(true);\n if (type === \"pdf\") {\n let fileUrl = \"\";\n let file = \"\";\n const newProventos = proventos.map((el: any) => {\n return {\n code: el.code || \"\",\n date: moment(el?.date).format(\"DD/MM/YYYY\"),\n corporateActionTypeDescription: _.capitalize(\n el?.corporateActionTypeDescription\n ),\n corretora: el?.corretora,\n quantity: el?.quantity || \"-\",\n unitPrice: el?.unitPrice || \"-\",\n grossAmount: el?.grossAmount,\n };\n });\n const ret = await apiBolsa.post(\"/wallet/report-proventos-pdf\", {\n proventos: newProventos,\n });\n if (ret) {\n fileUrl = ret?.data?.fileUrl;\n file = ret?.data?.file;\n }\n if (file) {\n downloadPDF(file, \"Proventos\");\n } else if (fileUrl) {\n download(fileUrl);\n }\n } else if (type === \"xlsx\") {\n downloadExcel(proventos);\n }\n setLoadingDownload(false);\n } catch (err: any) {\n setLoadingDownload(false);\n message.error(\n \"Não foi possível baixar o relatório de Proventos. Tente novamente mais tarde\"\n );\n }\n };\n\n return (\n \n \n \n {!hasPlan || !hasPlan.premium || isBasic ? (\n proventosLoading ? (\n \n ) : (\n \n
\n Contrate o plano premium para ver a lista completa de\n proventos\n }\n onClick={() => {\n showUserPlanModal(true);\n HandleTag(\"54\");\n }}\n >\n PREMIUM\n \n
\n \n
\n )\n ) : (\n <>\n
\n setYearProventos(e)}\n options={[\n {\n value: new Date().getFullYear() + 1,\n label: new Date().getFullYear() + 1,\n },\n {\n value: new Date().getFullYear(),\n label: new Date().getFullYear(),\n },\n {\n value: new Date().getFullYear() - 1,\n label: new Date().getFullYear() - 1,\n },\n {\n value: new Date().getFullYear() - 2,\n label: new Date().getFullYear() - 2,\n },\n {\n value: new Date().getFullYear() - 3,\n label: new Date().getFullYear() - 3,\n },\n ]}\n />\n {\n setTypeProventos(e);\n (document.activeElement as HTMLElement)?.blur();\n }}\n options={[\n {\n label: \"Por tipo de provento\",\n value: \"provento\",\n },\n {\n label: \"Por corretora\",\n value: \"corretora\",\n },\n {\n label: \"Por data de recebimento\",\n value: \"data\",\n },\n ]}\n />\n
\n monthReport()}\n icon={}\n disabled={proventosLoading || loadingReport}\n >\n Ver detalhes\n \n target.parentElement!}\n >\n {\n setReportDrawerProventos(true);\n }}\n disabled={proventosLoading || loadingReport}\n icon={\n loadingReport ? : \n }\n >\n Baixar\n \n \n
\n
\n {proventosLoading ? (\n \n ) : (\n \n )}\n \n \n )}\n
\n
\n setReportDrawerProventos(false)}\n setType={(type: string) => downloadRelatorio(type, proventos)}\n />\n
\n );\n};\n","import { months } from \"./date\";\nimport { Posicao } from \"../contexts/CarteiraContext\";\n\nconst colors = [\n \"#000058\",\n \"#1634FF\",\n \"#1634FFDD\",\n \"#1634FFBB\",\n \"#1634FF99\",\n \"#1634FF77\",\n \"#1634FF55\",\n \"#1634FF33\",\n \"#1634FF\",\n];\n\nexport const getProviderColor = (provider: string, index: number) => {\n while (index > 8) {\n const differnce = index - 8;\n index = differnce - 1;\n }\n return colors[index];\n};\n\nexport const getClassesAtivosChart = (carteiraCategorizada: {\n [key: string]: Posicao[];\n}) => {\n const getCategoriaAtivos = (categoria: string) => {\n switch (categoria) {\n case \"FII - Fundo de Investimento Imobiliário\":\n return \"FIIs\";\n case \"Fundos de Investimentos\":\n return \"FIs\";\n case \"ETF - Exchange Traded Fund\":\n return \"ETFs\";\n case \"BDR - Brazilian Depositary Receipts\":\n return \"BDRs\";\n case \"Exterior\":\n return \"XP International\";\n case \"TesouroDireto\":\n return \"Tesouro Direto\";\n case \"Opcao\":\n return \"Opções\";\n default:\n return categoria;\n }\n };\n\n let i = 0;\n let classes: any[] = [];\n for (let index in carteiraCategorizada) {\n const sum = carteiraCategorizada[index].reduce((acc, cur) => {\n return acc + cur.posicao;\n }, 0);\n const name = getCategoriaAtivos(index);\n classes.push({\n name,\n value: sum,\n color: colors[i % 6],\n });\n i += 1;\n }\n return classes;\n};\n\nexport const getCorretoraAtivosChart = (carteiraCategorizada: {\n [key: string]: Posicao[];\n}) => {\n const getCorretora = (corretora: string) => {\n switch (corretora) {\n case \"XP INVESTIMENTOS CCTVM S/A\":\n return \"XP\";\n default:\n return corretora.split(\" \")[0] || corretora;\n }\n };\n let corretoras: any = [];\n for (let ativos of Object.values(carteiraCategorizada)) {\n for (let ativo of ativos) {\n corretoras[ativo.corretora] =\n (corretoras[ativo.corretora] || 0) + ativo.posicao;\n }\n }\n let i = 0;\n let result = [];\n for (let index in corretoras) {\n result.push({\n name: getCorretora(index),\n value: corretoras[index],\n color: colors[i % 6],\n });\n i += 1;\n }\n return result;\n};\n\nexport const getLineChartData = (arr: any[]) => {\n if (!arr) return [];\n const previousDate = arr[0].date.split(\"/\").map((num: any) => Number(num));\n const currentDate = arr[arr.length - 1].date\n .split(\"/\")\n .map((num: any) => Number(num));\n\n let response = arr.map((i) => {\n return { name: \"\", value: i.value };\n });\n\n response[0].name = `${previousDate[0]} ${months[previousDate[1] - 1]} ${\n previousDate[2]\n }`;\n response[response.length - 1].name = `${currentDate[0]} ${\n months[currentDate[1] - 1]\n } ${currentDate[2]}`;\n\n return response;\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n min-height: 100%;\n .velotax-container {\n .velotax-content {\n width: 840px;\n }\n }\n .ant-tooltip {\n z-index: 999;\n }\n .success {\n color: var(--ant-success-color);\n }\n .error {\n color: var(--ant-error-color);\n }\n .container-btn {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 0;\n }\n .download-report-btn {\n width: auto;\n padding: 6px 12px;\n margin-left: 4px;\n border-radius: 60px;\n display: inline-flex;\n height: 32px !important;\n background-color: var(--white);\n color: var(--velotax-font-color);\n border: 1px solid var(--light-gray);\n &:not(.filter-btn) {\n .anticon {\n width: 16px !important;\n height: 16px !important;\n }\n }\n svg {\n width: 16px !important;\n height: 16px !important;\n min-width: 16px !important;\n min-height: 16px !important;\n stroke: var(--ant-primary-color) !important;\n fill: var(--ant-primary-color) !important;\n }\n }\n .hide-values-btn {\n margin-left: 8px;\n border-radius: 4px;\n display: inline-flex;\n height: 32px !important;\n background-color: var(--velotax-ghost);\n svg {\n width: 20px;\n height: 20px;\n fill: var(--ant-primary-color) !important;\n }\n }\n .notification-button {\n right: 0;\n top: -10px;\n position: absolute;\n button {\n width: 52px;\n height: 52px;\n transition: 0.3s;\n border-radius: 50%;\n background-color: var(--ant-primary-color);\n\n &:hover {\n background-color: var(--ant-primary-5);\n box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.1) !important;\n transition: 0.3s;\n }\n\n svg {\n font-size: 28px;\n fill: var(--white);\n }\n }\n }\n .ant-tabs-nav-list {\n width: 100%;\n border-bottom: 2px solid var(--light-gray);\n .ant-tabs-ink-bar {\n bottom: -1px;\n }\n }\n .ant-tabs-ink-bar {\n max-width: 50% !important;\n width: 100% !important;\n }\n .ant-tabs-tab {\n width: 100%;\n display: flex;\n justify-content: center;\n }\n .ant-tabs-tabpane {\n padding-top: 24px;\n }\n .patrimonio {\n margin-bottom: 32px;\n\n h1:not(.page-title) {\n padding-left: 40px;\n font-size: 2.25rem;\n padding-bottom: 0;\n margin: 0 !important;\n\n span {\n font-weight: 800;\n }\n\n :after {\n display: none;\n }\n }\n\n h2 {\n padding-left: 40px;\n font-weight: 400;\n line-height: 1rem;\n font-size: 0.875rem;\n margin: 0 !important;\n color: var(--velotax-font-color-light);\n }\n\n .lucro-prejuizo {\n padding: 16px 0 16px 16px;\n border-left: 2px solid var(--light-gray);\n\n .anticon.anticon-loading.anticon-spin {\n width: 14px;\n height: 14px;\n margin-left: 4px;\n svg {\n width: 14px;\n height: 14px;\n }\n }\n\n div.ant-typography {\n margin: 0.5rem 0;\n font-size: 0.875rem;\n & > span {\n display: block;\n margin: 0;\n }\n span {\n font-weight: 600;\n white-space: nowrap;\n }\n }\n }\n }\n\n .list-empty {\n padding: 16px;\n margin-top: -16px;\n border-radius: 8px;\n color: var(--dark-gray);\n background-color: var(--light-gray);\n }\n\n .last-update {\n display: flex;\n margin-top: 32px;\n align-items: center;\n font-size: 0.75rem;\n line-height: 1.5rem;\n color: var(--ant-primary-color);\n .button-refresh-wallet {\n width: 20px;\n height: 20px;\n border: none;\n box-shadow: none;\n margin-right: 8px;\n background-color: var(--light-gray);\n color: var(--ant-primary-color) !important;\n svg {\n width: 10px !important;\n height: 10px !important;\n * {\n stroke: var(--ant-primary-color) !important;\n }\n }\n }\n }\n\n .messages {\n margin-top: 16px;\n font-weight: 400;\n padding-top: 16px;\n line-height: 1rem;\n font-size: 0.75rem;\n color: var(--dark-gray);\n border-top: 2px solid var(--light-gray);\n li {\n padding-left: 16px;\n margin-bottom: 6px;\n position: relative;\n .anticon-info-circle {\n left: 0;\n top: 1px;\n position: absolute;\n color: var(--dark-gray);\n }\n }\n }\n\n & div > .ant-collapse {\n border: none;\n & > .ant-collapse-item.ativos-categoria {\n margin-bottom: 48px;\n &:last-of-type {\n margin-bottom: 0;\n }\n & > .ant-collapse-header {\n padding: 0;\n align-items: center;\n .ant-collapse-arrow {\n right: 0;\n }\n h2 {\n margin: 0;\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.5rem;\n color: var(--ant-primary-color);\n }\n .collapse-title-divider {\n flex-grow: 1;\n display: block;\n margin: 0 16px;\n border-bottom: 2px solid var(--light-gray);\n }\n .collapse-title-hidden {\n width: 24px;\n height: 24px;\n display: block;\n visibility: hidden;\n }\n }\n & > .ant-collapse-content {\n border: none;\n & > .ant-collapse-content-box {\n padding: 24px 0 0;\n & > div {\n font-size: 13px;\n }\n }\n }\n }\n }\n\n .select-container {\n top: 0;\n right: 0;\n width: 41.6666%; // 41.6666% para alinhar com o prejuizo (10/24 = 41.6666)\n position: absolute;\n .ant-select {\n min-width: 180px;\n border-radius: 0px !important;\n .ant-select-selector {\n border: none !important;\n padding: 0 0 6px !important;\n border-radius: 0px !important;\n border-bottom: 2px solid var(--light-gray) !important;\n background-color: var(--velotax-background-color) !important;\n .ant-select-selection-search,\n .ant-select-selection-item {\n display: flex;\n font-size: 16px;\n align-items: center;\n font-weight: 600 !important;\n }\n }\n .ant-select-arrow {\n top: calc(50% - 2px);\n }\n }\n\n .ant-select-focused.ant-select-open {\n box-shadow: none !important;\n\n .ant-select-selector {\n border-color: var(--ant-primary-color) !important;\n }\n }\n\n .ant-select:not(.ant-select-disabled):hover .ant-select-selector,\n .ant-select-focused:not(.ant-select-disabled).ant-select:not(\n .ant-select-customize-input\n )\n .ant-select-selector {\n box-shadow: none !important;\n }\n\n .ant-dropdown,\n .ant-select-dropdown {\n box-shadow: none;\n }\n }\n\n @media only screen and (min-device-width: 813px) {\n .velotax-content.largeChart {\n .tab-carteira .recharts-responsive-container {\n margin: 0 auto 120px;\n }\n }\n .tab-carteira .recharts-responsive-container {\n margin: 0 auto 48px;\n position: relative;\n height: auto !important;\n .recharts-wrapper {\n width: 100% !important;\n > .recharts-surface {\n margin-left: 40px;\n }\n .recharts-legend-wrapper {\n right: 0px !important;\n width: 41.6666% !important; // 41.6666% para alinhar com o prejuizo (10/24 = 41.6666)\n top: calc(32px + 20px) !important;\n .recharts-legend-item {\n margin: 4px 0;\n .recharts-surface {\n width: 16px;\n height: 16px;\n border-radius: 2px;\n }\n .recharts-legend-item-text {\n margin-left: 12px;\n span {\n font-size: 14px;\n font-weight: 500;\n color: var(--velotax-font-color) !important;\n }\n }\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n background-color: var(--velotax-background-color);\n .velotax-container {\n .velotax-content {\n width: 100%;\n h1.page-title {\n font-size: 20px;\n }\n }\n }\n .patrimonio {\n margin-bottom: 32px;\n h1,\n h2 {\n padding-left: 0 !important;\n }\n\n .lucro-prejuizo {\n padding: 4px 0 0;\n border: none;\n margin-top: 16px;\n border-top: 2px solid var(--light-gray);\n\n .anticon.anticon-loading.anticon-spin {\n width: 10px;\n height: 10px;\n margin-left: 4px;\n svg {\n width: 10px;\n height: 10px;\n }\n }\n\n div.ant-typography {\n margin: 0.25rem 0;\n font-size: 0.75rem;\n }\n }\n }\n\n h1:not(.title) {\n padding: 0;\n }\n\n & div > .ant-collapse {\n & > .ant-collapse-item.ativos-categoria {\n margin-bottom: 32px;\n & > .ant-collapse-content {\n & > .ant-collapse-content-box {\n padding: 16px 0 0;\n }\n }\n }\n }\n\n .tab-carteira .recharts-responsive-container {\n position: relative;\n margin: 56px auto 32px;\n height: auto !important;\n .select-container {\n top: -20px;\n width: 100%;\n .ant-select {\n min-width: 210px;\n }\n }\n .recharts-wrapper {\n width: 100% !important;\n .recharts-legend-wrapper {\n .recharts-legend-item {\n align-items: start;\n display: flex !important;\n margin-right: 0 !important;\n .recharts-surface {\n border-radius: 2px;\n margin-top: 1px;\n }\n .recharts-legend-item-text {\n max-width: 80px;\n font-size: 13px;\n line-height: 14px;\n white-space: normal;\n display: inline-block;\n span {\n font-size: 14px;\n font-weight: 500;\n color: var(--velotax-font-color) !important;\n }\n }\n }\n }\n }\n }\n }\n`;\n\nexport const BlurContent = styled.div`\n margin-top: 8px;\n position: relative;\n user-select: none;\n border-radius: 8px;\n border: 2px solid var(--light-gray);\n .blur-content {\n opacity: 0.5;\n filter: blur(4px);\n }\n .blur-content-title {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0 100px;\n font-weight: 500;\n font-size: 1.25rem;\n text-align: center;\n row-gap: 16px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n color: var(--velotax-font-color-light);\n }\n\n @media only screen and (max-device-width: 812px) {\n .blur-content-title {\n padding: 0 16px;\n font-size: 1rem;\n }\n }\n`;\n\nexport const IsentCardStyled = styled.div`\n gap: 12px;\n border: none;\n height: 110px;\n padding: 24px;\n display: flex;\n margin-bottom: 4px;\n text-align: center;\n border-radius: 8px;\n flex-direction: column;\n background-color: var(--velotax-background-color-ghost);\n\n .overviewTitleIsent {\n color: var(--ant-primary-color);\n font-size: 13px;\n }\n\n .ant-tooltip-inner {\n display: flex;\n justify-content: center;\n width: 315px;\n padding: 5px;\n }\n\n .progress_container {\n width: 100%;\n background-color: var(--velotax-ghost-white);\n height: 15px;\n position: relative;\n border-radius: 50px;\n }\n\n .loading_bar {\n height: 100%;\n background-color: var(--ant-primary-color);\n border-top-left-radius: 50px;\n border-bottom-left-radius: 50px;\n display: flex; /* Para que os elementos dentro da barra de progresso se alinhem corretamente */\n align-items: center; /* Para centralizar verticalmente o texto */\n justify-content: center; /* Para alinhar o texto à esquerda dentro da barra de progresso */\n padding-left: 10px; /* Adicione o padding necessário para dar espaço ao texto na barra */\n }\n\n .progress_container_text_align_center {\n /* Estilos para o texto (se necessário) */\n color: var(--white);\n font-size: 11px;\n font-weight: 700;\n }\n`;\n","import { message } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport { createContext, useCallback, useContext, useState } from \"react\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport { getLineChartData } from \"../utils/walletCharts\";\n\nexport interface Posicao {\n categoria: string;\n codigo: string;\n posicao: number;\n quantidade: number;\n precoAtual: number;\n precoVenda: number;\n custoMedio: number;\n lucroPrejuizoTotal: number;\n lucroPrejuizoDiario: number;\n lucroPrejuizoTotalPercentual: number;\n lucroPrejuizoDiarioPercentual: number;\n hasPosition2019: boolean;\n corretora: string;\n resumo: any;\n loan?: {\n isLoan?: boolean;\n typeLoan?: string;\n };\n}\n\ninterface Carteira {\n posicoes: Posicao[];\n patrimonioTotal: number;\n lucroPrejuizoTotal: number;\n lucroPrejuizoDiario: number;\n lucroPrejuizoTotalPercentual: number;\n lucroPrejuizoDiarioPercentual: number;\n bolsaLiquidez: any[];\n}\n\ninterface ICarteiraContext {\n carteira: Carteira;\n loading: boolean;\n loadingLucroPrejuizo: boolean;\n lineChartData: any[];\n lastUpdate: Date;\n handleRefresh: () => void;\n getCarteira: (refresh?: boolean) => void;\n getLucroPrejuizo: () => void;\n getPatrimonios: (cpf: string) => Promise;\n}\n\nexport const CarteiraContext = createContext(\n {} as ICarteiraContext\n);\n\nexport const CarteiraProvider: React.FC = ({ children }) => {\n const navigate = useNavigate();\n const [loading, setLoading] = useState(false);\n const [loadingLucroPrejuizo, setLoadingLucroPrejuizo] = useState(false);\n const [lastUpdate, setLastUpdate] = useState(new Date());\n const [carteira, setCarteira] = useState({});\n const [lineChartData, setLineChartData] = useState([]);\n const [shouldRefresh, setShouldRefresh] = useState(false);\n\n const handleRefresh = () => {\n setShouldRefresh(true);\n }\n\n const getCarteira = useCallback((refresh = false) => {\n setLoading(true);\n apiBolsa\n .get(\"/wallet\", { params: { refresh: shouldRefresh || refresh } })\n .then(({ data }) => {\n setCarteira(data);\n setLastUpdate(new Date());\n })\n .catch((error) => {\n if (error.response?.data?.status === 400) {\n message.info(\"Refaça sua integração com a B3 e tente novamente.\");\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration\");\n }, 1000);\n }\n })\n .finally(() => {\n setLoading(false);\n setShouldRefresh(false);\n });\n }, [navigate, shouldRefresh]);\n\n const getLucroPrejuizo = useCallback(() => {\n setLoadingLucroPrejuizo(true);\n apiBolsa\n .get(\"/wallet/lucroPrejuizo\")\n .then(({ data }) => {\n setLineChartData(getLineChartData(data));\n })\n .catch((error) => {\n if (error.response?.data?.status === 400) {\n message.info(\"Erro getLucroPrejuizo\");\n }\n })\n .finally(() => {\n setLoadingLucroPrejuizo(false);\n });\n }, []);\n\n const getPatrimonios = async (cpf: string) => {\n const { data } = await apiBolsa.get(`/wallet/get-patrimonios/${cpf}`);\n return data;\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useCarteira = () => useContext(CarteiraContext);\n","export const vendasTotais = (item: any) =>\n item.transactions.reduce((a: number, t: any) => a + fator(t), 0);\n\nexport const fator = (item: any) => {\n const value = (item.quantity || 0) * (item.sellPrice || 0);\n const code = item.code?.substring(0, 3)?.toUpperCase() || \"\";\n switch (code) {\n case \"WIN\":\n return value * 5;\n case \"WDO\":\n return value / 10;\n case \"DOL\":\n return value / 50;\n case \"IAP\":\n return value / 25;\n case \"ETN\":\n return value / 30;\n case \"ETH\":\n {\n if (item.code?.substring(3, 4)?.toUpperCase() == \"E\") return value\n else return value / 30\n }\n case \"SOY\":\n return value / 34;\n case \"CNY\":\n return value / 35;\n case \"EUR\":\n return value / 50;\n case \"ICF\":\n return value / 100;\n case \"KFE\":\n return value / 100;\n case \"OZ1\":\n return value / 250;\n case \"CCM\":\n {\n if (item.code?.substring(3, 4)?.toUpperCase() == \"E\") return value\n else return value / 450\n }\n case \"SFI\":\n return value / 450;\n case \"SJC\":\n return value / 450;\n case \"ACF\":\n return value / 508;\n case \"BGI\":\n return value / 330;\n case \"BIT\":\n {\n if (item.code?.substring(3, 4)?.toUpperCase() == \"H\") return value\n else return value / 0.1\n }\n default:\n return value;\n }\n};\n\nexport const vendasIsentas = (item: any) => {\n const codigosIsentos = [\n \"FRTA3\",\n \"FRTA3F\",\n \"GSHP3\",\n \"GSHP3F\",\n \"NUTR3\",\n \"NUTR3F\",\n \"CRDE3\",\n \"CRDE3F\",\n \"PRNR3\",\n \"PRNR3F\",\n ];\n const vendasMercadoIsento = item.mercadoIsento || 0;\n const vendasMercadoComum =\n item.transactions\n ?.filter(\n (t: any) =>\n t.operacao === \"Comum\" &&\n !codigosIsentos.includes(t.code.toUpperCase())\n )\n ?.reduce((a: number, t: any) => a + fator(t), 0) || 0;\n return (\n vendasMercadoIsento + vendasMercadoComum\n );\n};\n\nconst exteriorTransactionsFilter = (el: any) =>\n (el.operation === \"SELL\" && !el?.type) ||\n (el.operation === \"SELL\" && el.manual) ||\n (el.operation === \"SELL\" &&\n (el.type === \"TRADE\" || el.type === \"WITHDRAW\")) ||\n el.type === \"INTEREST\";\n\nexport const vendasTotaisExt = (item: any) => {\n const vendasTotais = item.transactions\n ?.filter(exteriorTransactionsFilter)\n .reduce((a: number, t: any) => a + t.valor * t.cambioVenda, 0);\n return item.transactions ? vendasTotais : 0;\n};\n","import styled from \"styled-components\";\n\nexport const NotificationContainer = styled.div`\n .illustration {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n position: relative;\n margin-top: 4rem;\n\n span {\n margin-right: 1rem;\n }\n\n h5 {\n font-weight: 500;\n color: var(--velotax-font-color);\n }\n\n button,\n span {\n display: flex;\n justify-content: center;\n align-items: center;\n color: black !important;\n }\n span {\n margin: 0 0 0 0.5rem;\n }\n button {\n max-width: 160px;\n height: 52px;\n margin-right: auto;\n margin-top: 1rem;\n }\n }\n\n .loading {\n display: flex;\n\n h5 {\n margin-left: 1rem;\n }\n }\n\n .card {\n background-color: var(--ant-primary-1);\n box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.15);\n border-radius: 6px;\n margin-bottom: 1rem;\n padding: 1rem;\n position: relative;\n cursor: pointer;\n\n &:hover {\n transition: 0.3s;\n background-color: var(--ant-primary-2);\n }\n\n .loading {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n background-color: rgba(0, 0, 0, 0.2);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .header {\n display: flex;\n align-items: center;\n width: 100%;\n margin-bottom: 8px;\n\n h5 {\n flex-grow: 1;\n margin-bottom: 0;\n }\n\n svg {\n color: var(--ant-primary-color);\n font-size: 20px;\n margin-right: 4px;\n }\n\n span {\n color: var(--velotax-font-color-ghost);\n }\n\n .actionButton {\n margin: 0;\n transition: 0.3s;\n cursor: pointer;\n\n &:hover {\n color: var(--ant-primary-color);\n transition: 0.3s;\n }\n }\n }\n\n .body {\n span {\n margin: 0;\n color: var(--black);\n font-weight: 400;\n }\n }\n }\n\n .viewed {\n background-color: var(--velotax-ghost);\n cursor: default;\n h5,\n svg,\n span {\n color: var(--velotax-font-color-ghost) !important;\n }\n &:hover {\n background-color: var(--velotax-ghost);\n }\n }\n\n .section {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 2rem;\n\n h5 {\n text-transform: uppercase;\n font-size: 14px;\n color: var(--velotax-font-color);\n }\n\n button {\n transition: 0.3s;\n text-transform: uppercase;\n font-size: 13px;\n font-weight: 500;\n &:hover {\n color: var(--ant-primary-color);\n transition: 0.3s;\n }\n }\n }\n`;\n","export default __webpack_public_path__ + \"static/media/notification.d3262cf7.svg\";","import { useState } from \"react\";\nimport { Drawer, Typography, message } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { AiOutlineArrowLeft } from \"react-icons/ai\";\nimport { HiOutlineCurrencyDollar } from \"react-icons/hi\";\nimport Button from \"../Button\";\nimport { isMobile } from \"../../utils\";\nimport api from \"../../services/apiBolsa\";\nimport { NotificationContainer } from \"./styles\";\nimport notificationImage from \"../../assets/notification.svg\";\nimport { useNotification } from \"../../contexts/NotificationContext\";\n\ninterface IProps {\n open: boolean;\n onClose:\n | ((\n e: React.MouseEvent | React.KeyboardEvent\n ) => void)\n | undefined;\n}\n\nexport const NotificationDrawer = ({ open, onClose }: IProps) => {\n const { notification, setNotification, loading } = useNotification();\n const [loadingIndex, setLoadingIndex] = useState(null);\n const lidas = (notification || []).filter((n) => n.viewed);\n const naoLidas = (notification || []).filter((n) => !n.viewed);\n\n const removeNotification = (index?: number) => {\n const notifications = notification.map((n, i: number) => {\n if (index === undefined || index === i)\n return { ...n, viewed: true, viewedDate: new Date() };\n return n;\n });\n\n setLoadingIndex(index === undefined ? \"all\" : index);\n api\n .patch(`/wallet/notification`, {\n notifications,\n })\n .then(() => {\n setNotification(notifications);\n setLoadingIndex(null);\n })\n .catch(() => {\n message.error(\"Não foi possível remover notificação\");\n });\n };\n\n return (\n }\n title={\n
\n Voltar\n
\n }\n {...(isMobile() ? { width: \"100%\" } : {})}\n >\n \n Notificações\n\n {(loading || !notification?.length) && (\n
\n \"Notificações\"\n {loading ? (\n
\n \n \n Buscando notificações\n \n
\n ) : !notification?.length ? (\n \n Você não possui novas notificações.\n \n ) : (\n <>\n )}\n
\n )}\n\n {!!naoLidas?.length && !loading && (\n
\n Não lidas\n \n
\n )}\n {!loading &&\n (notification || [])?.map((item, i) => {\n if (item.viewed) return <>;\n return (\n
\n {\n if (!(loadingIndex === i || loadingIndex === \"all\"))\n removeNotification(i);\n }}\n >\n {(loadingIndex === i || loadingIndex === \"all\") && (\n
\n \n
\n )}\n
\n \n \n Rendimentos a receber\n \n {item?.date && (\n \n {new Date(item?.date)?.toLocaleDateString(\"pt-BR\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n })}\n \n )}\n
\n
\n {item.message}\n
\n
\n \n );\n })}\n\n {/* Notificações Lidas */}\n {!!lidas?.length && !loading && (\n
\n Lidas\n
\n )}\n {!loading &&\n (notification || [])?.map((item, i) => {\n if (!item.viewed) return <>;\n return (\n
\n
\n
\n \n \n Rendimentos a receber\n \n {item?.date && (\n \n {new Date(item?.date)?.toLocaleDateString(\"pt-BR\", {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n })}\n \n )}\n
\n
\n {item.message}\n
\n
\n
\n );\n })}\n
\n \n );\n};\n","import _ from \"lodash\";\n\nexport const serializePatrimonio = (\n itemPatrimonio: any,\n corretoraFilter?: string[]\n) => {\n let posicoesFiltradas = itemPatrimonio?.posicoes || [];\n const corretoras = getTodasAsCorretoras(posicoesFiltradas);\n if (corretoraFilter && corretoraFilter.length > 0) {\n const corretoraNames = corretoraFilter.map((c) =>\n getNomeCorretora({ shortName: c })\n );\n posicoesFiltradas = posicoesFiltradas?.filter((p: any) =>\n corretoraNames.includes(p.corretora)\n );\n }\n\n const patrimonio = calculaSaldoCorretoras(\n posicoesFiltradas,\n itemPatrimonio?.posicao2019 || {}\n );\n\n const classesAtivos = calculaClassesAtivos(\n posicoesFiltradas,\n itemPatrimonio?.posicao2019 || {}\n );\n const posicoes = calculaPorcentagemPosicoes(posicoesFiltradas);\n\n return { patrimonio, classesAtivos, posicoes, corretoras };\n};\n\nexport const getNomeCorretora = ({\n name,\n shortName,\n}: {\n name?: string;\n shortName?: string;\n}) => {\n const corretoras = [\n {\n name: \"XP INVESTIMENTOS CCTVM S/A\",\n shortName: \"XP Investimentos\",\n },\n {\n name: \"NU INVEST CORRETORA DE VALORES S.A.\",\n shortName: \"Nubank\",\n },\n {\n name: \"INTER DISTRIBUIDORA DE TITULOS E VALORES MOBILIARIOS LTDA\",\n shortName: \"Inter\",\n },\n {\n name: \"ORAMA DTVM S.A.\",\n shortName: \"Orama\",\n },\n {\n name: \"CLEAR CORRETORA - GRUPO XP\",\n shortName: \"Clear Corretora\",\n },\n {\n name: \"Exterior\",\n shortName: \"XP International\",\n },\n ];\n\n if (name) return corretoras.find((c) => c.name === name)?.shortName || name;\n if (shortName)\n return corretoras.find((c) => c.shortName === shortName)?.name || shortName;\n return \"\";\n};\n\nconst getCategoriaShortName = (categoria: string) => {\n if (categoria.includes(\"Fundos de Investimentos\")) return \"FIs\";\n if (categoria.includes(\"FII\")) return \"FIIs\";\n if (categoria.includes(\"BDR\")) return \"BDRs\";\n if (categoria.includes(\"ETF\")) return \"ETFs\";\n if (categoria.includes(\"Empréstimo de Ativos\")) return \"Empréstimos\";\n if (categoria.includes(\"TesouroDireto\")) return \"Tesouro Direto\";\n return categoria;\n};\n\nconst calculaSaldoCorretoras = (posicoes: any, posicao2019: any) => {\n const agrupadoPorCorretora = _.groupBy(posicoes, (p) => p.corretora);\n const saldosCorretoras = [];\n for (const corretora in agrupadoPorCorretora) {\n const saldo = agrupadoPorCorretora[corretora].reduce((prev, curr) => {\n const pos2019 = posicao2019?.orders?.find(\n (po: any) => po.code === curr.codigo\n );\n if (pos2019) {\n return prev;\n }\n return (prev || 0) + (curr?.posicao || 0);\n }, 0);\n saldosCorretoras.push({\n name: getNomeCorretora({ name: corretora }),\n value: saldo,\n });\n }\n\n return calculaPorgentagensCategorias(saldosCorretoras);\n};\n\nconst getTodasAsCorretoras = (posicoes: any) => {\n const agrupadoPorCorretora = _.groupBy(posicoes, (p) => p.corretora);\n const corretoras = Object.keys(agrupadoPorCorretora);\n return corretoras.map((c) => getNomeCorretora({ name: c }));\n};\n\nconst calculaClassesAtivos = (posicoes: any, posicao2019: any) => {\n const agrupadoPorCategoria = _.groupBy(posicoes, (p) => p.categoria);\n const saldosCategorias = [];\n for (const categoria in agrupadoPorCategoria) {\n const saldo = agrupadoPorCategoria[categoria].reduce((prev, curr) => {\n // const pos2019 = posicao2019?.orders?.find(\n // (po: any) => po.code === curr.codigo\n // );\n // if (pos2019) {\n // // return prev;\n // return (prev || 0) + (curr?.posicao || 0) + (pos2019?.totalValue ?? 0);\n // }\n return (prev || 0) + (curr?.posicao || 0);\n }, 0);\n saldosCategorias.push({\n name: getCategoriaShortName(categoria),\n value: saldo,\n });\n }\n\n return calculaPorgentagensCategorias(saldosCategorias);\n};\n\nconst calculaPorgentagensCategorias = (\n saldosCategorias: Array<{ name: string; value: number }>\n) => {\n const totalSaldos = saldosCategorias.reduce(\n (acc, curr) => acc + curr.value,\n 0\n );\n\n const porcentagens = saldosCategorias.map((categoria) => ({\n name: categoria.name,\n value: categoria.value,\n percentage: Number(((categoria.value / totalSaldos) * 100).toFixed(1)),\n }));\n\n return porcentagens;\n};\n\nconst calculaPorcentagemPosicoes = (\n posicoes: {\n codigo: string;\n posicao: number;\n custoMedio: number;\n precoAtual: number;\n quantidade: number;\n categoria: string;\n corretora: string;\n hasPosition2019: boolean;\n }[]\n) => {\n if (!posicoes || posicoes.length === 0) return [];\n\n const patrimonioTotal = Number(\n posicoes.reduce((prev, curr) => prev + curr.posicao, 0).toFixed(2)\n );\n\n const posicoesOrdenadas = posicoes.sort((a, b) => {\n return b.posicao - a.posicao;\n });\n const quantidadeDeAtivosMostrados = 8;\n const porcentagens = [];\n\n for (\n let i = 0;\n i <\n (posicoesOrdenadas.length < quantidadeDeAtivosMostrados\n ? posicoesOrdenadas.length\n : quantidadeDeAtivosMostrados);\n i++\n ) {\n const posicao = posicoesOrdenadas[i];\n if (posicao.categoria === \"Exterior\" || !posicao.hasPosition2019) {\n const porcentagem = (posicao.posicao / patrimonioTotal) * 100;\n porcentagens.push({\n name: posicao.codigo,\n value: Number(posicao.posicao),\n percentage: Number(porcentagem.toFixed(1)),\n });\n }\n }\n\n let porcentagensOrdenadas = porcentagens.sort(\n (a, b) => a.percentage - b.percentage\n );\n\n if (porcentagensOrdenadas.length > quantidadeDeAtivosMostrados) {\n porcentagensOrdenadas = porcentagensOrdenadas.slice(\n 0,\n quantidadeDeAtivosMostrados\n );\n }\n\n let somatorioDasMaioresPorcentagens = 0;\n let somatorioDosMaioresValores = 0;\n for (const po of porcentagensOrdenadas) {\n somatorioDasMaioresPorcentagens += po.percentage;\n somatorioDosMaioresValores += po.value;\n }\n\n const ret = porcentagensOrdenadas.sort((a, b) => b.percentage - a.percentage);\n\n if (somatorioDasMaioresPorcentagens < 100) {\n ret.push({\n name: \"Outros\",\n value: patrimonioTotal - somatorioDosMaioresValores,\n percentage: Number((100 - somatorioDasMaioresPorcentagens).toFixed(2)),\n });\n }\n\n return ret;\n};\n","import { Collapse } from \"antd\";\nimport styled from \"styled-components\";\n\nexport const PosicaoCardStyled = styled(Collapse.Panel)`\n margin-bottom: 4px;\n border-radius: 8px !important;\n border: 2px solid var(--light-gray) !important;\n background-color: var(--light-gray);\n\n &:last-of-type {\n margin-bottom: 0;\n }\n\n &.ant-collapse-item-active {\n background-color: var(--velotax-background-color);\n }\n\n .ant-collapse-header {\n height: 72px;\n background-color: transparent;\n padding: 24px 72px 24px 32px !important;\n .ant-collapse-arrow {\n right: 32px !important;\n }\n\n .header {\n width: 100%;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n .title {\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n\n span {\n margin-left: 8px;\n font-weight: 600;\n font-size: 0.875rem;\n }\n }\n\n .posicao {\n font-weight: 600;\n font-size: 1.125rem;\n color: var(--velotax-font-color);\n }\n }\n }\n\n .ant-collapse-content {\n border: none;\n background-color: transparent;\n border-radius: 0 0 4px 4px !important;\n\n .ant-collapse-content-box {\n padding: 0 32px 32px;\n color: var(--velotax-font-color);\n & > div {\n & > span:first-child {\n width: 160px;\n display: inline-block;\n }\n & > span:not(:first-child) {\n margin-left: 16px;\n }\n }\n }\n }\n\n .hr-details {\n margin: 16px 0;\n opacity: 0.3;\n }\n\n .row-section {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n\n .recharts-wrapper {\n transform: translateX(12px);\n }\n }\n .chart-section {\n flex-grow: 1;\n width: 300px;\n overflow: visible;\n margin: 1rem 0 0 2rem;\n\n .recharts-responsive-container {\n margin-bottom: 0;\n }\n\n .recharts-surface {\n margin-left: 0 !important;\n }\n\n .recharts-text {\n font-weight: 300;\n font-size: 13px;\n }\n }\n\n .recharts-surface {\n overflow: visible;\n }\n\n .chart-tooltip {\n width: 200px;\n height: 60px;\n background-color: white;\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.2);\n padding: 0.5rem 1rem;\n display: flex;\n flex-direction: column;\n\n text {\n &:first-of-type {\n font-weight: 500;\n }\n &:last-of-type {\n color: var(--ant-primary-8);\n }\n }\n }\n\n .info-section {\n margin-top: 8px;\n div {\n display: flex;\n span {\n &:first-of-type {\n width: 160px;\n }\n &:not(:first-of-type) {\n margin-left: 16px;\n }\n }\n }\n h5 {\n color: var(--velotax-font-color-light);\n }\n }\n\n .info-title {\n font-size: 13px;\n margin: 1rem 0 0 0;\n\n &:first-of-type {\n margin: 0;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .ant-collapse-header {\n height: 64px;\n padding: 20px 48px 20px 16px !important;\n .ant-collapse-arrow {\n right: 16px !important;\n }\n .header {\n .title {\n font-size: 1rem;\n span {\n margin-left: 8px;\n font-size: 0.675rem;\n }\n }\n .posicao {\n font-size: 0.875rem;\n }\n }\n }\n .row-section {\n flex-wrap: wrap;\n .chart-section {\n margin: 0;\n }\n }\n .ant-collapse-content {\n .ant-collapse-content-box {\n padding: 0 16px 24px 16px;\n & > div {\n & > span:first-child {\n width: 128px;\n font-size: 0.75rem;\n letter-spacing: -0.5px;\n }\n & > span:not(:first-child) {\n font-size: 0.75rem;\n letter-spacing: -0.8px;\n }\n }\n }\n }\n }\n`;\n","import { Input } from \"antd\";\nimport Masked from \"react-input-mask\";\nimport { ReactNode } from \"react\";\nimport NumberFormat from \"react-number-format\";\nimport { InputLabel, MenuItem, Select } from \"@mui/material\";\n\ninterface InputParams {\n label?: ReactNode;\n disabled?: boolean;\n placeholder?: string;\n maxLength?: number;\n className?: string;\n}\n\ninterface MaskInputParams extends InputParams {\n mask?: string;\n}\n\ninterface NumberInputParams extends InputParams {\n prefix?: string;\n decimalScale?: number;\n allowNegative?: boolean;\n}\n\ninterface SelectInputParams extends InputParams {\n defaultValue?: any;\n options?: { label: ReactNode; value: any }[];\n value?: any;\n}\n\nexport const TextInput = ({ placeholder, disabled }: InputParams) => (\n \n);\n\nexport const SelectLabled = ({\n options,\n label,\n disabled,\n value,\n defaultValue,\n ...rest\n}: SelectInputParams & {\n onChange?: Function;\n value?: any;\n defaultValue?: any;\n}) => {\n const handleChange = (e: any) => {\n rest.onChange?.(e.target.value);\n };\n\n return (\n <>\n {label}\n \n {options?.map((option) => (\n \n {option.label}\n \n ))}\n \n \n );\n};\n\nexport const SelectInput = (props: SelectInputParams) => {\n return ;\n};\n\nexport const NumberInput = ({\n prefix = \"\",\n disabled = false,\n decimalScale = 2,\n placeholder = \"\",\n allowNegative = false,\n}: NumberInputParams) => (\n \n);\n\nexport const MaskInput = ({\n mask = \"\",\n placeholder = \"\",\n disabled = false,\n}: MaskInputParams) => (\n \n);","import { ReactNode } from \"react\";\nimport { FormItemProps } from \"antd\";\nimport { currencyToNumber } from \"../../utils\";\nimport { MaskInput, NumberInput, TextInput, SelectInput } from \"../inputs\";\nimport {\n validationFieldRequired,\n validationDate,\n validationNumberFieldPositive,\n} from \"../../utils/formValidations\";\n\ninterface FormItemParams extends FormItemProps {\n name: string;\n span?: number;\n align?: \"end\";\n disabled?: boolean;\n placeholder?: string;\n onChange?: (changed: any, values: any) => any;\n hide?: ((data: any) => boolean) | boolean;\n}\n\ninterface NumberFormItemParams extends FormItemParams {\n prefix?: string;\n decimalScale?: number;\n allowNegative?: boolean;\n}\n\ninterface MaskFormItemParams extends FormItemParams {\n label?: string;\n mask?: string;\n}\n\ninterface SelectFormItemParams extends FormItemParams {\n options: any;\n renderItem?: any;\n defaultValue?: any;\n mustUpdate?: boolean;\n value?: any;\n}\n\nexport const MaskFormItem = ({\n mask,\n placeholder,\n disabled,\n ...rest\n}: MaskFormItemParams) => ({\n ...rest,\n input: MaskInput({\n mask,\n placeholder,\n disabled,\n }),\n});\n\nexport const DateFormItem = ({\n rules = [],\n placeholder,\n disabled,\n mask,\n ...rest\n}: MaskFormItemParams) => ({\n ...rest,\n rules: rules.length > 0 ? rules : validationDate,\n input: MaskInput({\n mask: mask ?? \"99/99/9999\",\n placeholder: placeholder || \"01/01/2021\",\n disabled,\n }),\n});\n\nexport const TextFormItem = ({\n rules = [],\n placeholder,\n disabled,\n ...rest\n}: FormItemParams) => ({\n ...rest,\n rules,\n input: TextInput({ placeholder, disabled }),\n});\n\nexport const SelectFormItem = ({\n placeholder,\n disabled,\n options,\n label,\n rules,\n value,\n defaultValue,\n ...rest\n}: SelectFormItemParams) => ({\n ...rest,\n getValueFromEvent: undefined,\n rules: rules ?? validationFieldRequired,\n input: SelectInput({\n placeholder,\n disabled,\n options,\n label,\n defaultValue,\n value,\n }),\n});\n\nexport const NumberFormItem = ({\n name,\n label,\n rules = [],\n prefix = \"\",\n disabled = false,\n placeholder = \"\",\n decimalScale = 2,\n allowNegative = false,\n onChange,\n}: NumberFormItemParams) => ({\n name,\n label,\n rules,\n placeholder,\n input: NumberInput({\n prefix,\n decimalScale,\n placeholder,\n allowNegative,\n disabled,\n }),\n onChange: onChange\n ? onChange\n : (changed: any, values: any) =>\n changed[name]\n ? Number(changed[name].replace(/\\./g, \"\").replace(\",\", \".\")) || 0\n : values[name],\n});\n\nexport const CurrencyFormItem = ({\n name,\n label,\n rules = [],\n prefix = \"R$ \",\n disabled = false,\n decimalScale = 2,\n placeholder = \"R$ 0,00\",\n allowNegative = false,\n onChange,\n ...rest\n}: NumberFormItemParams) => ({\n ...rest,\n name,\n label,\n placeholder,\n rules: rules.length > 0 ? rules : validationNumberFieldPositive,\n input: NumberInput({\n prefix,\n decimalScale,\n placeholder,\n allowNegative,\n disabled,\n }),\n onChange: onChange\n ? onChange\n : (changed: any, values: any) =>\n changed[name] ? currencyToNumber(changed[name], prefix) : values[name],\n});\n","import clsx from \"clsx\";\nimport { useState } from \"react\";\nimport { VscClose } from \"react-icons/vsc\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { Form, List, message } from \"antd\";\nimport NumberFormat from \"react-number-format\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport {\n currencyToNumber,\n errorMessage,\n formatCurrency,\n isMobile,\n numberToPercentage,\n replaceDotByComma,\n zero,\n} from \"../../utils\";\nimport {\n validationDateIsOnReferenceMonth,\n validationFieldRequired,\n validationNumberAllowNegativeField,\n validationNumberFieldPositive,\n} from \"../../utils/formValidations\";\nimport {\n CurrencyFormItem,\n DateFormItem,\n NumberFormItem,\n TextFormItem,\n SelectFormItem\n} from \"../formItems\";\nimport { Link } from \"react-router-dom\";\nimport {\n IDarf,\n IDarfBolsa,\n JurosModalProps,\n MinPriceModalProps,\n MultaModalProps,\n minDarfPrice,\n} from \"../darf\";\n\nexport const TipoMercado: { [key: string]: string } = {\n mercado: \"Mercado à vista\",\n mercadoAVista: \"Mercado a Vista\",\n mercadoOpcoes: \"Mercado de opções\",\n outros: \"Outros mercados\",\n mercadoFracionario: \"Merc. Fracionário\",\n opcaoCompra: \"Opção de Compra\",\n opcaoVenda: \"Opção de Venda\",\n dayTrade: \"Day Trade\",\n};\n\nexport const TipoOperacao: { [key: string]: string } = {\n comum: \"Comum\",\n daytrade: \"Day Trade\",\n fii: \"FII\",\n};\n\nexport const defaultDarf: IDarf = {\n totalAlienado: 0,\n impostoDevido: 0,\n impostoTotal: 0,\n impostoAcumulado: 0,\n totalImpostoDevido: 0,\n aliquotaDevida: 0,\n totalGanho: 0,\n juros: 0,\n multa: 0,\n memoriaCalculo: [],\n status: \"REGULAR\",\n};\n\nexport const defaultDarfBolsa: IDarfBolsa = {\n alienacoesComum: 0,\n alienacoesDT: 0,\n alienacoesFII: 0,\n impostoComumFinal: 0,\n impostoDTFinal: 0,\n impostoFIIFinal: 0,\n impostoTotal: 0,\n impostoTotalFinal: 0,\n irrfComum: 0,\n irrfDayTrade: 0,\n irrfFII: 0,\n irrfTotal: 0,\n jurosAux: 0,\n mercadoOpcoesDT: 0,\n mercadoOutrosComum: 0,\n mercadoOutrosDT: 0,\n mercadoVistaComum: 0,\n mercadoVistaDT: 0,\n multaAux: 0,\n memoriaCalculo: [],\n impostoAcumulado: 0,\n prejuizoComum: 0,\n prejuizoDayTrade: 0,\n prejuizoFII: 0,\n};\n\nconst IRRFModalProps = {\n title: <>IRRF (Imposto de Renda Retido na Fonte),\n content: (\n
\n

\n Operações Comuns e FIIs: As operações comuns realizadas em bolsas de\n valores, de mercadorias, de futuros e de FIIs estão sujeitas à retenção\n do imposto sobre a renda incidente na fonte à alíquota de 0,005% sobre o\n volume alienado.\n

\n

\n Operações Day Trade: As operações de Day Trade estão sujeitas à retenção\n do imposto sobre a renda incidente na fonte à alíquota de 1% do ganho,\n independente do volume alienado no mês.\n

\n
\n ),\n};\n\nconst AliquotaModalProps = {\n title: \"Alíquota sobre ganhos com criptoativos\",\n content: (\n
\n

\n Caso o valor total vendido no mês seja superior a R$ 35 mil, os ganhos\n obtidos serão tributados a título de ganho de capital. As alíquotas\n (percentuais) aplicadas sobre o lucro são progressivas:\n

\n \n \n a) 15% sobre a parcela dos ganhos que não ultrapassar R$ 5.000.000,00;\n \n \n b) 17,5% sobre a parcela dos ganhos que exceder R$ 5.000.000,00 e não\n ultrapassar R$ 10.000.000,00;\n \n \n c) 20% sobre a parcela dos ganhos que exceder R$ 10.000.000,00 e não\n ultrapassar R$ 30.000.000,00; e\n \n \n d) 22,5% sobre a parcela dos ganhos que ultrapassar R$ 30.000.000,00.\n \n \n
\n ),\n};\n\ninterface IEdit {\n value: any;\n id: string;\n isEditting: boolean;\n}\ninterface DarfResultDescriptionsProps {\n id: string;\n label: (onClick: Function) => React.ReactNode;\n Component: React.FC<{\n data: IDarfBolsa;\n url: string;\n year: number;\n month: number;\n loading: boolean;\n disabled: boolean;\n view?: boolean;\n handleEdit?: Function;\n setDataCripto?: React.Dispatch>;\n setDataBolsa?: React.Dispatch>;\n valorPrincipal?: number;\n getTaxes?: (\n a?: boolean,\n b?: boolean,\n atualizouImpostoAcumulado?: boolean,\n nAtualizarPrejuizosAcumulados?: boolean\n ) => void;\n }>;\n}\n\nexport const DarfResultDescriptions: DarfResultDescriptionsProps[] = [\n {\n id: \"impostoTotal\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data, view }) => {\n return formatCurrency(\n Math.max(\n 0,\n Number(\n (data.impostoComumFinal || 0) +\n (data.impostoDTFinal || 0) +\n (data.impostoFIIFinal || 0)\n ) +\n (Number(data[\"impostoAcumulado\"] || 0) -\n Number(data[\"irrfTotal\"] || 0))\n )\n );\n },\n },\n {\n id: \"impostoTotal\",\n label: () => (\n \n (+) Imposto devido\n \n ),\n Component: ({ data, view }) => {\n return formatCurrency(\n Number(\n (data.impostoComumFinal || 0) +\n (data.impostoDTFinal || 0) +\n (data.impostoFIIFinal || 0)\n )\n );\n },\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passados abaixo de R$ {minDarfPrice}\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({\n data,\n year,\n month,\n loading,\n disabled,\n setDataBolsa,\n setDataCripto,\n url,\n getTaxes,\n }) => {\n const { currentPage } = useBroker();\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data[id as keyof (IDarf | IDarfBolsa)];\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n (currentPage?.api || apis)\n .post(`${url}/updateDataDarf`, {\n year,\n month: month + 1,\n [edit.id]: edit.value,\n })\n .then(() => {\n getTaxes?.(true, true, true, true);\n return (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }));\n })\n .catch(() => message.error(errorMessage))\n .finally(() => handleEditValueCancel());\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n {!isMobile() && (\n \n {isMobile() && (\n
\n ) : (\n \n {formatCurrency(Number(data.impostoAcumulado || 0))}\n {disabled && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"irrfTotal\",\n label: (onClick: any) => (\n \n (-) Imposto de Renda Retido na Fonte\n }\n onClick={() => onClick(IRRFModalProps)}\n />\n \n ),\n Component: ({ data, handleEdit, view }) => (\n \n {formatCurrency(Number((data as IDarfBolsa)[\"irrfTotal\"] || 0))}\n {!view && (\n }\n onClick={() => handleEdit?.()}\n />\n )}\n \n ),\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data, view, valorPrincipal }) =>\n // view\n // ? formatCurrency(data[\"multa\"] || 0)\n // :\n formatCurrency(\n (valorPrincipal || 0) < minDarfPrice ? 0 : data[\"multa\"] || 0\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data, view, valorPrincipal }) =>\n // view\n // ? formatCurrency(data[\"juros\"] || 0)\n // :\n formatCurrency(\n (valorPrincipal || 0) < minDarfPrice ? 0 : Number(data[\"juros\"] || 0)\n ),\n },\n];\n\nexport const DarfImpostosDevidosDescriptions = [\n {\n id: \"totalGanho\",\n label: () => \"Ganho total\",\n },\n {\n id: \"aliquotaDevida\",\n label: (onClick: any) => (\n
\n (x) Alíquota devida\n }\n onClick={() => onClick(AliquotaModalProps)}\n />\n
\n ),\n render: (data: any) =>\n `${replaceDotByComma(\n Number((data[\"aliquotaDevida\"] || 0).toFixed(2))\n )} %`,\n },\n {\n id: \"impostoDevido\",\n label: () => \"Imposto devido\",\n render: (data: any, view?: boolean) =>\n formatCurrency(\n !view\n ? Number(data[\"impostoDevido\"] || 0)\n : Number(data[\"impostoDevido\"] || 0) -\n Number(data[\"impostoDevido\"] ? data[\"impostoAcumulado\"] || 0 : 0)\n ),\n },\n];\n\nexport const AddTransactionFormItemRows = (hasLandingSide: boolean) => {\n if (!hasLandingSide)\n return [\n [FormItemsBolsa.id],\n [FormItemsBolsa.code(\"Ex: PETR3\")],\n [FormItemsBolsa.quantity(\"Ex: 100\")],\n [FormItemsBolsa.avgBuyPrice],\n ];\n\n return [\n [FormItemsBolsa.id],\n [FormItemsBolsa.code(\"Ex: PETR3\")],\n [FormItemsBolsa.quantity(\"Ex: 100\")],\n [FormItemsBolsa.avgBuyPrice],\n [FormItemsBolsa.lendingSide],\n ];\n};\n\nexport const AddTransactionGOVFormItemRows = (hasLandingSide: boolean) => {\n if (!hasLandingSide)\n return [\n [FormItemsBolsa.id],\n [FormItemsBolsa.code(\"Ex: PETR3\")],\n [FormItemsBolsa.quantity(\"Ex: 100\")],\n [FormItemsBolsa.avgBuyPriceGOV],\n ];\n\n return [\n [FormItemsBolsa.id],\n [FormItemsBolsa.code(\"Ex: PETR3\")],\n [FormItemsBolsa.quantity(\"Ex: 100\")],\n [FormItemsBolsa.avgBuyPriceGOV],\n [FormItemsBolsa.lendingSide],\n ];\n};\n\nconst FormItemsBolsa = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n date: (month: number, year: number) =>\n DateFormItem({\n name: \"date\",\n label: \"Data\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n code: (placeholder: string) =>\n TextFormItem({\n name: \"code\",\n label: \"Ativo\",\n placeholder,\n rules: validationFieldRequired,\n }),\n quantity: (placeholder: string) =>\n NumberFormItem({\n name: \"quantity\",\n label: \"Quantidade\",\n placeholder,\n decimalScale: 12,\n rules: validationNumberFieldPositive,\n }),\n avgBuyPrice: CurrencyFormItem({\n name: \"avgBuyPrice\",\n // label: \"Custo médio de compra (por ação)\",\n label: \"Custo de compra\",\n }),\n avgBuyPriceGOV: CurrencyFormItem({\n name: \"avgBuyPrice\",\n label: \"Custo médio de compra (por ação)\",\n }),\n price: CurrencyFormItem({ name: \"price\", label: \"Preço de venda\" }),\n feeB3: CurrencyFormItem({ name: \"feeB3\", label: \"Taxas\" }),\n capitalGain: CurrencyFormItem({\n name: \"capitalGain\",\n label: \"Ganho\",\n disabled: true,\n allowNegative: true,\n rules: validationNumberAllowNegativeField,\n onChange: (changed, values) => {\n const precoVenda = changed.price\n ? currencyToNumber(changed.price)\n : values.price;\n const custoCompra = changed.avgBuyPrice\n ? currencyToNumber(changed.avgBuyPrice)\n : values.avgBuyPrice;\n const taxas = changed.feeB3\n ? currencyToNumber(changed.feeB3)\n : values.feeB3;\n return Number(values.quantity) * (precoVenda - custoCompra) - taxas;\n },\n }),\n operacao: SelectFormItem({\n name: \"operacao\",\n label: \"Operação\",\n placeholder: \"Selecione\",\n mustUpdate: true,\n options: [\n { label: \"Comum\", value: \"Comum\" },\n { label: \"Day Trade\", value: \"Day Trade\" },\n { label: \"Fundos Imobiliários\", value: \"FII\" },\n ],\n }),\n market: ({ data }: any) =>\n SelectFormItem({\n name: \"market\",\n label: \"Mercado\",\n placeholder: \"Selecione\",\n options: [\n { label: \"Mercado à vista\", value: \"Mercado a Vista\" },\n ...(data.operacao !== \"FII\"\n ? [\n { label: \"Mercado de opções\", value: \"Mercado de opções\" },\n { label: \"Outros mercados\", value: \"Outros mercados\" },\n ]\n : []),\n ],\n disabled: data.operacao === \"FII\",\n onChange: (changed, values) =>\n values.operacao === \"FII\" && values.market !== \"Mercado a Vista\"\n ? \"Mercado a Vista\"\n : values.market,\n }),\n lendingSide: SelectFormItem({\n name: \"lendingSide\",\n label: \"Posição\",\n placeholder: \"Selecione\",\n mustUpdate: true,\n options: [\n { label: \"Doador\", value: \"Doador\" },\n { label: \"Tomador\", value: \"Tomador\" },\n ],\n }),\n};\n\nconst FormItemsDoacoesHerancas = {\n _id: TextFormItem({\n name: \"_id\",\n label: \"Id\",\n hidden: true,\n }),\n dateView: DateFormItem({\n name: \"dateView\",\n label: \"Data\",\n placeholder: `01/01/2021`,\n mask: `99/99/9999`,\n }),\n code: (placeholder: string) =>\n TextFormItem({\n name: \"code\",\n label: \"Ativo\",\n placeholder,\n rules: validationFieldRequired,\n }),\n quantity: (placeholder: string) =>\n NumberFormItem({\n name: \"quantity\",\n label: \"Quantidade\",\n placeholder,\n decimalScale: 12,\n rules: validationNumberFieldPositive,\n }),\n price: CurrencyFormItem({ name: \"price\", label: \"Custo médio de compra (por ação)\" }),\n};\n\nconst PrejuFormItems = {\n userPrejuizoComum: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoComum\",\n label: \"Prejuízo Comum\",\n }),\n userPrejuizoDayTrade: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoDayTrade\",\n label: \"Prejuízo Day Trade\",\n }),\n userPrejuizoFII: (disabled: boolean) =>\n CurrencyFormItem({\n disabled,\n name: \"userPrejuizoFII\",\n label: \"Prejuízo FII\",\n }),\n};\n\nconst IrrfFormItem = {\n userIrrfComum: CurrencyFormItem({\n name: \"userIrrfComum\",\n label: \"IRRF Comum\",\n }),\n userIrrfDayTrade: CurrencyFormItem({\n name: \"userIrrfDayTrade\",\n label: \"IRRF Day Trade\",\n }),\n userIrrfFII: CurrencyFormItem({\n name: \"userIrrfFII\",\n label: \"IRRF FII\",\n }),\n userIrrfTotal: CurrencyFormItem({\n name: \"userIrrfTotal\",\n label: \"IRRF Total (Comum + Day Trade + FII)\",\n disabled: true,\n onChange: (changed, values) => {\n const userIrrfComum = changed.userIrrfComum\n ? currencyToNumber(changed.userIrrfComum)\n : values.userIrrfComum;\n const userIrrfDayTrade = changed.userIrrfDayTrade\n ? currencyToNumber(changed.userIrrfDayTrade)\n : values.userIrrfDayTrade;\n const userIrrfFII = changed.userIrrfFII\n ? currencyToNumber(changed.userIrrfFII)\n : values.userIrrfFII;\n return (\n Number(userIrrfComum ?? 0) +\n Number(userIrrfDayTrade ?? 0) +\n Number(userIrrfFII ?? 0)\n );\n },\n }),\n};\n\nexport const CustoMedioModal = {\n title: \"Custo Médio\",\n content: (\n
\n

\n Preencha o custo médio do ativo na aba{\" \"}\n \n Posição 31-12-2019\n \n .\n

\n
\n ),\n};\n\nexport const IrrfFormItemRows = [\n [IrrfFormItem.userIrrfComum],\n [IrrfFormItem.userIrrfDayTrade],\n [IrrfFormItem.userIrrfFII],\n [IrrfFormItem.userIrrfTotal],\n];\n\nexport const PrejuFormItemRows = (disabled: boolean) => [\n [PrejuFormItems.userPrejuizoComum(disabled)],\n [PrejuFormItems.userPrejuizoDayTrade(disabled)],\n [PrejuFormItems.userPrejuizoFII(disabled)],\n];\n\nexport const DarfBolsaFormItemRows = (month: number, year: number) => [\n [FormItemsBolsa.id],\n [FormItemsBolsa.operacao, FormItemsBolsa.market],\n [FormItemsBolsa.date(month, year), FormItemsBolsa.code(\"Ex: PETR3\")],\n [FormItemsBolsa.quantity(\"Ex: 100\"), FormItemsBolsa.price],\n [FormItemsBolsa.avgBuyPrice, FormItemsBolsa.feeB3],\n [FormItemsBolsa.capitalGain],\n];\n\nexport const DoacoesHerancasRows = () => [\n [FormItemsDoacoesHerancas._id],\n [FormItemsDoacoesHerancas.code(\"Ex: PETR3\")],\n [FormItemsDoacoesHerancas.dateView],\n [FormItemsDoacoesHerancas.quantity(\"Ex: 100\")],\n [FormItemsDoacoesHerancas.price],\n];\n\nexport const DarfBolsaTabs: (\n data: IDarfBolsa,\n rest: any\n) => { class: string; tabs: { content: React.ReactNode }[] }[] = (\n data,\n rest\n) => [\n {\n class: \"header\",\n tabs: [\n {\n content: \"\",\n },\n {\n content: \"Comum\",\n },\n {\n content: \"Day Trade\",\n },\n {\n content: \"FII\",\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"Resultado\",\n },\n {\n content: formatCurrency(data.varTotaisComum ?? 0),\n },\n {\n content: formatCurrency(data.varTotaisDT ?? 0),\n },\n {\n content: formatCurrency(data.varTotaisFII ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"Ganhos tributáveis\",\n },\n {\n content: formatCurrency(data.ganhoComum ?? 0),\n },\n {\n content: formatCurrency(data.ganhoDT ?? 0),\n },\n {\n content: formatCurrency(data.ganhoFII ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: (\n <>\n (-) Prejuízos a compensar\n {!rest.view && (\n }\n onClick={rest.handleEditPreju}\n />\n )}\n \n ),\n },\n {\n content: formatCurrency(\n data.userPrejuizoComum ?? data.prejuizoComum ?? 0\n ),\n },\n {\n content: formatCurrency(\n data.userPrejuizoDayTrade ?? data.prejuizoDayTrade ?? 0\n ),\n },\n {\n content: formatCurrency(data.userPrejuizoFII ?? data.prejuizoFII ?? 0),\n },\n ],\n },\n // {\n // class: \"sub-header\",\n // tabs: [\n // {\n // content: \"Base de cálculo\",\n // },\n // {\n // content: formatCurrency(\n // Math.max(\n // (data.ganhoComum ?? 0) -\n // (data.userPrejuizoComum\n // ? data.userPrejuizoComum ?? 0\n // : data.prejuizoComum ?? 0),\n // 0\n // )\n // ),\n // },\n // {\n // content: formatCurrency(\n // Math.max(\n // (data.ganhoDT ?? 0) -\n // (data.userPrejuizoDayTrade\n // ? data.userPrejuizoDayTrade ?? 0\n // : data.prejuizoDayTrade ?? 0),\n // 0\n // )\n // ),\n // },\n // {\n // content: formatCurrency(\n // Math.max(\n // (data.ganhoFII ?? 0) -\n // (data.userPrejuizoFII\n // ? data.userPrejuizoFII ?? 0\n // : data.prejuizoFII ?? 0),\n // 0\n // )\n // ),\n // },\n // ],\n // },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"(x) Alíquota devida\",\n },\n {\n content: {numberToPercentage(15, 0)},\n },\n {\n content: {numberToPercentage(20, 0)},\n },\n {\n content: {numberToPercentage(20, 0)},\n },\n ],\n },\n {\n class: \"sub-header strong\",\n tabs: [\n {\n content: \"Imposto devido\",\n },\n {\n content: formatCurrency(data.impostoComumFinal ?? 0),\n },\n {\n content: formatCurrency(data.impostoDTFinal ?? 0),\n },\n {\n content: formatCurrency(data.impostoFIIFinal ?? 0),\n },\n ],\n },\n];\n","import moment from \"moment\";\nimport { Typography } from \"antd\";\nimport React, { Dispatch, SetStateAction } from \"react\";\nimport { DownCircleOutlined, InfoCircleOutlined } from \"@ant-design/icons\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { PosicaoCardStyled } from \"./styles\";\nimport Loading from \"../../../components/Loading\";\nimport { Posicao } from \"../../../contexts/CarteiraContext\";\nimport { CustoMedioModal } from \"../../../constants/darfBolsa\";\nimport { formatCurrency, numberToPercentageWallet } from \"../../../utils\";\n\nconst negativeToPositive = (n: number) => (n < 0 ? n * -1 : n);\n\nconst signal = (n: number) => (n > 0 ? \"+\" : n < 0 ? \"-\" : \"\");\n\nconst className = (n: number) => (n === 0 ? \"\" : n > 0 ? \"success\" : \"error\");\n\nexport const LucroPrejuizo: React.FC<{ n?: number; p?: number }> = ({\n n,\n p,\n}) => (\n \n {signal(n || 0)}\n {formatCurrency(negativeToPositive(n || 0))} ({signal(n || 0)}\n {numberToPercentageWallet(negativeToPositive(p || 0))})\n \n);\n\nexport const HidenValue: React.FC<{\n block?: boolean;\n strong?: boolean;\n currency?: boolean;\n}> = ({ block, strong, currency = true }) => {\n const value = `${currency ? \"R$ \" : \"\"}****`;\n const content = strong ? {value} : value;\n return block ?
{content}
: {content};\n};\n\ninterface PosicaoCardProps {\n key: string;\n posicao?: Partial;\n hideValues?: boolean;\n setHelpModal: Dispatch>;\n details?: any;\n loading?: boolean;\n}\n\nexport const PosicaoHeader = (\n posicao?: Partial,\n hideValues?: boolean\n) => {\n return (\n
\n
\n {posicao?.codigo || \"GOOGL\"}\n
\n
\n {hideValues ? (\n \n ) : (\n (posicao?.precoAtual || posicao?.posicao)\n ? formatCurrency(\n posicao?.categoria === \"TesouroDireto\"\n ? posicao?.precoAtual || 0\n : posicao?.posicao || 0\n )\n : formatCurrency(negativeToPositive(posicao?.lucroPrejuizoTotal || 0))\n )}\n
\n
\n );\n};\n\nexport const PosicaoBody = (\n posicao: Partial,\n setHelpModal: Dispatch>,\n hideValues?: boolean,\n details?: any,\n loading?: boolean\n) => {\n return (\n <>\n
\n Quantidade:\n \n {hideValues ? : posicao.quantidade}\n \n
\n \n
\n {posicao?.loan?.typeLoan === \"Tomador\" && (\n <>\n Preço de venda:\n \n {hideValues ? (\n \n ) : (\n formatCurrency(posicao.precoVenda || 0)\n )}\n \n \n )}\n
\n {posicao.hasPosition2019 && posicao?.loan?.typeLoan !== \"Tomador\" && (\n \n posicao.custoMedio === 0 || !posicao.custoMedio\n ? setHelpModal(CustoMedioModal)\n : null\n }\n >\n Custo médio de compra: \n \n {posicao.custoMedio === 0 || !posicao.custoMedio ? (\n \n ) : (\n formatCurrency(posicao.custoMedio)\n )}\n \n \n )}\n {!posicao.hasPosition2019 && posicao?.loan?.typeLoan !== \"Tomador\" && (\n
\n {posicao.categoria === \"TesouroDireto\" ? (\n Valor Aplicado:\n ) : (\n Custo médio de compra:\n )}\n \n {posicao.custoMedio === 0 || !posicao.custoMedio ? (\n \"N/A\"\n ) : hideValues ? (\n \n ) : (\n formatCurrency(posicao.custoMedio)\n )}\n \n
\n )}\n {posicao.categoria !== \"TesouroDireto\" &&\n posicao.categoria !== \"Bonds\" && (\n \n )}\n {posicao.hasPosition2019 && (\n \n posicao.lucroPrejuizoTotal === 0 || !posicao.lucroPrejuizoTotal\n ? setHelpModal(CustoMedioModal)\n : null\n }\n >\n Lucro/prejuízo total:{\" \"}\n {posicao.lucroPrejuizoTotal === 0 || !posicao.lucroPrejuizoTotal ? (\n \n ) : (\n \n )}\n \n )}\n {!posicao.hasPosition2019 && (\n \n )}\n {details &&\n (details?.marketCap !== \"N/A\" ||\n details?.beta !== \"N/A\" ||\n details?.peRatio !== \"N/A\" ||\n details?.earningDate !== \"N/A\" ||\n details?.dividendYield !== \"N/A\" ||\n details?.targetPrice !== \"N/A\" ||\n details?.enterpriseValueRevenue !== \"N/A\" ||\n details?.enterpriseValueEbitda !== \"N/A\") && (\n <>\n
\n
\n
\n \n Negociação\n \n
\n Captalização de mercado:\n \n {hideValues ? (\n \n ) : (\n <>\n {formatCurrency(\n Number(details?.marketCap || 0) / 1000000000\n )}{\" \"}\n B\n \n )}\n \n
\n
\n Preço-alvo da ação:\n \n {hideValues ? (\n \n ) : typeof details?.targetPrice === \"string\" ? (\n details?.targetPrice\n ) : (\n formatCurrency(details?.targetPrice)\n )}\n \n
\n
\n Dividend yield (1YFW):\n \n {hideValues ? (\n \n ) : typeof details?.dividendYield === \"string\" ? (\n details?.dividendYield\n ) : (\n `${(details?.dividendYield * 100)?.toFixed(2)}%`\n )}\n \n
\n
\n Divulgação de resultados:\n \n {hideValues ? (\n \n ) : (\n details?.earningDate\n )}\n \n
\n \n Avaliação\n \n {/*
\n Beta:\n \n {hideValues ? : typeof details?.beta !== 'string' ? details?.beta?.toFixed(2) : details?.beta}\n \n
*/}\n
\n EV/Receita (1YFW):\n \n {hideValues ? (\n \n ) : (\n `${\n typeof details?.enterpriseValueRevenue !== \"string\"\n ? `${details?.enterpriseValueRevenue?.toFixed(1)} x`\n : details?.enterpriseValueRevenue\n }`\n )}\n \n
\n
\n EV/EBITDA (1YFW):\n \n {hideValues ? (\n \n ) : (\n `${\n typeof details?.enterpriseValueEbitda !== \"string\"\n ? `${details?.enterpriseValueEbitda?.toFixed(1)} x`\n : details?.enterpriseValueEbitda\n }`\n )}\n \n
\n
\n P/E (1YFW):\n \n {hideValues ? (\n \n ) : (\n `${\n typeof details?.peRatio !== \"string\"\n ? `${details?.peRatio?.toFixed(1)}`\n : details?.peRatio\n } x`\n )}\n \n
\n
\n {details?.chart?.length && (\n
\n \n \n \n \n \n \n \n \n {\n const date = new Date(v);\n return `${date.getMonth() + 1}/${date.getFullYear()}`;\n }}\n />\n \n \n (\n
\n \n {moment(new Date(label)).format(\"DD/MM/YYYY\")}\n \n \n Cotação:{\" \"}\n {formatCurrency(Number(payload?.[0]?.value || 0))}\n \n
\n )}\n />\n \n \n
\n
\n )}\n
\n \n )}\n {loading && (\n
\n \n
\n )}\n \n );\n};\n\nexport const PosicaoCard = ({\n key,\n posicao,\n hideValues,\n setHelpModal,\n details,\n loading,\n}: PosicaoCardProps) => (\n \n {posicao\n ? PosicaoBody(posicao, setHelpModal, hideValues, details, loading)\n : null}\n \n);\n\nexport const ExpandIcon = ({ isActive }: { isActive?: boolean }) => (\n \n);\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { GrUpdate } from \"react-icons/gr\";\nimport { AiOutlineLock } from \"react-icons/ai\";\nimport { BiBell, BiCheck } from \"react-icons/bi\";\nimport { BsEye, BsEyeSlash, BsDownload } from \"react-icons/bs\";\nimport { Fragment, useEffect, useMemo, useState } from \"react\";\nimport { InfoCircleOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport {\n Badge,\n Checkbox,\n Col,\n Collapse,\n Row,\n Select,\n Tabs,\n Tooltip,\n Typography,\n message,\n} from \"antd\";\nimport {\n Cell,\n Legend,\n Pie,\n PieChart,\n ResponsiveContainer,\n Tooltip as RechartsTooltip,\n} from \"recharts\";\nimport api from \"../../services/api\";\nimport Button from \"../../components/Button\";\nimport apiBolsa from \"../../services/apiBolsa\";\nimport HandleTag from \"../../services/handleTag\";\nimport { Avisos } from \"../../components/Avisos\";\nimport apiExterior from \"../../services/apiExterior\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { Proventos } from \"../../components/Proventos\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { getProviderColor } from \"../../utils/walletCharts\";\nimport { BlurContent, Container, IsentCardStyled } from \"./styles\";\nimport { useNotification } from \"../../contexts/NotificationContext\";\nimport { Posicao, useCarteira } from \"../../contexts/CarteiraContext\";\nimport { vendasIsentas, vendasTotaisExt } from \"../HistoricBolsa/utils\";\nimport { NotificationDrawer } from \"../../components/NotificationDrawer\";\nimport { ReportTypeDrawer } from \"../../components/ReportType/ReportType\";\nimport { ReactComponent as FiltroIcon } from \"../../assets/icons/filtro.svg\";\nimport { serializePatrimonio, getNomeCorretora } from \"../../utils/patrimonio\";\nimport {\n ExpandIcon,\n HidenValue,\n LucroPrejuizo,\n PosicaoCard,\n} from \"./PosicaoCard\";\nimport {\n download,\n downloadPDF,\n formatCurrency,\n isMobile,\n monthsExtended,\n numberToCurrency,\n} from \"../../utils\";\n\ntype ChartType = \"classe\" | \"posicoes\" | \"corretora\";\n\ninterface CarteiraProps {}\n\nexport const Carteira: React.FC = () => {\n const { notification } = useNotification();\n const { integration, hasExteriorIntegration } = useBroker();\n const {\n user,\n hasPlan,\n hasExpired,\n hasDismissed,\n setDirectPayment,\n showUserPlanModal,\n } = useAuth();\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n const { carteira, lastUpdate, loading, getCarteira, getPatrimonios } =\n useCarteira();\n const [helpModal, setHelpModal] = useState();\n const [hideValues, setHideValues] = useState(false);\n const [ativosChart, setAtivosChart] = useState();\n const [vendasBolsa, setVendasBolsa] = useState(0);\n const [expiredModal, setExpiredModal] = useState(false);\n const [, setDetailedActiveKeys] = useState([]);\n const [loadingReport, setLoadingReport] = useState(false);\n const [corretoras, setCorretoras] = useState([]);\n const [activeKeys, setActiveKeys] = useState([]);\n const [vendasExterior, setVendasExterior] = useState(0);\n const [chartType, setChartType] = useState(\"classe\");\n const [reportDrawerWallet, setReportDrawerWallet] = useState(false);\n const [classesAtivosChart, setClassesAtivosChart] = useState();\n const [detailedPositions, setDetailedPositions] = useState([]);\n const [vendasRestantesBolsa, setVendasRestantesBolsa] = useState(0);\n const [corretorasAtivosChart, setCorretorasAtivosChart] = useState();\n const [checkboxCorretoras, setCheckboxCorretoras] = useState([]);\n const [selectedCorretoras, setSelectedCorretoras] = useState([]);\n const [notificationDrawerOpen, setNotificationDrawerOpen] = useState(false);\n const [filterCorretoraAtivo, setFilterCorretoraAtivo] = useState(\n []\n );\n const [vendasRestantesExterior, setVendasRestantesExterior] =\n useState(0);\n const [showCorretoraFilterModal, setShowCorretoraFilterModal] =\n useState(false);\n const [detailedLoadingIndex, setDetailedLoadingIndex] = useState<\n number | undefined\n >(undefined);\n\n const onCloseHelpModal = () => setHelpModal(undefined);\n\n const checkAll = corretoras.length === checkboxCorretoras.length;\n const indeterminate =\n checkboxCorretoras.length > 0 &&\n checkboxCorretoras.length < corretoras.length;\n\n const largeChart =\n [\n ...(chartType === \"classe\"\n ? classesAtivosChart || []\n : chartType === \"corretora\"\n ? corretorasAtivosChart || []\n : ativosChart || []),\n ].length > 7;\n\n const carteiraCategorizada = useMemo(\n () =>\n carteira.posicoes?.reduce(\n (acc, cur) => ({\n ...acc,\n [cur.categoria]: [...(acc[cur.categoria] || []), cur],\n }),\n {} as { [key: string]: Posicao[] }\n ) || {},\n [carteira.posicoes]\n );\n\n const patrimonioTotalFiltrado = useMemo(\n () =>\n carteira?.posicoes?.reduce(\n (acc, cur) =>\n filterCorretoraAtivo.includes(cur.corretora)\n ? acc + cur.posicao\n : acc,\n 0\n ) || 0,\n [carteira?.posicoes, filterCorretoraAtivo]\n );\n\n const retornoFiltrado = useMemo(\n () =>\n carteira?.posicoes?.reduce(\n (acc, cur) =>\n filterCorretoraAtivo.includes(cur.corretora)\n ? {\n lucroPrejuizoDiario:\n acc.lucroPrejuizoDiario + cur.lucroPrejuizoDiario,\n lucroPrejuizoDiarioPercentualNumerator:\n acc.lucroPrejuizoDiarioPercentualNumerator +\n (cur.categoria === \"TesouroDireto\"\n ? 0\n : cur.resumo?.lucroPrejuizoDiarioPercentualNumerator),\n lucroPrejuizoDiarioPercentualDenominator:\n acc.lucroPrejuizoDiarioPercentualDenominator +\n (cur.categoria === \"TesouroDireto\"\n ? 0\n : cur.resumo?.lucroPrejuizoDiarioPercentualDenominator),\n lucroPrejuizoTotal:\n acc.lucroPrejuizoTotal + cur.lucroPrejuizoTotal,\n lucroPrejuizoTotalPercentualNumerator:\n acc.lucroPrejuizoTotalPercentualNumerator +\n cur.resumo?.lucroPrejuizoTotalPercentualNumerator,\n lucroPrejuizoTotalPercentualDenominator:\n acc.lucroPrejuizoTotalPercentualDenominator +\n cur.resumo?.lucroPrejuizoTotalPercentualDenominator,\n }\n : acc,\n {\n lucroPrejuizoDiario: 0,\n lucroPrejuizoDiarioPercentualNumerator: 0,\n lucroPrejuizoDiarioPercentualDenominator: 0,\n lucroPrejuizoTotal: 0,\n lucroPrejuizoTotalPercentualNumerator: 0,\n lucroPrejuizoTotalPercentualDenominator: 0,\n }\n ) || {\n lucroPrejuizoDiario: 0,\n lucroPrejuizoDiarioPercentualNumerator: 0,\n lucroPrejuizoDiarioPercentualDenominator: 0,\n lucroPrejuizoTotal: 0,\n lucroPrejuizoTotalPercentualNumerator: 0,\n lucroPrejuizoTotalPercentualDenominator: 0,\n },\n [carteira?.posicoes, filterCorretoraAtivo]\n );\n\n const onChangeActiveKeys = (keys: string | string[]) => {\n const isOpenEvent = keys.length > activeKeys.length;\n const lastOpened = keys[keys.length - 1];\n\n setActiveKeys(keys as string[]);\n let codigo =\n lastOpened?.replaceAll(\" \", \"\").split(\"-\")[3] ||\n lastOpened?.replaceAll(\" \", \"\").split(\"-\")[2];\n let market =\n lastOpened?.replaceAll(\" \", \"\").split(\"-\")[0] ||\n lastOpened?.replaceAll(\" \", \"\").split(\"-\")[1];\n let index = lastOpened?.replaceAll(\" \", \"\").split(\"-\")[1];\n if (\n lastOpened.includes(\"Imobiliário\") ||\n lastOpened.includes(\"Traded\") ||\n lastOpened.includes(\"Brazilian\")\n ) {\n codigo = lastOpened?.replaceAll(\" \", \"\").replace(\"-\", \"\").split(\"-\")[2];\n index = lastOpened?.replaceAll(\" \", \"\").replace(\"-\", \"\").split(\"-\")[1];\n }\n\n if (lastOpened && isOpenEvent) {\n setDetailedActiveKeys((detailedActiveKeys) => {\n if (\n !detailedActiveKeys.includes(lastOpened) &&\n keys.length > detailedActiveKeys.length\n ) {\n setDetailedLoadingIndex(Number(index));\n apiBolsa\n .get(`/wallet/detalied/${codigo}`, {\n params: {\n exterior:\n market.toLowerCase() === \"exterior\" ? true : undefined,\n },\n })\n .then(({ data }: any) => {\n setDetailedPositions((positions) => [\n ...positions,\n {\n index,\n codigo: codigo,\n details: data,\n },\n ]);\n return [...detailedActiveKeys, lastOpened];\n })\n .catch(() => {})\n .finally(() => {\n setDetailedLoadingIndex(undefined);\n });\n }\n return detailedActiveKeys;\n });\n }\n };\n\n useEffect(() => {\n getCarteira();\n }, [getCarteira]);\n\n useEffect(() => {\n apiBolsa\n .get(\"/velotax/historic\", {\n params: {\n month: new Date().getMonth() + 1,\n },\n })\n .then((res) => {\n const isentas = vendasIsentas(res?.data)\n setVendasBolsa(isentas);\n setVendasRestantesBolsa(20000 - isentas);\n });\n }, []);\n\n useEffect(() => {\n apiExterior\n .get(\"/velotax/exterior/historic\", {\n params: {\n month: new Date().getMonth() + 1,\n },\n })\n .then((res) => {\n const isentas = vendasTotaisExt(res?.data)\n setVendasExterior(isentas);\n setVendasRestantesExterior(35000 - isentas);\n });\n }, []);\n\n useEffect(() => {\n if (hasExpired && !hasDismissed) {\n setTimeout(() => {\n setExpiredModal(true);\n }, 1500);\n }\n }, [hasExpired, hasDismissed]);\n\n // useEffect(() => {\n // getLucroPrejuizo();\n // }, [getLucroPrejuizo]);\n\n useEffect(() => {\n const { classesAtivos, patrimonio, posicoes } =\n serializePatrimonio(carteira);\n setClassesAtivosChart(classesAtivos);\n setCorretorasAtivosChart(patrimonio);\n setAtivosChart(posicoes);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading]);\n\n useEffect(() => {\n const { classesAtivos, patrimonio, posicoes, corretoras } =\n serializePatrimonio(carteira, selectedCorretoras);\n setClassesAtivosChart(classesAtivos);\n setCorretorasAtivosChart(patrimonio);\n setAtivosChart(posicoes);\n setCorretoras(corretoras);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, selectedCorretoras]);\n\n const renderLegend = (value: string, entry: any) => {\n return {value};\n };\n\n const renderCustomizedLabel = ({\n cx,\n cy,\n midAngle,\n innerRadius,\n outerRadius,\n percent,\n payload,\n }: any) => {\n const RADIAN = Math.PI / 180;\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\n\n return (\n \n {percent * 100 > 5 && `${(percent * 100).toFixed(0)}%`}\n \n );\n };\n\n const downloadAction = async (type: string) => {\n try {\n setLoadingReport(true);\n if (type === \"pdf\") {\n const queryCorretoras =\n filterCorretoraAtivo?.length > 0\n ? `?corretoras=${JSON.stringify(filterCorretoraAtivo).replace(\n /\\]|\"|\\[/g,\n \"\"\n )}`\n : \"\";\n const res = await apiBolsa.get(`/wallet/report${queryCorretoras}`);\n if (res.data.file) {\n downloadPDF(res.data.file, \"Meus investimentos\");\n } else if (res.data.fileUrl) {\n download(res.data.fileUrl);\n }\n message.success(\"O relatório foi enviado para o seu e-mail\");\n } else if (type === \"xlsx\") {\n if (filterCorretoraAtivo?.length > 0) {\n const res = await apiBolsa.post(\"/wallet/report-xlsx\", {\n name: user.user.name,\n email: user.user.email,\n username: user.user.cpf,\n corretoras: filterCorretoraAtivo,\n });\n download(res?.data?.fileUrl);\n } else {\n const data = await getPatrimonios(user?.user?.cpf);\n download(data.fileUrl);\n }\n }\n } catch (err: any) {\n message.error(\n `Não foi possível baixar o relatório de investimentos. Tente novamente mais tarde`\n );\n } finally {\n setLoadingReport(false);\n }\n };\n\n const renderIsentCard = (categoria: string) => {\n if (categoria === \"Ações\" || categoria === \"Exterior\") {\n const vendas = categoria === \"Ações\" ? vendasBolsa : vendasExterior;\n const restante =\n categoria === \"Ações\" ? vendasRestantesBolsa : vendasRestantesExterior;\n const limit = categoria === \"Ações\" ? 20000 : 35000;\n const tipVendas = vendas\n ? `R$ ${String(\n vendas.toLocaleString(\"pt-br\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n })\n )}`\n : \"R$ 0,00\";\n const complete = vendas ? (vendas / limit) * 100 : 0;\n\n return (\n \n {restante <= 0 ? (\n \n O seu limite de vendas isentas foi atingido neste mês\n \n ) : (\n \n Você ainda possui{\" \"}\n \n {formatCurrency(restante)}{\" \"}\n {\" \"}\n em vendas isentas em{\" \"}\n \n {monthsExtended[new Date().getMonth()]}{\" \"}\n {new Date().getFullYear()}\n \n \n )}\n
\n target.parentElement!}\n >\n = 100 ? 100 : complete}%`,\n borderBottomRightRadius: complete >= 100 ? \"50px\" : 0,\n borderTopRightRadius: complete >= 100 ? \"50px\" : 0,\n }}\n >\n
\n {vendas > 2500 ? formatCurrency(vendas) : \"\"}\n
\n
\n \n \n
\n );\n }\n };\n\n return (\n \n
\n
\n \n Meus investimentos\n : }\n onClick={() => setHideValues((value) => !value)}\n />\n {hasPlan && hasPlan.premium && !isBasic && (\n
\n !n.viewed)?.length || 0}\n >\n }\n onClick={() => {\n setNotificationDrawerOpen(true);\n }}\n />\n \n
\n )}\n
\n\n \n {!integration.integrated && !hasExteriorIntegration ? (\n <>\n ) : (\n \n \n {hasPlan && hasPlan.premium && !isBasic && (\n
\n }\n className=\"download-report-btn filter-btn\"\n onClick={() => setShowCorretoraFilterModal(true)}\n >\n Filtrar\n \n target.parentElement!}\n >\n setReportDrawerWallet(true)}\n icon={\n loadingReport ? : \n }\n />\n \n
\n )}\n \n \n \n Investimento total:\n \n \n {loading ? (\n \n ) : !hideValues ? (\n formatCurrency(\n filterCorretoraAtivo.length > 0\n ? patrimonioTotalFiltrado\n : carteira.patrimonioTotal\n )\n ) : (\n \n )}\n \n \n \n \n \n \n Retorno diário:{\" \"}\n {loading ? (\n \n ) : !hideValues ? (\n 0\n ? retornoFiltrado.lucroPrejuizoDiario\n : carteira.lucroPrejuizoDiario\n }\n p={\n filterCorretoraAtivo.length > 0\n ? retornoFiltrado.lucroPrejuizoDiarioPercentualNumerator /\n retornoFiltrado.lucroPrejuizoDiarioPercentualDenominator\n : carteira.lucroPrejuizoDiarioPercentual\n }\n />\n ) : (\n \n )}\n \n \n \n \n Retorno total:{\" \"}\n {loading ? (\n \n ) : !hideValues ? (\n 0\n ? retornoFiltrado.lucroPrejuizoTotal\n : carteira.lucroPrejuizoTotal\n }\n p={\n filterCorretoraAtivo.length > 0\n ? retornoFiltrado.lucroPrejuizoTotalPercentualNumerator /\n retornoFiltrado.lucroPrejuizoTotalPercentualDenominator\n : carteira.lucroPrejuizoTotalPercentual\n }\n />\n ) : (\n \n )}\n \n \n \n \n \n {loading ? (\n \n \n \n ) : carteira?.posicoes?.length > 0 ? (\n <>\n {!loading ? (\n \n <>\n \n \n \n {(chartType === \"classe\"\n ? classesAtivosChart\n : chartType === \"posicoes\"\n ? ativosChart\n : corretorasAtivosChart\n )?.map((entry: any, index: number) => (\n \n ))}\n \n {\n return `${numberToCurrency(\n Number(value)\n )} (${String(payload.percentage).replace(\n \".\",\n \",\"\n )}%)`;\n }}\n />\n \n
\n setChartType(value)}\n getPopupContainer={(target) =>\n target.parentElement!\n }\n >\n \n Por classe de ativo\n \n \n Por corretora\n \n \n Por ativo\n \n \n
\n \n
\n ) : undefined}\n {!hasPlan || !hasPlan.premium || isBasic ? (\n <>\n \n ExpandIcon({ isActive })\n }\n >\n {carteira.posicoes\n .slice(0, 1)\n .map((posicao, index) => (\n \n {PosicaoCard({\n key: index.toString(),\n posicao,\n hideValues,\n setHelpModal,\n })}\n \n ))}\n \n \n \n ExpandIcon({ isActive })\n }\n >\n {Array.from(Array(3).keys()).map((index) => (\n \n {PosicaoCard({\n key: index.toString(),\n hideValues,\n setHelpModal,\n posicao: {\n lucroPrejuizoDiario: 0.01,\n },\n })}\n \n ))}\n \n
\n Contrate o plano premium para ver a lista completa\n de ativos\n }\n onClick={() => {\n showUserPlanModal(true);\n HandleTag(\"54\");\n }}\n >\n PREMIUM\n \n
\n
\n \n ) : (\n ExpandIcon({ isActive })}\n >\n {(filterCorretoraAtivo.length > 0\n ? Object.keys(carteiraCategorizada).filter(\n (categoria) =>\n carteiraCategorizada[categoria].filter(\n (item: any) =>\n filterCorretoraAtivo.includes(\n item?.corretora\n )\n ).length > 0\n )\n : Object.keys(carteiraCategorizada)\n ).map((categoria) => (\n \n \n {categoria === \"TesouroDireto\"\n ? \"Tesouro Direto\"\n : categoria}\n \n \n \n \n }\n >\n \n ExpandIcon({ isActive })\n }\n >\n {(categoria !== \"Exterior\") && renderIsentCard(categoria)}\n {(filterCorretoraAtivo.length > 0\n ? carteiraCategorizada[categoria].filter(\n (item: any) =>\n filterCorretoraAtivo.includes(\n item?.corretora\n )\n )\n : carteiraCategorizada[categoria]\n )\n .sort(\n (a, b) =>\n ((b.categoria === \"TesouroDireto\"\n ? b.precoAtual\n : b.posicao) || 0) -\n ((a.categoria === \"TesouroDireto\"\n ? a.precoAtual\n : a.posicao) || 0)\n )\n .map((posicao, index) => (\n \n {PosicaoCard({\n key: `${categoria}-${index}-${posicao.codigo}`,\n posicao,\n hideValues,\n setHelpModal,\n loading: detailedLoadingIndex === index,\n details: detailedPositions?.find(\n (el: any) =>\n el.codigo === posicao.codigo &&\n Number(el.index) === index\n )?.details,\n })}\n \n ))}\n \n \n ))}\n \n )}\n \n ) : (\n \n Nenhuma posição encontrada\n \n )}\n \n }\n onClick={() => getCarteira(true)}\n className=\"button-refresh-wallet\"\n />\n Atualizado em{\" \"}\n {moment(lastUpdate)\n .utc()\n .local()\n .format(\"DD/MM/YYYY à[s] HH:mm\")}\n \n {hasPlan &&\n hasPlan.premium && !isBasic &&\n carteira.posicoes?.length > 0 && (\n
    \n
  • \n \n As posições são atualizadas em até quatro dias úteis\n após sua negociação (D+4)\n
  • \n
  • \n \n Bonds e/ou operações fora da bolsa de valores não são\n apresentadas na listagem acima.\n
  • \n
\n )}\n \n \n \n \n
\n )}\n
\n \n {helpModal?.content}\n \n {\n api.post(\"/user/dismiss-modal\", { userId: user?.user?.userId });\n setExpiredModal(false);\n }}\n >\n \n \n \n Você precisa renovar o seu plano para continuar utilzando o\n Velotax.\n \n \n {\n showUserPlanModal(true);\n setDirectPayment(true);\n }}\n style={{\n width: \"100%\",\n marginTop: \"30px\",\n marginBottom: \"10px\",\n height: \"50px\",\n fontSize: \"18px\",\n fontWeight: \"bold\",\n }}\n >\n Clique aqui para renovar\n \n \n
\n setNotificationDrawerOpen(false)}\n />\n setReportDrawerWallet(false)}\n setType={(type: string) => downloadAction(type)}\n />\n {\n setShowCorretoraFilterModal(false);\n }}\n footer={\n }\n onClick={() => {\n setShowCorretoraFilterModal(false);\n setSelectedCorretoras(checkboxCorretoras);\n setFilterCorretoraAtivo(\n checkboxCorretoras.map((corretora: string) =>\n getNomeCorretora({ shortName: corretora })\n )\n );\n }}\n >\n Confirmar\n \n }\n >\n \n \n \n \n Corretoras\n \n \n {\n setCheckboxCorretoras(e.target.checked ? corretoras : []);\n }}\n >\n Todas as corretoras\n \n {\n setCheckboxCorretoras(e);\n }}\n >\n \n {corretoras.map((corretora, i) => (\n \n {corretora}\n \n ))}\n \n \n \n \n \n \n \n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n p {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n margin: 0 auto 2rem;\n color: var(--velotax-font-color-ghost);\n span {\n cursor: pointer;\n font-weight: 500;\n color: var(--ant-primary-color);\n }\n }\n\n .ant-descriptions-header {\n margin-bottom: 0px;\n }\n\n h4 {\n color: var(--velotax-font-color);\n }\n\n .content-button {\n display: flex;\n margin: 16px auto;\n align-items: center;\n justify-content: right;\n }\n\n .excluir-container {\n width: 700px;\n margin: 16px auto;\n\n button {\n opacity: 0.8;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n p {\n margin: 0 0 16px;\n }\n\n .excluir-container {\n width: 100%;\n margin: 16px auto 32px;\n\n button {\n margin-right: 24px;\n }\n }\n }\n`;\n","import { LoadingOutlined } from \"@ant-design/icons\";\nimport { Col, Row } from \"antd\";\nimport Button from \"../Button\";\n\ninterface FooterModalProps {\n onCancel: () => void;\n onOk?: () => void;\n disabled?: boolean;\n loading?: boolean;\n saveButtonText?: string;\n}\n\nexport const FooterModal: React.FC = ({ onCancel, onOk, disabled, loading, saveButtonText }) => {\n return (\n \n \n \n \n \n \n {saveButtonText || 'Salvar'}\n {\n loading && \n }\n \n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div``;\n","import { Col, Row, Typography } from \"antd\";\nimport React, { Dispatch, SetStateAction } from \"react\";\nimport Button from \"../../../../Button\";\nimport { ReCaptcha } from \"../../../../ReCaptcha\";\nimport { useAuth } from \"../../../../../contexts/AuthContext\";\n\ninterface IFooterProps {\n currentStep: number;\n handleProceed: () => void;\n setCurrentStep: Dispatch>;\n setReCaptchaToken: Dispatch>;\n backtoRoot?: any;\n typePurchase: string;\n reCaptchaToken?: string;\n selectedCardId?: string;\n changeCardAction?: boolean;\n}\n\nconst Footer: React.FC = ({\n backtoRoot,\n currentStep,\n typePurchase,\n handleProceed,\n setCurrentStep,\n reCaptchaToken,\n changeCardAction,\n setReCaptchaToken,\n}) => {\n const { disabledRecaptcha } = useAuth();\n return (\n \n {currentStep === 2 && (\n \n \n \n )}\n {currentStep !== 3 && currentStep !== 4 && (\n \n \n {currentStep === 1\n ? \"Prosseguir\"\n : typePurchase === \"UNIQUE\"\n ? \"Agendar pagamento\"\n : changeCardAction\n ? \"Agendar pagamento\"\n : \"Agendar pagamento\"}\n \n \n )}\n {currentStep === 2 && (\n \n {\n setCurrentStep((step) => step - 1);\n }}\n >\n Voltar\n \n \n )}\n {currentStep !== 2 && typePurchase !== \"UNIQUE\" && (\n \n \n Ao prosseguir, você declara que aceita nosso{\" \"}\n \n Termo de Contratação\n \n .\n \n \n )}\n \n );\n};\n\nexport default Footer;\n","import { Form, message, Spin } from \"antd\";\nimport React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useState,\n useMemo,\n} from \"react\";\nimport { Container } from \"./styles\";\nimport api from \"../../../services/api\";\nimport Footer from \"./components/Footer\";\nimport { CardList } from \"../../CardList\";\nimport HandleTag from \"../../../services/handleTag\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport { removeSpecialCharacters } from \"../../../utils\";\nimport { CardForm } from \"../CreditCardStep/components/CardForm\";\nimport AddressForm from \"../CreditCardStep/components/AddressForm\";\nimport { ResultScreen } from \"../CreditCardStep/components/ResultScreen\";\nimport { PendingScreen } from \"../CreditCardStep/components/ResultScreen/components/PendingScreen\";\nimport {\n ETypePurchase,\n Plan as IPlan,\n UserPlan,\n UserPlansTypes,\n} from \"../../../constants/plans\";\n\ninterface ICreditCardStepProps {\n closeMainModal: Dispatch>;\n handleClosableModal: Dispatch>;\n cupom?: any;\n darfData?: any;\n plan?: IPlan | UserPlan;\n backToRoot?: () => void;\n reCaptchaToken?: string;\n changeCardAction?: boolean;\n typePurchase?: ETypePurchase;\n customInstallments?: number;\n addInfo?: Record;\n setReCaptchaToken?: Dispatch>;\n}\n\nexport const CreditCardScheduledPayment: React.FC = ({\n plan,\n cupom,\n addInfo,\n darfData,\n backToRoot,\n typePurchase,\n closeMainModal,\n reCaptchaToken,\n changeCardAction,\n setReCaptchaToken,\n customInstallments,\n handleClosableModal,\n}) => {\n const [cardForm] = Form.useForm();\n const [addressForm] = Form.useForm();\n\n const { user } = useAuth();\n const [cvc, setCvc] = useState(\"\");\n const [name, setName] = useState(\"\");\n const [phone] = useState(\"\");\n const [status] = useState(\"\");\n const [number, setNumber] = useState(\"\");\n const [expiry, setExpiry] = useState(\"\");\n const [focused, setFocused] = useState();\n const [holderDocument, setHolderDocument] = useState(\"\");\n const [installments, setInstallments] = useState(1);\n const [selectedCard, setSelectedCard] = useState();\n\n const [loading, setLoading] = useState(false);\n const [currentStep, setCurrentStep] = useState(1);\n // const [isValidCard, setIsValidCard] = useState(false);\n const [isValidCardForm, setIsValidCardForm] = useState(false);\n const [isValidAddressForm, setIsValidAddressForm] = useState(false);\n\n const isPlan = useMemo(() => {\n return UserPlansTypes.includes(plan?.type || \"\");\n }, [plan]);\n\n const value = useMemo(() => {\n if (isPlan) {\n var isMonth = (plan as any).interval === \"Mensal\";\n\n var planPrice =\n (!isMonth\n ? ((addInfo?.hasDiscount ? plan?.price : plan?.originalPrice) || 0) *\n 12\n : plan?.price) || 0;\n\n if (cupom?.type === \"absolute\") {\n planPrice = planPrice - Number(cupom?.discountValue);\n } else if (cupom?.type === \"percent\") {\n planPrice = planPrice - planPrice * Number(cupom?.discountValue / 100);\n }\n\n planPrice = Number(planPrice.toFixed(2));\n\n return planPrice && isMonth ? planPrice * 12 : planPrice;\n }\n return darfData?.impostoTotalFinal;\n }, [\n darfData?.impostoTotalFinal,\n plan,\n isPlan,\n cupom?.discountValue,\n cupom?.type,\n addInfo?.hasDiscount,\n ]);\n\n const getCardInfo = () => {\n const addressInfo = addressForm.getFieldsValue();\n const monthExp = expiry?.split(\"/\")?.[0];\n const monthYear = expiry?.split(\"/\")?.[1];\n\n let cardInfo: any = {};\n\n const cardId = selectedCard?.id;\n\n if (cardId) {\n cardInfo.card_id = cardId;\n } else {\n cardInfo = {\n line_1: `${addressInfo?.neighborhood} - ${addressInfo?.street} - ${addressInfo?.number}`,\n zip_code: addressInfo?.cep?.replace(\"-\", \"\"),\n city: addressInfo?.city,\n state: addressInfo?.state.toUpperCase(),\n holder_name: removeSpecialCharacters(name),\n number,\n exp_month: monthExp,\n exp_year: monthYear,\n holderDocument,\n cvv: cvc,\n };\n }\n\n return cardInfo;\n };\n\n const getCustomerInfo = () => {\n let customerInfo;\n if (selectedCard?.customer_id) {\n customerInfo = { customer_id: selectedCard?.customer_id };\n } else {\n customerInfo = {\n name: name ?? user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n phone,\n };\n }\n\n return customerInfo;\n };\n\n useEffect(() => {\n if (currentStep < 0) {\n backToRoot && backToRoot();\n }\n }, [currentStep, backToRoot]);\n\n const createPlanMainVelotax = () => {\n let cardInfo: any = getCardInfo();\n let clientInfo: any = getCustomerInfo();\n\n // setLoading(true);\n handleClosableModal(true);\n api\n .post(\n \"/scheduledPayment\",\n {\n ...darfData,\n type: \"VELOTAX_MAIN_PRO\",\n from: \"VELOTAX\",\n cupomCode: cupom?.cupomCode.toUpperCase(),\n paymentForm: \"credit_card\",\n installments: 12,\n cardInfo,\n clientInfo,\n isPlan: true,\n },\n {\n headers: {\n recaptcha: reCaptchaToken || \"\",\n \"x-api-provider\": \"crypto-velotax\",\n },\n }\n )\n .then((res: any) => {\n if (res.data) {\n if (cupom?.cupomCode.toUpperCase() === \"VELOTAXER20\") {\n HandleTag(\"171\");\n }\n message.success(\n `Sua forma de pagamento foi trocada com sucesso. Na data ${res.data}, seu plano sera renovado via cartão de crédito.`\n );\n }\n // setCurrentStep(4);\n })\n .catch((err) => {\n message.error(err.response?.data?.message);\n })\n .finally(() => {\n handleClosableModal(false);\n closeMainModal(true);\n });\n };\n\n const handleNextStep = () => {\n if (getConditionToDisable()) {\n if (currentStep === 1) cardForm.validateFields();\n if (currentStep === 2) addressForm.validateFields();\n message.warning(\"Preencha corretamente o formulário\");\n return;\n }\n\n if (currentStep === 1) {\n if (!darfData?.impostoTotalFinal) {\n HandleTag(\"79\");\n }\n setCurrentStep(2);\n } else if (currentStep === 2) {\n createPlanMainVelotax();\n }\n };\n\n const getConditionToDisable = () => {\n if (currentStep === 0 && !selectedCard?.id) return true;\n if (currentStep === 1 && !isValidCardForm) return true;\n if (currentStep === 2 && !isValidAddressForm) return true;\n return false;\n };\n\n const changeInstallments = (value: any) => {\n setInstallments(value);\n };\n\n return (\n \n {currentStep === 0 && (\n <>\n {\n setSelectedCard(card);\n\n if (!card) setCurrentStep(1);\n }}\n />\n \n )}\n\n \n {currentStep === 1 && (\n <>\n \n \n )}\n\n {currentStep === 2 && (\n \n )}\n\n {currentStep === 3 && (\n \n )}\n\n {currentStep === 4 && }\n \n \n \n );\n};\n\nexport default CreditCardScheduledPayment;\n","import { LoadingOutlined } from \"@ant-design/icons\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { AiFillWarning, AiOutlineUnlock } from \"react-icons/ai\";\nimport { Col, Descriptions, Form, Input, message, Row, Typography } from \"antd\";\nimport api from \"../../../services/api\";\nimport { formatDate } from \"../../../utils\";\nimport { planos } from \"../../Planos/planos\";\nimport Button from \"../../../components/Button\";\nimport HandleTag from \"../../../services/handleTag\";\nimport apiVeloPro from \"../../../services/apiVeloPro\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport { apiPayment } from \"../../../services/apiPayment\";\nimport { FooterModal } from \"../../../components/FooterModal\";\nimport { DrawerModal } from \"../../../components/DrawerModal\";\nimport { PaymentModal } from \"../../../components/PaymentModal\";\nimport CreditCardScheduledPayment from \"../../../components/Payment/CreditCardScheduledPayment\";\n\nconst KEY_PASS = \"DELETAR\";\n\nexport const MeuPlano: React.FC = () => {\n const [formKey] = Form.useForm();\n const { user, getUserInfo, showUserPlanModal } = useAuth();\n\n const [data, setData] = useState();\n const [keyPass, setKeyPass] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [isVelopro, setVelopro] = useState(false);\n const [cancelModal, showCancelModal] = useState(false);\n const [changeCardModal, showChangeCardModal] = useState(false);\n const [creditCardModal, showCreditCardModal] = useState(false);\n const [scheduledPaymentData, setScheduledPaymentData] = useState();\n\n const pendingCancel =\n data?.signature?.useDate > 0 &&\n (!data?.signature?.status || data?.signature?.status === \"canceled\");\n\n const checkPlanVelopro = () => {\n apiVeloPro\n .get(`/clients/hasPlanActive/${user.user.userId}`)\n .then(({ data }) => {\n if (data?.isPlanVelopro) setVelopro(true);\n else setVelopro(false);\n })\n .catch(() =>\n message.error(\"Ocorreu um erro, tente novamente mais tarde.\")\n );\n return;\n };\n\n useEffect(() => {\n checkPlanVelopro();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVelopro]);\n\n const getData = () => {\n setLoading(true);\n apiPayment\n .get(\"/user-plan/get-plan-details\")\n .then((ret: any) => {\n setLoading(false);\n setData(ret.data);\n })\n .catch(() => {\n setLoading(false);\n message.error(\n \"Houve um erro ao buscar os detalhes. Contate nosso suporte\"\n );\n });\n };\n\n const cancelPlan = () => {\n HandleTag(\"74\");\n if (keyPass.toLowerCase() !== KEY_PASS.toLowerCase()) {\n message.error(`Digite ${KEY_PASS} corretamente!`);\n return;\n }\n\n if (isVelopro) {\n apiVeloPro\n .put(`/clients/cancelRecuring/${user.user.userId}`)\n .then(() => {\n message.success(\"Plano cancelado\");\n showCancelModal(false);\n getUserInfo();\n getData();\n })\n .catch(() =>\n message.error(\n \"Ocorreu um erro ao cancelar a recorrência, tente novamente mais tarde.\"\n )\n );\n return;\n }\n\n apiPayment\n .post(\"/user-plan/cancel_signature\")\n .then((ret: any) => {\n message.success(\"Recorrência cancelado\");\n showCancelModal(false);\n getUserInfo();\n getData();\n })\n .catch(() => {\n message.error(\"Ocorreu um erro contate nosso suporte\");\n });\n };\n\n const getScheduledPayment = () => {\n setLoading(true);\n api\n .get(\"/scheduledPayment\")\n .then((ret: any) => {\n setLoading(false);\n setScheduledPaymentData(ret.data);\n })\n .catch(() => {\n setLoading(false);\n message.error(\n \"Houve um erro ao buscar os detalhes. Contate nosso suporte\"\n );\n });\n };\n\n useEffect(() => {\n getData();\n getScheduledPayment();\n }, []);\n\n // const whitelist = [\"41761601873\", \"45088456069\", \"00079692010\"];\n // const isUserInWhitelist = whitelist.includes(user.user.cpf);\n const payForm: Record = {\n pix: \"Pix\",\n credit_card: \"Cartão de Crédito\",\n };\n\n const planBasicInfo = user.user?.userPlanInfoVelotax;\n\n const currentPlan = useMemo(() => {\n const plansTypes: Record = {\n MEI: \"MEI\",\n UNIQUE: \"UNIQUE\",\n VELOTAX_MAIN_BASIC: \"Velotax Básico Anual\",\n VELOTAX_MAIN_BASIC_MONTH: \"Velotax Básico Mensal\",\n VELOTAX_MAIN_PRO: \"Velotax Premium Anual\",\n VELOTAX_MAIN_PRO_MONTH: \"Velotax Premium Mensal\",\n VELOTAX_MAIN_SILVER: \"Velotax Básico Anual\",\n VELOTAX_MAIN_PLATINUM: \"Velotax Premium Anual\",\n VELOTAX_MAIN_CONCIERGE: \"Velotax Concierge Anual\",\n VELOTAX_MAIN_CONCIERGE_MONTH: \"Velotax Concierge Mensal\",\n };\n\n if (planBasicInfo?.active) return plansTypes[planBasicInfo?.type];\n\n return \"Gratuito\";\n }, [planBasicInfo?.type, planBasicInfo?.active]);\n\n const planStatus = useMemo(\n () =>\n currentPlan === \"Gratuito\"\n ? \"Ativo\"\n : planBasicInfo.active\n ? \"Ativo\"\n : \"Inativo\",\n [planBasicInfo.active, currentPlan]\n );\n\n const isActive = useMemo(() => planStatus === \"Ativo\", [planStatus]);\n\n const onDeleteCancel = () => {\n showCancelModal(false);\n showCreditCardModal(false);\n formKey.resetFields();\n setKeyPass(\"\");\n };\n\n const showButtons = useMemo(\n () =>\n currentPlan !== \"Gratuito\" &&\n !pendingCancel &&\n data?.signature?.paymentForm !== \"pix\" &&\n !data?.signature?.fromAccountant,\n [\n currentPlan,\n pendingCancel,\n data?.signature?.fromAccountant,\n data?.signature?.paymentForm,\n ]\n );\n\n const contentStyle = {\n color: \"var(--velotax-font-color-ghost)\",\n fontSize: 15,\n marginBottom: 0,\n };\n\n return (\n
\n \n Dados do plano\n \n {loading ? (\n
\n {\" \"}\n
\n ) : (\n <>\n Plano Atual}\n >\n {currentPlan}\n \n Status do Plano}\n >\n \n \n {planStatus}\n
\n \n \n {data?.signature?.next_billing_at &&\n planBasicInfo.active &&\n !pendingCancel && (\n {\"Próxima Cobrança\"}}\n >\n \n {formatDate(data?.signature?.next_billing_at)}\n \n \n )}\n {data?.signature?.start_at && planBasicInfo.active && (\n {\"Data da Assinatura\"}}\n >\n {data?.signature?.start_at && (\n \n {formatDate(data?.signature?.start_at)}\n \n )}\n \n )}\n {data?.signature?.dueDate && planBasicInfo.active && (\n {\"Vencimento da Assinatura\"}}\n >\n {data?.signature?.dueDate && (\n \n {formatDate(data?.signature?.dueDate)}\n \n )}\n \n )}\n {data?.signature?.paymentForm && planBasicInfo.active && (\n {\"Forma de pagamento\"}}\n >\n {scheduledPaymentData?.hasRequested ? (\n {<>Cartão de Crédito}\n ) : (\n data?.signature?.paymentForm && (\n \n {<>{payForm[data?.signature?.paymentForm]}}\n \n )\n )}\n \n )}\n\n {data?.signature?.paymentForm !== \"pix\" &&\n planBasicInfo.active &&\n data?.signature?.card?.lastFourDigits && (\n {\"Cartão de cobrança\"}}\n >\n \n {<>**** **** **** {data?.signature?.card?.lastFourDigits}}\n \n \n )}\n\n {currentPlan === \"Gratuito\" && (\n
\n }\n onClick={() => {\n HandleTag(\"72\");\n showUserPlanModal(true);\n }}\n >\n CONTRATAR PLANO PREMIUM\n \n
\n )}\n\n {data?.signature?.paymentForm === \"pix\" &&\n !scheduledPaymentData?.hasRequested && (\n
\n }\n onClick={() => {\n showCreditCardModal(true);\n }}\n >\n ALTERAR FORMA DE PAGAMENTO\n \n
\n )}\n\n {showButtons && (\n \n \n \n \n {\n showChangeCardModal(true);\n }}\n >\n Alterar cartão de cobrança\n \n \n \n \n \n {\n showCancelModal(true);\n HandleTag(\"73\");\n }}\n >\n Cancelar recorrência\n \n \n \n )}\n \n )}\n {changeCardModal && (\n {\n showChangeCardModal(false);\n getData();\n }}\n changeCardAction\n onSuccessGeneral={() => {\n showChangeCardModal(false);\n getData();\n }}\n planCurrent={planos.find(\n (plan) => plan?.type === user?.user?.userPlanInfoVelotax?.type\n )}\n hidePixButton\n blockListCard={[data?.signature?.card?.id]}\n show={changeCardModal}\n onCancel={() => showChangeCardModal(false)}\n paymentData={{\n type: planBasicInfo?.type,\n isPlan: true,\n }}\n callDarf={(value: boolean) => null}\n customInstallments={12}\n />\n )}\n\n \n getScheduledPayment()}\n // status=\"\"\n // plan={planCurrent}\n // addInfo={{ hasDiscount }}\n // handleSuccess={onSucessCreditCard}\n // setInitialized={() => {}}\n // darfData={paymentData}\n // handleIdBack={changePaymentId}\n // customInstallments={customInstallments}\n // backToRoot={() => setStep(EPlanStep.CHOOSE_PAYMENT)}\n // cupom={cupom}\n // reCaptchaToken={reCaptchaToken}\n // setReCaptchaToken={setReCaptchaToken}\n />\n \n\n \n getScheduledPayment()}\n // status=\"\"\n // plan={planCurrent}\n // addInfo={{ hasDiscount }}\n // handleSuccess={onSucessCreditCard}\n // setInitialized={() => {}}\n // darfData={paymentData}\n // handleIdBack={changePaymentId}\n // customInstallments={customInstallments}\n // backToRoot={() => setStep(EPlanStep.CHOOSE_PAYMENT)}\n // cupom={cupom}\n // reCaptchaToken={reCaptchaToken}\n // setReCaptchaToken={setReCaptchaToken}\n />\n \n\n \n }\n >\n \n Deseja realmente cancelar a recorrência?\n

\n \n \n \n \n \n \n Deseja realmente cancelar sua recorrência?\n \n \n Atenção: todos os seus dados de impostos,\n inclusive a memória dos cálculos e o histórico dos DARFs pagos,\n serão excluídos definitivamente da plataforma. Você poderá ser\n obrigado pela Receita Federal a apresentar tais informações, caso\n seja questionado.\n \n \n \n \n Digite {KEY_PASS} para prosseguir:\n \n \n \n {\n setKeyPass(event.target.value);\n }}\n >\n \n \n \n \n \n \n \n \n );\n};\n","import ReactInputMask from \"react-input-mask\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiFillWarning } from \"react-icons/ai\";\nimport React, { useEffect, useState } from \"react\";\nimport { CheckOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport { Col, Form, message, Row, Input, Typography, Divider } from \"antd\";\nimport api from \"../../services/api\";\nimport { Container } from \"./styles\";\nimport { MeuPlano } from \"./MeuPlano\";\nimport { cpfInputMask } from \"../../utils\";\nimport Button from \"../../components/Button\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { FooterModal } from \"../../components/FooterModal\";\nimport {\n validationCpf,\n validationDateNotRequired,\n validationEmail,\n validationFieldRequired,\n validationFullName,\n validationPassword,\n validationPhone,\n} from \"../../utils/formValidations\";\n\nconst KEY_PASS = \"DELETAR\";\n\nexport const MinhaConta: React.FC = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm();\n const [formKey] = Form.useForm();\n const { user, setUser, signOut } = useAuth();\n\n const [keyPass, setKeyPass] = useState(\"\");\n const [loading, setLoading] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [warningDeleteModal, showWarningDeleteModal] = useState(false);\n const [loadingExclude, setLoadingExclude] = useState(false);\n\n useEffect(() => {\n if (user?.user) {\n form.setFieldsValue({\n cpf: user.user.cpf,\n email: user.user.email,\n birthdate: user.user.birthdate ?? \"\",\n cellphone: user.user.cellphone ?? \"\",\n name: user.user.name ?? \"\",\n });\n }\n }, [user.user, form]);\n\n const onFinish = (data: any) => {\n if (loading) {\n return;\n }\n setLoading(true);\n api\n .put(\"/configuracoes/minhaConta\", {\n email: data.email,\n birthdate: data.birthdate,\n cellphone: data.cellphone,\n name: data.name,\n ...(showPassword\n ? {\n pass: data.pass,\n currentPass: data.currentPass,\n }\n : {}),\n })\n .then(() => {\n message.config({\n top: 50,\n });\n message.success(\"Dados atualizados com sucesso\");\n setLoading(false);\n setUser({\n ...user,\n user: {\n ...user.user,\n email: data.email,\n birthdate: data.birthdate,\n cellphone: data.cellphone,\n name: data.name,\n },\n });\n })\n .catch((err) => {\n message.error(\n err.response?.data?.message ||\n \"Erro ao atualizar dados. Tente novamente mais tarde!\"\n );\n setLoading(false);\n });\n };\n\n const removeAccount = () => {\n showWarningDeleteModal(true);\n };\n\n const onCancel = () => {\n if (loading) {\n return;\n }\n navigate(\"/carteira\");\n };\n\n const handlePassword = () => {\n setShowPassword((show) => !show);\n };\n\n const sendDeleteReq = () => {\n setLoadingExclude(true);\n\n if (keyPass.toLowerCase() !== KEY_PASS.toLowerCase()) {\n message.error(`Digite ${KEY_PASS} corretamente!`);\n return;\n }\n\n api\n .post(\"/user/remove-user\", {\n from: \"CALCULADORAV2\",\n pass: keyPass,\n cpf: user.user.cpf,\n })\n .then(() => {\n message.success(\"Conta excluída com sucesso\");\n setLoadingExclude(false);\n signOut();\n })\n .catch((err) => {\n message.error(err?.response?.data?.message);\n setLoadingExclude(false);\n });\n };\n\n const onDeleteCancel = () => {\n showWarningDeleteModal(false);\n formKey.resetFields();\n setKeyPass(\"\");\n };\n\n return (\n \n \n
\n \n Dados do usuário\n \n

Mantenha os seus dados de cadastro sempre atualizados.

\n
\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n\n \n\n {showPassword && (\n \n \n \n \n \n \n \n \n \n \n \n \n )}\n\n \n\n \n \n \n \n \n \n Salvar\n \n \n \n \n \n
\n \n \n \n Excluir Conta\n \n \n \n \n }\n >\n {loadingExclude ? (\n
\n \n
\n ) : (\n \n \n \n \n \n \n Deseja realmente excluir sua conta?\n \n \n Lembre-se de que todos os seus dados também serão excluídos.\n Caso possua um plano ativo, você também perderá todas as\n funcionalidades.\n \n \n \n \n Digite {KEY_PASS} para prosseguir:\n \n \n \n {\n setKeyPass(event.target.value);\n }}\n >\n \n \n \n \n \n \n )}\n \n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n min-height: 100%;\n padding: 64px 32px 128px;\n @media only screen and (max-device-width: 812px) {\n padding: 24px 0 0;\n background-color: var(--velotax-background-color);\n }\n`;\n\nexport const Content = styled.div`\n padding: 32px;\n margin: 0 auto;\n max-width: 920px;\n border-radius: 16px;\n background-color: var(--velotax-background-color);\n border: 1px solid var(--velotax-background-color-ghost);\n\n p {\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n }\n\n h3 {\n color: var(--velotax-font-color);\n }\n\n span.link {\n cursor: pointer;\n color: var(--ant-primary-color);\n }\n\n .ant-typography:not(h3) {\n text-align: justify;\n }\n\n a.ant-typography,\n .ant-typography a {\n color: var(--ant-primary-color);\n }\n\n .ant-typography i strong {\n font-size: 13px;\n letter-spacing: 0.625px;\n word-spacing: 0.625px;\n }\n\n iframe {\n max-width: 100%;\n }\n\n .ant-list {\n margin-bottom: 1em;\n }\n\n .ant-collapse,\n .ant-collapse.ant-collapse-borderless {\n border-radius: 8px;\n background-color: transparent;\n border: 1px solid var(--velotax-background-color-ghost);\n .ant-collapse-item {\n .ant-collapse-header {\n padding: 16px;\n font-size: 1.125rem;\n color: var(--velotax-font-color);\n .ant-collapse-arrow {\n font-size: 0.875rem;\n }\n }\n .ant-collapse-content {\n border-bottom: 1px solid;\n border-color: var(--velotax-background-color-ghost);\n }\n }\n\n .ant-collapse-item:last-child {\n .ant-collapse-content {\n border-bottom: none;\n border-radius: 0 0 8px 8px;\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 0 24px 32px;\n border-radius: 0;\n border: none;\n }\n`;\n","import { Divider, Typography } from \"antd\";\n\nexport const CompaniesExemptList = {\n title: \"Lista de empresas isentas\",\n content: (\n
\n \n \n Lista de ações que, se vendidas com lucro até o dia 31/12/2023, são\n isentas de Impostos de Renda com base na lei 13.043, de 13 de novembro\n de 2014:\n \n \n \n - NUTRIPLANT (NUTR3)\n
\n - PETRORIO (PRIO3)*\n
\n - GENERAL SHOPPING (GSHP3)\n
\n - POMIFRUTAS (FRTA3)\n
\n - CR2 EMPREENDIMENTOS IMOBILIÁRIOS (CRDE3)\n
\n - SINQIA (SQIA3)*\n
\n - BRASIL AGRO (AGRO3)\n
- PRINER (PRNR3)\n
\n \n \n * Válido para ações compradas antes do follow-on. A Sinqia e a Petrorio\n fizeram uma oferta de ações em setembro de 2019 e fevereiro de 2021,\n respectivamente. Caso você tenha comprado essas ações antes das datas\n das respectivas ofertas, você tem direito a isenção de imposto de renda\n sobre seus ganhos.\n \n
\n ),\n};\n","import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { List, Typography, Collapse } from \"antd\";\nimport { Container, Content } from \"./styles\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { CompaniesExemptList } from \"../../constants/regulation\";\n\ninterface RegulationProps {}\n\nexport const Regulation: React.FC = () => {\n const navigate = useNavigate();\n const { currentBroker } = useBroker();\n const [showListModal, setShowListModal] = useState(false);\n\n const handleListModal = () => {\n setShowListModal((show) => !show);\n };\n return (\n \n \n \n Regras de IR utilizadas pelo Velotax\n \n

\n Entenda quais são as normativas da Receita Federal que utilizamos para\n calcular automaticamente o seu imposto de renda\n

\n \n \n \n Entendendo o que é renda variável\n \n \n O mercado de renda variável compreende ativos cuja remuneração ou\n retorno de capital não pode ser dimensionado no momento da\n aplicação. São eles as ações, quotas ou quinhões de capital, o\n ouro, ativo financeiro, e os contratos negociados nas bolsas de\n valores, de mercadorias, de futuros e assemelhadas.\n \n \n (Instrução Normativa RFB nº 1.585, de 31 de agosto de 2015, arts.\n 56, 58 e 60 a 62)\n \n \n Qual imposto de renda incide sobre operações de renda variável\n \n \n O ganhos líquidos são constituídos pela diferença positiva entre o\n valor de venda do ativo e o seu custo de aquisição. Os ganhos\n líquidos auferidos em operações realizadas em bolsas de valores,\n de mercadorias, de futuros, e assemelhadas, inclusive day trade,\n serão tributados às seguintes alíquotas:\n \n \n \n a) 15%, nas operações realizadas nos mercados à vista, a termo,\n de opções e de futuros;\n \n b) 20%, no caso de operação day trade;\n \n c) 20%, no caso de operação com fundos imobiliários (FIIs).\n \n \n \n (Lei nº 11.033, de 21 de dezembro de 2004, art. 2º, caput, incisos\n I e II, e §§ 1º e 2º; e Instrução Normativa RFB nº 1.585, de 31 de\n agosto de 2015, arts. 57, 63 e 65)\n \n \n Quando o imposto deve ser pago\n \n \n O imposto sobre a renda deve ser pago até o último dia útil do mês\n subsequente àquele em que os ganhos houverem sido apurados.\n
\n
O código a ser utilizado no Documento de Arrecadação das\n Receitas Federais (DARF) para pagamento desse tributo é 6015.\n
\n \n (Instrução Normativa RFB nº 1.585, de 31 de agosto de 2015, art.\n 56, § 5º)\n \n \n Operações isentas de imposto de renda\n \n \n A isenção de imposto de renda aplica-se para transações realizadas\n em mercados comuns e que se encaixem nas situações abaixo:\n \n \n \n a) com ações, no mercado à vista de bolsas de valores ou mercado\n de balcão, se o total das alienações desse ativo, realizadas no\n mês, não exceder a R$ 20.000,00 (vinte mil reais);\n \n \n b) com ações de pequenas e médias empresas a que se refere o\n art. 16 da Lei nº 13.043, de 13 de novembro de 2014;\n
\n \n Clique aqui para ver a lista de empresas isentas\n \n
\n \n c) com ouro, ativo financeiro, se o total das alienações desse\n ativo, realizadas no mês, não exceder a R$ 20.000,00 (vinte mil\n reais);\n \n
\n \n A isenção acima não se aplica, entre outras, às operações de day\n trade, às negociações de cotas de fundos de investimentos\n imobiliários (FIIs) e fundos de investimento em índice de ações,\n aos resgates de cotas de fundos ou clubes de investimento em ações\n e à alienação de ações efetivada em operações de exercício de\n opções e no vencimento ou liquidação antecipada de contratos a\n termo.\n \n \n (Lei nº 11.033, de 21 de dezembro de 2004, art.3º, inciso I; Lei\n nº 13.043, de 13 de novembro de 2014, art. 16; e Instrução\n Normativa RFB nº 1.585 , de 31 de agosto de 2015, art. 59, incisos\n I e II e § 2º)\n \n \n O que é operação day trade\n \n \n Considera-se day trade a operação ou a conjugação de operações\n iniciadas e encerradas em um mesmo dia, com o mesmo ativo,{\" \"}\n em uma mesma instituição intermediadora (isto é, corretora)\n , em que a quantidade negociada tenha sido liquidada, total ou\n parcialmente. Na apuração do resultado da operação day trade são\n considerados, pela ordem, o primeiro negócio de compra com o\n primeiro de venda ou o primeiro negócio de venda com o primeiro de\n compra, sucessivamente.\n \n \n (Lei nº 9.959, de 27 de janeiro de 2000, art. 8º; Lei nº 12.350,\n de 20 de dezembro de 2010, art. 45; e Instrução Normativa RFB nº\n 1.585, de 31 de agosto de 2015, art. 65)\n \n \n Compensação de perdas passadas\n \n \n As perdas incorridas nas operações de renda variável nos mercados\n à vista, de opções, futuros, a termo e assemelhados, poderão ser\n compensadas com os ganhos líquidos auferidos, no próprio mês ou\n nos meses subsequentes, em outras operações realizadas em qualquer\n das modalidades operacionais previstas nesses mercados.\n \n \n Atenção: as perdas incorridas em operações\n comuns, somente poderão ser compensadas com ganhos líquidos\n auferidos em operações da mesma espécie (comuns), realizadas no\n mês ou meses subsequentes. Do mesmo modo, as perdas incorridas em\n operações day trade somente são compensáveis com os ganhos\n líquidos auferidos nessas operações, e perdas incorridas em FIIs\n são compensáveis com os ganhos líquidos auferidos em FIIs.\n \n \n (Regulamento do Imposto sobre a Renda – RIR/2018, art. 841, §§ 1º\n e 2º, aprovado pelo Decreto nº 9.580, de 22 de novembro de 2018; e\n Instrução Normativa RFB nº 1.585, de 31 de agosto de 2015, art.\n 64)\n \n \n Dedução de despesas operacionais\n \n \n As despesas efetivamente pagas destacadas na nota de corretagem ou\n no extrato da conta-corrente para a realização de operações de\n compra ou venda (corretagens, emolumentos etc.) podem ser\n consideradas na apuração do ganho líquido, sendo acrescidas ao\n preço de compra e deduzidas do preço de venda dos ativos ou\n contratos negociados.\n \n \n (Lei nº 8.383, de 30 de dezembro de 1991, art. 27; e Regulamento\n do Imposto sobre a Renda - RIR/2018, art. 841, caput e § 2º,\n aprovado pelo Decreto nº 9.580, de 22 de novembro de 2018; e\n Instrução Normativa RFB nº 1.585, de 31 de agosto de 2015, art.\n 56, § 3º)\n \n \n O que é o Portal da B3\n \n \n O Portal da B3 armazena os saldos e os históricos de transação de\n forma consolidada para os investidores da bolsa de valores.\n
\n
\n Caso você nunca tenha se cadastrado no Portal da B3, faça o seu{\" \"}\n \n cadastro aqui\n \n . Só precisa ter o seu CPF e a data de nascimento em mãos.\n
\n {/*Remover os vídeos do passo a posso pois são baseados na calculadora antiga*/}\n {/* \n Ajustando manualmente o Velotax\n \n \n Apesar do sistema do Velotax ser o mais automático possível, algumas\n informações não estão disponíveis na B3. Portanto os investidores\n devem ter atenção para ajustar manualmente na{\" \"}\n Calculadora os pontos\n abaixo.\n */}\n {/* \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n */}\n \n Ainda tem dúvidas? Acesse:\n \n \n Central de Ajuda\n \n , onde nosso time de suporte responde suas dúvidas\n
\n\n \n \n Entendendo o que são criptoativos\n \n \n Os criptoativos são a representação digital de valor denominada em\n sua própria unidade de conta, cujo preço pode ser expresso em\n moeda soberana local ou estrangeira, transacionado eletronicamente\n com a utilização de criptografia e de tecnologias de registros\n distribuídos, que pode ser utilizado como forma de investimento,\n instrumento de transferência de valores ou acesso a serviços, e\n que não constitui moeda de curso legal.\n \n \n Alguns exemplos de criptoativos são Bitcoins, Altcoins (Ether,\n Ripple, Litecoin, entre outros) e Payment Tokens (Chiliz, Binance\n Coin, Chainlink, entre outros). Eles podem ser equiparados a\n ativos financeiros sujeitos a ganho de capital e devem ser\n declarados pelo seu valor de aquisição.\n \n \n (Instrução Normativa RFB nº 1.888, de 3 de maio de 2019)\n \n \n Qual imposto de renda incide sobre ganhos com criptoativos\n \n \n Os ganhos obtidos com a alienação de criptoativos cujo total\n alienado no mês seja superior a R$ 35.000,00 são tributados, a\n título de ganho de capital, segundo alíquotas progressivas\n estabelecidas em função do lucro:\n \n \n \n a) 15% sobre a parcela dos ganhos que não ultrapassar R$\n 5.000.000,00;\n \n \n b) 17,5% sobre a parcela dos ganhos que exceder R$ 5.000.000,00\n e não ultrapassar R$ 10.000.000,00;\n \n \n c) 20% sobre a parcela dos ganhos que exceder R$ 10.000.000,00 e\n não ultrapassar R$ 30.000.000,00; e\n \n \n d) 22,5% sobre a parcela dos ganhos que ultrapassar R$\n 30.000.000,00.\n \n \n \n (Lei nº 5.172, de 25 de outubro de 1966 - Código Tributário\n Nacional - CTN, art. 118; Lei nº 8.981, de 20 de janeiro de 1995,\n art. 21; Instrução Normativa SRF nº 84, de 11 de outubro de 2001;\n Instrução Normativa SRF nº 599, de 28 de dezembro de 2005; e Ato\n Declaratório Interpretativo RFB nº 3, de 27 de abril de 2016)\n \n \n Quando o imposto deve ser pago\n \n \n O recolhimento do imposto sobre a renda deve ser feito até o\n último dia útil do mês seguinte ao da transação de venda.\n \n \n O código a ser utilizado no Documento de Arrecadação das Receitas\n Federais (DARF) para pagamento desse tributo é 4600.\n \n \n (Lei nº 5.172, de 25 de outubro de 1966 - Código Tributário\n Nacional - CTN, art. 118; Lei nº 8.981, de 20 de janeiro de 1995,\n art. 21; Instrução Normativa SRF nº 84, de 11 de outubro de 2001;\n Instrução Normativa SRF nº 599, de 28 de dezembro de 2005; e Ato\n Declaratório Interpretativo RFB nº 3, de 27 de abril de 2016)\n \n \n Operações isentas de imposto de renda\n \n \n A isenção relativa às alienações de até R$ 35.000,00 mensais deve\n observar o conjunto de criptoativos ou moedas virtuais alienados\n no Brasil ou no exterior, independente de seu nome (bitcoin,\n ethereum, litecoin, tether ...). Caso o total alienado no mês\n ultrapasse esse valor, o ganho de capital relativo a todas as\n alienações estará sujeito à tributação.\n \n \n (Lei nº 5.172, de 25 de outubro de 1966 - Código Tributário\n Nacional - CTN, art. 118; Lei nº 8.981, de 20 de janeiro de 1995,\n art. 21; Instrução Normativa SRF nº 84, de 11 de outubro de 2001;\n Instrução Normativa SRF nº 599, de 28 de dezembro de 2005; e Ato\n Declaratório Interpretativo RFB nº 3, de 27 de abril de 2016)\n \n \n Como converter de dólares (US$) para reais (R$)\n \n \n Para a conversão de valores em reais, o valor expresso em moeda\n estrangeira deve ser convertido em dólar dos Estados Unidos da\n América e convertido em moeda nacional pela cotação do dólar dos\n Estados Unidos da América fixada, para venda, pelo Banco Central\n do Brasil (BCB) para a data da operação ou saldo, extraída do\n boletim de fechamento PTAX divulgado pelo BCB.\n \n \n (Instrução Normativa RFB nº 1.888, de 3 de maio de 2019)\n \n \n Compensação de perdas passadas\n \n \n Como os ganhos em criptoativos estão sujeitos as regulações de\n ganho de capital, as perdas passadas em criptoativos não podem ser\n compensadas dos ganhos futuros. As operações em criptoativos são\n tratadas de maneira singular, não sendo possível compensar os\n prejuízos de algumas operações com lucros de outras.\n \n \n Mesmo para operações no mesmo mês, de forma conservadora, valem as\n disposições acima: informar cada operação de venda, sem compensar\n lucros com perdas.\n \n \n (Instrução Normativa SRF nº 84, de 11 de outubro de 2001, art. 2º,\n parágrafo único)\n \n \n Dedução de despesas operacionais\n \n \n As despesas com corretagem na venda de criptoativos podem ser\n abatidas do ganho de capital a ser tributado.\n \n \n Ainda tem dúvidas? Acesse:\n \n -{\" \"}\n \n Central de Ajuda\n \n , onde nosso time de suporte responde suas dúvidas\n \n\n \n \n Entendendo quais ativos no exterior estão sujeitos a tributação\n \n \n A alienação de bens ou direitos e liquidação ou resgate de\n aplicações financeiras, de propriedade de pessoa física,\n adquiridos em moeda estrangeira estarão sujeitos as regras de\n tributação sobre ganho de capital.\n \n \n Caso você tenha realizado operações que importem na alienação\n (venda) de bens ou direitos adquiridos em moeda estrangeira, como\n ações e outros ativos financeiros em bolsa de valores, de\n mercadorias, de futuros ou assemelhadas, você deverá efetuar o\n cálculo de ganho de capital tributável e o recolhimento do imposto\n devido segundo as alíquotas progressivas estabelecidas em função\n do lucro.\n \n \n (Lei nº 13.254, de 13 de janeiro de 2016; Lei nº 13.428, de 30 de\n março de 2017; Instrução Normativa SRF nº 118, de 27 de dezembro\n de 2000; Instrução Normativa SRF nº 84, de 11 de outubro de 2001,\n art. 3º; Instrução Normativa RFB nº 1.627, de 11 de março de 2016;\n e Instrução Normativa RFB nº 1.704, de 31 de março de 2017)\n \n \n Qual imposto de renda incide sobre ganhos na venda de ativos no\n exterior\n \n \n Os ganhos obtidos com a alienação de investimentos no exterior\n cujo total alienado no mês seja superior a R$ 35.000,00 são\n tributados, a título de ganho de capital, segundo alíquotas\n progressivas estabelecidas em função do lucro:\n \n \n \n a) 15% sobre a parcela dos ganhos que não ultrapassar R$\n 5.000.000,00;\n \n \n b) 17,5% sobre a parcela dos ganhos que exceder R$ 5.000.000,00\n e não ultrapassar R$ 10.000.000,00;\n \n \n c) 20% sobre a parcela dos ganhos que exceder R$ 10.000.000,00 e\n não ultrapassar R$ 30.000.000,00;\n \n \n d) 22,5% sobre a parcela dos ganhos que ultrapassar R$\n 30.000.000,00.\n \n \n \n (Lei nº 8.981, de 20 de janeiro de 1995, art. 21; Lei nº 13.259,\n de 16 de março de 2016; e Ato Declaratório Interpretativo RFB nº\n 3, de 27 de abril de 2016)\n \n \n Quando o imposto deve ser pago\n \n \n O recolhimento do imposto sobre a renda deve ser feito até o\n último dia útil do mês seguinte ao da transação de venda.\n \n \n O código a ser utilizado no Documento de Arrecadação das Receitas\n Federais (DARF) para pagamento desse tributo é 8523.\n \n \n (Lei nº 5.172, de 25 de outubro de 1966 - Código Tributário\n Nacional - CTN, art. 118; Lei nº 8.981, de 20 de janeiro de 1995,\n art. 21; Instrução Normativa SRF nº 84, de 11 de outubro de 2001;\n Instrução Normativa SRF nº 599, de 28 de dezembro de 2005; e Ato\n Declaratório Interpretativo RFB nº 3, de 27 de abril de 2016)\n \n \n Operações isentas de imposto de renda\n \n \n A isenção relativa às alienações de até R$ 35.000,00 mensais deve\n observar o conjunto de instrumentos financeiros negociados em\n bolsa de valores no exterior, como ETFs (Exchange Traded Funds),\n REITs (Real Estate Investment Trust), ADRs (American Depositary\n Receipt) e Stocks (ações). Caso o total alienado no mês ultrapasse\n esse valor, o ganho de capital relativo a todas as alienações\n estará sujeito à tributação.\n \n \n (Lei nº 9.250, de 26 de dezembro de 1995, art. 22, I e II; Lei nº\n 10.406, de 10 de janeiro de 2002, art. 1.725; Instrução Normativa\n SRF nº 599, de 28 de dezembro de 2005, art. 1º; Solução de\n Consulta Cosit nº 320, de 20 de junho de 2017; e Solução de\n Consulta Cosit nº 264, de 24 de junho de 2019)\n \n \n Como funciona o cálculo do imposto de renda no exterior\n \n \n Na hipótese de bens ou direitos adquiridos e aplicações\n financeiras realizadas em moeda estrangeira com rendimentos\n auferidos originariamente em reais, o ganho de capital corresponde\n à diferença positiva, em reais, entre o valor de venda e o custo\n de aquisição da aplicação financeira.\n \n \n Neste caso, o valor de venda deve ser convertido para reais pela\n cotação do dólar fixada para compra, pelo Banco Central do Brasil,\n para a data do recebimento. Já o custo de aquisição deve ser\n convertido em reais pela cotação do dólar fixada para venda para a\n data do pagamento.\n \n \n Caso os rendimentos auferidos utilizados na aquisição sejam\n originariamente em moeda estrangeira, o ganho de capital\n corresponde à diferença positiva, em dólares dos Estados Unidos da\n América, entre o valor de venda e o custo de aquisição da\n aplicação, convertida em moeda nacional mediante a utilização da\n cotação do dólar fixada, para compra, pelo Banco Central do\n Brasil, para a data do recebimento\n \n \n (Medida Provisória nº 2.158-35, de 24 de agosto de 2001, art. 24;\n Lei nº 8.981, de 20 de janeiro de 1995, art. 21; Instrução\n Normativa SRF nº 208, de 27 de setembro de 2002; Instrução\n Normativa SRF nº 118, de 27 de dezembro de 2000; Solução de\n Consulta Interna Cosit nº 5, de 15 de fevereiro de 2013; e Solução\n de Consulta Cosit nº 33, de 26 de fevereiro de 2015)\n \n \n Como converter de dólares (US$) para reais (R$)\n \n \n Para a conversão de valores em reais, o valor expresso em moeda\n estrangeira deve ser convertido em dólar dos Estados Unidos da\n América e convertido em moeda nacional pela cotação do dólar dos\n Estados Unidos da América fixada, para compra ou venda, pelo Banco\n Central do Brasil (BCB) para a data da operação ou saldo, extraída\n do boletim de fechamento PTAX divulgado pelo BCB.\n \n \n (Instrução Normativa RFB nº 1.888, de 3 de maio de 2019)\n \n \n Compensação de perdas passadas\n \n \n Como os ganhos na venda de ativos no exterior estão sujeitos as\n regulações de ganho de capital, as perdas passadas em ativos no\n exterior não podem ser compensadas dos ganhos futuros. As\n operações com ativos no exterior são tratadas de maneira singular,\n não sendo possível compensar os prejuízos de algumas operações com\n lucros de outras.\n \n \n Mesmo para operações no mesmo mês, de forma conservadora, valem as\n disposições acima: informar cada operação de venda, sem compensar\n lucros com perdas.\n \n \n (Instrução Normativa SRF nº 84, de 11 de outubro de 2001, art. 2º,\n parágrafo único)\n \n \n Dedução de despesas operacionais\n \n \n As despesas com corretagem na venda de ativos no exterior podem\n ser abatidas do ganho de capital a ser tributado.\n \n \n Ainda tem dúvidas? Acesse:\n \n -{\" \"}\n \n Central de Ajuda\n \n , onde nosso time de suporte responde suas dúvidas\n \n\n \n \n Imposto de Renda sobre Rendimentos\n \n \n Os rendimentos recebidos de outras pessoas físicas ou de fontes no\n exterior que ultrapassem o valor isento de R$2.259,21 por mês\n estarão sujeitos ao recolhimento mensal do imposto de renda.\n \n \n Nessa categoria, os principais rendimentos tributados incluem,\n entre outros:\n \n \n \n a) Autônomos, incluindo trabalhos sem vínculo empregatício;\n \n \n b) Aluguéis, incluindo a locação e sublocação de bens móveis e\n imóveis;\n \n \n c) Pensão, incluindo pensão alimentícia e alimentos\n provisionais;\n \n \n d) Exterior, incluindo quaisquer valores recebidos de fontes do\n exterior.\n \n \n \n (Regulamento do Imposto sobre a Renda - RIR/2018, arts. 118 a 121\n e art. 123, aprovado pelo Decreto nº 9.580, de 22 de novembro de\n 2018; Instrução Normativa RFB nº 1.500, de 29 de outubro de 2014,\n arts. 24, § 4º, 53 e 54; Instrução Normativa RFB nº 1.531, de 19\n de dezembro de 2014)\n \n Autônomos\n \n Inclui os profissionais não-assalariados que recebem de outras\n pessoas físicas, e que possuem rendimentos advindos da prestação\n de serviços de representante comercial autônomo, intermediação na\n realização de negócios por conta de terceiros, prestação de\n serviços de transporte de passageiros, prestação de serviços de\n transporte de cargas, entre outros trabalhos sem vínculo\n empregatício.\n \n Aluguéis\n \n Inclui proprietários de imóveis que possuem rendimentos de\n aluguéis, considerando que:\n \n \n \n (a) Apenas o valor líquido do aluguel é tributado. As despesas\n de IPTU, condomínio, cobrança/recebimento e aluguel no caso de\n imóvel sublocado podem ser descontadas do rendimento;\n \n \n (b) Se você tiver mais de um imóvel e receber mais de um aluguel\n por mês, será necessário considerar a quantia total dos aluguéis\n recebidos.\n \n \n \n A data do pagamento, para efeito de incidência do imposto, será\n considerada aquela em que o locatário pagar o aluguel ao\n proprietário do bem ou à administradora.\n \n Pensão Alimentícia\n \n Inclui os alimentandos que recebem pensão alimentícia. A pensão\n alimentícia pode ser recebida não apenas pelos filhos, mas por\n qualquer pessoa que tenha recebido esse benefício por decisão\n judicial, acordo homologado judicialmente ou por escritura\n pública. O contribuinte é o beneficiário da pensão, ainda que\n tenha sido paga a seu representante legal.\n \n Exterior\n \n Inclui pessoas físicas com rendimentos ou quaisquer outros valores\n recebidos de fontes do exterior. Neste caso, é importante observar\n a possível existência de{\" \"}\n \n acordos, convenções e tratados internacionais\n {\" \"}\n firmados entre o Brasil e o país de origem dos rendimentos para\n evitar a bitributação.\n \n \n Qual imposto de renda incide\n \n \n O imposto sobre rendimentos é calculado sobre o total recebido no\n mês, mediante a aplicação da seguinte tabela progressiva mensal:\n \n \n \n a) Até R$ 2.259,21 não há impostos a pagar;\n \n \n b) De R$ 2.259,21 até R$ 2.826,65, a alíquota é de 7,5% sobre os\n rendimentos, com parcela a deduzir de R$ 142,80;\n \n \n c) De R$ 2.826,66 até R$ 3.751,05, a alíquota é de 15% sobre os\n rendimentos, com parcela a deduzir de R$ 354,80;\n \n \n d) De R$ 3.751,06 até R$ 4.664,68, a alíquota é de 22,5% sobre\n os rendimentos, com parcela a deduzir de R$ 636,13;\n \n \n e) Acima de R$ 4.664,68, a alíquota é de 27,5% sobre os\n rendimentos, com parcela a deduzir de R$ 869,36.\n \n \n \n (Lei nº 11.482, de 31 de maio de 2007, arts. 1º e 3º; Lei nº\n 12.024, de 27 de agosto de 2009, art. 3º; Regulamento do Imposto\n sobre a Renda - RIR/2018, art. 121, aprovado pelo Decreto nº\n 9.580, de 22 de novembro de 2018; Instrução Normativa RFB nº\n 1.500, de 29 de outubro de 2014, arts. 53 a 57 e 65; Solução de\n Consulta Interna Cosit nº 3, de 8 de fevereiro de 2012; e Solução\n de Consulta Interna Cosit nº 6, de 25 de maio de 2015)\n \n \n Quando o imposto deve ser pago\n \n \n O recolhimento do imposto de renda deve ser feito até o último dia\n útil do mês seguinte ao recebimento dos rendimentos.\n \n \n O código a ser utilizado no Documento de Arrecadação das Receitas\n Federais (DARF) para pagamento desse tributo é 0190.\n \n \n (Lei nº 8.383, de 30 de dezembro de 1991, art. 7º; e Instrução\n Normativa RFB nº 1.500, de 29 de outubro de 2014, arts. 53 a 57 e\n 67)\n \n {/* */}\n \n Deduções no imposto de renda\n \n \n São admitidas as seguintes deduções na base de cálculo do imposto\n sobre rendimentos:\n \n \n \n a) Contribuição previdenciária oficial, o INSS;\n \n \n b) Dependentes, sendo R$ 189,59 por dependente a partir do ano\n 2021;\n \n \n c) Pensão alimentícia, quando paga em cumprimento de decisão\n judicial, inclusive os alimentos provisionais, de acordo\n homologado judicialmente ou de escritura pública; e\n \n \n d) Despesas relacionadas à atividade do profissional autônomo\n \n \n \n No caso de autônomos, somente as seguintes categorias de despesas\n podem ser deduzidas da base tributária:\n \n \n \n i) Despesas trabalhistas;\n \n \n ii) Serviços de terceiros;\n \n \n iii) Despesas com custeio e funcionamento;\n \n \n iv) Propaganda, assinatura de jornais e revistas;\n \n v) Roupas especiais;\n \n vi) Contribuições a sindicatos, associações ou conselhos;\n \n \n vii) Despesas com congressos e seminários;\n \n \n viii) Honorários profissionais;\n \n \n ix) Imóvel residencial ou profissional;\n \n \n x) Manutenção e conservação;\n \n \n xi) Correios e transporte;\n \n \n xii) Instalações, máquinas e equipamentos;\n \n \n xii) Despesas Comuns como rateio sob forma de Condomínio;\n \n \n xiv) Outras despesas necessárias à atividade específica e\n individual de cada contribuinte não contempladas anteriormente.\n \n \n \n (Lei nº 7.290, de 19 de dezembro de 1984; Lei nº 7.713, de 22 de\n dezembro de 1988, art. 9º; Regulamento do Imposto sobre a Renda -\n RIR/2018, arts. 39 e 158, § 1º, aprovado pelo Decreto nº 9.580, de\n 22 de novembro de 2018; e Parecer Normativo CST nº 122, de 8 de\n junho de 1974)\n \n \n Utilizando o Velotax para IR em Rendimentos\n \n \n A{\" \"}\n navigate(`/${currentBroker.path}/autonomos`)}\n >\n Calculadora\n {\" \"}\n do Velotax para cálculo e pagamento de IR sobre rendimentos de\n pessoas físicas ou fontes no exterior permite a inclusão manual de\n operações, e realiza os cálculos automaticamente seguindo as\n regras da Receita Federal.\n \n \n Após inserir os seus rendimentos do mês, o Velotax calculará os\n seus impostos devidos de acordo com as regras acima e emitirá o\n seu DARF para pagamento.\n \n \n Caso você esteja pagando em atraso, o Velotax também incluirá\n automaticamente os juros e multa devidos no seu DARF.\n \n \n Ainda tem dúvidas? Acesse:\n \n \n -{\" \"}\n \n Fórum\n {\" \"}\n , onde nossa comunidade de usuários responde suas dúvidas\n \n \n\n \n \n IMPOSTO DE RENDA NA VENDA IMÓVEIS\n \n \n As operações onde ocorram a venda de imóveis estão sujeitas a\n tributação pelo Imposto de Renda, aplicando-se as regras do ganho\n de capital. O ganho de capital é o resultado positivo obtido entre\n o valor da venda e o custo de aquisição do imóvel.\n \n \n (Regulamento do Imposto sobre a renda – RIR/2018, Lei nº 9580 de\n 22 de Novembro de 2018 Lei nº 11.196 de 21 de Novembro de 2005;\n Instrução Normativa 1500 de 29 de Outubro de 2014)\n \n \n QUANDO O IMPOSTO DEVE SER PAGO\n \n \n O imposto deve ser apurado no mês em que foi realizada a venda,\n devendo ser pago por meio de guia DARF no código de receita 4600.\n \n \n O contribuinte terá o prazo até o último dia útil do mês seguinte\n para fazer o pagamento do imposto.\n \n \n (Instrução Normativa SRF nº 84, de 11 de outubro de 2001, art. 17\n e § 4º do art. 19; Solução de Consulta Cosit nº 60, de 20 de\n fevereiro de 2014)\n \n DEDUÇÃO DE CORRETAGEM\n \n As despesas de corretagem na venda do imóvel podem ser deduzidas\n do valor da venda no momento da apuração do imposto.\n \n \n (Instrução Normativa SRF nº 84, de 11 de outubro de 2001, art. 17\n e § 4º do art. 19; Solução de Consulta Cosit nº 60, de 20 de\n fevereiro de 2014; e Solução de Consulta Cosit nº 50, de 22 de\n junho de 2020)\n \n \n CUSTO DE AQUISIÇÃO DO IMÓVEL{\" \"}\n \n \n O custo de aquisição a ser considerado na apuração do imposto será\n o valor de compra do imóvel descrito na escritura ou contrato. Os\n valores de benfeitorias realizadas no imóvel podem somadas ao\n custo de aquisição com a condição que o contribuinte tenha\n documentação idônea (notas fiscais) comprovando os valores gastos.\n Essa documentação poderá ser solicitada pela Receita Federal.\n \n \n (Instrução Normativa SRF nº 84, de 11 de outubro de 2001, art. 17\n e § 4º do art. 19; Solução de Consulta Cosit nº 60, de 20 de\n fevereiro de 2014; e Solução de Consulta Cosit nº 50, de 22 de\n junho de 2020)\n \n ALÌQUOTAS DO IMPOSTO\n \n O ganho de capital obtido na venda de imóvel terá incidência de\n alíquota progressiva, conforme o valor do lucro na operação:\n \n \n \n a) 15% sobre a parcela dos ganhos que não ultrapassar R$\n 5.000.000,00;\n \n \n b) 17,5% sobre a parcela dos ganhos que exceder R$ 5.000.000,00\n e não ultrapassar R$ 10.000.000,00;{\" \"}\n \n \n c) 20% sobre a parcela dos ganhos que exceder R$ 10.000.000,00 e\n não ultrapassar R$ 30.000.000,00;\n \n \n d) 22,5% sobre a parcela dos ganhos que ultrapassar R$\n 30.000.000,00.\n \n \n \n (Lei nº 5.172, de 25 de outubro de 1966 - Código Tributário\n Nacional - CTN, art. 118; Lei nº 8.981, de 20 de janeiro de 1995,\n art. 21; Instrução Normativa SRF nº 84, de 11 de outubro de 2001;\n Instrução Normativa SRF nº 599, de 28 de dezembro de 2005; e Ato\n Declaratório Interpretativo RFB nº 3, de 27 de abril de 2016)\n \n ISENÇÕES \n \n A legislação prevê condições nas quais podem haver a isenção do\n Imposto de Renda. São elas:\n \n \n \n a) Venda de imóvel adquirido até o ano 1969 é totalmente isenta\n do Imposto de Renda.\n \n \n b) Venda de Imóvel cujo o valor negociado não ultrapasse\n R$35.000,00 no mês de apuração será totalmente isenta.\n \n \n c) Venda de imóvel cujo o valor negociado seja até R$440.000,00\n desde que seja o único imóvel do contribuinte e ele não tenha\n usufruído desse benefício nos últimos 5 anos.\n \n \n d) Será isenta do Imposto de Renda a parcela da venda cujo o\n valor seja revertido na compra de outro imóvel ou na quitação de\n financiamento imobiliário no prazo de até 180 dias. Válido\n apenas para transações com imóveis residenciais.\n \n \n \n (Regulamento do Imposto sobre a Renda – RIR/2018, art. 35, Lei nº\n 9580 de 22 de Novembro de 2018. Art. 38 e 39 da Lei 11.196 de 21\n de Novembro de 2005).\n \n \n
\n
\n\n \n {CompaniesExemptList?.content}\n \n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n padding: 64px 32px 128px;\n &.view-edit {\n padding: 0;\n }\n &.view {\n padding: 0;\n min-height: 100%;\n }\n\n .integration-text {\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n margin: 0;\n a {\n font-weight: 600;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 0 0 32px;\n background-color: var(--velotax-background-color);\n\n .integration-text {\n padding: 0;\n }\n }\n`;\n\nexport const Content = styled.div`\n padding: 32px;\n &:not(.view):not(.view-edit) {\n border: 1px solid var(--velotax-background-color-ghost);\n }\n &.second.view,\n &.second.view-edit {\n margin-top: -24px;\n padding: 0 32px 32px;\n }\n &.second {\n padding: 32px;\n border: none;\n background-color: transparent;\n }\n .ant-divider {\n margin: 8px 0 24px;\n }\n width: 700px;\n margin: 0 auto;\n border-radius: 16px;\n background-color: var(--velotax-background-color);\n\n h3.date-title {\n font-size: 24px;\n font-weight: 700;\n }\n h3 {\n display: flex;\n align-items: center;\n font-size: 20px;\n column-gap: 16px;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n }\n .month-chevron {\n width: 32px;\n height: 32px;\n cursor: pointer;\n &.empty {\n cursor: default;\n }\n }\n .desc-label {\n display: flex;\n align-items: center;\n svg {\n fill: var(--ant-primary-color);\n }\n }\n .desc-content {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n column-gap: 8px;\n svg {\n fill: var(--ant-primary-color);\n }\n span {\n align-self: center;\n }\n button {\n min-width: 32px;\n }\n }\n .ml-40 {\n margin-left: 40px;\n }\n .add {\n float: right;\n min-width: 128px;\n margin-bottom: 16px;\n }\n .ant-descriptions-view {\n border-radius: 8px !important;\n }\n .ant-descriptions-item-label {\n width: 50%;\n background-color: var(--velotax-ghost) !important;\n }\n .ant-descriptions-item-content {\n text-align: center;\n background-color: var(--velotax-background-color) !important;\n }\n .ant-list.ant-list-split {\n clear: both;\n padding: 0 16px;\n background-color: var(--velotax-ghost) !important;\n border: 1px solid var(--velotax-background-color-ghost);\n border-radius: 8px;\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n .list-description {\n display: flex;\n flex-direction: column;\n }\n .min-darf-price {\n margin-top: 24px;\n display: flex;\n align-items: center;\n column-gap: 8px;\n }\n .text-center {\n display: block;\n text-align: center;\n }\n .ant-collapse-header {\n padding: 12px 0 !important;\n }\n .ant-collapse-content-box {\n padding: 16px 0 !important;\n }\n .ant-collapse\n > .ant-collapse-item\n > .ant-collapse-header\n .ant-collapse-arrow\n svg {\n transform: rotate(-90deg);\n }\n\n .ant-collapse-header-text {\n width: 100%;\n }\n .total-tax-header {\n width: calc(100% - 48px);\n display: flex;\n align-items: center;\n justify-content: space-between;\n &.original {\n h3:last-of-type {\n width: 40%;\n margin-bottom: -4px;\n }\n }\n h3 {\n margin: 0;\n }\n }\n .ant-collapse-item-disabled {\n & > .ant-collapse-header {\n cursor: default;\n .ant-collapse-arrow {\n opacity: 0;\n }\n }\n }\n\n .no-plan-container {\n position: absolute;\n top: 0;\n left: 50%;\n width: 50%;\n z-index: 3;\n height: 100%;\n padding: 8px;\n display: flex;\n font-size: 16px;\n font-weight: 500;\n text-align: center;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n background-color: #fff4;\n border-radius: 0 8px 8px 0;\n backdrop-filter: blur(4px);\n border: 1px solid var(--velotax-background-color-ghost);\n border-left: none;\n .ant-btn {\n margin-top: 8px;\n }\n }\n\n &.view .total-tax-header.impostos-devidos h3:first-of-type {\n max-width: 60%;\n font-size: 18px;\n margin-left: 4px;\n line-height: 22px;\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n padding: 24px;\n border-radius: 0;\n border: none !important;\n &.second {\n margin-top: -32px;\n padding: 24px !important;\n background-color: var(--velotax-background-color);\n border-top: 1px solid var(--velotax-background-color-ghost) !important;\n }\n h3 {\n font-size: 18px;\n column-gap: 8px;\n }\n .no-plan-container {\n font-size: 14px;\n line-height: 18px;\n }\n .total-tax-header {\n width: calc(100% - 20px);\n h3.text-center {\n span {\n font-size: 16px;\n }\n }\n }\n .anticon.anticon-right.ant-collapse-arrow {\n top: 24px;\n right: 0;\n }\n .desc-content {\n column-gap: 2px;\n flex-direction: row;\n &.is-editting {\n row-gap: 8px;\n flex-direction: column;\n button {\n width: 100%;\n }\n }\n &:not(.is-editting) {\n span {\n line-height: 32px;\n }\n button {\n margin-top: -2px;\n }\n }\n &.ml-40 {\n margin-left: 0;\n }\n }\n }\n`;\n","import { useEffect, useState } from \"react\";\nimport { Col, Divider, Form, Row } from \"antd\";\nimport { FooterModal } from \"../FooterModal\";\nimport api from \"../../services/rendimentos\";\nimport { DrawerModal } from \"../DrawerModal\";\ninterface FormModalProps {\n add: any;\n edit: any;\n title: string;\n onCancel: any;\n itemToEdit: any;\n visibility: boolean;\n hideFooter?: boolean;\n rows: any[];\n disableButtons?: boolean;\n preFormChildren?: React.ReactNode;\n loading?: boolean;\n saveButtonText?: string;\n}\n\nexport const FormModal: React.FC = ({\n add,\n edit,\n rows,\n title,\n onCancel,\n visibility,\n itemToEdit,\n children,\n disableButtons,\n preFormChildren,\n hideFooter,\n loading,\n saveButtonText,\n}) => {\n const [form] = Form.useForm();\n const [, setUpdate] = useState(false);\n useEffect(() => {\n if (!visibility) {\n form.resetFields();\n } else if (itemToEdit) {\n setUpdate((update) => !update);\n form.setFieldsValue(itemToEdit);\n }\n }, [visibility, form, itemToEdit]);\n\n const onValuesChange = async (changedValues: any, values: any) => {\n const inputs = rows\n .flat()\n .map((input) =>\n typeof input === \"function\" ? input({ data: values }) : input\n );\n if (\n inputs\n .filter((item) => item.mustUpdate)\n .map((item) => item.name)\n .includes(Object.keys(changedValues)[0])\n ) {\n setUpdate((update) => !update);\n }\n let data;\n if (changedValues?.date?.replace(\"_\", \"\").length === 10) {\n const response = await api.post(\"/dividends/get-cambio\", {\n date: changedValues.date,\n });\n values.taxaCambio = response?.data;\n }\n data = {\n ...values,\n ...inputs\n .filter((input) => input.onChange)\n .reduce(\n (acc, cur) => ({\n ...acc,\n [cur.name]: cur.onChange?.(changedValues, { ...values, ...acc }),\n }),\n {}\n ),\n };\n\n const dataEntries = Object.entries(data);\n form.setFields(dataEntries.map(([name, value]) => ({ name, value })));\n form.resetFields(\n dataEntries\n .filter(([, value]) => value === undefined || value === null)\n .map(([name]) => name)\n );\n };\n\n const onFinish = (data: any) => {\n if (itemToEdit) {\n edit({\n ...data,\n ...(itemToEdit?.manual ? { manual: true } : {}),\n });\n } else {\n add({\n ...data,\n ...(itemToEdit?.manual ? { manual: true } : {}),\n });\n }\n };\n\n return (\n \n \n {rows.map((row, index) => (\n \n {row\n .map((input: any) =>\n typeof input === \"function\"\n ? input({ data: form.getFieldsValue() })\n : input\n )\n .filter(\n (input: any) =>\n !(\n typeof input.hide === \"function\" &&\n input.hide({ data: form.getFieldsValue() })\n )\n )\n .map((input: any, index: number, array: any[]) => (\n \n \n ))}\n {children}\n \n {!hideFooter && (\n \n )}\n \n \n );\n};\n","import React, { useState } from \"react\";\nimport { Col, Divider, message, Row } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport Button from \"../Button\";\nimport { DrawerModal } from \"../DrawerModal\";\n\ninterface IDeleteConfirmationModalProps {\n title: string;\n visibility: boolean;\n body: React.ReactNode;\n onCancel: () => void;\n onOk?: () => Promise;\n updateData?: () => void;\n setVisibility: (param: any) => void;\n buttonLabel?: string;\n showToast?: boolean;\n successMessage?: string;\n}\n\nconst DeleteConfirmationModal: React.FC = ({\n title,\n visibility,\n onCancel,\n onOk,\n body,\n updateData,\n setVisibility,\n buttonLabel,\n showToast = true,\n successMessage,\n}) => {\n const [loading, setLoading] = useState(false);\n const handleOnOk = () => {\n setLoading(true);\n const finish = () => {\n setLoading(false);\n updateData?.();\n setVisibility(false);\n showToast && message.success(successMessage || \"Deletado com sucesso\");\n };\n if (onOk) {\n onOk()\n .then(() => finish())\n .catch((err) => {\n showToast && message.error(\"Algo deu errado\");\n setLoading(false);\n });\n } else {\n finish();\n }\n };\n return (\n \n

{body}

\n \n \n \n \n Cancelar\n \n \n \n \n {loading && }\n {buttonLabel || \"Deletar\"}\n \n \n \n \n );\n};\n\nexport default DeleteConfirmationModal;\n","import clsx from \"clsx\";\nimport { months } from \"../../../../utils\";\nimport {\n YearResumeStatusCSSClassEnum,\n YearResumeStatusFromBackEnum,\n} from \"../../../../constants/darf\";\n\nexport interface YearResume {\n year: number;\n months: {\n month: number;\n payed: boolean;\n status: keyof typeof YearResumeStatusFromBackEnum;\n }[];\n}\n\ninterface DatePickerMonthCellProps {\n event: moment.Moment;\n yearResume: YearResume[];\n}\n\nexport const DatePickerMonthCell: React.FC = ({\n event,\n yearResume,\n}) => {\n const date = new Date();\n const year = event.year();\n const month = event.month();\n const item = yearResume\n .find((list) => list.year === year)\n ?.months.find((item) => item.month - 1 === month);\n const disabled = year === date.getFullYear() && month >= date.getMonth();\n return (\n \n {months[month]}\n \n );\n};\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { useLocation } from \"react-router-dom\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport { BsCalendar3, BsDownload } from \"react-icons/bs\";\nimport { BiChevronLeft, BiChevronRight } from \"react-icons/bi\";\nimport { useCallback, useEffect, useMemo, useState, ReactNode } from \"react\";\nimport {\n AiOutlineDelete,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n Collapse,\n DatePicker,\n Descriptions,\n List,\n message,\n Row,\n Skeleton,\n Space,\n Spin,\n Tooltip,\n Typography,\n} from \"antd\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { Container, Content } from \"./styles\";\nimport { Page } from \"../../constants/brokers\";\nimport HandleTag from \"../../services/handleTag\";\nimport apiCripto from \"../../services/apiCrypto\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { FormModal } from \"../../components/FormModal\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport {\n DatePickerMonthCell,\n YearResume,\n} from \"./Components/DatePickerMonthCell\";\nimport {\n antDatePickerLocale,\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n mensagemDarfsRetroativos,\n monthsExtended,\n planInfoToHasPlan,\n} from \"../../utils\";\nimport {\n DarfResultDescriptions,\n DarfFormItemRows,\n defaultDarf,\n IDarf,\n DarfImpostosDevidosDescriptions,\n minDarfPrice,\n maxDarfPrice,\n YearResumeStatusFromBackEnum,\n historicoVendasEmptyText,\n maxPixPayment,\n maxCreditCardPayment,\n} from \"../../constants/darf\";\n\ninterface DarfProps {\n item: Page;\n closeModal: () => void;\n view?: boolean;\n viewEdit?: boolean;\n date?: {\n year?: number;\n month?: number;\n };\n darf?: {\n id: string;\n fullPath: string;\n payed?: boolean\n };\n}\n\nexport const Darf: React.FC = ({\n item,\n view,\n darf,\n date,\n viewEdit,\n closeModal,\n}) => {\n const { state } = useLocation();\n const { currentBroker, currentPage } = useBroker();\n const { user, hasPlan, showUserPlanModal, userPlanModal } = useAuth();\n\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const queryYear = (state as any)?.year as number;\n const queryMonth = (state as any)?.month as number;\n const initialMonth = queryMonth\n ? queryMonth - 1\n : today.getMonth() - 1 >= 0\n ? today.getMonth() - 1\n : 11;\n const initialYear = queryYear\n ? queryYear\n : today.getMonth() - 1 >= 0\n ? today.getFullYear()\n : today.getFullYear() - 1;\n const defaultValue = moment({ month: initialMonth, year: initialYear });\n const currentDate = moment({\n month: currentMonth,\n year: currentYear,\n }).subtract(1, \"M\");\n window.history.replaceState({}, document.title);\n\n const [asset, setAsset] = useState();\n const [, setYear] = useState(initialYear);\n const [, setMonth] = useState(initialMonth);\n const [loading, setLoading] = useState(false);\n const [emitting, setEmitting] = useState(false);\n const [firstTime, setFirstTime] = useState(true);\n const [helpModal, setHelpModal] = useState();\n const [data, setData] = useState(defaultDarf);\n const [paymentData, setPaymentData] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [showAssetModal, setShowAssetModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [yearResume, setYearResume] = useState([]);\n const [datePickerYear, setDatePickerYear] = useState(initialYear);\n const [gettingYearResume, setGettingYearResume] = useState(false);\n const [loadingDarfButton, setLoadingDarfButton] = useState(false);\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const year = date?.year ?? initialYear;\n const month = date?.month ?? initialMonth;\n\n const transactionFeature = item.features[0];\n const taxFeature = item.features[1];\n const yearResumeFeature = item.features[2];\n\n // useEffect(() => {\n // apiCripto\n // .post(`irpf/cripto/transaction-processed`)\n // .then(() => {})\n // .catch(() => message.error(errorMessage))\n // .finally(() => {\n // setFirstTime(false);\n // setLoading(false);\n // });\n // }, []);\n\n const { emitted } = useMemo(() => {\n if (gettingYearResume) {\n }\n const monthResume = yearResume\n .find((resume) => resume.year === year)\n ?.months.find((m) => m.month - 1 === month);\n return {\n emitted:\n monthResume?.status === YearResumeStatusFromBackEnum.PAYED ||\n monthResume?.status === YearResumeStatusFromBackEnum.NOT_PAYED,\n payed: !!monthResume?.payed,\n status: monthResume?.status,\n };\n }, [yearResume, year, month, gettingYearResume]);\n\n const getDarf = useCallback(\n (id: string) => {\n view && setLoading(true);\n view &&\n (currentPage?.api || apis)\n .get(`${taxFeature.apiUrl}/${id}`)\n .then((response) => {\n setYear(response.data?.year);\n setMonth(response.data?.month - 1);\n setData({\n ...response.data,\n emitted: true,\n });\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n },\n [view, taxFeature.apiUrl, currentPage]\n );\n\n const getYearResume = useCallback(\n (year: number, force?: boolean, url?: string) => {\n setGettingYearResume(true);\n !view &&\n year <= new Date().getFullYear() &&\n year >= currentBroker.initialYear &&\n (force ||\n (!yearResumeFeature.disabled &&\n !yearResume.find((resume) => resume.year === year))) &&\n (currentPage?.api || apis)\n .get(yearResumeFeature.apiUrl, { params: { year } })\n .then((response) => {\n const index = yearResume.findIndex(\n (resume) => resume.year === year\n );\n if (index >= 0) {\n setYearResume((yearResume) => {\n yearResume.splice(index, 1, response.data);\n return yearResume;\n });\n } else {\n setYearResume((yearResume) => [...yearResume, response.data]);\n }\n\n if (url) {\n download(url);\n }\n })\n .catch((err) => console.log(err))\n .finally(() => setGettingYearResume(false));\n },\n [\n yearResumeFeature,\n yearResume,\n view,\n currentBroker.initialYear,\n currentPage,\n ]\n );\n\n const getTaxes = useCallback(() => {\n (!hasPlan || !view) && setLoading(true);\n (!hasPlan || !view) &&\n (currentPage?.api || apis)\n .get(transactionFeature.apiUrl, { params: { month: month + 1, year } })\n .then((response) => {\n setData(response.data);\n })\n .catch((err) => {\n setData(defaultDarf);\n message.error(errorMessage);\n })\n .finally(() => setLoading(false));\n // eslint-disable-next-line\n }, [view, currentPage?.api, transactionFeature.apiUrl, month, year, hasPlan]);\n\n const handleDarf = (justSave?: boolean) => {\n setEmitting(true);\n (currentPage?.api || apis)\n .post(taxFeature.apiUrl, {\n ...data,\n year,\n month: month + 1,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n justSave,\n payed: false,\n })\n .then((res) => {\n closeModal();\n setData((data) => ({ ...data, emitted: true }));\n getYearResume(year, true, justSave ? \"\" : res.data.darfUrl);\n setEmitting(false);\n })\n .catch((err) => {\n message.error(err?.response?.data?.message || errorMessage);\n setEmitting(false);\n });\n };\n\n const handleRegularize = (regular: boolean) => {\n setEmitting(true);\n (currentPage?.api || apis)\n .post(\"transaction/regularize\", {\n year,\n month: month + 1,\n regular,\n impostoDevido: data.impostoDevido,\n totalImpostoDevido: data.totalImpostoDevido,\n })\n .then((res) => {\n closeModal();\n getYearResume(year, true, res.data.darfUrl);\n getTaxes();\n message.success(\"Dados salvos\");\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setEmitting(false));\n };\n\n const onChangeMonth = (value: moment.Moment | null, dateString: string) => {\n const [month, year] = dateString.split(\"-\");\n setMonth(parseInt(month) - 1);\n setYear(parseInt(year));\n };\n\n const unsetAsset = () => {\n setAsset(undefined);\n };\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(false);\n unsetAsset();\n };\n\n const handleCloseAssetModal = () => {\n setShowAssetModal(false);\n unsetAsset();\n };\n\n const onCloseHelpModal = () => {\n setHelpModal(undefined);\n };\n\n const handleOpenDarfModal = () => {\n if (\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ) {\n handleDarf();\n } else {\n handlePlanModal();\n }\n };\n\n const handleOpenPaymentModal = () => {\n setPaymentModal(!paymentModal);\n };\n\n const handleAdd = (event: React.MouseEvent) => {\n event.stopPropagation();\n setShowAssetModal(true);\n };\n\n const handleEdit = (item: any, index: number) => {\n setShowAssetModal(true);\n setAsset({\n ...item,\n data: moment.utc(item.data.toLocaleString()).format(\"DD/MM/YYYY\"),\n dataVenda: moment\n .utc(item?.dataVenda?.toLocaleString())\n ?.format(\"DD/MM/YYYY\"),\n dataCompra: moment\n .utc(item?.dataCompra?.toLocaleString())\n ?.format(\"DD/MM/YYYY\"),\n });\n };\n\n const handleRemove = (item: any, index: number) => {\n setShowDeleteModal(true);\n setAsset(item);\n };\n\n const addAsset = (asset: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .post(`${transactionFeature.apiUrl}?manual=true`, asset, {\n headers: {\n \"x-email\": user.user.email,\n },\n })\n .then(() => {\n getTaxes();\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const editAsset = (asset: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .put(`${transactionFeature.apiUrl}/${asset.id}`, asset)\n .then(() => {\n getTaxes();\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const removeAsset = () => {\n setLoading(true);\n (currentPage?.api || apis)\n .delete(`${transactionFeature.apiUrl}/${asset.id}`)\n .then(() => {\n getTaxes();\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseDeleteModal();\n });\n };\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleSaveMonth = async () => {\n setLoadingDarfButton(true);\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ? handleDarf(true)\n : handlePlanModal();\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n };\n\n const handleEventDarfButton = async () => {\n setLoadingDarfButton(true);\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ? handleOpenPaymentModal()\n : handlePlanModal();\n };\n\n const handleLabelButton: ReactNode = useMemo(() => {\n // if (!userPlanInfoStatus) return \"Assinar Plano Emissão de DARF\";\n\n if (data?.totalImpostoDevido <= maxDarfPrice) return \"Pagar DARF\";\n else {\n if (emitted) return \"Emitir novo DARF\";\n else return taxFeature?.buttonLabel;\n }\n }, [data?.totalImpostoDevido, emitted, taxFeature?.buttonLabel]);\n\n const impostoCharge = useMemo(\n () =>\n !view\n ? data.impostoDevido +\n data.impostoAcumulado +\n (data.impostoDevido + data.impostoAcumulado < minDarfPrice\n ? 0\n : data.multa + data.juros)\n : Math.max(\n (data.impostoDevido || 0) +\n (data.impostoAcumulado || 0) +\n ((data.impostoDevido || 0) + (data.impostoAcumulado || 0) <\n minDarfPrice\n ? 0\n : data.multa + data.juros),\n 0\n ),\n [view, data.impostoDevido, data.impostoAcumulado, data.juros, data.multa]\n );\n\n useEffect(() => {\n if (!darf?.payed) getTaxes();\n }, [darf?.payed, getTaxes, month, year]);\n\n useEffect(() => {\n if (view && darf) {\n getDarf(darf.id);\n }\n }, [getDarf, view, darf]);\n\n useEffect(() => {\n getYearResume(year);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const dataToPayment = {\n ...data,\n year,\n month: month + 1,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n };\n\n setPaymentData(dataToPayment);\n }, [data.totalImpostoDevido, data, month, user.user.name, year]);\n\n const downloadAction = (record: any) => {\n (currentPage?.api || apis)\n .get(`/darf/download/${record._id}`)\n .then((res) => {\n if (res.data.url) {\n download(res.data.url);\n }\n });\n };\n\n const allow = ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n });\n console.log(month);\n\n return (\n \n \n \n \n \n \n \n {!view && !viewEdit && (\n <>\n {currentBroker.initialYear === year && month === 0 ? (\n
\n ) : (\n {\n if (month === 0) {\n setYear((year) => {\n const newYear = year - 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(11);\n } else {\n setMonth((month) => month - 1);\n }\n }}\n />\n )}\n \n )}\n {monthsExtended[month]} de {year}\n {!view && !viewEdit && (\n <>\n {currentYear === year && currentMonth - 1 === month ? (\n
\n ) : (\n {\n if (month === 11) {\n setYear((year) => {\n const newYear = year + 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(0);\n } else {\n setMonth((month) => month + 1);\n }\n }}\n />\n )}\n \n )}\n \n \n {!view && !viewEdit && (\n \n }\n defaultValue={defaultValue}\n locale={antDatePickerLocale}\n value={moment({ year: datePickerYear, month })}\n onSelect={(e) => {\n if (e.month() === month && year !== datePickerYear) {\n onChangeMonth(e, `${month + 1}-${datePickerYear}`);\n }\n }}\n onPanelChange={(e) => {\n getYearResume(e.year());\n setDatePickerYear(e.year());\n }}\n getPopupContainer={(target) => target.parentElement!}\n disabledDate={(current) =>\n current &&\n (current > currentDate.endOf(\"month\") ||\n current < moment(`${currentBroker.initialYear}-01-01`) ||\n current < moment(`2020-01-01`))\n }\n monthCellRender={(e) => (\n \n )}\n />\n \n )}\n \n \n \n\n
\n\n \n \n {allow && view && darf?.fullPath && (\n \n \n }\n onClick={() => downloadAction(darf)}\n style={{ marginTop: \"-32px\", padding: \"4px 0\" }}\n >\n BAIXAR DARF\n \n \n \n )}\n
\n {!allow && (\n
\n \n Contrate o plano premium para ver os impostos devidos\n \n }\n onClick={() => {\n handlePlanModal();\n closeModal();\n }}\n >\n PREMIUM\n \n
\n )}\n \n {DarfImpostosDevidosDescriptions.map((description) => {\n if(description.id === 'prejuizoExterior') return (<>)\n return (\n \n {loading ? (\n \n ) : description.render ? (\n description.render(data)\n ) : (\n formatCurrency(\n !allow\n ? 0\n : Number(data[description.id as keyof IDarf] || 0)\n )\n )}\n \n )})}\n \n
\n\n
\n\n \n \n Vendas realizadas no mês\n \n }\n >\n {!view && (\n }\n >\n Adicionar\n \n )}\n (\n handleEdit(item, index)}\n icon={}\n />,\n handleRemove(item, index)}\n icon={}\n />,\n ]\n }\n >\n \n {item.ativo}}\n description={\n
\n {item.data && (\n
\n Data:{\" \"}\n {moment\n .utc(item?.data?.toLocaleString())\n .format(\"DD/MM/YYYY\")}\n
\n )}\n {item.quantidade && (\n
Quantidade: {item.quantidade}
\n )}\n {view && (\n <>\n
\n Custo médio de compra:{\" \"}\n \n {formatCurrency(item.custoCompra)}\n \n
\n
\n Preço de venda:{\" \"}\n \n {formatCurrency(item.precoVenda)}\n \n
\n \n )}\n
\n Ganho:{\" \"}\n \n {formatCurrency(\n item.ganho ??\n item.quantidade *\n (item.precoVenda - item.custoCompra) -\n item.taxas ??\n 0\n )}\n \n
\n
\n }\n />\n
\n \n )}\n />\n \n \n\n {allow &&
}\n\n {allow && (\n \n Imposto total\n \n {loading ? (\n \n ) : (\n formatCurrency(impostoCharge)\n )}\n \n
\n )}\n\n {allow && (\n \n {DarfResultDescriptions.map((description, i) => (\n \n {loading ? (\n \n ) : description.Component ? (\n \n ) : (\n formatCurrency(\n Number(data[description.id as keyof IDarf] || 0)\n )\n )}\n \n ))}\n \n )}\n\n {!view && (\n <>\n \n {allow &&\n !(month === currentMonth && year === currentYear) &&\n (data.impostoDevido + data.impostoAcumulado ?? 0) <\n minDarfPrice &&\n data?.memoriaCalculo?.length > 0 && (\n \n
\n \n O valor do imposto devido é menor que{\" \"}\n {formatCurrency(minDarfPrice)}. Você não precisa\n emitir um DARF para este mês. Clique aqui para\n regularizar este mês.\n \n }\n >\n {\n handleRegularize(true);\n }}\n >\n Salvar sem emitir DARF\n \n \n \n )}\n {data.impostoDevido + data.impostoAcumulado >= minDarfPrice && (\n \n
\n target.parentElement!}\n title={\n !allow\n ? mensagemDarfsRetroativos\n : month === currentMonth && year === currentYear\n ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n }\n >\n }\n loading={emitting || loadingDarfButton}\n disabled={\n loading ||\n emitting ||\n (month === currentMonth && year === currentYear)\n }\n >\n {handleLabelButton}\n {\" \"}\n \n \n )}\n \n {allow && !(month === currentMonth && year === currentYear) && (\n \n \n }\n >\n Salvar apenas\n \n \n \n )}\n \n )}\n \n \n \n {helpModal?.content}\n \n \n {\n handleOpenDarfModal();\n HandleTag(\"78\");\n }}\n disablePixOption={data?.totalImpostoDevido > maxPixPayment}\n disableCreditCardOption={\n data?.totalImpostoDevido > maxCreditCardPayment\n }\n paymentData={{\n ...paymentData,\n impostoTotalFinal: data.totalImpostoDevido + data.impostoAcumulado,\n }}\n />\n Promise.resolve(removeAsset())}\n body=\"Você realmente quer deletar esse ativo?\"\n />\n \n );\n};\n","import styled from \"styled-components\";\n\nexport const CardContainer = styled.div`\n min-width: 160px;\n height: 160px;\n border-radius: 8px;\n position: relative;\n transition: opacity 0.3s ease-in-out;\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 88, 0.08);\n background-color: var(--velotax-background-color);\n\n &,\n a {\n padding: 16px;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n }\n\n a {\n width: 100%;\n height: 100%;\n }\n\n figure {\n margin: 0 0 4px;\n\n svg {\n width: 32px;\n height: 32px;\n &:not(.no-fill) {\n fill: var(--ant-primary-color);\n }\n &.no-fill {\n stroke: var(--ant-primary-color);\n }\n }\n }\n\n .ant-btn.ant-btn-primary.btn-premium {\n top: 12px;\n right: -6px;\n }\n\n .content {\n width: 100%;\n font-weight: 700;\n font-size: 0.875rem;\n line-height: 1.125rem;\n color: var(--velotax-font-color);\n text-align: center;\n\n .ant-typography {\n color: inherit;\n margin: 0 auto 0 0;\n text-align: left;\n text-transform: uppercase;\n }\n\n .description {\n left: 16px;\n bottom: 16px;\n opacity: 0.7;\n font-size: 13px;\n font-weight: 300;\n position: absolute;\n width: calc(100% - 32px);\n .ant-typography {\n text-transform: none;\n }\n }\n }\n\n :hover {\n opacity: 0.8;\n cursor: pointer;\n }\n :active {\n opacity: 0.7;\n filter: contrast(0.95);\n cursor: pointer;\n }\n\n @media only screen and (max-device-width: 812px) {\n &,\n a {\n padding: 12px;\n }\n .description {\n left: 12px;\n bottom: 12px;\n width: calc(100% - 24px);\n }\n .ant-btn.ant-btn-primary.ant-btn-sm {\n top: 8px;\n right: 8px;\n font-size: 11px;\n column-gap: 4px;\n svg {\n width: 12px;\n height: 12px;\n }\n }\n }\n`;\n","import { ReactNode } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { CardContainer } from \"./styles\";\n\ninterface CardProps {\n id: string;\n icon: ReactNode;\n children: ReactNode;\n link?: string;\n disabled?: boolean;\n className?: string;\n onClick?: () => void;\n}\n\nconst Container: React.FC> = ({ children, link }) => {\n return link && link.includes(\"http\") ? (\n \n {children}\n \n ) : (\n <>{children}\n );\n};\n\nexport const Card = ({\n id,\n icon,\n link,\n children,\n disabled,\n onClick,\n className,\n}: CardProps) => {\n const navigate = useNavigate();\n\n const handleClick = () => {\n if (disabled) return;\n if (onClick) {\n onClick();\n } else if (link && !link.includes(\"http\")) {\n navigate(link);\n }\n };\n\n return (\n \n \n
{icon}
\n
{children}
\n
\n
\n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 3C7.029 3 3 7.029 3 12C3 16.971 7.029 21 12 21C16.971 21 21 16.971 21 12C21 7.029 16.971 3 12 3ZM12 3V11.586C12 11.851 12.105 12.105 12.293 12.293L18.364 18.364M12.07 11.96L19.79 7.5\",\n strokeWidth: 1.6,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgChart(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgChart);\nexport default __webpack_public_path__ + \"static/media/chart.4d5a55ae.svg\";\nexport { ForwardRef as ReactComponent };","import { Typography } from \"antd\";\nimport { RiFileList3Line } from \"react-icons/ri\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport { isMobile } from \"../../utils\";\nimport { ReactComponent as ChartIcon } from \"../../assets/icons/chart.svg\";\nimport { ReactComponent as IntegrationIcon } from \"../../assets/icons/integration.svg\";\nimport { GiProfit } from \"react-icons/gi\";\nimport { AiOutlineApi } from \"react-icons/ai\";\nimport { FaHandHoldingUsd } from \"react-icons/fa\";\n\nexport const itensBolsa = [\n {\n id: \"darf\",\n link: \"/velotax/bolsa-historic\",\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n {\n id: \"report\",\n link: \"/velotax/bolsa-report\",\n premium: true,\n content: (\n \n Relatórios {!isMobile() && \"(padrão Receita Federal)\"}\n \n ),\n description: (\n Relatórios auxiliares para declaração de IR\n ),\n icon: (\n \n ),\n },\n {\n id: \"dividendos\",\n link: \"/velotax/bolsa-dividendos\",\n premium: true,\n content: Dividendos,\n description: Gestão dos dividendos recebidos,\n icon: ,\n },\n {\n id: \"insert-manual\",\n link: \"/velotax/bolsa-insert-manual\",\n content: Posição 31/12/2019,\n icon: ,\n },\n {\n id: \"doacoes-heranca\",\n link: \"/velotax/bolsa-doacoes-heranca\",\n content: Doações e heranças,\n icon: (\n \n ),\n },\n // {\n // id: \"integration\",\n // link: \"/velotax/bolsa-integration\",\n // content: Integração com B3,\n // icon: ,\n // },\n // {\n // id: \"brokerage-note\",\n // link: \"/velotax/bolsa-integration\",\n // content: Notas de corretagem,\n // icon: ,\n // },\n {\n id: \"integration\",\n link: \"/velotax/bolsa-integration\",\n content: Notas de corretagem,\n icon: ,\n },\n];\n","import { Typography } from \"antd\";\nimport { AiOutlineApi } from \"react-icons/ai\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport myntLogo from \"../../assets/mynt.svg\";\nimport binanceLogo from \"../../assets/binance-logo.svg\";\nimport mercadoBitcoinLogo from \"../../assets/mercadobitcoin-favicon.png\";\nimport bitcoinTradeLogo from \"../../assets/bitcointrade-logo.svg\";\nimport { isMobile } from \"../../utils\";\nimport { RiFileList3Line } from \"react-icons/ri\";\n\nexport const itensCriptoSemLogo = [\n {\n id: \"darf\",\n premium: true,\n basic: false,\n link: \"/velotax/cripto-historic\",\n showToBasic: true,\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n {\n id: \"integration\",\n premium: true,\n basic: false,\n link: \"/velotax/cripto-integrations\",\n showToBasic: true,\n content:
\n Integrações\n
,\n description: Conexões com as suas corretoras,\n icon: ,\n },\n {\n id: \"report\",\n basic: false,\n premium: true,\n link: \"/velotax/cripto-report\",\n content: (\n \n Relatórios {!isMobile() && \"(padrão Receita Federal)\"}\n \n ),\n description: (\n Relatórios auxiliares para declaração de IR\n ),\n icon: (\n \n ),\n },\n];\n","import { Typography } from \"antd\";\nimport { VscHistory } from \"react-icons/vsc\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\n\nexport const itensImoveis = [\n {\n id: \"darf\",\n link: \"/velotax/imoveis-calculadora\",\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n {\n id: \"historic\",\n link: \"/velotax/imoveis-historico\",\n content: Histórico,\n description: (\n Histórico de impostos e pagamentos de DARF\n ),\n icon: ,\n },\n];\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.30493 10.9135L6.18925 14.3089M13.5783 7.51808L15.694 10.9135M16.1571 17.0014H11.9995M9.07857 5.00072C9.07857 3.34411 10.3859 2 11.9995 2C13.612 2 14.9204 3.34303 14.9204 5.00072C14.9204 6.65734 13.6131 8.00144 11.9995 8.00144C10.3859 7.99928 9.07857 6.65625 9.07857 5.00072ZM2 16.9993C2 15.3427 3.3073 13.9986 4.9209 13.9986C6.53345 13.9986 7.8418 15.3416 7.8418 16.9993C7.84074 18.6559 6.5345 20 4.9209 20C3.3073 20 2 18.657 2 16.9993ZM16.1582 16.9993C16.1582 15.3427 17.4655 13.9986 19.0791 13.9986C20.6916 13.9986 22 15.3416 22 16.9993C22 18.6559 20.6927 20 19.0791 20C17.4644 20 16.1582 18.657 16.1582 16.9993Z\",\n strokeWidth: 1.6,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgIntegration(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIntegration);\nexport default __webpack_public_path__ + \"static/media/integration.075c3180.svg\";\nexport { ForwardRef as ReactComponent };","import { Col, Row, Typography } from \"antd\";\nimport { ExteriorModalContainer } from \"./styles\";\nimport { formatCurrency, replaceDotByComma } from \"../../../utils\";\n\nexport enum ExteriorOperationType {\n TRADE = \"TRADE\",\n DEPOSIT = \"DEPOSIT\",\n WITHDRAW = \"WITHDRAW\",\n}\n\ninterface ExteriorModalContentProps {\n asset: any;\n}\n\nexport const InterestModal = ({ asset }: ExteriorModalContentProps) => {\n return (\n \n \n \n \n {asset.type === \"DIVIDEND\" ? \"Dividendos\" : \"Juros\"} recebidos\n \n \n Valor bruto:\n \n {formatCurrency(asset.valor, \"US$ \")}\n \n Taxa de corretagem:\n \n {formatCurrency(asset.fee, \"US$ \")}\n \n Data de liquidação:\n \n {asset.data}\n \n Cotação dólar:\n \n {replaceDotByComma(asset.cambioVenda)}\n \n \n
\n Rendimento total:   \n {formatCurrency(asset.rendimentoAplicacao)}\n
\n \n
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { GiProfit } from \"react-icons/gi\";\nimport { RiFileList3Line } from \"react-icons/ri\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport { isMobile } from \"../../utils\";\nimport { ReactComponent as IntegrationIcon } from \"../../assets/icons/integration.svg\";\nimport WarrenLogo from \"../../assets/warren-logo.svg\";\nimport XP_black_logo from \"../../assets/xp-black.svg\";\nimport BTGLogo from \"../../assets/btgpactual.svg\";\n\nexport const itensExterior = [\n {\n id: \"darf\",\n premium: true,\n showToBasic: false,\n link: \"/velotax/exterior-historic\",\n content: Calculadora de DARF,\n description: Cálculo de IR e mensal para o ano de 2023,\n icon: (\n \n ),\n },\n {\n id: \"report\",\n basic: true,\n premium: true,\n link: \"/velotax/exterior-report\",\n content: (\n \n Informe de rendimentos\n \n ),\n description: (\n Relatórios auxiliares para declaração de IR\n ),\n icon: (\n \n ),\n },\n // {\n // id: \"report\",\n // basic: true,\n // premium: true,\n // link: \"/velotax/exterior-report\",\n // content: (\n // \n // Relatórios {!isMobile() && \"(padrão Receita Federal)\"}\n // \n // ),\n // description: (\n // Relatórios auxiliares para declaração de IR\n // ),\n // icon: (\n // \n // ),\n // },\n // {\n // id: \"dividendos\",\n // premium: true,\n // link: \"/velotax/exterior-dividendos\",\n // content: Dividendos,\n // icon: ,\n // description: Gestão dos dividendos recebidos,\n // },\n {\n id: \"integration\",\n premium: false,\n showToBasic: true,\n link: \"/velotax/exterior-integrations\",\n content:
\n Integrações\n
,\n icon: ,\n // description: Conexões com as suas corretoras,\n },\n // {\n // id: \"integration\",\n // premium: false,\n // showToBasic: true,\n // link: \"/velotax/exterior-integrations\",\n // content:
\n // Integrações\n // \n // {!isMobile() &&\n // <>\n // \n // \n // \n // {/* */}\n // \n // }\n\n //
\n //
,\n // icon: ,\n // description: Conexões com as suas corretoras,\n // },\n];\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n padding: 64px 32px 128px;\n @media only screen and (max-device-width: 812px) {\n padding: 0;\n min-height: 100%;\n background-color: var(--velotax-background-color);\n }\n &.view,\n &.view-edit {\n padding: 0;\n }\n`;\n\nexport const Content = styled.div`\n padding: 32px;\n &:not(.view):not(.view-edit) {\n border: 1px solid var(--velotax-background-color-ghost);\n }\n &.second.view,\n &.second.view-edit {\n margin-top: -24px;\n padding: 0 32px 32px;\n }\n &.second {\n padding: 32px;\n border: none;\n background-color: transparent;\n }\n width: 700px;\n margin: 0 auto;\n border-radius: 16px;\n background-color: var(--velotax-background-color);\n\n .no-plan-container {\n position: absolute;\n top: 0;\n left: 50%;\n width: 50%;\n z-index: 3;\n height: 100%;\n padding: 8px;\n display: flex;\n font-size: 16px;\n font-weight: 500;\n text-align: center;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n background-color: transparent;\n border-radius: 0 8px 8px 0;\n backdrop-filter: blur(2px);\n border: 1px solid var(--velotax-background-color-ghost);\n border-left: none;\n .ant-btn {\n margin-top: 8px;\n }\n }\n\n h3.date-title {\n font-size: 24px;\n font-weight: 700;\n }\n\n h3 {\n display: flex;\n align-items: center;\n font-size: 20px;\n column-gap: 16px;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n }\n .month-chevron {\n width: 32px;\n height: 32px;\n cursor: pointer;\n &.empty {\n cursor: default;\n }\n }\n .desc-label {\n display: flex;\n align-items: center;\n svg {\n fill: var(--ant-primary-color);\n }\n }\n .desc-content {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n column-gap: 8px;\n svg {\n fill: var(--ant-primary-color);\n }\n span {\n align-self: center;\n }\n button {\n min-width: 32px;\n }\n }\n .ml-40 {\n margin-left: 40px;\n }\n .add {\n min-width: 128px;\n margin: 0 0 16px auto;\n }\n .ant-descriptions-item-label {\n width: 50%;\n background-color: var(--velotax-ghost) !important;\n }\n .ant-descriptions-item-content {\n text-align: center;\n background-color: var(--velotax-background-color) !important;\n }\n .ant-list.ant-list-split {\n padding: 0 16px;\n background-color: var(--velotax-ghost) !important;\n border: 1px solid var(--velotax-background-color-ghost);\n border-radius: 8px;\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n .list-description {\n display: flex;\n flex-direction: column;\n }\n .min-darf-price {\n margin-top: 24px;\n display: flex;\n align-items: center;\n column-gap: 8px;\n }\n .text-center {\n display: block;\n text-align: center;\n }\n .ant-collapse-header {\n padding: 12px 0 !important;\n }\n .ant-collapse-content-box {\n padding: 16px 0 !important;\n }\n .ant-collapse\n > .ant-collapse-item\n > .ant-collapse-header\n .ant-collapse-arrow\n svg {\n transform: rotate(-90deg);\n }\n .ant-collapse-header-text {\n width: 100%;\n }\n .ant-collapse-item-disabled {\n & > .ant-collapse-header {\n cursor: default;\n .ant-collapse-arrow {\n opacity: 0;\n }\n }\n }\n .total-tax-header {\n width: calc(100% - 48px);\n display: flex;\n align-items: center;\n justify-content: space-between;\n &.original {\n h3:last-of-type {\n width: 40%;\n margin-bottom: 2px;\n }\n }\n h3 {\n margin: 0 0 6px;\n }\n }\n\n &.view .total-tax-header.impostos-devidos h3:first-of-type {\n max-width: 60%;\n font-size: 18px;\n margin-left: 4px;\n line-height: 22px;\n }\n\n h5 {\n margin: 0px;\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n border-radius: 0;\n padding: 24px 24px 48px;\n border: none !important;\n &.second {\n margin-top: -24px;\n padding: 0 24px 48px !important;\n background-color: var(--velotax-background-color);\n }\n h3 {\n font-size: 18px;\n column-gap: 8px;\n }\n .no-plan-container {\n left: 50%;\n width: 50%;\n font-size: 14px;\n line-height: 18px;\n }\n .total-tax-header {\n width: calc(100% - 20px);\n h3.text-center {\n span {\n font-size: 16px;\n }\n }\n }\n .anticon.anticon-right.ant-collapse-arrow {\n top: 24px;\n right: 0;\n }\n .desc-content {\n column-gap: 2px;\n flex-direction: row;\n &.is-editting {\n row-gap: 8px;\n flex-direction: column;\n button {\n width: 100%;\n }\n }\n &:not(.is-editting) {\n span {\n line-height: 32px;\n }\n button {\n margin-top: -2px;\n }\n }\n &.ml-40 {\n margin-left: 0;\n }\n }\n }\n`;\n\nexport const BolsaOperations = styled.div`\n display: grid;\n grid-template-columns: 2fr 1fr;\n border-radius: 8px;\n color: var(--velotax-font-color);\n background-color: var(--velotax-background-color);\n border: 1px solid var(--velotax-background-color-ghost);\n\n div.body-deducoes-tributarias {\n display: flex;\n flex-direction: column;\n padding: 0 8px;\n border-radius: 0 8px 8px 0;\n background-color: var(--velotax-background-color);\n border-left: 1px solid var(--velotax-background-color-ghost);\n span {\n height: 48px;\n display: flex;\n font-weight: 700;\n align-items: center;\n column-gap: 8px;\n }\n }\n\n div.header-deducoes-tributarias {\n display: flex;\n flex-direction: column;\n padding: 0 16px;\n border-radius: 8px 0 0 8px;\n background-color: var(--velotax-ghost);\n span {\n height: 48px;\n display: flex;\n font-weight: 700;\n align-items: center;\n column-gap: 8px;\n border-top: none;\n + span {\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n grid-template-columns: 1.6fr 1fr;\n span {\n font-size: 12px;\n button {\n max-width: 24px;\n min-width: 24px;\n }\n }\n }\n`;\n","import clsx from \"clsx\";\nimport { useState } from \"react\";\nimport { VscClose } from \"react-icons/vsc\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { List, Form, message } from \"antd\";\nimport NumberFormat from \"react-number-format\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport Button from \"../../components/Button\";\nimport { HasPlan } from \"../../contexts/AuthContext\";\nimport { currencyToNumber, zero } from \"../../utils\";\nimport backendRendimentos from \"../../services/rendimentos\";\nimport { cpfInputMask, formatCurrency, isMobile } from \"../../utils\";\nimport {\n validationCpf,\n validationDateIsOnReferenceMonth,\n validationFieldRequired,\n} from \"../../utils/formValidations\";\nimport {\n CurrencyFormItem,\n MaskFormItem,\n DateFormItem,\n SelectFormItem,\n TextFormItem,\n} from \"../formItems\";\nimport {\n IDarf,\n IDarfBolsa,\n JurosModalProps,\n MinPriceModalProps,\n MultaModalProps,\n minDarfPrice,\n} from \"../darf\";\n\n\nconst optionsType = [\n { label: \"Trabalho Autônomo\", value: \"Trabalho Autônomo\", },\n { label: \"Aluguéis\", value: \"Aluguéis\" },\n // { label: \"Pensão Alimentícia\", value: \"Pensão Alimentícia\" },\n { label: \"Outros rendimentos no exterior\", value: \"Exterior\", oldModel: true },\n { label: \"Dividendos no exterior\", value: \"Dividendos no exterior\", oldModel: true },\n { label: \"Outros\", value: \"Outros\" },\n]\nexport const YearReport = 2023;\n\nconst RendimentoFormItems = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n tipo: (year: number) => SelectFormItem({\n name: \"tipo\",\n label: \"Tipo\",\n placeholder: \"Selecione\",\n mustUpdate: true,\n options: year < 2024 ? optionsType : optionsType.filter(el => !el.oldModel),\n }),\n valorRendimento: CurrencyFormItem({\n name: \"valorRendimento\",\n label: \"Rendimento\",\n hide: ({ data }: any) => data?.tipo === \"Dividendos no exterior\",\n }),\n valorRendimentoUsd: CurrencyFormItem({\n placeholder: \"US$ 0,00\",\n prefix: \"US$\",\n name: \"valorRendimentoUsd\",\n label: \"Valor bruto (USD)\",\n hide: ({ data }: any) => data?.tipo !== \"Dividendos no exterior\",\n }),\n cpfPagador: MaskFormItem({\n mask: cpfInputMask,\n rules: validationCpf,\n name: \"cpfPagador\",\n label: \"CPF do pagador\",\n hide: ({ data }: any) => data?.tipo !== \"Trabalho Autônomo\",\n onChange: (changed: any, values: any) =>\n changed.cpfPagador\n ? changed.cpfPagador.replace(/[_.-]/g, \"\")\n : values.cpfPagador,\n }),\n date: (month: number, year: number) =>\n DateFormItem({\n required: true,\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n name: \"date\",\n label: \"Data\",\n hide: ({ data }: any) => data?.tipo !== \"Dividendos no exterior\",\n }),\n taxaCambio: MaskFormItem({\n name: \"taxaCambio\",\n label: \"Taxa de câmbio\",\n disabled: true,\n hide: ({ data }: any) => data?.tipo !== \"Dividendos no exterior\",\n }),\n ativo: MaskFormItem({\n rules: validationFieldRequired,\n name: \"ativo\",\n label: \"Ativo\",\n hide: ({ data }: any) => data?.tipo !== \"Dividendos no exterior\",\n }),\n impostoPagoExteriorUsd: CurrencyFormItem({\n prefix: \"US$\",\n name: \"impostoPagoExteriorUsd\",\n label: \"Imposto pago no exterior (USD)\",\n hide: ({ data }: any) => data?.tipo !== \"Dividendos no exterior\",\n }),\n cpfBeneficiario: MaskFormItem({\n mask: cpfInputMask,\n rules: validationCpf,\n name: \"cpfBeneficiario\",\n label: \"CPF do beneficiário\",\n hide: ({ data }: any) => data?.tipo !== \"Trabalho Autônomo\",\n onChange: (changed: any, values: any) =>\n changed.cpfBeneficiario\n ? changed.cpfBeneficiario.replace(/[_.-]/g, \"\")\n : values.cpfBeneficiario,\n }),\n impostoPagoExterior: CurrencyFormItem({\n name: \"impostoPagoExterior\",\n label: \"Imposto Pago no Exterior\",\n hide: ({ data }: any) => data?.tipo !== \"Exterior\",\n }),\n};\n\ninterface IEdit {\n value: any;\n id: string;\n isEditting: boolean;\n}\n\nexport const ExteriorValueProps = {\n title: <>Impostos Pagos no Exterior,\n content: (\n
\n

\n Valor total dos impostos retidos e/ou pagos no exterior no mês\n selecionado\n

\n
\n ),\n};\n\nexport const RendimentoFormItemRows = (month: number, year: number) => [\n [RendimentoFormItems.id],\n [RendimentoFormItems.tipo(year)],\n [RendimentoFormItems.date(month, year)],\n [RendimentoFormItems.taxaCambio],\n [RendimentoFormItems.ativo],\n [RendimentoFormItems.valorRendimento],\n [RendimentoFormItems.valorRendimentoUsd],\n [RendimentoFormItems.cpfPagador],\n [RendimentoFormItems.cpfBeneficiario],\n [RendimentoFormItems.impostoPagoExterior],\n [RendimentoFormItems.impostoPagoExteriorUsd],\n];\n\nexport const ImpostoTotalRendimentos = [\n {\n id: \"impostoDevido\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data }: any) => {\n const impostoPrincipal = Math.max(\n 0,\n (data?.impostoDevido ?? 0) +\n (data?.impostoAcumulado ?? 0) -\n (data?.gastosExterior ?? 0)\n );\n\n return formatCurrency(impostoPrincipal);\n },\n },\n {\n id: \"impostoDevido\",\n label: () => (\n \n (+) Imposto devido\n \n ),\n Component: ({ data }: any) =>\n formatCurrency(Number(data?.impostoDevido || 0)),\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passados abaixo de R$ 10\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({\n data,\n year,\n month,\n loading,\n disabled,\n setDataBolsa,\n setDataCripto,\n id,\n monthStock,\n user,\n }: any) => {\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data?.[id as keyof (IDarf | IDarfBolsa)];\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n if (id !== \"\") {\n backendRendimentos\n .put(\"/rendimentos/updateImpostoAcumulado\", {\n _id: id,\n year,\n month: month + 1,\n [edit.id]: edit.value,\n })\n .then(() =>\n (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() =>\n message.error(\n \"Algo inesperado aconteceu! Tente novamente mais tarde.\"\n )\n )\n .finally(() => handleEditValueCancel());\n } else {\n backendRendimentos\n .post(\"/rendimentos\", {\n monthStock,\n year,\n month: month + 1,\n juros: data.juros,\n multa: data.multa,\n userCode: user.user.cpf,\n total: data.impostoTotal,\n impostoDevido: data.impostoDevido,\n totalRendimentos: data.totalRendimentos,\n baseTributaria: data.baseTributaria,\n aliquotaDevida: data.aliquotaDevida,\n totalDependentes: data.totalDependentes,\n totalDespesas: data.totalDespesas,\n totalPrevidencia: data.totalPrevidencia,\n totalPensao: data.totalPensao,\n totalDeducoes: data.totalDeducoes,\n [edit.id]: edit.value,\n })\n .then(() =>\n (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() =>\n message.error(\n \"Algo inesperado aconteceu! Tente novamente mais tarde.\"\n )\n )\n .finally(() => handleEditValueCancel());\n }\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n \n
\n ) : (\n \n {formatCurrency(Number(data?.impostoAcumulado || 0))}\n {disabled && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"gastosExterior\",\n label: () => (\n \n (-) Imposto Retido no exterior\n \n ),\n Component: ({ data }: any) =>\n formatCurrency(Number(data?.gastosExterior || 0)),\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data }: any) =>\n formatCurrency(\n Number(data?.[\"impostoDevido\"] || 0) +\n Number(data?.[\"impostoAcumulado\"] || 0) <\n minDarfPrice\n ? 0\n : Number(data?.[\"multa\"] || 0)\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data }: any) =>\n formatCurrency(\n Number(data?.[\"impostoDevido\"] || 0) +\n Number(data?.[\"impostoAcumulado\"] || 0) <\n minDarfPrice\n ? 0\n : Number(data?.[\"juros\"] || 0)\n ),\n },\n];\n\nexport const RendimentosImpostosDevidos = [\n {\n id: \"totalRendimentos\",\n label: () => \"Total rendimentos\",\n render: (data: any) => formatCurrency(data?.totalRendimentos ?? 0),\n },\n {\n id: \"aliquotaDevida\",\n label: (onClick: any, props?: {year: number, month: number}) => (\n
\n (x) Alíquota devida\n }\n onClick={() => onClick(AliquotaModalProps(props))}\n />\n
\n ),\n render: (data: any) => `${data?.aliquotaDevida.toFixed(2)}%`,\n },\n {\n id: \"impostoDevido\",\n label: () => \"Imposto devido\",\n render: (data: any) => formatCurrency(data?.impostoDevido ?? 0),\n },\n];\n\nconst AliquotaModalProps = (props?: {year: number, month: number}) => {\n const year = props?.year ?? new Date().getFullYear();\n const month = props?.month ?? new Date().getMonth();\n const aliquotaDate = new Date(year, month)\n // console.log('ALIQUOTA', year, month, props);\n \n const aliquota1FinalDate = new Date(2023, 4);\n const aliquota2FinalDate = new Date(2024, 1);\n\n let firstBreakpoint = 1_903.98;\n const installments: [number, number, number, number] = [\n 142.8,\n 354.8,\n 636.13,\n 869.36,\n ]\n if (aliquotaDate < aliquota1FinalDate) {\n firstBreakpoint = 1_903.98;\n } else if (aliquotaDate < aliquota2FinalDate) {\n firstBreakpoint = 2112;\n installments[0] = 158.40\n installments[1] = 370.40\n installments[2] = 651.73\n installments[3] = 884.96\n } else {\n firstBreakpoint = 2_259.20;\n installments[0] = 169.44\n installments[1] = 381.44\n installments[2] = 662.77\n installments[3] = 896.00\n }\n\n function toCurrencyBRL(v: number) {\n return v.toLocaleString('pt-br', { style: 'currency', currency: 'BRL' })\n }\n\n const stringValueBreakpoint = toCurrencyBRL(firstBreakpoint);\n return {\n title: \"Alíquota sobre Ganho Carnê-Leão\",\n content: (\n
\n

\n O imposto sobre rendimentos é calculado sobre o total recebido no mês,\n mediante a aplicação da seguinte tabela progressiva mensal:\n

\n \n a) Até {stringValueBreakpoint} não há impostos a pagar;\n \n b) De {stringValueBreakpoint} até R$ 2.826,65, a alíquota é de 7,5% sobre os\n rendimentos, com parcela a deduzir de {toCurrencyBRL(installments[0])};\n \n \n c) De R$ 2.826,66 até R$ 3.751,05, a alíquota é de 15% sobre os\n rendimentos, com parcela a deduzir de {toCurrencyBRL(installments[1])};\n \n \n d) De R$ 3.751,06 até R$ 4.664,68, a alíquota é de 22,5% sobre os\n rendimentos, com parcela a deduzir de {toCurrencyBRL(installments[2])}; e\n \n \n e) Acima de R$ 4.664,68, a alíquota é de 27,5% sobre os rendimentos,\n com parcela a deduzir de {toCurrencyBRL(installments[3])}.\n \n \n
\n ),\n }\n};\n\nexport const ModalDependentes = {\n title: \"Dependentes\",\n content: (\n
\n

A Receita Federal considera como dependentes, mas não só:

\n

\n - Companheiro(a) com quem o contribuinte tenha filho ou viva há mais de\n 5 anos, ou cônjuge;\n

\n

- Filho(a) ou enteado(a), até 21 anos de idade;

\n

\n - Filho(a) ou enteado(a), se ainda estiverem cursando estabelecimento de\n ensino superior ou escola técnica de segundo grau, até 24 anos de idade;\n

\n

\n - Irmão(ã), neto(a) ou bisneto(a), sem arrimo dos pais, de quem o\n contribuinte detenha a guarda judicial, até 21 anos, ou em qualquer\n idade, quando incapacitado física ou mentalmente para o trabalho;\n

\n

\n - Irmão(ã), neto(a) ou bisneto(a), sem arrimo dos pais, com idade de 21\n anos até 24 anos, se ainda estiver cursando estabelecimento de ensino\n superior ou escola técnica de segundo grau, desde que o contribuinte\n tenha detido sua guarda judicial até os 21 anos;\n

\n

\n - Irmão(ã), neto(a) ou bisneto(a) com deficiência, sem arrimo dos pais,\n do(a) qual o contribuinte detém a guarda judicial, em qualquer idade,\n quando a sua remuneração não exceder as deduções autorizadas por lei\n (tendo em vista a decisão do Supremo Tribunal Federal – STF, na Ação\n Direta de Inconstitucionalidade nº 5.583/DF);\n

\n

\n - Pais, avós e bisavós que, em 2021, tenham recebido rendimentos,\n tributáveis ou não, até R$ 22.847,76;\n

\n

\n – Pessoa absolutamente incapaz, da qual o contribuinte seja\n tutor ou curador.\n

\n
\n ),\n};\n\nexport const ModalAutonomos = {\n title: \"Despesas de Autônomos\",\n content: (\n
\n

\n As seguintes despesas poderão ser deduzidas dos rendimentos recebidos de\n pessoas físicas por autônomos:\n

\n

- Aluguel do escritório/consultório

\n

- Água do escritório/consultório

\n

- Contribuições obrigatórias a entidades de classe

\n

- Condomínio do escritório/consultório

\n

- Emolumentos pagos a terceiros

\n

- Cópia e autenticação de documentos

\n

- Emolumentos pagos a terceiros

\n

- Energia do escritório/consultório

\n

- Gás do escritório/consultório

\n

- IPTU do escritório/consultório quando pago pelo contribuinte

\n

- ISS

\n

- Material de conservação e limpeza do escritório/consultório

\n

- Material de escritório

\n

\n - Remuneração paga a terceiros, com vínculo empregatício, INSS e FGTS\n

\n

- Telefone do escritório/consultório

\n
\n ),\n};\n\nexport const ModalPrevidencia = {\n title: \"Despesas com Previdência\",\n content: (\n
\n

\n Despesas com contribuição para a Previdência Social da União, dos\n Estados, do Distrito Federal e dos Municípios são dedutíveis da base de\n cálculo do imposto sobre rendimentos.\n

\n

\n As contribuições para as entidades de previdência privada domiciliadas\n no País, bem como as contribuições destinadas ao Fundo de Aposentadoria\n Programada Individual (FAPI), não podem ser deduzidas na determinação da\n base de cálculo mensal. Esses pagamentos são dedutíveis apenas na\n Declaração de Ajuste Anual.\n

\n
\n ),\n};\n\nexport const ModalPensao = {\n title: \"Despesas com Pensão Alimentícia\",\n content: (\n
\n

\n Despesas com alimentos ou pensões, quando em cumprimento de decisão\n judicial ou acordo homologado judicialmente, são dedutíveis da base de\n cálculo do imposto sobre rendimentos.\n

\n

\n As despesas médicas e as de instrução, pagas em decorrência de decisão\n judicial ou acordo homologado na Justiça, não podem ser deduzidas na\n determinação da base de cálculo mensal. Esses pagamentos são dedutíveis\n apenas na Declaração de Ajuste Anual, obedecido o limite anual para os\n gastos com instrução.\n

\n
\n ),\n};\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { BsCalendar3 } from \"react-icons/bs\";\nimport NumberFormat from \"react-number-format\";\nimport { useLocation } from \"react-router-dom\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { BiChevronLeft, BiChevronRight } from \"react-icons/bi\";\nimport { AiOutlineDelete, AiOutlineLock } from \"react-icons/ai\";\nimport {\n useState,\n useEffect,\n useCallback,\n useRef,\n useMemo,\n ReactNode,\n} from \"react\";\nimport {\n Typography,\n Row,\n Col,\n DatePicker,\n Space,\n Descriptions,\n Spin,\n InputNumber,\n Collapse,\n List,\n Skeleton,\n Tooltip,\n message,\n} from \"antd\";\nimport MsDarf from \"../../services/msDarf\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { FormModal } from \"../../components/FormModal\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport apiRendimentos from \"../../services/rendimentos\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { IMonthStock, Iimpostos } from \"./interfaces/index\";\nimport rendimentosBackend from \"../../services/rendimentos\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { Container, Content, BolsaOperations } from \"./styles\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport {\n ImpostoTotalRendimentos,\n ModalAutonomos,\n ModalDependentes,\n ModalPensao,\n ModalPrevidencia,\n RendimentoFormItemRows,\n RendimentosImpostosDevidos,\n} from \"../../constants/rendimentos\";\nimport {\n formatCurrency,\n monthsExtended,\n antDatePickerLocale,\n maskCpf,\n currencyToNumber,\n download,\n errorMessage,\n} from \"../../utils\";\nimport {\n minDarfPrice,\n maxDarfPrice,\n maxPixPayment,\n maxCreditCardPayment,\n yearConfigPL4173\n} from \"../../constants/darf\";\n\ninterface DarfBolsaProps {\n item: Page;\n yearView: number;\n monthView: number;\n closeModal: () => void;\n view?: boolean;\n viewEdit?: boolean;\n darf?: {\n id: string;\n };\n allow?: boolean,\n}\n\nexport const Rendimentos: React.FC = ({\n darf,\n view,\n viewEdit,\n yearView,\n monthView,\n closeModal,\n item: itemprops,\n allow\n}) => {\n const { state } = useLocation();\n const { currentBroker } = useBroker();\n const { user, showUserPlanModal, userPlanModal, hasPlan } = useAuth();\n\n const today = new Date();\n const queryYear = (state as any)?.year as number;\n const queryMonth = (state as any)?.month as number;\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const oldModel = queryYear < yearConfigPL4173;\n\n const initialMonth = queryMonth\n ? queryMonth - 1\n : typeof monthView === \"number\"\n ? monthView\n : today.getMonth();\n const initialYear = queryYear\n ? queryYear\n : typeof yearView === \"number\"\n ? yearView\n : today.getFullYear();\n const defaultValue = moment({ month: initialMonth, year: initialYear });\n const currentDate = moment({\n month: currentMonth,\n year: currentYear,\n });\n window.history.replaceState({}, document.title);\n\n const isSaveItens = useRef(false);\n const [id, setId] = useState(\"\");\n const [year, setYear] = useState(initialYear);\n const [loading, setLoading] = useState(false);\n const [itemIndex, setItemIndex] = useState(0);\n const [emitting, setEmitting] = useState(false);\n const [month, setMonth] = useState(initialMonth);\n const [helpModal, setHelpModal] = useState();\n const [paymentData, setPaymentData] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [monthStock, setMonthStock] = useState([]);\n const [datePickerYear, setDatePickerYear] = useState(initialYear);\n const [showRendimentoModal, setShowRendimentoModal] = useState(false);\n const [loadingDarfButton, setLoadingDarfButton] = useState(false);\n const [item, setItem] = useState({\n valorRendimento: 0,\n tipo: \"\",\n });\n const [impostos, setImpostos] = useState({\n totalRendimentos: 0,\n baseTributaria: 0,\n aliquotaDevida: 0,\n impostoDevido: 0,\n impostoTotal: 0,\n totalDeducoes: 0,\n totalDependentes: 0,\n totalDespesas: 0,\n totalPensao: 0,\n totalPrevidencia: 0,\n impostoAcumulado: 0,\n juros: 0,\n multa: 0,\n gastosExterior: 0,\n payed: false,\n emitted: false,\n });\n\n const valorImpostoTotal =\n Number(\n Math.max(\n 0,\n impostos.impostoDevido +\n (impostos.impostoAcumulado || 0) -\n (impostos.gastosExterior || 0) +\n (impostos.multa || 0) +\n (impostos.juros || 0)\n )\n ) ?? 0;\n\n\n console.log(impostos.impostoDevido,\n (impostos.impostoAcumulado || 0),\n (impostos.gastosExterior || 0),\n (impostos.multa || 0),\n (impostos.juros || 0));\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleSaveMonth = () => {\n handleEventDarfButton(true);\n };\n\n const handleEventDarfButton = async (justSave?: boolean) => {\n setLoadingDarfButton(true);\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n } catch (err) {\n console.error(err);\n }\n\n !retPlanInfo.data?.active && !retPlanInfo.data?.type\n ? handlePlanModal()\n : justSave\n ? generateDarf(true, true)\n : impostos.impostoDevido || 0 <= maxDarfPrice\n ? handleOpenPaymentModal()\n : handleOpenDarfModal();\n\n setLoadingDarfButton(false);\n };\n\n const handleLabelButton: ReactNode = useMemo(() => {\n if ((impostos?.impostoDevido || 0) <= maxDarfPrice) return \"Pagar DARF\";\n else return \"Emitir DARF\";\n }, [impostos?.impostoDevido]);\n\n const ActionButtons = (\n \n {!view && (\n \n {!(month === currentMonth && year === currentYear) &&\n (valorImpostoTotal ?? 0) < minDarfPrice &&\n (!view\n ? monthStock.filter((m) => m.tipo !== \"Pensão Alimentícia\")\n : monthStock\n )?.length > 0 && (\n \n
\n \n O valor do imposto devido é menor que{\" \"}\n {formatCurrency(minDarfPrice)}. Você não precisa emitir\n uma DARF para este mês. Clique aqui para regularizar este\n mês.\n \n }\n >\n {\n handleRegularize(true);\n }}\n >\n Salvar sem emitir DARF\n \n \n \n )}\n {valorImpostoTotal >= minDarfPrice && allow && (\n \n
\n target.parentElement!}\n title={\n month === currentMonth && year === currentYear\n ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n }\n >\n handleEventDarfButton()}\n disabled={\n loading ||\n emitting ||\n (month === currentMonth && year === currentYear)\n }\n >\n {handleLabelButton}\n {\" \"}\n \n \n )}\n
\n )}\n {/* {!(month === currentMonth && year === currentYear) && (\n \n \n \n Salvar apenas\n \n \n \n )} */}\n \n );\n\n const buildCalcTaxBody = useCallback(() => {\n return {\n numeroDependentes: impostos.totalDependentes,\n gastosAutonomos: impostos.totalDespesas,\n gastosPrevidencia: impostos.totalPrevidencia,\n gastosPensao: impostos.totalPensao,\n gastosExterior: impostos.gastosExterior,\n };\n }, [\n impostos.totalDependentes,\n impostos.totalDespesas,\n impostos.totalPensao,\n impostos.totalPrevidencia,\n impostos.gastosExterior,\n ]);\n\n const calcTaxes = useCallback(async () => {\n setLoading(true);\n if (!view) {\n const deducoes = buildCalcTaxBody();\n const response = await rendimentosBackend.post(\"/rendimentos/calc-tax\", {\n ...deducoes,\n rendimentos: monthStock,\n year,\n month: month + 1,\n impostoAcumulado: impostos.impostoAcumulado,\n gastosExterior: impostos.gastosExterior,\n });\n const { data } = response;\n setImpostos((currentValue) => {\n return {\n ...currentValue,\n aliquotaDevida: data.aliquotaDevida,\n baseTributaria: data.baseTributaria,\n impostoDevido: data.impostoDevido,\n impostoTotal: data.impostoTotal,\n juros: data.juros,\n multa: data.multa,\n totalDeducoes: data.totalDeducoes,\n totalRendimentos: data.totalRendimentos,\n };\n });\n }\n setLoading(false);\n }, [\n view,\n buildCalcTaxBody,\n monthStock,\n year,\n month,\n impostos.impostoAcumulado,\n impostos.gastosExterior,\n ]);\n\n const setPayData = useCallback(() => {\n const valueToCharge = Math.max(\n 0,\n (impostos?.impostoDevido || 0) +\n (impostos.impostoAcumulado || 0) -\n (impostos.gastosExterior || 0) +\n (impostos.juros || 0) +\n (impostos.multa || 0)\n );\n\n const dataToPayment = {\n cpf: user.user.cpf,\n name: user.user.name,\n valueCharge: valueToCharge,\n institution: \"velotax-rendimentos\",\n impostoDevido: impostos.impostoDevido,\n totalImpostoDevido: impostos.impostoTotal,\n impostoTotalFinal: valueToCharge,\n totalRendimentos: impostos.totalRendimentos,\n baseTributaria: impostos.baseTributaria,\n totalDependentes: impostos.totalDependentes,\n totalDespesas: impostos.totalDespesas,\n totalPrevidencia: impostos.totalPrevidencia,\n totalPensao: impostos.totalPensao,\n totalDeducoes: impostos.totalDeducoes,\n aliquotaDevida: impostos.aliquotaDevida,\n impostoAcumulado: impostos.impostoAcumulado,\n gastosExterior: impostos.gastosExterior,\n juros: impostos.juros,\n multa: impostos.multa,\n transactions: monthStock,\n year,\n month: month + 1,\n };\n\n setPaymentData(dataToPayment);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [impostos, month, year]);\n\n const getRendimentos = useCallback(async () => {\n setLoading(true);\n const response = await rendimentosBackend.get(\n `/rendimentos/${year}/${month + 1}`\n );\n const { data } = response;\n setId(data._id || \"\");\n setMonthStock(data.monthStock || []);\n const currentImpostos = {\n totalRendimentos: data?.totalRendimentos || 0,\n baseTributaria: data?.baseTributaria || 0,\n aliquotaDevida: data?.aliquotaDevida || 0,\n impostoDevido: data?.impostoDevido || 0,\n totalDeducoes: data?.totalDeducoes || 0,\n totalDependentes: data?.totalDependentes || 0,\n totalDespesas: data?.totalDespesas || 0,\n totalPensao: data?.totalPensao || 0,\n totalPrevidencia: data?.totalPrevidencia || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n impostoTotal:\n (data.impostoDevido || 0) + (data.juros || 0) + (data.multa || 0),\n impostoAcumulado: data?.impostoAcumulado || 0,\n gastosExterior: data?.gastosExterior || 0,\n payed: data?.payed || false,\n emitted: data?.emitted || false,\n };\n setImpostos(currentImpostos);\n setLoading(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [month, year]);\n\n const getRendimento = useCallback(async () => {\n setLoading(true);\n const response = await rendimentosBackend.get(\"/darf/getById\", {\n params: { id: darf?.id },\n });\n const { data } = response;\n setMonthStock(data.transactions || []);\n const currentImpostos = {\n totalRendimentos: data.totalRendimentos || 0,\n baseTributaria: data.baseTributaria || 0,\n aliquotaDevida: data.aliquotaDevida || 0,\n impostoDevido: data.impostoDevido || 0,\n totalDeducoes: data.totalDeducoes || 0,\n totalDependentes: data.totalDependentes || 0,\n totalDespesas: data.totalDespesas || 0,\n totalPensao: data.totalPensao || 0,\n totalPrevidencia: data.totalPrevidencia || 0,\n juros: data.juros || 0,\n multa: data.multa || 0,\n impostoAcumulado: data.impostoAcumulado || 0,\n impostoTotal:\n (data.impostoDevido || 0) + (data.juros || 0) + (data.multa || 0),\n gastosExterior: data.gastosExterior || 0,\n payed: data.payed || false,\n emitted: data.emitted || false,\n };\n setImpostos(currentImpostos);\n setLoading(false);\n }, [darf]);\n\n useEffect(() => {\n setPayData();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setPayData, impostos]);\n\n useEffect(() => {\n if (view && darf) getRendimento();\n else getRendimentos();\n }, [getRendimentos, getRendimento, view, darf]);\n\n const buildNewImpostos = useCallback(() => {\n return {\n monthStock,\n year,\n month: month + 1,\n juros: impostos.juros,\n multa: impostos.multa,\n userCode: user.user.cpf,\n total: impostos.impostoTotal,\n impostoDevido: impostos.impostoDevido,\n totalRendimentos: impostos.totalRendimentos,\n baseTributaria: impostos.baseTributaria,\n aliquotaDevida: impostos.aliquotaDevida,\n totalDependentes: impostos.totalDependentes,\n totalDespesas: impostos.totalDespesas,\n totalPrevidencia: impostos.totalPrevidencia,\n totalPensao: impostos.totalPensao,\n totalDeducoes: impostos.totalDeducoes,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [impostos, year, month, user]);\n\n const saveItems = useCallback(\n async (rendimentos, variable?, value?) => {\n setLoading(true);\n const newImpostos = buildNewImpostos();\n if (id !== \"\") {\n await rendimentosBackend.put(\"/rendimentos/\", {\n _id: id,\n ...newImpostos,\n monthStock: rendimentos || monthStock,\n [variable]: value,\n });\n } else {\n const { data } = await rendimentosBackend.post(\"/rendimentos\", {\n ...newImpostos,\n monthStock: rendimentos || monthStock,\n [variable]: value,\n });\n setId(data._id);\n }\n setLoading(false);\n getRendimentos();\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [id, buildNewImpostos, getRendimentos, year]\n );\n\n const generateDarf = async (pixValue: boolean, justSave?: boolean) => {\n setLoading(true);\n const { data } = await MsDarf.post(\"/darf\", {\n month: month + 1,\n year,\n cpf: user.user.cpf,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge: Math.max(\n 0,\n impostos.impostoDevido +\n impostos.impostoAcumulado -\n impostos.gastosExterior +\n impostos.juros +\n impostos.multa\n ),\n institution: \"velotax-rendimentos\",\n impostoDevido: impostos.impostoDevido,\n totalImpostoDevido: impostos.impostoDevido,\n totalRendimentos: impostos.totalRendimentos,\n baseTributaria: impostos.baseTributaria,\n totalDependentes: impostos.totalDependentes,\n totalDespesas: impostos.totalDespesas,\n totalPrevidencia: impostos.totalPrevidencia,\n totalPensao: impostos.totalPensao,\n totalDeducoes: impostos.totalDeducoes,\n aliquotaDevida: impostos.aliquotaDevida,\n impostoAcumulado: impostos.impostoAcumulado,\n juros: impostos.juros,\n multa: impostos.multa,\n transactions: monthStock,\n from: 18,\n gastosExterior: impostos.gastosExterior,\n justSave,\n });\n\n if (!justSave) {\n window.location.href = data.darfUrl;\n }\n setLoading(false);\n closeModal();\n if (impostos.impostoTotal <= maxDarfPrice) {\n handleOpenPaymentModal();\n }\n };\n\n const handleRegularize = (regular: boolean) => {\n setLoading(true);\n setEmitting(true);\n apiRendimentos\n .post(\"transaction/regularize\", {\n year,\n month: month + 1,\n regular,\n })\n .then((res) => {\n if (res.data?.darfUrl) {\n download(res.data.darfUrl);\n }\n closeModal();\n message.success(\"Dados salvos\");\n })\n .catch(() => message.error(errorMessage))\n .catch((err) => console.log(\"err\", err))\n .finally(() => {\n setEmitting(false);\n setLoading(false);\n });\n };\n\n const handleCloseItemModal = useCallback(() => {\n setShowRendimentoModal(false);\n unsetItem();\n }, []);\n\n const addItem = async (data: IMonthStock) => {\n if (data.tipo === \"Exterior\") {\n data.impostoPagoExterior = data?.impostoPagoExterior || 0;\n }\n const rendimentos = [...monthStock, data];\n setMonthStock(rendimentos);\n saveItems(rendimentos);\n handleCloseItemModal();\n };\n\n const editItem = (data: IMonthStock) => {\n if (data.tipo === \"Exterior\") {\n data.impostoPagoExterior = data?.impostoPagoExterior || 0;\n }\n const aux = [...monthStock];\n aux.splice(itemIndex, 1, data);\n setMonthStock(aux);\n saveItems(aux);\n handleCloseItemModal();\n };\n\n const removeAsset = async () => {\n const aux = [...monthStock];\n aux.splice(itemIndex, 1);\n setMonthStock(aux);\n saveItems(aux);\n if (!isSaveItens.current) isSaveItens.current = true;\n };\n\n const onChangeMonth = (value: moment.Moment | null, dateString: string) => {\n const [month, year] = dateString.split(\"-\");\n setMonth(parseInt(month) - 1);\n setYear(parseInt(year));\n };\n\n const handleAdd = (event: React.MouseEvent) => {\n event.stopPropagation();\n unsetItem();\n setShowRendimentoModal(true);\n };\n\n const handleEdit = (item: IMonthStock, index: number) => {\n setShowRendimentoModal(true);\n setItemIndex(index);\n setItem(item);\n };\n\n const handleRemove = (item: IMonthStock, index: number) => {\n setShowDeleteModal(true);\n setItemIndex(index);\n setItem(item);\n };\n\n const unsetItem = () => {\n setItem(null);\n };\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(false);\n unsetItem();\n };\n\n const onCloseHelpModal = () => {\n setHelpModal(undefined);\n };\n\n const handleOpenDarfModal = (value?: boolean) => {\n const pixValue = value ?? false;\n generateDarf(pixValue);\n };\n\n const handleOpenPaymentModal = () => {\n setPaymentModal(!paymentModal);\n };\n\n const changeInputState = (variable: string, value: string) => {\n const auxValue =\n variable !== \"totalDependentes\" ? currencyToNumber(value) : Number(value);\n setImpostos((currentValue) => {\n return {\n ...currentValue,\n [variable]: auxValue,\n };\n });\n saveItems(undefined, variable, auxValue);\n };\n\n return (\n \n \n \n \n \n \n \n {hasPlan && !view && !viewEdit && (\n <>\n {currentBroker.initialYear === year && month === 0 ? (\n
\n ) : (\n {\n if (month === 0) {\n setYear((year) => {\n const newYear = year - 1;\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(11);\n } else {\n setMonth((month) => month - 1);\n }\n }}\n />\n )}\n \n )}\n {monthsExtended[month]} de {year}\n {hasPlan && !view && !viewEdit && (\n <>\n {currentYear === year && currentMonth === month ? (\n
\n ) : (\n {\n if (month === 11) {\n setYear((year) => {\n const newYear = year + 1;\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(0);\n } else {\n setMonth((month) => month + 1);\n }\n }}\n />\n )}\n \n )}\n \n \n {!view && !viewEdit && (\n \n }\n disabled={loading || !hasPlan}\n value={moment({ year: datePickerYear, month })}\n onSelect={(e) => {\n if (e.month() === month && year !== datePickerYear) {\n onChangeMonth(e, `${month + 1}-${datePickerYear}`);\n }\n }}\n onPanelChange={(e) => {\n setDatePickerYear(e.year());\n }}\n getPopupContainer={(target) => target.parentElement!}\n disabledDate={(current) =>\n current &&\n (current > currentDate.endOf(\"month\") ||\n current < moment(`${currentBroker.initialYear}-01-01`) ||\n current < moment(`2020-01-01`))\n }\n />\n \n )}\n \n\n
\n\n
\n {(!hasPlan || !allow) && (\n
\n \n Contrate o plano premium para ver os impostos devidos\n \n }\n onClick={() => {\n try {\n handlePlanModal();\n closeModal();\n } catch (error) {\n console.warn(error);\n }\n }}\n >\n PREMIUM\n \n
\n )}\n \n {RendimentosImpostosDevidos.map((description) => (\n \n {loading ? : description.render(impostos)}\n \n ))}\n \n
\n\n
\n\n \n Rendimentos\n }\n >\n {hasPlan && !view ? (\n }\n >\n Adicionar\n \n ) : null}\n m.tipo !== \"Pensão Alimentícia\")\n : monthStock\n }\n renderItem={(item, index) => (\n handleEdit(item, index)}\n icon={}\n />,\n handleRemove(item, index)}\n icon={}\n />,\n ]\n }\n >\n \n Rendimento #{index + 1}}\n description={\n
\n
Tipo: {item.tipo}
\n
\n Valor: {formatCurrency(item.valorRendimento || 0)}\n
\n {item.cpfPagador && (\n
\n CPF do pagador: {maskCpf(item.cpfPagador)}\n
\n )}\n {item.cpfBeneficiario && (\n
\n CPF do beneficiário:{\" \"}\n {maskCpf(item.cpfBeneficiario)}\n
\n )}\n {(item?.tipo === \"Exterior\" ||\n item?.tipo === \"Dividendos no exterior\") && (\n
\n Imposto Pago no Exterior:{\" \"}\n {formatCurrency(item.impostoPagoExterior ?? 0)}\n
\n )}\n {item?.tipo === \"Dividendos no exterior\" && (\n <>\n
Ativo: {item.ativo ?? \"\"}
\n \n )}\n
\n }\n />\n
\n \n )}\n />\n \n \n\n {hasPlan &&
}\n\n {hasPlan && (\n <>\n
\n \n Deduções Tributárias\n \n
\n \n
\n \n setHelpModal(ModalDependentes)}\n />\n Dependentes\n \n\n \n setHelpModal(ModalAutonomos)}\n />\n Gastos Autônomos\n \n\n \n setHelpModal(ModalPrevidencia)}\n />\n Gastos Previdência\n \n\n \n setHelpModal(ModalPensao)}\n />\n Gastos Pensão\n \n
\n
\n
\n \n {\n changeInputState(\"totalDependentes\", e);\n }}\n />\n \n \n \n changeInputState(\"totalDespesas\", e.target.value)\n }\n />\n \n \n \n changeInputState(\"totalPrevidencia\", e.target.value)\n }\n />\n \n \n \n changeInputState(\"totalPensao\", e.target.value)\n }\n />\n \n
\n
\n
\n \n )}\n\n {hasPlan &&
}\n\n {hasPlan && (!hasPlan.basic || allow) && (\n <>\n \n Imposto total\n \n {loading ? (\n \n ) : (\n formatCurrency(valorImpostoTotal)\n )}\n \n
\n \n {ImpostoTotalRendimentos.map((description: any) => {\n if (description?.id === 'gastosExterior' && year >= 2024) return null;\n return (\n \n {loading ? (\n \n ) : description.Component ? (\n \n ) : (\n formatCurrency(\n Number(impostos[description.id as keyof Iimpostos] || 0)\n )\n )}\n \n )\n })}\n \n \n )}\n\n {!view && hasPlan && {ActionButtons}}\n \n \n\n maxPixPayment}\n disableCreditCardOption={\n (paymentData?.valueCharge || 0) > maxCreditCardPayment\n }\n show={paymentModal}\n onCancel={handleOpenPaymentModal}\n paymentData={paymentData}\n callDarf={(value: boolean) => handleOpenDarfModal(value)}\n maxPixValue={maxPixPayment}\n maxCCValue={maxCreditCardPayment}\n selectedYear={year}\n closeDarfModal={closeModal}\n />\n \n {helpModal?.content}\n \n \n Promise.resolve(removeAsset())}\n body=\"Você realmente quer deletar esse ativo?\"\n />\n \n );\n};\n","import styled from \"styled-components\";\n\nexport const ExteriorModalContainer = styled.div`\n font-size: 1rem;\n color: var(--velotax-font-color-dark);\n\n strong {\n font-weight: 600;\n }\n\n .exterior-capital-gain {\n padding: 8px;\n margin: 24px auto;\n text-align: center;\n background-color: #eee;\n }\n`;\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { useState } from \"react\";\nimport { Form, message } from \"antd\";\nimport { VscClose } from \"react-icons/vsc\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport NumberFormat from \"react-number-format\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { CurrencyFormItem, DateFormItem, NumberFormItem, SelectFormItem, TextFormItem } from \"../formItems\";\nimport {\n currencyToNumber,\n errorMessage,\n formatCurrency,\n isMobile,\n isValidDate,\n months,\n zero,\n getQuoteFortnight\n} from \"../../utils\";\nimport {\n IDarf,\n IDarfBolsa,\n IQuotes,\n JurosModalProps,\n minDarfPrice,\n MinPriceModalProps,\n MultaModalProps,\n yearConfigPL4173,\n} from \"../darf\";\nimport {\n validationDateIsOnReferenceMonth,\n validationDateIsOnReferenceMonthCompra,\n validationFieldRequired,\n validationNumberAllowNegativeField,\n validationNumberFieldPositive,\n} from \"../../utils/formValidations\";\n\ninterface IEdit {\n value: any;\n id: string;\n isEditting: boolean;\n}\n\ninterface DarfResultDescriptionsProps {\n id: string;\n label: (onClick: Function) => React.ReactNode;\n Component: React.FC<{\n data: IDarf | IDarfBolsa;\n url: string;\n year: number;\n month: number;\n loading: boolean;\n disabled: boolean;\n view?: boolean;\n handleEdit?: Function;\n setDataCripto?: React.Dispatch>;\n setDataBolsa?: React.Dispatch>;\n }>;\n}\n\nexport const DarfResultDescriptionsExterior: DarfResultDescriptionsProps[] = [\n {\n id: \"impostoDevido\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data, view }) =>\n formatCurrency(\n Math.max((Number(data[\"impostoDevido\"] || 0) +\n Number(data[\"impostoAcumulado\"] || 0)) - Number(data[\"irrfExterior\"] || 0), 0)\n ),\n },\n {\n id: \"impostoDevido\",\n label: () => (\n \n (+) Imposto devido\n
\n ),\n Component: ({ data, view }) =>\n formatCurrency(Number(data[\"impostoDevido\"] || 0)),\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passados abaixo de R$ {minDarfPrice}\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({\n data,\n year,\n month,\n loading,\n disabled,\n setDataBolsa,\n setDataCripto,\n url,\n }) => {\n const { currentPage } = useBroker();\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data[id as keyof (IDarf | IDarfBolsa)];\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n (currentPage?.api || apis)\n .post(`${url}/updateDataDarf`, {\n year,\n month: month + 1,\n [edit.id]: edit.value,\n })\n .then(() =>\n (setDataCripto ?? setDataBolsa)?.((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() => message.error(errorMessage))\n .finally(() => handleEditValueCancel());\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n {!isMobile() && (\n \n {isMobile() && (\n
\n ) : (\n \n {formatCurrency(Number(data.impostoAcumulado || 0))}\n {(disabled && year < yearConfigPL4173) && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"irrfTotal\",\n label: () => (\n \n (-) Imposto de Renda Retido na Fonte\n \n ),\n Component: ({ data, handleEdit }) => (\n
\n {formatCurrency(\n Number(\n (data as IDarfBolsa)[\"userIrrfTotal\"] ||\n (data as IDarfBolsa)[\"irrfTotal\"] ||\n 0\n )\n )}\n }\n onClick={() => handleEdit?.()}\n />\n
\n ),\n },\n {\n id: \"irrfExterior\",\n label: () => (\n \n (-) Imposto de Renda Retido na Fonte\n \n ),\n Component: ({ data, handleEdit }) => {\n return (\n
\n {formatCurrency(\n Number(\n (data as IDarfBolsa)[\"irrfExterior\"] ||\n 0\n )\n )}\n {/* }\n onClick={() => handleEdit?.()}\n /> */}\n
\n )},\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) - (data[\"irrfExterior\"] || 0) >=\n minDarfPrice\n ? Number(data[\"multa\"])\n : 0\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data }) =>\n formatCurrency(\n (data[\"impostoDevido\"] || 0) + (data[\"impostoAcumulado\"] || 0) - (data[\"irrfExterior\"] || 0) >=\n minDarfPrice\n ? Number(data[\"juros\"])\n : 0\n ),\n },\n];\n\nexport enum FormMovimentTypeMode {\n VENDA = \"Venda de ativos\",\n JUROS = \"Juros de aplicações\",\n}\n\nexport enum FormMovimentTypeModeNew {\n VENDA = \"Venda de ativos\",\n JUROS = \"Juros de bonds\",\n DIVIDENDOS = \"Dividendos\",\n OUTROS = \"Outros rendimentos\",\n}\n\n\nconst FormItemsExterior = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n movimentType: (movimentType: any, setMovimentType: any, year: number, fromApi?: boolean) =>\n SelectFormItem({\n name: \"movimentType\",\n label: \"Tipo de movimentação\",\n value: movimentType,\n disabled: fromApi,\n defaultValue: FormMovimentTypeMode.VENDA,\n rules: [],\n options: year < yearConfigPL4173 \n ? [\n { label: \"Venda de ativos\", value: FormMovimentTypeMode.VENDA },\n { label: \"Juros de aplicações\", value: FormMovimentTypeMode.JUROS },\n ] \n : [\n { label: \"Venda de ativos\", value: FormMovimentTypeModeNew.VENDA },\n { label: \"Juros de bonds\", value: FormMovimentTypeModeNew.JUROS },\n { label: \"Dividendos\", value: FormMovimentTypeModeNew.DIVIDENDOS },\n { label: \"Outros rendimentos\", value: FormMovimentTypeModeNew.OUTROS },\n ],\n onChange(changed, values) {\n setMovimentType(\n changed.movimentType !== undefined\n ? changed.movimentType\n : movimentType\n );\n return changed.movimentType !== undefined\n ? changed.movimentType\n : movimentType;\n },\n }),\n ativo: (placeholder: string, fromApi?: boolean) =>\n TextFormItem({\n name: \"ativo\",\n label: \"Ativo\",\n disabled: fromApi,\n placeholder,\n rules: validationFieldRequired,\n }),\n valueOriginBRA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valueOriginBRA\",\n label: \"Origem BRA (US$)\",\n placeholder: \"US$ 0,00\",\n }),\n valueOriginEUA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valueOriginEUA\",\n label: \"Origem USA (US$)\",\n placeholder: \"US$ 0,00\",\n }),\n dataCompra: () =>\n DateFormItem({\n name: \"dataCompra\",\n label: \"Data da Liquidação\",\n placeholder: \"DD/MM/YYYY\",\n mask: `99/99/9999`,\n rules: validationDateIsOnReferenceMonthCompra,\n }),\n cotacaoCompra: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioCompra\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.dataCompra)) {\n let i = 0;\n let keycompra = changed.dataCompra || values.dataCompra;\n const isComplete = !String(keycompra).includes(\"_\");\n if (!keycompra || !isComplete) return values.cotacaoCompra;\n while (isComplete && !quotations[keycompra] && i <= 10) {\n keycompra = moment(keycompra, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n const { venda } = quotations[keycompra] || { venda: 0 };\n return venda;\n }\n },\n }),\n precoVenda: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valor\",\n placeholder: \"US$ 0,00\",\n label: \"Valor Bruto (US$)\",\n }),\n fee: CurrencyFormItem({\n name: \"fee\",\n label: \"Taxa de corretagem (US$)\",\n placeholder: \"US$ 0,00\",\n prefix: \"US$ \",\n }),\n dataVenda: (month: number, year: number) =>\n DateFormItem({\n name: \"data\",\n label: \"Data da Liquidação\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n dataVendaFee: (month: number, year: number) =>\n DateFormItem({\n name: \"dataFee\",\n label: \"Data da Liquidação\",\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n cotacaoVenda: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioVenda\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.data)) {\n let i = 0;\n let keyvenda = changed.data || values.data;\n const isComplete = !String(keyvenda).includes(\"_\");\n if (!keyvenda || !isComplete) return values.cotacaoVenda;\n while ((isComplete && !quotations[keyvenda]) || i === 5) {\n keyvenda = moment(keyvenda, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n const { compra } = quotations[keyvenda] || { compra: 0 };\n return compra;\n }\n },\n }),\n cotacaoVendaFee: (quotations: IQuotes) =>\n TextFormItem({\n disabled: true,\n name: \"cambioVendaFee\",\n label: \"Cotação dólar\",\n onChange: (changed, values) => {\n if (isValidDate(values.dataFee)) {\n let i = 0;\n let keyvenda = changed.dataFee || values.dataFee;\n const isComplete = !String(keyvenda).includes(\"_\");\n if (!keyvenda || !isComplete) return values.cotacaoVendaFee;\n while ((isComplete && !quotations[keyvenda]) || i === 5) {\n keyvenda = moment(keyvenda, \"DD/MM/YYYY\")\n .subtract(1, \"days\")\n .format(\"DD/MM/YYYY\");\n i++;\n }\n\n if (values.movimentType == 'Dividendos') {\n const day = keyvenda.split('/')[0];\n const month = keyvenda.split('/')[1];\n const year = keyvenda.split('/')[2];\n const dateToQuote = new Date(`${month}/${day}/${year}`);\n const cotacaoCompra = getQuoteFortnight(dateToQuote, quotations);\n return cotacaoCompra;\n }\n\n const { venda } = quotations[keyvenda] || { venda: 0 };\n return venda;\n }\n },\n }),\n ganho: CurrencyFormItem({\n name: \"ganho\",\n label: `Ganho (R$)`,\n disabled: true,\n rules: [],\n onChange: (changed, values) => {\n // TODO Atualmente há perda de centavos entre a conversão sucessiva entre BRL e USD\n let A = changed.valueOriginBRA\n ? currencyToNumber(changed.valueOriginBRA, \"US$\")\n : values.valueOriginBRA || 0;\n let B = changed.valueOriginEUA\n ? currencyToNumber(changed.valueOriginEUA, \"US$\")\n : values.valueOriginEUA || 0;\n const C = values.cambioCompra || 1;\n const D = changed.valor\n ? currencyToNumber(changed.valor, \"US$\")\n : values.valor || 0;\n const E = changed.fee\n ? currencyToNumber(changed.fee, \"US$\")\n : values.fee || 0;\n const F = values.cambioVenda || 1;\n\n const correctionZero = 1e-50;\n if (A === 0) A = correctionZero;\n if (B === 0) B = correctionZero;\n\n const ganho =\n (A / (A + B)) * (D - E) * F - A * C + ((B / (A + B)) * (D - E) - B) * F;\n\n return Number(Math.max(ganho, 0).toFixed(2));\n },\n }),\n ganhoFee: CurrencyFormItem({\n name: \"ganhoFee\",\n label: `Rendimento (R$)`,\n disabled: true,\n rules: [],\n onChange: (changed, values) => {\n // TODO Atualmente há perda de centavos entre a conversão sucessiva entre BRL e USD\n const A = values.cambioVendaFee || 1;\n\n const B = changed.valor\n ? currencyToNumber(changed.valor, \"US$\")\n : values.valor || 0;\n\n const C = changed.fee\n ? currencyToNumber(changed.fee, \"US$\")\n : values.fee || 0;\n\n const ganho = (B - C) * A;\n return Number(Math.max(ganho, 0).toFixed(2));\n },\n }),\n date: (month: number, year: number, fromApi?: boolean) =>\n DateFormItem({\n name: \"data\",\n disabled: fromApi,\n label: `Dia do mês de ${months[month]}/${year}`,\n placeholder: `01/${zero(month + 1)}/${year}`,\n mask: `99/${zero(month + 1).replace(/[9]/g, `\\\\9`)}/${year\n .toString()\n .replace(/[9]/g, `\\\\9`)}`,\n rules: validationDateIsOnReferenceMonth(month, year),\n }),\n quantidade: (placeholder: string, fromApi?: boolean) =>\n NumberFormItem({\n disabled: fromApi,\n name: \"quantidade\",\n label: \"Quantidade\",\n placeholder,\n decimalScale: 12,\n rules: validationNumberFieldPositive,\n }),\n valor: CurrencyFormItem({ name: \"sellPrice_BRL\", label: \"Preço de venda (R$)\" }),\n valorNewModel: (fromApi?: boolean) => \n CurrencyFormItem({ name: \"sellPrice_BRL\", disabled: fromApi, label: \"Preço de venda (R$)\" }),\n capitalGain: CurrencyFormItem({\n name: \"ganho\",\n label: \"Ganho\",\n disabled: true,\n allowNegative: true,\n rules: validationNumberAllowNegativeField,\n onChange: (changed, values) => {\n const precoVenda = changed.valor\n ? currencyToNumber(changed.valor)\n : values.valor;\n const custoCompra = changed.valueOriginBRA\n ? currencyToNumber(changed.valueOriginBRA)\n : values.valueOriginBRA;\n const taxas = changed.fee\n ? currencyToNumber(changed.fee)\n : values.fee;\n return Number(values.quantidade) * (precoVenda - custoCompra) - taxas;\n },\n }),\n capitalGainBRL: CurrencyFormItem({\n name: \"varTotalBRL\",\n label: \"Ganho\",\n disabled: true,\n allowNegative: true,\n rules: validationNumberAllowNegativeField,\n onChange: (changed, values) => {\n const precoVenda = changed.sellPrice_BRL\n ? currencyToNumber(changed.sellPrice_BRL)\n : values.sellPrice_BRL;\n const custoCompra = changed.buyPrice_BRL\n ? currencyToNumber(changed.buyPrice_BRL)\n : values.buyPrice_BRL;\n const taxas = changed.fee_BRL\n ? currencyToNumber(changed.fee_BRL)\n : values.fee_BRL;\n return Number(values.quantidade) * (precoVenda - custoCompra) - taxas;\n },\n }),\n valueOriginBRL: (fromApi?: boolean) => CurrencyFormItem({\n disabled: fromApi,\n prefix: \"R$ \",\n name: \"buyPrice_BRL\",\n label: \"Custo de Compra (R$)\",\n placeholder: \"R$ 0,00\",\n }),\n feeBRL: (fromApi?: boolean) => CurrencyFormItem({\n disabled: fromApi,\n name: \"fee_BRL\",\n label: \"Taxa de corretagem (R$)\",\n placeholder: \"R$ 0,00\",\n prefix: \"R$ \",\n }),\n};\n\nexport const ExteriorFormItemRows = (\n month: number,\n year: number,\n quotations: IQuotes,\n editAsset: any,\n asset: any,\n movimentType: string,\n setMovimentType: React.Dispatch>\n) => {\n return [\n asset && !asset?.valueOriginBRA\n ? []\n : asset\n ? [FormItemsExterior.ativo(\"Ex: GOOGL\")]\n : [\n FormItemsExterior.movimentType(movimentType, setMovimentType, year),\n FormItemsExterior.ativo(\"Ex: GOOGL\"),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : [\n {\n label: \"\",\n name: \"\",\n input: (\n
\n {movimentType === \"Juros de aplicações\" ? \"Juros\" : \"Compra\"}\n
\n ),\n },\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [FormItemsExterior.valueOriginBRA, FormItemsExterior.valueOriginEUA]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n FormItemsExterior.dataCompra(),\n FormItemsExterior.cotacaoCompra(quotations),\n ]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n {\n label: \"\",\n name: \"\",\n input:
Venda
,\n },\n ]\n : [],\n asset && !asset?.valueOriginBRA\n ? []\n : [FormItemsExterior.precoVenda, FormItemsExterior.fee],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [\n FormItemsExterior.dataVenda(month, year),\n FormItemsExterior.cotacaoVenda(quotations),\n ]\n : [\n FormItemsExterior.dataVendaFee(month, year),\n FormItemsExterior.cotacaoVendaFee(quotations),\n ],\n asset && !asset?.valueOriginBRA\n ? []\n : movimentType !== \"Juros de aplicações\"\n ? [FormItemsExterior.ganho]\n : [FormItemsExterior.ganhoFee],\n ];\n};\n\nexport const ExteriorNewFormItemRows = (\n month: number,\n year: number,\n quotations: IQuotes,\n editAsset: any,\n asset: any,\n movimentType: string,\n setMovimentType: React.Dispatch>,\n fromApi?: boolean\n) => {\n return [\n asset ? []\n : movimentType === \"Venda de ativos\" ? [FormItemsExterior.movimentType(movimentType, setMovimentType, year, fromApi)] \n : [\n FormItemsExterior.movimentType(movimentType, setMovimentType, year, fromApi),\n ],\n movimentType === \"Venda de ativos\" ? [] : [\n {\n label: \"\",\n name: \"\",\n input: (\n
\n {\n ['Juros de bonds'].includes(movimentType || '') ? \"Juros\" \n : ['Dividendos'].includes(movimentType || '') ? \"Dividendos\" \n : \"Rendimentos\"}\n
\n ),\n },\n ],\n movimentType === \"Venda de ativos\"\n ? []\n : [FormItemsExterior.ativo(\"Ex: XP\", fromApi)],\n movimentType === \"Venda de ativos\"\n ? [FormItemsExterior.date(month, year, fromApi), FormItemsExterior.ativo(\"Ex: XP\", fromApi)]\n : [],\n movimentType === \"Venda de ativos\"\n ? [\n FormItemsExterior.quantidade(\"Ex: 100\", fromApi),\n FormItemsExterior.valorNewModel(fromApi),\n ]\n : [],\n movimentType === 'Venda de ativos' ? [FormItemsExterior.valueOriginBRL(fromApi), FormItemsExterior.feeBRL(fromApi)]\n : [FormItemsExterior.precoVenda, FormItemsExterior.fee],\n movimentType === \"Venda de ativos\"\n ? [\n FormItemsExterior.capitalGainBRL,\n ]\n : [\n FormItemsExterior.dataVendaFee(month, year),\n FormItemsExterior.cotacaoVendaFee(quotations),\n ],\n movimentType === \"Venda de ativos\"\n ? []\n : [FormItemsExterior.ganhoFee],\n ];\n};\n","import { Col, Row, Typography } from \"antd\";\nimport { ExteriorModalContainer } from \"./styles\";\nimport { formatCurrency, replaceDotByComma } from \"../../../utils\";\n\nexport enum ExteriorOperationType {\n TRADE = \"TRADE\",\n DEPOSIT = \"DEPOSIT\",\n WITHDRAW = \"WITHDRAW\",\n}\n\ninterface ExteriorModalContentProps {\n asset: any;\n}\n\nexport const ExteriorModalContent = ({ asset }: ExteriorModalContentProps) => {\n return (\n \n \n \n Quantidade: {asset.quantidade}\n \n \n \n {asset.type === ExteriorOperationType.TRADE\n ? \"Compra\"\n : asset.type === ExteriorOperationType.DEPOSIT\n ? \"Depósito\"\n : asset.type === ExteriorOperationType.WITHDRAW\n ? \"Resgate\"\n : \"Compra\"}\n \n \n Origem BRA:\n \n {formatCurrency(asset.valueOriginBRA, \"US$ \")}\n \n Origem USA:\n \n {formatCurrency(asset.valueOriginEUA, \"US$ \")}\n \n {asset.type === ExteriorOperationType.TRADE && (\n \n \n Venda\n \n \n )}\n {asset.type === ExteriorOperationType.TRADE && (\n <>\n Valor bruto:\n \n {formatCurrency(asset.valor, \"US$ \")}\n \n \n )}\n Taxa de corretagem:\n \n {formatCurrency(asset.fee, \"US$ \")}\n \n Data de liquidação:\n \n {asset.data}\n \n Cotação dólar:\n \n {replaceDotByComma(asset.cambioVenda)}\n \n {(asset.type === ExteriorOperationType.DEPOSIT ||\n asset.type === ExteriorOperationType.WITHDRAW) && (\n <>\n Cotação dólar Referência:\n \n {replaceDotByComma(asset.cambioReferencia.toFixed(4))}\n \n \n )}\n \n
\n Ganho de capital:   \n {formatCurrency(asset.type === \"INTEREST\" ? asset.ganho2 : asset.ganho)}\n
\n \n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const ExteriorModalContainer = styled.div`\n font-size: 1rem;\n color: var(--velotax-font-color);\n\n strong {\n font-weight: 600;\n }\n\n .exterior-capital-gain {\n padding: 8px;\n margin: 24px auto;\n text-align: center;\n background-color: #eee;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n padding: 64px 32px 128px;\n &.view-edit {\n padding: 0;\n }\n &.view {\n padding: 0;\n min-height: 100%;\n }\n\n .ant-picker-month-panel {\n width: 100%;\n }\n .ant-picker-footer-extra {\n button {\n span {\n color: white;\n }\n }\n }\n\n .integration-text {\n font-size: 16px;\n font-weight: 500;\n line-height: 24px;\n max-width: 700px;\n margin: 0 auto 16px;\n a {\n font-weight: 600;\n }\n }\n\n .juridic-messages-container {\n opacity: 0.8;\n padding: 24px 0 0;\n margin: 0 auto;\n max-width: 700px;\n border-radius: 16px;\n\n .message {\n display: flex;\n flex-direction: row;\n align-items: center;\n margin-bottom: 1rem;\n }\n\n p {\n font-size: 0.75rem;\n font-weight: 400;\n text-align: justify;\n line-height: 1.4rem;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n\n i {\n font-weight: bold;\n color: var(--velotax-font-color);\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 0;\n background-color: var(--velotax-background-color);\n\n .juridic-messages-container {\n border-top: 1px solid var(--velotax-ghost);\n }\n\n .integration-text {\n padding: 16px 16px 0;\n }\n }\n`;\n\nexport const ButtonContent = styled.div`\n max-width: 700px;\n margin: 0 auto 8px;\n div {\n display: flex;\n justify-content: flex-end;\n }\n\n @media only screen and (max-device-width: 812px) {\n max-width: 100%;\n div {\n width: 100%;\n padding: 16px 24px 0;\n button {\n span {\n font-size: 11px;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 576px) {\n div {\n button {\n width: 100%;\n }\n }\n }\n`;\n\nexport const Content = styled.div`\n padding: 32px;\n &:not(.view):not(.view-edit) {\n border: 1px solid var(--velotax-background-color-ghost);\n }\n &.second.view,\n &.second.view-edit {\n margin-top: -24px;\n padding: 0 32px 32px;\n }\n &.second {\n padding: 32px;\n border: none;\n background-color: transparent;\n }\n .ant-divider {\n margin: 8px 0 24px;\n }\n margin: 0 auto;\n max-width: 700px;\n border-radius: 16px;\n background-color: var(--velotax-background-color);\n\n h3.date-title {\n font-size: 24px;\n font-weight: 700;\n }\n\n div.ant-typography {\n font-size: 1rem;\n line-height: 1.5rem;\n margin: 0 auto;\n color: var(--velotax-font-color);\n\n span {\n cursor: pointer;\n font-weight: 500;\n color: var(--ant-primary-color);\n }\n }\n h3 {\n display: flex;\n align-items: center;\n font-size: 20px;\n column-gap: 16px;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n }\n .month-chevron {\n width: 32px;\n height: 32px;\n cursor: pointer;\n &.empty {\n cursor: default;\n }\n }\n .desc-label {\n display: flex;\n align-items: center;\n svg {\n fill: var(--ant-primary-color);\n }\n }\n .desc-content {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n column-gap: 8px;\n svg {\n fill: var(--ant-primary-color);\n }\n span {\n align-self: center;\n }\n button {\n min-width: 32px;\n }\n }\n .market {\n opacity: 0.6;\n font-weight: bold;\n }\n .ml-40 {\n margin-left: 40px;\n }\n .add {\n float: right;\n min-width: 128px;\n margin-bottom: 16px;\n }\n .ant-descriptions-view {\n border-radius: 4px !important;\n .ant-descriptions-item-label {\n width: 60%;\n padding: 10px 16px;\n color: var(--velotax-font-color) !important;\n background-color: var(--velotax-ghost) !important;\n }\n .ant-descriptions-item-content {\n padding: 10px 16px;\n text-align: center;\n background-color: var(--velotax-background-color) !important;\n }\n }\n .ant-list.ant-list-split {\n clear: both;\n padding: 0 16px;\n background-color: var(--velotax-ghost);\n border: 1px solid var(--velotax-background-color-ghost);\n border-radius: 8px;\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n .list-description {\n display: flex;\n flex-direction: column;\n }\n .min-darf-price {\n margin-top: 24px;\n display: flex;\n align-items: center;\n column-gap: 8px;\n }\n .text-center {\n display: block;\n text-align: center;\n }\n .ant-collapse-header {\n padding: 12px 0 !important;\n }\n .ant-collapse-content-box {\n padding: 16px 0 !important;\n }\n .ant-collapse\n > .ant-collapse-item\n > .ant-collapse-header\n .ant-collapse-arrow\n svg {\n transform: rotate(-90deg);\n }\n .ant-collapse-item-disabled {\n & > .ant-collapse-header {\n cursor: default;\n .ant-collapse-arrow {\n opacity: 0;\n }\n }\n }\n .ant-collapse-header-text {\n width: 100%;\n }\n .total-tax-header {\n width: calc(100% - 48px);\n display: flex;\n align-items: center;\n justify-content: space-between;\n &.original {\n margin-bottom: 12px;\n h3:last-of-type {\n width: 40%;\n margin-bottom: -4px;\n }\n }\n h3 {\n margin: 0;\n }\n }\n\n &.view .total-tax-header.impostos-devidos h3:first-of-type {\n max-width: 60%;\n font-size: 18px;\n margin-left: 4px;\n line-height: 22px;\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 24px;\n border-radius: 0;\n border: none !important;\n &.second {\n padding: 24px !important;\n background-color: var(--velotax-background-color);\n border-top: 1px solid var(--velotax-background-color-ghost) !important;\n }\n h3 {\n font-size: 18px;\n column-gap: 8px;\n }\n .total-tax-header {\n width: calc(100% - 20px);\n h3.text-center {\n span {\n font-size: 16px;\n }\n }\n }\n .anticon.anticon-right.ant-collapse-arrow {\n top: 24px;\n right: 0;\n }\n .desc-content {\n column-gap: 2px;\n flex-direction: row;\n &.is-editting {\n row-gap: 8px;\n flex-direction: column;\n button {\n width: 100%;\n }\n }\n &:not(.is-editting) {\n span {\n line-height: 32px;\n }\n button {\n margin-top: -2px;\n }\n }\n &.ml-40 {\n margin-left: 0;\n }\n }\n .market {\n font-size: 11px;\n letter-spacing: -0.1px;\n }\n }\n`;\n\nexport const BolsaOperations = styled.div`\n border-radius: 8px;\n position: relative;\n color: var(--velotax-font-color);\n background-color: var(--velotax-background-color);\n border: 1px solid var(--velotax-background-color-ghost);\n\n .no-plan {\n span {\n user-select: none;\n }\n }\n\n .no-plan-container {\n position: absolute;\n left: 97px;\n width: 60%;\n min-width: calc(100% - 150px);\n \n z-index: 3;\n display: flex;\n padding: 8px;\n font-size: 16px;\n font-weight: 500;\n text-align: center;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n background-color: #fff4;\n border-radius: 0 0 8px 0;\n backdrop-filter: blur(4px);\n border-left: 1px solid var(--velotax-background-color-ghost);\n .ant-btn {\n margin-top: 8px;\n }\n }\n\n @media only screen and (min-width: 476px) {\n .no-plan-container {\n left: unset;\n right: 0;\n min-width: 300px;\n }\n }\n\n div.strong span {\n font-weight: 700 !important;\n }\n div.opacity span {\n opacity: 0.85;\n font-weight: 100 !important;\n }\n\n div.header,\n div.sub-header {\n display: grid;\n grid-template-columns: 2fr 1fr 1fr 1fr;\n span + span {\n text-align: center;\n justify-content: center;\n }\n }\n\n div.header-ext {\n grid-template-columns: 2fr 2fr !important;\n }\n\n div.sub-header {\n height: auto;\n min-height: 48px;\n border-top: none;\n & + div.sub-header {\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n & > span + span {\n background-color: var(--velotax-background-color);\n }\n & > span {\n padding: 8px 16px;\n display: flex;\n align-items: center;\n border-left: none;\n & + span {\n border-left: 1px solid var(--velotax-background-color-ghost);\n }\n }\n &:last-of-type > span:last-of-type {\n border-radius: 0 0 8px 0;\n }\n }\n\n div.header {\n height: 54px;\n padding: 16px 0;\n border-radius: 8px 8px 0 0;\n background-color: var(--velotax-background-color-ghost);\n span {\n font-weight: 700;\n }\n button {\n display: none;\n }\n }\n\n div.sub-header {\n font-size: 14px;\n & > span {\n font-weight: 400;\n background-color: var(--velotax-ghost);\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n position: relative;\n overflow-x: hidden;\n span {\n font-size: 12px;\n button {\n max-width: 24px;\n min-width: 24px;\n }\n }\n .no-plan-container {\n left: 50%;\n width: 50%;\n font-size: 14px;\n line-height: 18px;\n }\n div.header,\n div.sub-header {\n width: 200%;\n height: auto;\n min-height: 48px;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n div.sub-header {\n & > span {\n padding: 12px;\n }\n }\n\n div.header {\n padding: 16px 0;\n }\n div.header > span + span {\n padding: 0 8px;\n justify-content: space-between;\n }\n\n div.header > span:first-of-type,\n div.sub-header > span:first-of-type {\n position: sticky;\n left: 0;\n }\n div.header > span.show,\n div.sub-header > span.show {\n opacity: 1;\n z-index: 2;\n }\n div.header > span,\n div.sub-header > span {\n opacity: 0;\n z-index: 1;\n }\n div.header > span {\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 8px;\n }\n div.header {\n button {\n display: flex;\n }\n }\n div.header > span.show svg polyline {\n stroke: var(--velotax-font-color);\n }\n }\n`;\n","import { Table } from \"antd\";\nimport { IoMdOptions } from \"react-icons/io\";\nimport Button from \"../../../components/Button\";\nimport { monthsExtended } from \"../../../utils\";\nimport { DrawerModal } from \"../../../components/DrawerModal\";\nimport { useB3Integration } from \"../../../contexts/B3IntegrationContext\";\n\nconst initialYear = 2020;\n\nexport const dayFilters: Array = [];\nfor (let d = 1; d <= 31; d++) {\n dayFilters.push({\n text: d.toString(),\n value: d,\n });\n}\n\nconst yearFilters = Array.from(\n Array(new Date().getFullYear() + 1 - initialYear)\n)\n .map((y, i) => ({ value: initialYear + i, text: `${initialYear + i}` }))\n .reverse();\n\ninterface NotasHistoricoModalProps {\n crypto?: boolean;\n}\n\nexport const NotasHistoricoModal: React.FC = ({\n crypto,\n}) => {\n const {\n notas: {\n downloadNotaCorretagem,\n historicoNotasCorretagem,\n getHistoricoNotasCorretagem,\n setHistoricoNotasCorretagem,\n loadingHistoricoNotasCorretagem,\n showHistoricoNotasCorretagemModal,\n setShowHistoricoNotasCorretagemModal,\n },\n } = useB3Integration();\n\n return (\n {\n setShowHistoricoNotasCorretagemModal(false);\n setHistoricoNotasCorretagem([]);\n }}\n >\n {\n getHistoricoNotasCorretagem({ filters, crypto });\n }}\n locale={{\n filterReset: \"Limpar\",\n }}\n columns={[\n {\n align: \"center\",\n title: \"Dia\",\n dataIndex: \"day\",\n filterIcon: ,\n filters: dayFilters,\n render: (status, item) => <>{status},\n },\n {\n align: \"center\",\n title: \"Mês\",\n dataIndex: \"month\",\n filterIcon: ,\n filters: monthsExtended.map((m, i) => ({\n text: m,\n value: i + 1,\n })),\n render: (status, item) => <>{status},\n },\n {\n align: \"center\",\n title: \"Ano\",\n dataIndex: \"year\",\n filterIcon: ,\n filters: yearFilters,\n render: (status, item) => <>{status},\n },\n {\n align: \"center\",\n title: \"Data de criação\",\n dataIndex: \"createdAt\",\n filterIcon: ,\n filters: yearFilters,\n render: (value, item) => <>{(new Date(value ?? Date.now())).toLocaleString('pt-br')},\n },\n {\n className: \"actionColumn\",\n render: (status, item) => (\n \n downloadNotaCorretagem(\n item.path,\n item.month,\n item.year,\n crypto\n )\n }\n >\n Ver nota\n \n ),\n },\n ]}\n />\n \n );\n};\n","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { useLocation } from \"react-router-dom\";\nimport { PlusOutlined } from \"@ant-design/icons\";\nimport { BiChevronLeft, BiChevronRight } from \"react-icons/bi\";\nimport { BsCalendar3, BsEye, BsDownload } from \"react-icons/bs\";\nimport { useCallback, useEffect, useMemo, useState, ReactNode, useRef } from \"react\";\nimport {\n AiOutlineDelete,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n Collapse,\n DatePicker,\n Descriptions,\n List,\n message,\n Row,\n Skeleton,\n Space,\n Spin,\n Tooltip,\n Typography,\n} from \"antd\";\nimport apis, { NOT_AUTHORIZED } from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport HandleTag from \"../../services/handleTag\";\nimport { Container, Content } from \"../Darf/styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { FormModal } from \"../../components/FormModal\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport { InterestModal } from \"./InterestModalContent\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport {\n DarfResultDescriptionsExterior,\n ExteriorFormItemRows,\n ExteriorNewFormItemRows,\n} from \"../../constants/darfExterior\";\nimport {\n DatePickerMonthCell,\n YearResume,\n} from \"../Darf/Components/DatePickerMonthCell\";\nimport {\n ExteriorModalContent,\n ExteriorOperationType,\n} from \"./ExteriorModalContent\";\nimport {\n antDatePickerLocale,\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n isMobile,\n isNotUndefOrNull,\n mensagemDarfsRetroativos,\n monthsExtended,\n numberToPercentageWallet,\n planInfoToHasPlan,\n} from \"../../utils\";\nimport {\n defaultDarf,\n IDarf,\n minDarfPrice,\n maxDarfPrice,\n YearResumeStatusFromBackEnum,\n IQuotes,\n historicoVendasEmptyText,\n maxPixPayment,\n maxCreditCardPayment,\n yearConfigPL4173,\n DarfExteriorTabs,\n PrejuFormItemRows,\n DarfImpostosDevidosDescriptions\n} from \"../../constants/darf\";\nimport { BolsaOperations } from \"../DarfBolsa/styles\";\nimport { useDarfExterior } from \"./useDarfExterior\";\n\ninterface DarfProps {\n item: Page;\n closeModal: () => void;\n view?: boolean;\n viewEdit?: boolean;\n date?: {\n year?: number;\n month?: number;\n };\n darf?: {\n id: string;\n fullPath: string;\n };\n selectedYear?: number;\n}\n\nexport const DarfExterior: React.FC = ({\n item,\n view,\n darf,\n date,\n viewEdit,\n closeModal,\n selectedYear\n}) => {\n const { state } = useLocation();\n const { currentBroker, currentPage } = useBroker();\n const { user, hasPlan, showUserPlanModal, userPlanModal } = useAuth();\n const { getBuyPrice, getFee, getGain, getSellPrice } = useDarfExterior()\n\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const queryYear = (state as any)?.year as number;\n const queryMonth = (state as any)?.month as number;\n const initialMonth = queryMonth\n ? queryMonth - 1\n : today.getMonth() - 1 >= 0\n ? today.getMonth() - 1\n : 11;\n const initialYear = queryYear\n ? queryYear\n : today.getMonth() - 1 >= 0\n ? today.getFullYear()\n : today.getFullYear() - 1;\n const defaultValue = moment({ month: initialMonth, year: initialYear });\n const currentDate = moment({\n month: currentMonth,\n year: currentYear,\n }).subtract(1, \"M\");\n window.history.replaceState({}, document.title);\n\n const [asset, setAsset] = useState();\n const [loading, setLoading] = useState(true);\n const [, setYear] = useState(initialYear);\n const [emitting, setEmitting] = useState(false);\n const [, setMonth] = useState(initialMonth);\n const [helpModal, setHelpModal] = useState();\n const [data, setData] = useState(defaultDarf);\n const [paymentData, setPaymentData] = useState();\n const [movimentType, setMovimentType] = useState(\"Venda de ativos\");\n const [paymentModal, setPaymentModal] = useState(false);\n const [dataToEditPreju, setDataToEditPreju] = useState();\n const [loadingResetPreju] = useState(false);\n const [loadingEditPreju, setLoadingEditPreju] = useState(false);\n const [quotations, setQuotations] = useState({});\n const [notAuthorized, setNotAuthorized] = useState(false);\n const [showAssetModal, setShowAssetModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [yearResume, setYearResume] = useState([]);\n const [datePickerYear, setDatePickerYear] = useState(initialYear);\n const [gettingYearResume, setGettingYearResume] = useState(false);\n const [loadingDarfButton, setLoadingDarfButton] = useState(false);\n const [showEditPrejuConfirmation, setShowEditPrejuConfirmation] = useState(false);\n const [showNotAuthorizedModal, setShowNotAuthorizedModal] = useState(false);\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const year = date?.year ?? initialYear;\n const month = date?.month ?? initialMonth;\n const currentDarfDate = new Date(year, month, 15)\n const dateAllowedOnBasic = new Date(today.getFullYear(), today.getMonth() - 1, 1)\n const hideOnBasic = (currentDarfDate.getTime() < dateAllowedOnBasic.getTime() && user.user?.userPlanInfoVelotax?.type?.includes('BASIC'))\n const oldModel = year < yearConfigPL4173;\n\n const transactionFeature = item.features[0];\n const taxFeature = item.features[1];\n const yearResumeFeature = item.features[2];\n const prejuizoFeature = item.features[3];\n\n const memoriaCalculoFiltered = data.memoriaCalculo.filter(\n (el: any) =>\n (el.operation === \"SELL\" &&\n (el.type === \"TRADE\" || (el.type === \"WITHDRAW\" || el.type === \"WITHDRAWAL\"))) ||\n el.type === \"INTEREST\" ||\n (el.type === \"DIVIDEND\" && !oldModel)\n );\n\n const { emitted } = useMemo(() => {\n if (gettingYearResume) {\n }\n const monthResume = yearResume\n .find((resume) => resume.year === year)\n ?.months.find((m) => m.month - 1 === month);\n return {\n emitted:\n monthResume?.status === YearResumeStatusFromBackEnum.PAYED ||\n monthResume?.status === YearResumeStatusFromBackEnum.NOT_PAYED,\n payed: !!monthResume?.payed,\n status: monthResume?.status,\n };\n }, [yearResume, year, month, gettingYearResume]);\n\n const getDarf = useCallback(\n (id: string) => {\n view && setLoading(true);\n view &&\n (currentPage?.api || apis)\n .get(`${taxFeature.apiUrl}/${id}`)\n .then((response) => {\n setYear(response.data?.year);\n setMonth(response.data?.month - 1);\n setData({\n ...response.data,\n emitted: true,\n });\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n },\n [view, taxFeature.apiUrl, currentPage]\n );\n\n const verifyFromApi = (item = {} as any) => {\n return (Object.values(item).includes(item.saldoBRA) \n || Object.values(item).includes(item.rendimentoAplicacao)) && oldModel\n }\n\n const getYearResume = useCallback(\n (year: number, force?: boolean, url?: string) => {\n setGettingYearResume(true);\n !view &&\n year <= new Date().getFullYear() &&\n year >= currentBroker.initialYear &&\n (force ||\n (!yearResumeFeature.disabled &&\n !yearResume.find((resume) => resume.year === year))) &&\n (currentPage?.api || apis)\n .get(yearResumeFeature.apiUrl, { params: { year } })\n .then((response) => {\n const index = yearResume.findIndex(\n (resume) => resume.year === year\n );\n if (index >= 0) {\n setYearResume((yearResume) => {\n yearResume.splice(index, 1, response.data);\n return yearResume;\n });\n } else {\n setYearResume((yearResume) => [...yearResume, response.data]);\n }\n\n if (url) {\n download(url);\n }\n })\n .catch((err) => console.log(err))\n .finally(() => setGettingYearResume(false));\n },\n [\n yearResumeFeature,\n yearResume,\n view,\n currentBroker.initialYear,\n currentPage,\n ]\n );\n\n const getTaxes = useCallback(\n (\n nAtualizarDarfsPassadas?: boolean,\n nAtualizarIrrf?: boolean,\n atualizouImpostoAcumulado?: boolean,\n nAtualizarPrejuizosAcumulados?: boolean,\n atualizarTotalmente?: boolean\n ) => {\n if (!hasPlan || !view) {\n setLoading(true);\n (currentPage?.api || apis).get(transactionFeature.apiUrl, {\n params: {\n month: month + 1,\n year,\n nAtualizarDarfsPassadas: nAtualizarDarfsPassadas || false,\n nAtualizarIrrf: nAtualizarIrrf || false,\n atualizouImpostoAcumulado: true,\n nAtualizarPrejuizosAcumulados:\n nAtualizarPrejuizosAcumulados || false,\n atualizarTotalmente: atualizarTotalmente || false,\n },\n })\n .then((response) => {\n if (response.data.memoriaCalculo) {\n setData({\n ...response.data,\n multa: response.data?.multaAux || response.data?.multa,\n juros: response.data?.jurosAux || response.data?.juros,\n impostoDevido: response.data?.impostoTotal || response.data?.impostoDevido,\n memoriaCalculo: response.data?.memoriaCalculo.map(\n (memoCalc: any) => ({\n ...memoCalc,\n date: memoCalc?.date ? moment(memoCalc?.date?.slice(0, 10)).format(\n \"DD/MM/YYYY\"\n ) : moment(new Date(memoCalc?.data)).format(\n \"DD/MM/YYYY\"\n ),\n originalDate: memoCalc?.date,\n market:\n memoCalc?.market === \"Opção de Compra\" ||\n memoCalc?.market === \"Opção de Venda\"\n ? \"Mercado de opções\"\n : memoCalc?.market,\n })\n ),\n });\n setNotAuthorized(false);\n }\n })\n .catch((err) => {\n setData(defaultDarf);\n if (err?.response?.data === NOT_AUTHORIZED) {\n setNotAuthorized(true);\n setShowNotAuthorizedModal(true);\n } else {\n setNotAuthorized(false);\n message.error(errorMessage);\n }\n })\n .finally(() => {\n setLoading(false)\n });\n }\n },\n [month, year, transactionFeature, view, currentPage, hasPlan]\n );\n\n const getQuotations = useCallback(() => {\n !view && setLoading(true);\n !view &&\n (currentPage?.api || apis)\n .get(\"/transaction/get-cotacoes\")\n .then((response) => {\n const { value: cotacoes } = response.data;\n const pojo = {};\n for (let cotacao of cotacoes) {\n const {\n dataHoraCotacao,\n cotacaoCompra: compra,\n cotacaoVenda: venda,\n } = cotacao;\n const [year, month, day] = String(dataHoraCotacao)\n .split(\"T\")[0]\n .split(\"-\");\n Object.assign(pojo, {\n [`${day}/${month}/${year}`]: {\n compra,\n venda,\n },\n });\n }\n setQuotations(pojo);\n })\n .catch((err) => {\n setData(defaultDarf);\n if (err?.response?.data === NOT_AUTHORIZED) {\n setNotAuthorized(true);\n setShowNotAuthorizedModal(true);\n } else {\n setNotAuthorized(false);\n message.error(errorMessage);\n }\n })\n .finally(() => setLoading(false));\n }, [view, currentPage?.api]);\n\n const handleDarf = (justSave?: boolean) => {\n setEmitting(true);\n (currentPage?.api || apis)\n .post(taxFeature.apiUrl, {\n ...data,\n year,\n month: month + 1,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n justSave,\n payed: false,\n })\n .then((res) => {\n setData((data) => ({ ...data, emitted: true }));\n getYearResume(year, true, justSave ? \"\" : res.data.darfUrl);\n setEmitting(false);\n closeModal();\n if (!justSave) {\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\"); \n }\n })\n .catch((err) => {\n message.error(err?.response?.data?.message || errorMessage);\n setEmitting(false);\n });\n };\n\n const handleRegularize = (regular: boolean) => {\n setEmitting(true);\n (currentPage?.api || apis)\n .post(\"transaction/regularize\", {\n year,\n month: month + 1,\n regular,\n impostoDevido: data.impostoDevido,\n totalImpostoDevido: data.totalImpostoDevido,\n })\n .then((res) => {\n getYearResume(year, true, res.data.darfUrl);\n getTaxes(false, false, false, true);\n closeModal();\n message.success(\"Dados salvos\");\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setEmitting(false));\n };\n\n const onChangeMonth = (value: moment.Moment | null, dateString: string) => {\n const [month, year] = dateString.split(\"-\");\n setMonth(parseInt(month) - 1);\n setYear(parseInt(year));\n };\n\n const unsetAsset = () => {\n setAsset(undefined);\n };\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(false);\n unsetAsset();\n };\n\n const handleCloseAssetModal = () => {\n setShowAssetModal(false);\n unsetAsset();\n };\n\n const onCloseHelpModal = () => {\n setHelpModal(undefined);\n };\n\n const handleOpenDarfModal = () => {\n if (\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan: hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ) {\n handleDarf();\n } else {\n handlePlanModal();\n }\n };\n\n const handleOpenPaymentModal = () => {\n setPaymentModal(!paymentModal);\n };\n\n const handleAdd = (event: React.MouseEvent) => {\n event.stopPropagation();\n setShowAssetModal(true);\n };\n\n const handleEdit = (item: any, index: number) => {\n setShowAssetModal(true);\n const data = moment.utc(item.data.toLocaleString()).format(\"DD/MM/YYYY\");\n let i = 0;\n let key = data;\n while (!quotations[key] && i <= 7) {\n key = moment(key, \"DD/MM/YYYY\").subtract(1, \"days\").format(\"DD/MM/YYYY\");\n i++;\n }\n\n setAsset({\n ...item,\n data,\n cotacaoVenda: quotations[key]?.venda,\n cotacaoCompra: quotations[key]?.compra,\n dataVenda: moment\n .utc(item?.dataVenda?.toLocaleString())\n ?.format(\"DD/MM/YYYY\"),\n dataCompra: moment\n .utc(item?.dataCompra?.toLocaleString())\n ?.format(\"DD/MM/YYYY\"),\n });\n };\n\n const handleRemove = (item: any, index: number) => {\n setShowDeleteModal(true);\n setAsset(item);\n };\n\n const addAsset = (asset: any) => {\n setLoading(true);\n\n const ganho = getGain(asset, oldModel)\n const sellPrice = getSellPrice(asset, oldModel)\n const buyPrice = getBuyPrice(asset, oldModel)\n const fee = getFee(asset, oldModel)\n\n const dataToCreate = {\n ...{[sellPrice.key]: sellPrice.value},\n ...{[fee.key]: fee.value},\n ...{[ganho.key]: ganho.value},\n ...{[buyPrice.key]: buyPrice.value},\n data: asset.data, // date liquidação venda\n dataCompra: asset.dataCompra, // pegar a cotação\n operation: \"SELL\", // fixo\n ativo: asset.ativo, // Tiker que o usuário colocar (Ativo)\n valor: asset.valor, // (Valor Bruto (US$))\n quantidade: asset.quantidade,\n fee: asset.fee, // (Taxa de Corretagem (US$))\n type: 'TRADE',\n // \"saldoBRA\": 10000,\n // \"saldoEUA\": 870.7999999999993,\n // \"capitalGainBRA_BRL\": 0, (colocar no ganho)\n // \"capitalGainEUA_BRL\": 0,\n ganho: asset.ganho, // (capitalGainBRA_BRL)\n cambioVenda: asset.cambioVenda, // (C) o cambio venda na pagina 1 ta na venda\n cambioCompra: asset.cambioCompra, // (C) o cambio venda na pagina 1 ta na venda\n // \"cambioReferencia\": 0,\n valueOriginBRA: asset.valueOriginBRA, // Origem BRA (US$) ??\n valueOriginEUA: asset.valueOriginEUA, // Origem USA (US$) ??\n movimentType: asset.movimentType\n };\n \n const dataFeeToCreate = {\n ...{[ganho.key]: ganho.value},\n // ganho: asset.ganhoFee,\n ...{[sellPrice.key]: sellPrice.value},\n ...{[fee.key]: fee.value}, // TODO: VALIDATE THIS\n data: asset.dataFee,\n dataCompra: asset.dataFee, // date liquidação venda\n operation: \"BUY\", // fixo\n type: asset.movimentType === 'Dividendos' ? \"DIVIDEND\" : \"INTEREST\", // fixo\n ativo: asset.ativo, // Tiker que o usuário colocar (Ativo)\n valor: asset.valor, // (Valor Bruto (US$))\n year,\n month,\n fee: asset.fee, // (Taxa de Corretagem (US$))\n ganho: asset.ganhoFee,\n rendimentoAplicacao: asset.ganhoFee, // (capitalGainBRA_BRL)\n cambioVenda: asset.cambioVendaFee, // (C) o cambio venda na pagina 1 ta na venda\n movimentType: asset.movimentType\n };\n\n (currentPage?.api || apis)\n .post(\n `${transactionFeature.apiUrl}?manual=true`,\n (asset.movimentType && asset.movimentType !== \"Venda de ativos\")\n ? dataFeeToCreate\n : dataToCreate,\n {\n headers: {\n \"x-email\": user.user.email,\n },\n }\n )\n .then(() => {\n getTaxes(true, false, false, true, true);\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const editAsset = (data: any) => {\n const ganho = getGain(data);\n const sellPrice = getSellPrice(data, oldModel)\n const buyPrice = getBuyPrice(data, oldModel)\n const fee = getFee(data, oldModel)\n const dataToEdit = {\n ...{[ganho.key]: ganho.value}, // (capitalGainBRA_BRL)\n ...{[fee.key]: fee.value},\n ...{[sellPrice.key]: sellPrice.value},\n ...{[buyPrice.key]: buyPrice.value},\n data: data.data, // date liquidação venda\n dataCompra: data.dataCompra, // pegar a cotação\n type: \"TRADE\",\n operation: \"SELL\", // fixo\n ativo: data.ativo, // Tiker que o usuário colocar (Ativo)\n valor: data.valor, // (Valor Bruto (US$))\n \"quantidade\": data.quantidade,\n fee: data.fee, // (Taxa de Corretagem (US$))\n // \"saldoBRA\": 10000,\n // \"saldoEUA\": 870.7999999999993,\n // \"capitalGainBRA_BRL\": 0, (colocar no ganho)\n // \"capitalGainEUA_BRL\": 0,\n ganho: data.ganho, // (capitalGainBRA_BRL)\n cambioVenda: data.cambioVenda, // (C) o cambio venda na pagina 1 ta na venda\n cambioCompra: data.cambioCompra, // (C) o cambio venda na pagina 1 ta na venda\n // \"cambioReferencia\": 0,\n valueOriginBRA: data.valueOriginBRA, // Origem BRA (US$) ??\n valueOriginEUA: data.valueOriginEUA, // Origem USA (US$) ??\n manual: data.manual,\n };\n setLoading(true);\n (currentPage?.api || apis)\n .put(`${transactionFeature.apiUrl}/${asset._id}`, dataToEdit)\n .then(() => {\n getTaxes(true, false, false, true, true);\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const removeAsset = () => {\n setLoading(true);\n (currentPage?.api || apis)\n .delete(`${transactionFeature.apiUrl}/${asset._id}`)\n .then(() => {\n getTaxes();\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseDeleteModal();\n });\n };\n\n const [tab] = useState(1);\n const bolsaOperationsRef = useRef(null);\n\n /* Editar prejuízo acumulado */\n const [resetedPreju, setResetedPreju] = useState(false);\n const [showPrejuModal, setShowPrejuModal] = useState(false);\n\n const preju = useMemo(\n () => ({\n userPrejuizoComum: resetedPreju\n ? data.prejuizoComum\n : data.userPrejuizoComum ?? data.prejuizoComum,\n userPrejuizoDayTrade: resetedPreju\n ? data.prejuizoDayTrade\n : data.userPrejuizoDayTrade ?? data.prejuizoDayTrade,\n userPrejuizoFII: resetedPreju\n ? data.prejuizoFII\n : data.userPrejuizoFII ?? data.prejuizoFII,\n }),\n [data, resetedPreju]\n );\n\n // const handleResetPreju = () => {\n // setResetedPreju(true);\n // };\n\n const handleEditPreju = () => {\n setResetedPreju(false);\n setShowPrejuModal(true);\n };\n\n const handleEditPrejuData = (preju: any) => {\n setDataToEditPreju(preju);\n setShowEditPrejuConfirmation(true);\n };\n\n const handleClosePrejuModal = () => {\n setShowPrejuModal(false);\n };\n\n const editPreju = () => {\n setLoadingEditPreju(true);\n setShowEditPrejuConfirmation(false);\n\n (currentPage?.api || apis)\n .put(\n `${prejuizoFeature.apiUrl}?month=${month + 1}&year=${year}`,\n dataToEditPreju\n )\n .then((res) => {\n message.success(\"Dados salvos\");\n getTaxes(true, true, false, true);\n setLoadingEditPreju(false);\n handleClosePrejuModal();\n })\n .catch(() => {\n message.error(errorMessage);\n setLoadingEditPreju(false);\n handleClosePrejuModal();\n });\n };\n /* Fim do editar prejuízo acumulado */\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleSaveMonth = async () => {\n setLoadingDarfButton(true);\n try {\n const retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ? handleDarf(true)\n : handlePlanModal();\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n };\n\n const handleEventDarfButton = async () => {\n setLoadingDarfButton(true);\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ? handleOpenPaymentModal()\n : handlePlanModal();\n };\n\n const handleLabelButton: ReactNode = useMemo(() => {\n if(!oldModel) return \"EMITIR RELATÓRIO\"\n else if (data?.totalImpostoDevido <= maxDarfPrice) return \"Pagar DARF\";\n else {\n if (emitted) return \"Emitir novo DARF\";\n else return taxFeature?.buttonLabel;\n }\n }, [data?.totalImpostoDevido, emitted, oldModel, taxFeature?.buttonLabel]);\n\n const impostoCharge = useMemo(() => {\n // Para verificar se é janeiro (month == 0) e antes de 2024\n const taxes = (oldModel || month == 0)\n ? ((data.impostoDevido ?? 0) + (data.impostoAcumulado ?? 0)) - (data.irrfExterior ?? 0) \n : (data.impostoDevido ?? 0) - (data.irrfExterior ?? 0);\n const isExceedTax = taxes < minDarfPrice;\n const additionalTax = oldModel ? data.multa + data.juros : 0;\n return !view\n ? taxes +\n (isExceedTax ? 0 : additionalTax) \n : Math.max(\n taxes +\n (isExceedTax ? 0 : additionalTax) ,\n 0\n );\n }, [data, view, oldModel]);\n\n const calcReturn = (\n sellPrice: number,\n buyPrice: number,\n quantity: number,\n fee: number,\n ganho?: number\n ) => {\n let ret = 0\n if(ganho) {\n const qtt = quantity ? quantity : 1;\n ret =\n sellPrice && buyPrice\n ? (sellPrice * qtt - (fee || 0)) / (buyPrice * qtt) - 1\n : 0;\n }\n return (\n = 0\n ? \"var(--velotax-green-amount)\"\n : \"var(--velotax-red-prejuizo)\"\n }`,\n }}\n >\n {ret ? numberToPercentageWallet(ret) : \"-\"}\n \n );\n };\n\n useEffect(() => {\n getTaxes();\n }, [getTaxes, month, year]);\n\n useEffect(() => {\n getQuotations();\n }, [getQuotations, month, year, item]);\n\n useEffect(() => {\n if (view && darf) {\n getDarf(darf.id);\n }\n }, [getDarf, view, darf]);\n\n useEffect(() => {\n getYearResume(year);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const dataToPayment = {\n ...data,\n year,\n month: month + 1,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n };\n\n setPaymentData(dataToPayment);\n }, [data.totalImpostoDevido, data, month, user.user.name, year]);\n\n const downloadAction = (record: any) => {\n (currentPage?.api || apis)\n .get(`/darf/download/${record._id}`)\n .then((res) => {\n if (res.data.url) {\n download(res.data.url);\n }\n });\n };\n\n const allow = ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n });\n console.log(month, year, planMonthSignature, planYearSignature);\n\n return (\n \n \n \n \n \n \n \n {!view && !viewEdit && (\n <>\n {currentBroker.initialYear === year && month === 0 ? (\n
\n ) : (\n {\n if (month === 0) {\n setYear((year) => {\n const newYear = year - 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(11);\n } else {\n setMonth((month) => month - 1);\n }\n }}\n />\n )}\n \n )}\n {monthsExtended[month]} de {year}\n {!view && !viewEdit && (\n <>\n {currentYear === year && currentMonth - 1 === month ? (\n
\n ) : (\n {\n if (month === 11) {\n setYear((year) => {\n const newYear = year + 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(0);\n } else {\n setMonth((month) => month + 1);\n }\n }}\n />\n )}\n \n )}\n \n \n {!view && !viewEdit && (\n \n }\n defaultValue={defaultValue}\n locale={antDatePickerLocale}\n value={moment({ year: datePickerYear, month })}\n onSelect={(e) => {\n if (e.month() === month && year !== datePickerYear) {\n onChangeMonth(e, `${month + 1}-${datePickerYear}`);\n }\n }}\n onPanelChange={(e) => {\n getYearResume(e.year());\n setDatePickerYear(e.year());\n }}\n getPopupContainer={(target) => target.parentElement!}\n disabledDate={(current) =>\n current &&\n (current > currentDate.endOf(\"month\") ||\n current < moment(`${currentBroker.initialYear}-01-01`) ||\n current < moment(`2020-01-01`))\n }\n monthCellRender={(e) => (\n \n )}\n />\n \n )}\n \n \n \n\n
\n\n \n \n {allow && view && darf?.fullPath && selectedYear && selectedYear <= 2023 && (\n \n \n }\n onClick={() => downloadAction(darf)}\n style={{ marginTop: \"-32px\", padding: \"4px 0\" }}\n >\n BAIXAR DARF\n \n \n \n )}\n {selectedYear && selectedYear <= 2023 && \n {!allow && selectedYear && selectedYear <= 2023 && (\n
\n \n Contrate o plano premium para ver os impostos devidos\n \n }\n onClick={() => {\n handlePlanModal();\n closeModal();\n }}\n >\n PREMIUM\n \n
\n )}\n \n {DarfImpostosDevidosDescriptions.map((description) => {\n if (description.id === 'prejuizoExterior' && oldModel) return null\n\n return (\n {setOpenPrejuizoModal(true)}\n )}\n >\n {(loading) ? (\n \n ) : description.render ? (\n description.render(data, view, year)\n ) : (\n formatCurrency(\n Number(data[description.id as keyof IDarf] || 0)\n )\n )}\n \n )\n })}\n \n {/* {DarfExteriorTabs(data, {\n handleEditPreju,\n view,\n month,\n year,\n }).map((container, rowIndex) => (\n
\n {container.tabs.map((item, colIndex) => (\n 0 && colIndex > 0,\n }\n )}\n >\n {!allow && rowIndex > 0 && colIndex > 0\n ? formatCurrency(13443)\n : isMobile() && !allow && rowIndex === 0\n ? \"\"\n : item.content}\n \n ))}\n
\n ))} */}\n
}\n\n
\n\n \n \n { selectedYear && selectedYear <= 2023?' Vendas realizadas no mês': 'Movimentações'}\n \n }\n >\n {!view && (\n }\n >\n Adicionar\n \n )}\n {\n return (\n handleEdit(item, index)}\n icon={\n verifyFromApi(item) || (item.type !== 'TRADE' && !oldModel) ? (\n \n ) : (\n \n )\n }\n />,\n handleRemove(item, index)}\n icon={}\n />,\n ]\n }\n >\n {oldModel ?\n \n {item.ativo}}\n description={\n
\n {item.data && (\n
\n Data:{\" \"}\n {moment\n .utc(item?.data?.toLocaleString())\n .format(\"DD/MM/YYYY\")}\n
\n )}\n
\n {item.type !== \"INTEREST\" || !item.type\n ? \"Ganho\"\n : \"Rendimento total\"}\n :{\" \"}\n \n {formatCurrency(\n item.type === \"INTEREST\"\n ? item.rendimentoAplicacao\n : getGain(item, oldModel).value\n )}\n \n
\n {view && (\n <>\n
\n {item.type !== \"INTEREST\"\n ? \"Valor de venda\"\n : \"Valor bruto\"}\n :{\" \"}\n \n {formatCurrency(item.valor, \"US$ \")}\n \n
\n
\n Taxa de corretagem:{\" \"}\n \n {formatCurrency(item.fee, \"US$ \")}\n \n
\n
\n Cotação dólar:{\" \"}\n {item.cambioVenda}\n
\n {item.type !== \"INTEREST\" && (\n <>\n
\n Valor de compra (Origem BRA):{\" \"}\n \n {formatCurrency(\n item.valueOriginBRA,\n \"US$ \"\n )}\n \n
\n
\n Valor de compra (Origem EUA):{\" \"}\n \n {formatCurrency(\n item.valueOriginEUA,\n \"US$ \"\n )}\n \n
\n \n )}\n \n )}\n
\n }\n />\n
\n : \n {item.ativoTranslated ? item.ativoTranslated : item.ativo}\n }\n description={\n
\n
\n Data:{\" \"}\n {moment\n .utc(item?.data?.toLocaleString())\n .format(\"DD/MM/YYYY\")}\n
\n {item.type === \"TRADE\" &&
Quantidade: {item.quantidade}
}\n
\n {item.type === \"TRADE\"\n ? \"Ganho\"\n : \"Rendimento total\"}\n :{\" \"}\n \n {formatCurrency(\n item.type !== \"TRADE\"\n ? item.rendimentoAplicacao\n : (item.varTotalBRL ?? 0)\n )}\n \n
\n {item.type === 'TRADE' &&
\n Retorno: {calcReturn(\n getSellPrice(item, oldModel).value,\n getBuyPrice(item, oldModel).value,\n item.quantidade,\n getFee(item, oldModel).value,\n getGain(item, oldModel).value\n )}\n
}\n
\n }\n />\n
\n }\n \n )\n }}\n />\n \n \n\n {allow &&
}\n\n {allow && selectedYear && selectedYear <= 2023 && (\n \n Imposto total\n \n {loading ? (\n \n ) : (\n formatCurrency(Math.max(impostoCharge, 0))\n )}\n \n
\n )}\n\n {allow && selectedYear && selectedYear <= 2023 && (\n \n {DarfResultDescriptionsExterior.map((description, i) => {\n if(['multa', 'juros'].includes(description.id) && !oldModel) return <>\n if(['impostoAcumulado'].includes(description.id) && !oldModel && month !== 0) return <>\n return (\n \n {loading ? (\n \n ) : description.Component ? (\n \n ) : (\n formatCurrency(\n Number(data[description.id as keyof IDarf] || 0)\n )\n )}\n \n )\n })}\n \n )}\n\n {!view && (\n <>\n \n {allow &&\n !(month === currentMonth && year === currentYear) &&\n oldModel &&\n (data.impostoDevido + data.impostoAcumulado || 0) <\n minDarfPrice &&\n memoriaCalculoFiltered?.length > 0 && (\n \n
\n \n O valor do imposto devido é menor que{\" \"}\n {formatCurrency(minDarfPrice)}. Você não precisa\n emitir um DARF para este mês. Clique aqui para\n regularizar este mês.\n \n }\n >\n handleRegularize(true)}\n >\n Salvar sem emitir DARF\n \n \n \n )}\n {(((data.impostoDevido + data.impostoAcumulado - (data?.irrfExterior ?? 0)) >= minDarfPrice) || (!oldModel && memoriaCalculoFiltered.length > 0 )) && (\n <>{selectedYear && selectedYear <= 2023 && \n
\n target.parentElement!}\n title={\n !allow\n ? mensagemDarfsRetroativos\n : month === currentMonth && year === currentYear && oldModel\n ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n }\n >\n {\n oldModel\n ? handleEventDarfButton()\n : handleDarf()\n }}\n icon={!allow && }\n loading={emitting || loadingDarfButton}\n disabled={\n loading ||\n emitting ||\n (month === currentMonth && year === currentYear && oldModel)\n }\n >\n {handleLabelButton}\n {\" \"}\n \n }\n )}\n
\n {(!(month === currentMonth && year === currentYear) && oldModel) && (\n \n \n }\n >\n Salvar apenas\n \n \n \n )}\n \n )}\n \n \n\n \n {helpModal?.content}\n \n {}}\n rows={[]}\n itemToEdit={null}\n loading={loadingEditPreju}\n visibility={showEditPrejuConfirmation}\n saveButtonText={\"Sim\"}\n title={\"Editar prejuízos\"}\n onCancel={() => setShowEditPrejuConfirmation(false)}\n >\n \n Você tem certeza que deseja editar os valores calculados de prejuízos\n acumulados?\n
\n \n \n ) : (\n Object.values(asset).includes(asset.saldoBRA) && oldModel && (\n \n )\n )\n }\n />\n {}}\n edit={(data: any) => handleEditPrejuData(data)}\n itemToEdit={preju}\n loading={loadingEditPreju}\n disableButtons={loadingResetPreju || loadingEditPreju}\n rows={PrejuFormItemRows(loadingResetPreju || loadingEditPreju)}\n visibility={showPrejuModal}\n onCancel={handleClosePrejuModal}\n title=\"Editar prejuízos a compensar\"\n >\n \n {\n handleOpenDarfModal();\n HandleTag(\"77\");\n }}\n disablePixOption={data?.totalImpostoDevido > maxPixPayment}\n disableCreditCardOption={\n data?.totalImpostoDevido > maxCreditCardPayment\n }\n paymentData={{\n ...paymentData,\n impostoTotalFinal: data.totalImpostoDevido + data.impostoAcumulado,\n }}\n />\n Promise.resolve(removeAsset())}\n body=\"Você realmente quer deletar esse ativo?\"\n />\n
\n );\n};\n","// Retorno: {calcReturn(item.valor ?? item.sellPrice_BRL, item.valueOriginBRA ?? item.buyPrice_BRL, item.quantidade, item.fee ?? item.fee_BRL, item.ganho ?? item.varTotalBRL)}\n\nexport function useDarfExterior() {\n const gainKeys = ['ganho', 'varTotalBRL'];\n const sellPriceKeys = ['valor', 'sellPrice_BRL'];\n const buyPriceKeys = ['valueOriginBRA', 'buyPrice_BRL'];\n const feeKeys = ['fee', 'fee_BRL'];\n\n function getByKey(item: any, keys: string[], isOldModel?: boolean) {\n if (isOldModel !== undefined) {\n if (isOldModel) {\n return { key: keys[0], value: item[keys[0]] ?? null };\n }\n return { key: keys[1], value: item[keys[1]] ?? null };\n }\n const k = keys.find((key) => item[key] !== null && item[key] !== undefined);\n const value = k ? item[k] : null;\n const key = k ?? keys[0];\n return { key, value };\n }\n\n function getGain(item: any, isOldModel?: boolean) {\n return getByKey(item, gainKeys, isOldModel)\n }\n\n function getSellPrice(item: any, isOldModel?: boolean) {\n return getByKey(item, sellPriceKeys, isOldModel)\n }\n\n function getBuyPrice(item: any, isOldModel?: boolean) {\n return getByKey(item, buyPriceKeys, isOldModel)\n }\n\n function getFee(item: any, isOldModel?: boolean) {\n return getByKey(item, feeKeys, isOldModel)\n }\n\n return { getBuyPrice, getGain, getSellPrice, getFee }\n}","import { Typography } from \"antd\";\nimport { GiProfit } from \"react-icons/gi\";\nimport { RiFileList3Line } from \"react-icons/ri\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport { isMobile } from \"../../utils\";\nimport { ReactComponent as IntegrationIcon } from \"../../assets/icons/integration.svg\";\nimport WarrenLogo from \"../../assets/warren-logo.svg\";\nimport XP_black_logo from \"../../assets/xp-black.svg\";\nimport SprotifiLogo from \"../../assets/sprotifi-logo.svg\";\nimport { BiTransferAlt } from \"react-icons/bi\";\n\nexport const itensExteriorSemLogo = [\n {\n id: \"darf\",\n premium: true,\n link: \"/velotax/exterior-historic\",\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n {\n id: \"report\",\n basic: true,\n premium: true,\n link: \"/velotax/exterior-report\",\n content: (\n \n Relatórios {!isMobile() && \"(padrão Receita Federal)\"}\n \n ),\n description: (\n Relatórios auxiliares para declaração de IR\n ),\n icon: (\n \n ),\n },\n {\n id: \"insert-manual\",\n sprotifi: true,\n link: \"/velotax/transferencia-custodia\",\n content: Transferência de custódia,\n icon: (\n \n ),\n },\n {\n id: \"dividendos\",\n premium: true,\n link: \"/velotax/exterior-dividendos\",\n content: Dividendos,\n icon: ,\n description: Gestão dos dividendos recebidos,\n },\n {\n id: \"integration\",\n premium: true,\n link: \"/velotax/exterior-integrations\",\n content:
\n Integrações\n
,\n icon: ,\n description: Conexões com as suas corretoras,\n },\n];\n","export default __webpack_public_path__ + \"static/media/check.d361ff1f.svg\";","import styled from \"styled-components\";\nimport check from \"../../assets/icons/check.svg\";\n\nexport const PayDarfButtonContainer = styled.div`\n display: flex;\n cursor: pointer;\n position: relative;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n font-weight: 600;\n line-height: 16px;\n color: var(--white);\n height: 24px;\n border-radius: 12px;\n transition: filter 0.3s;\n padding: 4px 24px 4px 12px;\n background-color: var(--em-aberto);\n\n &.disabled {\n opacity: 0.4;\n cursor: default;\n }\n\n :hover {\n filter: contrast(0.75) brightness(1.15);\n }\n\n :after {\n content: \"\";\n top: 6px;\n right: 6px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n position: absolute;\n background-color: var(--white);\n }\n\n &.checked {\n background-color: var(--green);\n &::after {\n top: 5px;\n width: 14px;\n height: 14px;\n background-size: 100%;\n background-position: center;\n background-repeat: no-repeat;\n background-color: var(--green);\n background-image: url(${check});\n }\n }\n`;\n","import clsx from \"clsx\";\nimport { Tooltip } from \"antd\";\nimport { PayDarfButtonContainer } from \"./styles\";\nimport { mensagemDarfsRetroativos } from \"../../utils\";\n\ninterface PayDarfButtonProps {\n checked?: boolean;\n disabled?: boolean;\n onChange?: () => void;\n ativarDarfsRetroativos?: boolean;\n checkedChildren?: React.ReactNode;\n unCheckedChildren?: React.ReactNode;\n}\n\nexport const PayDarfButton: React.FC = ({\n checked,\n onChange,\n disabled,\n checkedChildren,\n unCheckedChildren,\n ativarDarfsRetroativos,\n}) => {\n return (\n \n {\n if (!disabled) {\n onChange?.();\n }\n }}\n >\n {checked ? checkedChildren : unCheckedChildren}\n \n \n );\n};\n","import styled from \"styled-components\";\n\nexport const CardContainer = styled.div`\n width: 100%;\n height: 72px;\n padding: 24px;\n cursor: pointer;\n position: relative;\n border-radius: 8px;\n margin-bottom: 4px;\n background-color: var(--light-gray);\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n & > svg {\n width: 20px;\n height: 20px;\n opacity: 0.7;\n stroke: var(--dark-gray);\n }\n\n a {\n width: 100%;\n height: 100%;\n padding: 12px 12px 12px 0;\n }\n\n figure {\n margin: 0 16px 0 0;\n\n svg {\n width: 24px;\n height: 24px;\n &:not(.no-fill) {\n fill: var(--ant-primary-color);\n }\n &.no-fill {\n stroke: var(--ant-primary-color);\n }\n }\n }\n\n .content {\n display: flex;\n align-items: center;\n font-weight: 400;\n font-size: 1rem;\n line-height: 1rem;\n color: var(--velotax-font-color);\n flex-grow: 1;\n\n .ant-row {\n width: calc(100% - 16px);\n }\n\n .ant-typography {\n color: inherit;\n position: relative;\n text-align: left;\n font-weight: 600;\n font-size: 14px;\n }\n\n & > div {\n flex-grow: 1;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n &.no-plan {\n & > svg {\n display: none;\n }\n }\n .content {\n font-size: 0.875rem;\n .ant-row {\n flex-wrap: nowrap;\n width: 100% !important;\n .ant-col:first-of-type {\n max-width: 70%;\n }\n }\n }\n }\n`;\n","import { ReactNode } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { HiOutlineChevronRight } from \"react-icons/hi\";\nimport { isMobile } from \"../../utils\";\nimport { CardContainer } from \"./style\";\n\ninterface CardHorizontalProps {\n id: string;\n icon: ReactNode;\n children: ReactNode;\n link?: string;\n className?: string;\n disabled?: boolean;\n onClick?: () => void;\n}\n\nconst Container: React.FC> = ({\n children,\n link,\n}) => {\n return link && link.includes(\"http\") ? (\n \n {children}\n \n ) : (\n <>{children}\n );\n};\n\nexport const CardHorizontal: React.FC = ({\n id,\n icon,\n link,\n onClick,\n children,\n disabled,\n className,\n}) => {\n const navigate = useNavigate();\n\n const handleClick = () => {\n if (disabled) return;\n if (onClick) {\n onClick();\n } else if (link && !link.includes(\"http\")) {\n navigate(link);\n }\n };\n\n return (\n \n \n
\n
{icon}
\n
{children}
\n
\n \n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n &.view {\n padding: 0;\n }\n`;\n\nexport const ButtonContent = styled.div`\n width: 700px;\n margin: 0 auto 8px;\n div {\n display: flex;\n justify-content: flex-end;\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n div {\n width: 100%;\n padding: 16px 24px 0;\n button {\n span {\n font-size: 11px;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 576px) {\n div {\n button {\n width: 100%;\n }\n }\n }\n`;\n\nexport const Content = styled.div`\n &.velotax-content.second {\n opacity: 0.8;\n padding: 24px 0;\n box-shadow: none;\n font-weight: 400;\n font-size: 0.75rem;\n text-align: justify;\n background-color: transparent;\n color: var(--velotax-font-color);\n }\n h3 {\n display: flex;\n align-items: baseline;\n column-gap: 16px;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n font-size: 18px;\n &.imovel-title {\n font-size: 20px;\n }\n }\n .desc-label {\n display: flex;\n align-items: center;\n svg {\n fill: var(--ant-primary-color);\n }\n }\n .desc-content {\n display: flex;\n align-items: flex-start;\n justify-content: center;\n column-gap: 8px;\n svg {\n fill: var(--ant-primary-color);\n }\n span {\n align-self: center;\n }\n button {\n min-width: 32px;\n }\n }\n .market {\n opacity: 0.6;\n font-weight: bold;\n }\n .ml-40 {\n margin-left: 40px;\n }\n .add {\n min-width: 128px;\n margin: 0 0 16px auto;\n }\n .ant-descriptions-item-label {\n width: 50%;\n }\n .ant-descriptions-item-content {\n text-align: center;\n }\n .ant-list.ant-list-split {\n padding: 0 16px;\n background-color: var(--velotax-ghost);\n border: 1px solid var(--velotax-ghost);\n border-radius: 8px;\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n .list-description {\n display: flex;\n flex-direction: column;\n }\n .min-darf-price {\n margin-top: 24px;\n display: flex;\n align-items: center;\n column-gap: 8px;\n }\n .text-center {\n display: block;\n text-align: center;\n }\n .ant-collapse-header {\n padding: 12px 0 !important;\n }\n .ant-collapse-content-box {\n padding: 16px 0 !important;\n }\n .ant-collapse\n > .ant-collapse-item\n > .ant-collapse-header\n .ant-collapse-arrow\n svg {\n transform: rotate(-90deg);\n }\n\n .total-tax-header {\n width: calc(100% - 48px);\n display: flex;\n align-items: center;\n justify-content: space-between;\n h3 {\n margin: 0;\n }\n }\n\n &.view .total-tax-header.impostos-devidos h3:first-of-type {\n font-size: 18px;\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n border: none;\n padding: 24px;\n border-radius: 0;\n &.second {\n padding: 0 24px;\n }\n h3 {\n font-size: 16px;\n column-gap: 8px;\n &.imovel-title {\n font-size: 18px;\n }\n }\n .total-tax-header {\n width: calc(100% - 20px);\n h3.text-center {\n span {\n font-size: 16px;\n }\n }\n }\n .anticon.anticon-right.ant-collapse-arrow {\n top: 24px;\n right: 0;\n }\n .desc-content {\n column-gap: 2px;\n flex-direction: row;\n &.is-editting {\n row-gap: 8px;\n flex-direction: column;\n button {\n width: 100%;\n }\n }\n &:not(.is-editting) {\n span {\n line-height: 32px;\n }\n button {\n margin-top: -2px;\n }\n }\n &.ml-40 {\n margin-left: 0;\n }\n }\n .market {\n font-size: 11px;\n letter-spacing: -0.1px;\n }\n }\n`;\n\nexport const BolsaOperations = styled.div`\n border-radius: 8px;\n color: var(--velotax-font-color);\n background-color: var(--velotax-ghost);\n border: 1px solid var(--velotax-background-color-ghost);\n\n div.strong span {\n font-weight: 600 !important;\n }\n div.opacity {\n opacity: 0.8;\n }\n\n div.header,\n div.sub-header,\n div.row {\n display: grid;\n grid-template-columns: 2fr 2fr;\n span + span {\n text-align: center;\n justify-content: center;\n }\n }\n\n div.sub-header,\n div.row {\n height: auto;\n min-height: 48px;\n border-top: none;\n & + div.sub-header {\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n & > span + span {\n background-color: var(--velotax-background-color);\n }\n & > span {\n padding: 8px 16px;\n display: flex;\n align-items: center;\n border-left: none;\n & + span {\n border-left: 1px solid var(--velotax-background-color-ghost);\n }\n }\n &:last-of-type > span:last-of-type {\n border-radius: 0 0 8px 0;\n }\n }\n\n div.header {\n padding: 16px;\n border-radius: 8px 8px 0 0;\n background-color: var(--velotax-background-color-ghost);\n span {\n font-weight: 700;\n }\n button {\n display: none;\n }\n }\n\n div.sub-header {\n font-size: 14px;\n & > span {\n font-weight: 500;\n }\n }\n\n div.row {\n opacity: 0.85;\n font-size: 13px;\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n\n @media only screen and (max-device-width: 812px) {\n position: relative;\n overflow-x: hidden;\n span {\n font-size: 12px;\n button {\n max-width: 24px;\n min-width: 24px;\n }\n }\n div.header,\n div.sub-header,\n div.row {\n width: 200%;\n height: auto;\n min-height: 48px;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n }\n div.sub-header,\n div.row {\n & > span {\n padding: 12px;\n }\n }\n\n div.header > span:first-of-type,\n div.sub-header > span:first-of-type {\n position: sticky;\n left: 0;\n }\n div.header > span.show,\n div.sub-header > span.show {\n opacity: 1;\n }\n div.header > span,\n div.sub-header > span {\n opacity: 0;\n }\n div.header > span {\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 8px;\n }\n div.header {\n button {\n display: flex;\n }\n }\n }\n`;\n","import { InfoCircleOutlined } from \"@ant-design/icons\";\nimport clsx from \"clsx\";\nimport Button from \"../../components/Button\";\nimport { formatCurrency, currencyToNumber, isMobile } from \"../../utils\";\nimport NumberFormat from \"react-number-format\";\nimport { useState } from \"react\";\nimport { Form, message } from \"antd\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { VscClose } from \"react-icons/vsc\";\nimport imoveisBackend from \"../../services/imoveis\";\nimport {\n JurosModalProps,\n MinPriceModalProps,\n MultaModalProps,\n minDarfPrice,\n} from \"../darf\";\n\nexport const DarfImoveisTabs = (\n data: any,\n valorVenda: number,\n valorAquisicao: number,\n custoCorretagem: number\n) => [\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"Valor da Venda\",\n },\n {\n content: formatCurrency(valorVenda ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"(-) Valor da aquisição\",\n },\n {\n content: formatCurrency(valorAquisicao ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"(-) Custos de Corretagem\",\n },\n {\n content: formatCurrency(custoCorretagem ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"(-) Deduções Legais\",\n },\n {\n content: formatCurrency(data.deducoesLegais ?? 0),\n },\n ],\n },\n {\n class: \"sub-header\",\n tabs: [\n {\n content: \"(x) Aliquota Devida\",\n },\n {\n content: `${data?.aliquota?.toFixed(2) * 100}%`,\n },\n ],\n },\n {\n class: \"sub-header strong\",\n tabs: [\n {\n content: \"Imposto Devido\",\n },\n {\n content: formatCurrency(data.impostoDevido ?? 0),\n },\n ],\n },\n];\n\nexport const ImpostoTotalImoveis = [\n {\n id: \"impostoDevido\",\n label: () => \"(+) Valor do principal\",\n Component: ({ data }: any) => {\n const impostoPrincipal =\n (data?.impostoDevido ?? 0) + (data?.impostoAcumulado ?? 0);\n\n return formatCurrency(impostoPrincipal);\n },\n },\n {\n id: \"impostoDevido\",\n label: () => (\n \n (+) Imposto devido\n \n ),\n Component: ({ data }: any) =>\n formatCurrency(Number(data?.impostoDevido || 0)),\n },\n {\n id: \"impostoAcumulado\",\n label: (onClick: any) => (\n \n (+) DARFs passadas abaixo de R$ 10\n }\n onClick={() => onClick(MinPriceModalProps)}\n />\n \n ),\n Component: ({ data, loading, disabled, docData, setData }: any) => {\n const [edit, setEdit] = useState();\n const [editForm] = Form.useForm();\n const handleEditValue = (id: string) => {\n const value = data.impostoAcumulado;\n setEdit({ id, isEditting: true, value });\n editForm.setFieldsValue({ [id]: value });\n };\n\n const handleEditValueCancel = () => {\n setEdit(undefined);\n editForm.resetFields();\n };\n const handleEditValueConfirm = () => {\n if (edit && edit.value >= 0 && edit.value < minDarfPrice) {\n setData((currentValue: any) => {\n return {\n ...currentValue,\n impostoAcumulado: edit.value,\n };\n });\n imoveisBackend\n .put(\"/imoveis/edit\", {\n _id: docData._id,\n impostoAcumulado: edit.value,\n })\n .then(() =>\n setData((data: any) => ({\n ...data,\n [edit.id]: edit.value,\n }))\n )\n .catch(() =>\n message.error(\n \"Algo inesperado aconteceu! Tente novamente mais tarde.\"\n )\n )\n .finally(() => handleEditValueCancel());\n } else {\n handleEditValueCancel();\n }\n };\n return edit && edit.isEditting && edit.id === \"impostoAcumulado\" ? (\n
\n {!isMobile() && (\n \n {isMobile() && (\n
\n ) : (\n \n {formatCurrency(Number(data.impostoAcumulado || 0))}\n {disabled && (\n }\n onClick={() => handleEditValue(\"impostoAcumulado\")}\n />\n )}\n \n );\n },\n },\n {\n id: \"multa\",\n label: (onClick: any) => (\n
\n (+) Multa de atraso{\" \"}\n }\n onClick={() => onClick(MultaModalProps)}\n />\n
\n ),\n Component: ({ data }: any) =>\n formatCurrency(\n Number(data?.[\"impostoDevido\"] || 0) +\n Number(data?.[\"impostoAcumulado\"] || 0) <\n minDarfPrice\n ? 0\n : Number(data?.[\"multa\"] || 0)\n ),\n },\n {\n id: \"juros\",\n label: (onClick: any) => (\n
\n (+) Juros e/ou encargos de atraso{\" \"}\n }\n onClick={() => onClick(JurosModalProps)}\n />\n
\n ),\n Component: ({ data }: any) =>\n formatCurrency(\n Number(data?.[\"impostoDevido\"] || 0) +\n Number(data?.[\"impostoAcumulado\"] || 0) <\n minDarfPrice\n ? 0\n : Number(data?.[\"juros\"] || 0)\n ),\n },\n];\n","import clsx from \"clsx\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useState, useCallback, useMemo, ReactNode, useEffect } from \"react\";\nimport {\n Col,\n Collapse,\n Descriptions,\n Row,\n Space,\n Typography,\n Spin,\n Divider,\n Tooltip,\n} from \"antd\";\nimport Button from \"../Button\";\nimport { DrawerModal } from \"../DrawerModal\";\nimport { formatCurrency } from \"../../utils\";\nimport darfBackend from \"../../services/msDarf\";\nimport imoveisBackend from \"../../services/imoveis\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { Container, Content, BolsaOperations } from \"./styles\";\nimport { YearResumeStatusFromBackEnum } from \"../../constants/darf\";\nimport {\n DarfImoveisTabs,\n ImpostoTotalImoveis,\n} from \"../../constants/darfImoveis\";\nimport {\n YearResumeStatusCSSClassEnum,\n minDarfPrice,\n} from \"../../constants/darf\";\n\nconst InfoTax = {\n title: \"Isenção de IR para imóveis\",\n content: (\n
\n

\n Venda de imóveis por valor igual ou menor a R$ 440.000,00 podem se\n beneficiar da isenção do imposto de renda.\n

\n

Para isso deve atender os seguintes requisitos:

\n

\n 1º - O ímovel negociado deve ser o único pertecente ao contribuinte;\n

\n

\n 2º - O contribuinte não pode ter efetuado operação semelhante e\n usufruído desse benefício nos últimos 5 anos.\n

\n

\n Venda de imóveis por valor igual ou menor a R$35.000,00 são isentas de\n IR.\n

\n

\n Caso não atenda a esses requisitos você deverá calcular e recolher o\n Imposto de Renda.\n

\n
\n ),\n};\n\nexport const maxImoveisDarfPrice = 30000;\nexport const maxImoveisPixPayment = 30000;\nexport const maxImoveisCreditCardPayment = 30000;\n\nexport const DarfIMoveis: React.FC = ({\n item,\n taxData,\n setTaxData,\n cep,\n valorVenda,\n valorAquisicao,\n custoCorretagem,\n docData,\n view,\n userCode,\n setIsForm,\n setCurrentQuestion,\n}) => {\n const [loading, setLoading] = useState(false);\n const [helpModal, setHelpModal] = useState();\n const [isYearResume, setYeatResume] = useState(false);\n const [situacao, setSituacao] =\n useState();\n const [emited, setEmited] = useState(false);\n const { user, showUserPlanModal, userPlanModal } = useAuth();\n const [paymentData, setPaymentData] = useState();\n\n const [paymentModal, setPaymentModal] = useState(false);\n const navigate = useNavigate();\n\n const impostoCharge = useMemo(() => {\n return (\n (taxData.impostoDevido ?? 0) +\n (taxData.juros ?? 0) +\n (taxData.multa ?? 0) +\n (taxData?.impostoAcumulado ?? 0)\n );\n }, [taxData]);\n\n const getYearResume = useCallback(() => {\n setYeatResume(true);\n imoveisBackend\n .get(`/imoveis/status?cep=${cep}&_id=${docData.imovelId ?? docData._id}`)\n .then(({ data }) => {\n const imovelInfo = data.imovel.find((el: any) => el.cep === cep);\n setSituacao(imovelInfo.status);\n setEmited(() => {\n return (\n situacao === YearResumeStatusFromBackEnum.PAYED ||\n situacao === YearResumeStatusFromBackEnum.NOT_PAYED\n );\n });\n })\n .catch((err) => console.log(err))\n .finally(() => setYeatResume(false));\n }, [cep, docData._id, docData.imovelId, situacao]);\n\n // const getImovel = useCallback(async () => {\n // const { data } = await imoveisBackend.get(`/imoveis/get/${cep}`);\n // setTaxData((currentValue: any) => {\n // return {\n // ...currentValue,\n // impostoAcumulado: data.impostoAcumulado,\n // };\n // });\n // }, [setTaxData, cep]);\n\n useEffect(() => {\n getYearResume();\n }, [getYearResume]);\n\n const handleLabelButton: ReactNode = useMemo(() => {\n if ((taxData?.impostoDevido || 0) <= maxImoveisDarfPrice) {\n return \"Pagar DARF\";\n } else {\n if (emited) return \"Emitir novo DARF\";\n else return \"Emitir DARF\";\n }\n }, [emited, taxData?.impostoDevido]);\n\n const handleRegularize = (regular: boolean) => {\n setLoading(true);\n imoveisBackend\n .post(\"/transaction/regularize\", {\n userCode: user.user.cpf,\n cep,\n regular,\n })\n .then(() => {\n getYearResume();\n navigate(\"/velotax/imoveis-historico\");\n })\n .catch((err) => console.log(\"err\", err))\n .finally(() => {\n setLoading(false);\n });\n };\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleOpenPaymentModal = () => {\n const valueCharge =\n (taxData.impostoDevido ?? 0) +\n (taxData.impostoAcumulado ?? 0) +\n (taxData.juros ?? 0) +\n (taxData.multa ?? 0);\n\n setPaymentData({\n month: new Date().getMonth() + 1,\n year: new Date().getFullYear(),\n cpf: user.user.cpf,\n cep: cep,\n _id: docData._id,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n paymentForm: \"pix\",\n valueCharge,\n totalImpostoDevido: taxData.impostoDevido,\n institution: \"imoveis-velotax\",\n impostoDevido: taxData.impostoDevido,\n impostoAcumulado: taxData.impostoAcumulado ?? 0,\n juros: taxData.juros,\n multa: taxData.multa,\n from: 18,\n });\n setPaymentModal(!paymentModal);\n };\n\n const handleOpenDarfModal = (value?: boolean) => {\n generateDarf(value ?? false);\n };\n\n const goToHistoric = () => {\n navigate(\"/velotax/imoveis-historico\");\n };\n\n const handleEventDarfButton = async () => {\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n } catch (err) {\n console.error(err);\n }\n\n !retPlanInfo.data?.active && !retPlanInfo.data?.type\n ? handlePlanModal()\n : (taxData.impostoDevido || 0) <= maxImoveisDarfPrice\n ? handleOpenPaymentModal()\n : handleOpenDarfModal();\n };\n\n const generateDarf = async (pixValue: boolean) => {\n setLoading(true);\n const valueCharge =\n (taxData.impostoDevido ?? 0) +\n (taxData.impostoAcumulado ?? 0) +\n (taxData.juros ?? 0) +\n (taxData.multa ?? 0);\n\n const { data } = await darfBackend.post(\"/darf\", {\n month: new Date().getMonth() + 1,\n year: new Date().getFullYear(),\n cpf: user.user.cpf,\n cep: cep,\n _id: docData._id,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge,\n totalImpostoDevido: taxData.impostoDevido,\n institution: \"imoveis-velotax\",\n impostoDevido: taxData.impostoDevido || 0,\n impostoAcumulado: taxData.impostoAcumulado || 0,\n juros: taxData.juros || 0,\n multa: taxData.multa || 0,\n from: 18,\n });\n\n window.location.href = data.darfUrl;\n setLoading(false);\n if (taxData.impostoTotal <= maxImoveisDarfPrice) {\n handleOpenPaymentModal();\n }\n goToHistoric();\n };\n\n const returnRightButton = () => {\n return (\n \n {!view && (\n <>\n \n \n \n navigate(\"/velotax/imoveis-historico\")}\n >\n Ver no histórico\n \n \n {(taxData.impostoDevido ?? 0) + (taxData.impostoAcumulado ?? 0) <\n minDarfPrice && (\n \n \n O valor do imposto devido é menor que{\" \"}\n {formatCurrency(minDarfPrice)}. Você não precisa emitir\n um DARF para este mês. Clique aqui para regularizar este\n mês.\n \n }\n >\n handleRegularize(true)}\n >\n Salvar sem emitir DARF\n \n \n \n )}\n {(taxData.impostoDevido ?? 0) + (taxData.impostoAcumulado ?? 0) >=\n minDarfPrice && (\n \n handleEventDarfButton()}\n >\n {handleLabelButton}\n \n \n )}\n \n \n )}\n \n );\n };\n\n const onCloseHelpModal = () => {\n setHelpModal(undefined);\n };\n\n const editRedirect = () => {\n setCurrentQuestion(0);\n setIsForm(true);\n };\n\n return (\n \n \n \n \n \n \n Imóvel no CEP {cep}\n {!view && }\n \n \n \n \n {isYearResume ? (\n \n ) : (\n \n Data da Venda:{\" \"} \n \n {\" \"}\n {`${docData.mesVenda < 10 ? \"0\" : \"\"}${docData.mesVenda}/${\n docData.anoVenda\n }`}\n \n \n )}\n \n \n {DarfImoveisTabs(\n taxData,\n valorVenda,\n valorAquisicao,\n custoCorretagem\n ).map((container: any, rowIndex: any) => (\n
\n {container.tabs.map((item: any, colIndex: any) => (\n \n {item.content}\n \n ))}\n
\n ))}\n
\n
\n \n \n Imposto total\n \n {formatCurrency(impostoCharge)}\n \n \n }\n >\n \n {ImpostoTotalImoveis.map((description) => (\n \n {loading ? (\n \n ) : description.Component ? (\n \n ) : (\n formatCurrency(\n Number(taxData[description.id as keyof any] || 0)\n )\n )}\n \n ))}\n \n \n \n {returnRightButton()}\n
\n
\n {!view ? (\n \n \n Recomendamos sempre que o usuário revise os valores antes de pagar\n qualquer imposto. Conforme os{\" \"}\n \n termos de uso\n {\" \"}\n , não nos responsabilizamos por qualquer omissão de cálculos ou\n valores.\n \n \n Seu imóvel foi vendido por menos de R$ 440 mil?{\" \"}\n setHelpModal(InfoTax)}\n >\n Clique aqui\n {\" \"}\n para saber se você pode estar isento de impostos.\n \n \n ) : null}\n maxImoveisPixPayment}\n disableCreditCardOption={impostoCharge > maxImoveisCreditCardPayment}\n show={paymentModal}\n onCancel={handleOpenPaymentModal}\n paymentData={{ ...paymentData, impostoTotalFinal: impostoCharge }}\n callDarf={(value: boolean) => handleOpenDarfModal(value)}\n customInstallments={12}\n maxPixValue={maxImoveisPixPayment}\n maxCCValue={maxImoveisCreditCardPayment}\n />\n \n {helpModal?.content}\n \n
\n );\n};\n","import axios from 'axios';\n\nexport const instanceMsCalc = axios.create({\n baseURL: process.env.REACT_APP_MS_CALC_URL ?? 'http://localhost:5001',\n headers: { Authorization: process.env.REACT_APP_AUTH_TOKEN ?? '' },\n});","import { Tooltip } from \"antd\";\nimport { Button } from \"@mui/material\";\nimport { AiOutlineUnlock } from \"react-icons/ai\";\n\nexport const PayButton: React.FC<{\n fullWidth?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n title?: React.ReactNode;\n isReport?: boolean;\n allow: boolean;\n}> = ({ onClick, fullWidth, disabled, title, isReport, allow }) => (\n target.parentElement!}>\n }\n fullWidth={fullWidth}\n style={fullWidth ? { marginTop: \"16px\", height: \"40px\", backgroundColor: \"#1634ff\" } : {backgroundColor: \"#1634ff\"}}\n >\n {isReport ? 'Emitir relatório' : 'Pagar'}\n {\" \"}\n \n);","export default __webpack_public_path__ + \"static/media/mynt.97fd2a58.svg\";","export default __webpack_public_path__ + \"static/media/mercadobitcoin-favicon.3ea5b7c8.png\";","import styled from \"styled-components\";\n\nexport const ItensLogo = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n column-gap: 16px;\n margin-bottom: 8px;\n padding-top: 16px;\n\n @media (max-device-width: 576px) {\n display: none;\n }\n`;","import { Typography } from \"antd\";\nimport { AiOutlineApi } from \"react-icons/ai\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport myntLogo from \"../../assets/mynt.svg\";\nimport mercadoBitcoinLogo from \"../../assets/mercadobitcoin-favicon.png\";\nimport { isMobile } from \"../../utils\";\nimport { RiFileList3Line } from \"react-icons/ri\";\nimport { ItensLogo } from \"./styles\";\n\nexport const itensCripto = [\n {\n id: \"darf\",\n premium: true,\n basic: false,\n showToBasic: true,\n link: \"/velotax/cripto-historic\",\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n {\n id: \"integration\",\n premium: true,\n basic: false,\n showToBasic: true,\n link: \"/velotax/cripto-integrations\",\n content: (\n
\n Integrações\n {!isMobile() && (\n \n \n {/* */}\n \n {/* */}\n \n )}\n
\n ),\n description: Conexões com as suas corretoras,\n icon: ,\n },\n {\n id: \"report\",\n basic: false,\n premium: true,\n link: \"/velotax/cripto-report\",\n content: (\n \n Relatórios {!isMobile() && \"(padrão Receita Federal)\"}\n \n ),\n description: (\n Relatórios auxiliares para declaração de IR\n ),\n icon: (\n \n ),\n },\n];\n","import styled from \"styled-components\";\n\nexport const TitleContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n`","import { Tooltip } from \"antd\";\nimport { Button } from \"@mui/material\";\nimport { AiOutlineUnlock } from \"react-icons/ai\";\n\nexport const PayButton: React.FC<{\n fullWidth?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n title?: React.ReactNode;\n isReport?: boolean,\n allow: boolean,\n}> = ({ onClick, fullWidth, disabled, title, isReport, allow }) => (\n target.parentElement!}>\n }\n disabled={disabled}\n fullWidth={fullWidth}\n style={fullWidth ? { marginTop: \"16px\", height: \"40px\", backgroundColor: disabled ? 'transparent' : \"#1634ff\", border: '1px' } : { backgroundColor: disabled ? 'transparent' : \"#1634ff\" }}\n >\n {isReport ? 'Emitir relatório' : 'Pagar'}\n {\" \"}\n \n);","import { Typography } from \"antd\";\nimport { VscHistory } from \"react-icons/vsc\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\n\nexport const itensAutonomos = [\n {\n id: \"darf\",\n link: \"/velotax/autonomos-historico\",\n content: Calculadora de DARF,\n description: Cálculo de IR e emissão de DARF,\n icon: (\n \n ),\n },\n // {\n // id: \"historic\",\n // link: \"/velotax/autonomos-historico\",\n // content: Histórico,\n // description: (\n // Histórico de impostos e pagamentos de DARF\n // ),\n // icon: ,\n // },\n];\n","import { Typography } from \"antd\";\nimport styled from \"styled-components\";\n\ninterface IContainerProps {\n isMobile: boolean;\n}\nexport const LoadingContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n width: 100vw;\n height: 100vh;\n position: absolute;\n top: 0;\n left: 0;\n background: ${({ isMobile }) =>\n isMobile ? \"rgb(0 0 0 / 70%)\" : \"rgb(0 0 0 / 60%)\"};\n z-index: 9999;\n backdrop-filter: blur(4px);\n img {\n width: 250px;\n padding: 20px;\n }\n .anticon {\n color: var(--white);\n width: 40px !important;\n height: 40px !important;\n svg {\n width: 40px !important;\n height: 40px !important;\n }\n }\n`;\n\nexport const LogoContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nexport const Title = styled(Typography.Title)`\n max-width: 600px;\n font-size: 16px;\n color: white !important;\n margin-top: 1rem;\n`;\n\nexport const Paragraph = styled.p`\n max-width: 600px;\n text-align: center;\n font-size: 16px;\n color: white !important;\n`;\n","// Config\nimport { useBroker } from \"../../contexts/BrokerContext\";\n// Components\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { LoadingContainer, LogoContainer, Paragraph, Title } from \"./styles\";\n// Assets\nimport veloLogo from \"../../assets/velotax/velologo.svg\";\nimport { isMobile } from \"../../utils\";\n\n// Types\ninterface IProps {\n children: string;\n title: string;\n}\n\nexport const LoadingModal = ({ title, children }: IProps) => {\n const { currentBroker } = useBroker();\n const mobile = isMobile();\n\n return (\n \n \n \n \n \n {title}\n {children}\n \n );\n};\n","import * as XLSX from \"xlsx\";\nimport { message } from \"antd\";\nimport { callWebviewHandler, isIosPlatform } from \"./webview\";\n\nexport const handleDownloadSheet = async (\n serializedData: any[],\n sheetName: string,\n fileName: string\n) => {\n try {\n if (isIosPlatform()) {\n callWebviewHandler(\"download_file_excel\", {\n sheetName: sheetName,\n fileName: fileName,\n data: serializedData,\n });\n return;\n }\n const worksheet = XLSX.utils.json_to_sheet(serializedData);\n const workbook = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(workbook, worksheet, sheetName);\n XLSX.writeFile(workbook, fileName);\n } catch (error: any) {\n message.error(error);\n }\n};\n","import { v4 } from \"uuid\";\nimport { message } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport {\n Dispatch,\n SetStateAction,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { errorMessage } from \"../utils\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport { useAuth } from \"../contexts/AuthContext\";\nimport { useBroker } from \"../contexts/BrokerContext\";\nimport moment from \"moment\";\n\ninterface IOldTransactionsContext {\n changed: boolean;\n loadingPut: boolean;\n loadingGet: boolean;\n setLoadingPut: Dispatch>;\n setLoadingGet: Dispatch>;\n oldPositionEdit: any;\n doacaoHerancaEdit: any;\n oldPositionList: any[];\n doacoesHerancas: any[];\n showAddPositionModal: boolean;\n setOldPositionEdit: Dispatch>;\n setDoacaoHerancaEdit: Dispatch>;\n setShowAddPositionModal: Dispatch>;\n downloadDoacoesHerancasExcel: () => Promise;\n saveOldPositions: () => void;\n saveDoacoesHerancas: () => void;\n addOldPosition: (item: any) => void;\n addDoacaoHeranca: (item: any) => void;\n editOldPosition: (item: any) => void;\n editDoacaoHeranca: (item: any) => void;\n handleEditOldPosition: (item: any, index: number) => void;\n handleRemoveOldPosition: (item: any, index: number) => void;\n handleRemoveDoacaoHeranca: (item: any, index: number) => void;\n handleEditDoacaoHeranca: (item: any, index: number) => void;\n getOldTransactionsInit: () => void;\n getDoacoesHerancasInit: () => void;\n}\n\nconst OldTransactionsContext = createContext({} as IOldTransactionsContext);\n\nexport const OldTransactionsProvider: React.FC = ({ children }) => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const { initIntegration, currentBroker } = useBroker();\n const [changed, setChanged] = useState(false);\n const [loadingGet, setLoadingGet] = useState(false);\n const [loadingPut, setLoadingPut] = useState(false);\n const [oldPositionEdit, setOldPositionEdit] = useState({});\n const [doacaoHerancaEdit, setDoacaoHerancaEdit] = useState({});\n const [oldPositionList, setOldPositionList] = useState(null);\n const [doacoesHerancas, setDoacoesHerancas] = useState(null);\n const [showAddPositionModal, setShowAddPositionModal] = useState(false);\n\n const handleEditOldPosition = (item: any, index: number) => {\n setShowAddPositionModal(true);\n setOldPositionEdit(item);\n };\n\n const handleEditDoacaoHeranca = (item: any, index: number) => {\n setShowAddPositionModal(true);\n setDoacaoHerancaEdit(item);\n };\n\n const handleRemoveOldPosition = (item: any, index: number) => {\n const pojo = oldPositionList\n .filter((e: any) =>\n \"lendingSide\" in item ? e.lendingSide : !e.lendingSide\n )\n .find((item: any, i: number) => i === index);\n const listOldPosition = oldPositionList.filter(\n (item: any) => JSON.stringify(pojo) !== JSON.stringify(item)\n );\n setOldPositionList(listOldPosition);\n setChanged(true);\n };\n\n const handleRemoveDoacaoHeranca = (item: any, index: number) => {\n const itemParam = item;\n const list = doacoesHerancas.map(\n (item: any) => {\n const newOrders = item?.orders.filter((or: any) => {\n delete or.dateView;\n if (JSON.stringify(itemParam) !== JSON.stringify(or)) return or;\n })\n return { ...item, orders: newOrders };\n }\n );\n setDoacoesHerancas(list);\n setChanged(true);\n }\n\n const editOldPosition = (editItem: any) => {\n const listOldPositions = oldPositionList.map((item: any) =>\n editItem.id === item.id\n ? {\n ...item,\n ...editItem,\n price: editItem?.avgBuyPrice,\n operation:\n editItem?.lendingSide && editItem?.lendingSide === \"Tomador\"\n ? \"V\"\n : \"C\",\n }\n : item\n );\n setOldPositionList(listOldPositions);\n setShowAddPositionModal(false);\n setOldPositionEdit({});\n setChanged(true);\n };\n\n const editDoacaoHeranca = (editItem: any) => {\n const list = doacoesHerancas.map((item: any) => {\n const newOrders = item?.orders.map((or: any) => {\n delete or.dateView;\n const newDate = new Date(\n `${moment(editItem?.dateView, 'DD/MM/YYYY', true).format(\n 'YYYY-MM-DD',\n )}T03:00:00.000Z`);\n return editItem?._id === or?._id\n ? {\n ...or,\n date: newDate,\n code: editItem?.code,\n price: editItem?.price,\n quantity: editItem?.quantity,\n totalValue: editItem?.price * editItem?.quantity,\n }\n : or\n })\n return { ...item, orders: newOrders };\n }\n );\n setDoacoesHerancas(list);\n setShowAddPositionModal(false);\n setDoacaoHerancaEdit({});\n setChanged(true);\n };\n\n const addOldPosition = (item: any) => {\n const listOldPosition: any[] = [...oldPositionList];\n const newPostion = {\n operation:\n item?.lendingSide && item?.lendingSide === \"Tomador\" ? \"V\" : \"C\",\n avgBuyPrice: item?.avgBuyPrice,\n price: item?.avgBuyPrice,\n code: item?.code,\n feeB3: item?.feeB3 || 0,\n institution: \"Desconhecida\",\n date: new Date(2019, 11, 31),\n market: \"Mercado a Vista\",\n quantity: item?.quantity,\n month: 11,\n year: 2019,\n id: v4(),\n };\n\n if (item.lendingSide)\n Object.assign(newPostion, { lendingSide: item?.lendingSide });\n listOldPosition.push(newPostion);\n\n setOldPositionList(listOldPosition);\n setShowAddPositionModal(false);\n setChanged(true);\n };\n\n const addDoacaoHeranca = (addItem: any) => {\n const list = [...doacoesHerancas];\n const month = Number((addItem?.dateView)?.split('/')[1]);\n const year = Number((addItem?.dateView)?.split('/')[2]);\n const now = new Date();\n const newDate = new Date(\n `${moment(addItem?.dateView, 'DD/MM/YYYY', true).format(\n 'YYYY-MM-DD',\n )}T03:00:00.000Z`);\n const retExisting = doacoesHerancas.filter((item: any) => {\n const newOrders = item?.orders;\n if (item?.month == month && item?.year == year) {\n newOrders.push(\n {\n code: addItem?.code,\n operation: \"C\",\n date: newDate,\n quantity: addItem?.quantity,\n price: addItem?.price,\n totalValue: addItem?.price * addItem?.quantity,\n totalFeeNota: 0,\n name: addItem?.code,\n market: \"Mercado a Vista\",\n expirationDate: null,\n institution: \"Desconhecida\",\n operationType: \"Credito\"\n }\n )\n return { ...item, orders: newOrders };\n }\n })\n if (!retExisting || retExisting.length == 0) {\n const newOperation = {\n cpf: user?.user?.cpf,\n month: month,\n year: year,\n provider: 'b3',\n createdAt: now,\n updatedAt: now,\n orders: [\n {\n code: addItem?.code,\n operation: \"C\",\n date: newDate,\n quantity: addItem?.quantity,\n price: addItem?.price,\n totalValue: addItem?.price * addItem?.quantity,\n totalFeeNota: 0,\n name: addItem?.code,\n market: \"Mercado a Vista\",\n expirationDate: null,\n institution: \"Desconhecida\",\n operationType: \"Credito\"\n }\n ]\n };\n \n list.push(newOperation);\n }\n\n setDoacoesHerancas(list);\n setShowAddPositionModal(false);\n setChanged(true);\n };\n\n const saveOldPositions = useCallback(async () => {\n const orders = oldPositionList.map((item: any) => ({\n ...item,\n id: undefined,\n }));\n try {\n setLoadingPut(true);\n await apiBolsa.post(\"/operation\", { orders });\n // message.success(\"Dados salvos com sucesso!\");\n navigate(`/${currentBroker?.path}/bolsa-historic`);\n } catch (err) {\n message.error(errorMessage);\n throw Error;\n } finally {\n setLoadingPut(false);\n }\n }, [oldPositionList, currentBroker, navigate]);\n\n const saveDoacoesHerancas = useCallback(async () => {\n const operations = doacoesHerancas.map((item: any) => {\n const newOrders = item?.orders.map((or: any) => {\n return { ...or }\n })\n return { ...item, orders: newOrders };\n }\n )\n try {\n setLoadingPut(true);\n await apiBolsa.post(\"/operation/donations\", { operations });\n message.success(\"Dados salvos com sucesso!\");\n } catch (err) {\n message.error(errorMessage);\n throw Error;\n } finally {\n navigate(`/${currentBroker?.path}/bolsa-historic`);\n setLoadingPut(false);\n }\n }, [doacoesHerancas, currentBroker, navigate]);\n\n const downloadOldTransactionsExcel = async () => {\n return await apiBolsa\n .get(\"/operation/download?month=12&year=2019\", {\n responseType: \"blob\",\n })\n .then((res) => {\n return res.data\n })\n .catch(() => {\n message.error(errorMessage);\n return null\n })\n }\n\n const downloadDoacoesHerancasExcel = async () => {\n return await apiBolsa\n .get(\"/operation/download/donations?operationType=Credito\", {\n responseType: \"blob\",\n })\n .then((res) => {\n return res.data\n })\n .catch(() => {\n message.error(errorMessage);\n return null\n })\n }\n\n const getOldTransactionsInit = useCallback(\n (setShowModalPrePreenchida?: (p: boolean) => void) => {\n setLoadingGet(true);\n apiBolsa\n .get(\"/operation?month=12&year=2019\", {})\n .then((response) => {\n setOldPositionList(\n response.data?.[0]?.orders.length\n ? response.data?.[0].orders.map((item: any) => ({\n ...item,\n avgBuyPrice: item.price,\n id: item._id,\n }))\n : []\n );\n setLoadingGet(false);\n })\n .catch(() => {\n setLoadingGet(false);\n setOldPositionList([]);\n message.error(errorMessage);\n })\n .finally(() => setShowModalPrePreenchida?.(false));\n },\n [setOldPositionList]\n );\n\n const getDoacoesHerancasInit = useCallback(\n (setShowModalPrePreenchida?: (p: boolean) => void) => {\n setLoadingGet(true);\n apiBolsa\n .get(\"/operation/donations?operationType=Credito\", {})\n .then((response) => {\n setDoacoesHerancas(response.data || []);\n setLoadingGet(false);\n })\n .catch(() => {\n setLoadingGet(false);\n setDoacoesHerancas([]);\n message.error(errorMessage);\n })\n .finally(() => setShowModalPrePreenchida?.(false));\n },\n [setDoacoesHerancas]\n );\n\n useEffect(() => {\n if (user?.user?.cpf) {\n getOldTransactionsInit();\n }\n }, [getOldTransactionsInit, initIntegration, user.user]);\n\n return (\n \n {children}\n \n );\n};\nexport const useOldTransactions = () => useContext(OldTransactionsContext);","import { Typography } from \"antd\";\nimport Button from \"../../../../components/Button\";\n\nexport const DatePickerExtraFooter: React.FC = ({ year, onClick }) => {\n return (\n
\n {year >= 2020 && (\n \n \n Emitir DARF de todos os meses pendentes\n \n \n )}\n Situação:\n
\n Imposto apurado\n
\n
\n Imposto devido\n
\n
\n Não há imposto devido\n
\n
\n );\n};\n","import { Table, Typography } from \"antd\";\nimport { DrawerModal } from \"../DrawerModal\";\nimport Button from \"../Button\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface ModalZeroBuyPrice {\n title?: string;\n visible?: boolean;\n dataZeroBuyPrice: any[];\n setModalZeroBuyPrice: Function;\n setIgnoreZeroBuyPrice: Function;\n}\n\nexport const ModalZeroBuyPrice: React.FC = ({\n title,\n visible,\n dataZeroBuyPrice,\n setModalZeroBuyPrice,\n setIgnoreZeroBuyPrice\n}) => {\n const navigate = useNavigate();\n\n return (\n setModalZeroBuyPrice(false)}\n >\n \n Neste mês, verificamos que alguns de seus ativos estão com custo de compra igual a zero.\n \n (\n {value}\n ),\n },\n {\n align: \"center\",\n title: \"Motivo\",\n dataIndex: \"reason\",\n render: (value) => (\n <>\n {value?.text ?\n <>\n {value?.text}\n { navigate(value?.link) }} target=\"_blank\" rel=\"noreferrer\">\n {\" \"} {value?.textLink} {\" \"}\n \n \n :\n <>\n Entre em contato através de\n \n {\" \"} suporte@velotax.com.br {\" \"}\n \n para avaliarmos a situação.\n \n }\n \n ),\n },\n ]}\n />\n {\n setIgnoreZeroBuyPrice(true);\n setModalZeroBuyPrice(false);\n }}\n >\n ESTOU CIENTE. EMITIR DARF, MESMO COM O CUSTO DE COMPRA ZERADO.\n \n \n )\n}","import clsx from \"clsx\";\nimport moment from \"moment\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { BsCalendar3, BsDownload } from \"react-icons/bs\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { GrFormNext, GrFormPrevious } from \"react-icons/gr\";\nimport { BiChevronLeft, BiChevronRight } from \"react-icons/bi\";\nimport { PlusOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\nimport {\n AiOutlineDelete,\n AiOutlineDownload,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport {\n Col,\n Collapse,\n DatePicker,\n Descriptions,\n List,\n message,\n Row,\n Skeleton,\n Space,\n Spin,\n Table,\n Tooltip,\n Typography,\n} from \"antd\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport HandleTag from \"../../services/handleTag\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { FormModal } from \"../../components/FormModal\";\nimport { apiPayment } from \"../../services/apiPayment\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { LoadingModal } from \"../../components/LoadingModal\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { Container, Content, BolsaOperations } from \"./styles\";\nimport { handleDownloadSheet } from \"../../utils/handleDownloadSheet\";\nimport { useOldTransactions } from \"../../contexts/OldTransactionsContext\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport { DatePickerExtraFooter } from \"../Darf/Components/DatePickerExtraFooter\";\nimport {\n DatePickerMonthCell,\n YearResume,\n} from \"../Darf/Components/DatePickerMonthCell\";\nimport {\n DarfResultDescriptions,\n defaultDarfBolsa,\n DarfBolsaFormItemRows,\n PrejuFormItemRows,\n DarfBolsaTabs,\n IrrfFormItemRows,\n} from \"../../constants/darfBolsa\";\nimport {\n antDatePickerLocale,\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n getZeroBuyPrice,\n isMobile,\n isSecondBusinessDay,\n mensagemDarfsRetroativos,\n monthsExtended,\n planInfoToHasPlan,\n} from \"../../utils\";\nimport {\n IDarfBolsa,\n YearResumeStatusFromBackEnum,\n historicoVendasEmptyText,\n maxCreditCardPayment,\n maxPixPayment,\n maxDarfPrice,\n minDarfPrice,\n} from \"../../constants/darf\";\nimport { ModalZeroBuyPrice } from \"../../components/ModalZeroBuyPrice\";\n\ninterface DarfBolsaProps {\n item: Page;\n view?: boolean;\n viewEdit?: boolean;\n className?: string;\n closeModal: () => void;\n darf?: {\n id: string;\n fullPath: string;\n payed?: boolean;\n };\n date?: {\n year?: number;\n month?: number;\n };\n}\n\nexport const DarfBolsa: React.FC = ({\n view,\n item,\n darf,\n date,\n viewEdit,\n closeModal,\n}) => {\n const navigate = useNavigate();\n const { state } = useLocation();\n const { oldPositionList } = useOldTransactions();\n const { currentBroker, currentPage } = useBroker();\n const { user, showUserPlanModal, userPlanModal, hasPlan } = useAuth();\n\n const today = new Date();\n const currentMonth = today.getMonth() + 1;\n const currentYear = today.getFullYear();\n const queryYear = (state as any)?.year as number;\n const queryMonth = (state as any)?.month as number;\n const initialMonth = queryMonth\n ? queryMonth - 1\n : today.getMonth() - 1 >= 0\n ? today.getMonth() - 1\n : 11;\n const initialYear = queryYear\n ? queryYear\n : today.getMonth() - 1 >= 0\n ? today.getFullYear()\n : today.getFullYear() - 1;\n const defaultValue = moment({ month: initialMonth, year: initialYear });\n const currentDate = moment({\n month: currentMonth,\n year: currentYear,\n }).subtract(1, \"M\");\n window.history.replaceState({}, document.title);\n\n const year = date?.year ?? initialYear;\n const month = date?.month ?? initialMonth;\n\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const [asset, setAsset] = useState();\n const [loadingResetPreju] = useState(false);\n const [, setYear] = useState(initialYear);\n const [loading, setLoading] = useState(false);\n const [resumo, setResumo] = useState([]);\n const [emitting, setEmitting] = useState(false);\n const [, setMonth] = useState(initialMonth);\n const [hasItems, sethasItems] = useState(false);\n const [helpModal, setHelpModal] = useState();\n const [, setBuffer] = useState>();\n const [isBatchDarf, setIsBatchDarf] = useState(false);\n const [paymentModal, setPaymentModal] = useState(false);\n const [yearBatch, setYearBatch] = useState(initialYear);\n const [dataToEditPreju, setDataToEditPreju] = useState();\n const [totalPagarBatch, setTotalPagarBatch] = useState(0);\n const [showAssetModal, setShowAssetModal] = useState(false);\n const [paymentData, setPaymentData] = useState();\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [data, setData] = useState(defaultDarfBolsa);\n const [yearResume, setYearResume] = useState([]);\n const [loadingEditPreju, setLoadingEditPreju] = useState(false);\n const [openLoadingModal, setOpenLoadingModal] = useState(false);\n const [datePickerYear, setDatePickerYear] = useState(initialYear);\n const [gettingYearResume, setGettingYearResume] = useState(false);\n const [loadingDarfButton, setLoadingDarfButton] = useState(false);\n const [showEditPrejuConfirmation, setShowEditPrejuConfirmation] =\n useState(false);\n\n const hideOldPositionsText =\n oldPositionList?.length < 1 || oldPositionList === null;\n\n const valorPrincipal = Math.max(\n 0,\n Number(\n (data.impostoComumFinal || 0) +\n (data.impostoDTFinal || 0) +\n (data.impostoFIIFinal || 0)\n ) +\n (Number(data[\"impostoAcumulado\"] || 0) - Number(data[\"irrfTotal\"] || 0))\n );\n const impostoCharge = useMemo(() => {\n return (\n valorPrincipal +\n (valorPrincipal < minDarfPrice\n ? 0\n : (data.multaAux ?? 0) + (data.jurosAux ?? 0))\n );\n }, [data, valorPrincipal]);\n\n const transactionFeature = item.features[0];\n const taxFeature = item.features[1];\n const yearResumeFeature = item.features[2];\n const prejuizoFeature = item.features[3];\n const irrfFeature = item.features[4];\n\n const { emitted } = useMemo(() => {\n if (gettingYearResume) {\n }\n const monthResume = yearResume\n .find((resume) => resume.year === year)\n ?.months.find((m) => m.month - 1 === month);\n return {\n emitted:\n monthResume?.status === YearResumeStatusFromBackEnum.PAYED ||\n monthResume?.status === YearResumeStatusFromBackEnum.NOT_PAYED,\n payed: !!monthResume?.payed,\n status: monthResume?.status,\n };\n }, [yearResume, year, month, gettingYearResume]);\n\n const handleLabelButton: ReactNode = useMemo(() => {\n if ((data?.impostoTotalFinal || 0) <= maxDarfPrice) return \"Pagar DARF\";\n else {\n if (emitted) return \"Emitir novo DARF\";\n else return taxFeature?.buttonLabel;\n }\n }, [data?.impostoTotalFinal, taxFeature?.buttonLabel, emitted]);\n\n const getDarf = useCallback(\n (id: string) => {\n view && setLoading(true);\n view &&\n (currentPage?.api || apis)\n .get(`${taxFeature.apiUrl}/${id}`)\n .then((response) => {\n setYear(response.data?.year);\n setMonth(response.data?.month - 1);\n setData({\n ...response.data,\n emitted: true,\n });\n })\n .catch((err) => {\n message.error(err.response?.data?.message || errorMessage);\n })\n .finally(() => setLoading(false));\n },\n [view, taxFeature.apiUrl, currentPage]\n );\n\n const getYearResume = useCallback(\n (year: number, force?: boolean, url?: string) => {\n setGettingYearResume(true);\n !view &&\n year <= new Date().getFullYear() &&\n year >= moment(`2020-01-01`).get(\"year\") &&\n (force ||\n (!yearResumeFeature.disabled &&\n !yearResume.find((resume) => resume.year === year))) &&\n (currentPage?.api || apis)\n .get(yearResumeFeature.apiUrl, { params: { year } })\n .then((response) => {\n const index = yearResume.findIndex(\n (resume) => resume.year === year\n );\n if (index >= 0) {\n setYearResume((yearResume) => {\n yearResume.splice(index, 1, response.data);\n return yearResume;\n });\n } else {\n setYearResume((yearResume) => [...yearResume, response.data]);\n }\n\n if (url) {\n download(url);\n }\n })\n .catch((err) => console.log(err))\n .finally(() => setGettingYearResume(false));\n },\n [yearResumeFeature, yearResume, view, currentPage]\n );\n\n const getTaxes = useCallback(\n (\n nAtualizarDarfsPassadas?: boolean,\n nAtualizarIrrf?: boolean,\n atualizouImpostoAcumulado?: boolean,\n nAtualizarPrejuizosAcumulados?: boolean,\n atualizarTotalmente?: boolean\n ) => {\n setLoading(true);\n (currentPage?.api || apis)\n .get(transactionFeature.apiUrl, {\n params: {\n month: month + 1,\n year,\n nAtualizarDarfsPassadas: nAtualizarDarfsPassadas || false,\n nAtualizarIrrf: nAtualizarIrrf || false,\n atualizouImpostoAcumulado: atualizouImpostoAcumulado || false,\n nAtualizarPrejuizosAcumulados:\n nAtualizarPrejuizosAcumulados || false,\n atualizarTotalmente: atualizarTotalmente || false,\n },\n })\n .then((response) => {\n if (response.data.memoriaCalculo) {\n setData({\n ...response.data,\n multa: response.data.multaAux,\n juros: response.data.jurosAux,\n impostoDevido: response.data.impostoTotal,\n memoriaCalculo: response.data.memoriaCalculo.map(\n (memoCalc: any) => ({\n ...memoCalc,\n date: moment(memoCalc.date.slice(0, 10)).format(\n \"DD/MM/YYYY\"\n ),\n originalDate: memoCalc.date,\n market:\n memoCalc.market === \"Opção de Compra\" ||\n memoCalc.market === \"Opção de Venda\"\n ? \"Mercado de opções\"\n : memoCalc.market,\n })\n ),\n });\n }\n })\n .catch((err) => {\n setData(defaultDarfBolsa);\n message.error(errorMessage);\n })\n .finally(() => setLoading(false));\n },\n [month, year, transactionFeature, view, currentPage, hasPlan]\n );\n\n const isAntesTerceiroDiaUtil = () => {\n const today = moment();\n // Verifica se a data de hoje é um sábado\n if (today.isoWeekday() === 6) {\n return false;\n }\n // Verifica se a data de hoje é anterior ao terceiro dia útil\n const firstDayOfMonth = moment(today).startOf(\"month\");\n let businessDaysCount = 0;\n while (businessDaysCount < 2) {\n if (firstDayOfMonth.isoWeekday() < 6) {\n businessDaysCount++;\n }\n firstDayOfMonth.add(1, \"day\");\n }\n return today.isBefore(firstDayOfMonth);\n };\n\n const thirdBusinessDayAndMonth = (item: any) => {\n if (disableCurrentMonth(item))\n return { disabled: true, title: \"Aguarde o encerramento do mês para pagar seu DARF\" }\n else if (item.month + 1 == currentMonth - 1 && item.year == currentYear && isAntesTerceiroDiaUtil())\n return { disabled: true, title: \"Aguarde o terceiro dia útil deste mês para pagar seu DARF\" }\n else return { disabled: false, title: \"\" }\n }\n\n const handleDarf = (justSave?: boolean) => {\n const url = isBatchDarf ? \"/darf/batch\" : taxFeature.apiUrl;\n const batchPayload = {\n name: user.user.name,\n amount: totalPagarBatch,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n paymentForm: \"pix\",\n resumo,\n isDownloadPDF: true,\n };\n const payload = {\n ...data,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n totalImpostoDevido: data.impostoTotalFinal,\n impostoDevido: data.impostoTotal,\n juros: data.jurosAux,\n multa: data?.multaAux,\n year,\n month: month + 1,\n name: user.user.name,\n insertPix: true,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n justSave,\n payed: false,\n };\n setEmitting(true);\n (currentPage?.api || apis)\n .post(url, isBatchDarf ? batchPayload : payload)\n .then((res) => {\n closeModal();\n if (!isBatchDarf) {\n setData((data) => ({ ...data, emitted: true }));\n getYearResume(year, true, justSave ? \"\" : res.data.darfUrl);\n } else if (res.data?.url) {\n download(res.data?.url);\n }\n setEmitting(false);\n })\n .catch((err) => {\n message.error(err.response?.data?.message || errorMessage);\n setEmitting(false);\n });\n };\n\n const handleRegularize = (regular: boolean) => {\n setEmitting(true);\n (currentPage?.api || apis)\n .post(\"transaction/regularize\", {\n year,\n month: month + 1,\n regular,\n impostoAcumulado:\n (data.impostoTotal ?? 0) + (data.impostoAcumulado ?? 0),\n })\n .then((res) => {\n getYearResume(year, true, res.data.darfUrl);\n getTaxes(false, false, false, true);\n message.success(\"Dados salvos\");\n closeModal();\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setEmitting(false));\n };\n\n const onChangeMonth = (value: moment.Moment | null, dateString: string) => {\n const [month, year] = dateString.split(\"-\");\n setMonth(parseInt(month) - 1);\n setYear(parseInt(year));\n };\n\n const unsetAsset = () => {\n setAsset(undefined);\n };\n\n const handleCloseDeleteModal = () => {\n setShowDeleteModal(false);\n unsetAsset();\n };\n\n const handleCloseAssetModal = () => {\n setShowAssetModal(false);\n unsetAsset();\n };\n\n const onCloseHelpModal = () => {\n setHelpModal(undefined);\n };\n\n const handleOpenDarfModal = () => {\n if (\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ) {\n handleDarf();\n } else {\n handlePlanModal();\n }\n };\n\n const handleOpenPaymentModal = () => {\n setPaymentModal(!paymentModal);\n setIsBatchDarf(false);\n };\n\n const handleAdd = (event: React.MouseEvent) => {\n event.stopPropagation();\n setShowAssetModal(true);\n };\n\n const handleEdit = (item: any, index: number) => {\n setShowAssetModal(true);\n setAsset({\n ...item,\n id: item._id,\n feeB3: item.fee,\n price: item.sellPrice,\n avgBuyPrice: item.buyPrice,\n data: moment.utc(item.date.toLocaleString()).format(\"DD/MM/YYYY\"),\n });\n };\n\n const handleRemove = (item: any, index: number) => {\n setShowDeleteModal(true);\n setAsset(item);\n };\n\n const addAsset = (asset: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .post(transactionFeature.apiUrl, {\n ...asset,\n operation: \"V\",\n avgSellPrice: asset.price,\n totalValue: asset.price * asset.quantity,\n })\n .then(() => {\n getTaxes(true, false, false, true, true);\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const editAsset = (asset: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .put(`${transactionFeature.apiUrl}/${asset.id}`, {\n ...asset,\n operation: \"V\",\n avgSellPrice: asset.price,\n totalValue: asset.price * asset.quantity,\n })\n .then(() => {\n getTaxes(true, false, false, true, true);\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseAssetModal();\n });\n };\n\n const removeAsset = () => {\n setLoading(true);\n (currentPage?.api || apis)\n .delete(`${transactionFeature.apiUrl}/${asset.id ?? asset._id}`, {\n params: {\n year,\n month,\n },\n })\n .then(() => {\n getTaxes(true, false, false, true, true);\n getYearResume(year, true);\n })\n .catch(() => message.error(errorMessage))\n .finally(() => {\n setLoading(false);\n handleCloseDeleteModal();\n });\n };\n\n /* Manipular as tabs de imposto no mobile */\n const [tab, setTab] = useState(1);\n const bolsaOperationsRef = useRef(null);\n\n const handleNext = () => {\n setTab((tab) => tab + 1);\n const span = document.querySelector(\"div.sub-header > span.show\");\n bolsaOperationsRef.current?.scrollBy({ left: span?.clientWidth ?? 155 });\n };\n\n const handlePrev = () => {\n setTab((tab) => tab - 1);\n const span = document.querySelector(\"div.sub-header > span.show\");\n bolsaOperationsRef.current?.scrollBy({ left: -(span?.clientWidth ?? 155) });\n };\n /* Fim da manipulação das tabs de imposto no mobile */\n\n /* Editar prejuízo acumulado */\n const [resetedPreju, setResetedPreju] = useState(false);\n const [showPrejuModal, setShowPrejuModal] = useState(false);\n const [ignoreZeroBuyPrice, setIgnoreZeroBuyPrice] = useState(false);\n const [dataZeroBuyPrice, setDataZeroBuyPrice] = useState([]);\n const [modalZeroBuyPrice, setModalZeroBuyPrice] = useState(false);\n\n const preju = useMemo(\n () => ({\n userPrejuizoComum: resetedPreju\n ? data.prejuizoComum\n : data.userPrejuizoComum ?? data.prejuizoComum,\n userPrejuizoDayTrade: resetedPreju\n ? data.prejuizoDayTrade\n : data.userPrejuizoDayTrade ?? data.prejuizoDayTrade,\n userPrejuizoFII: resetedPreju\n ? data.prejuizoFII\n : data.userPrejuizoFII ?? data.prejuizoFII,\n }),\n [data, resetedPreju]\n );\n\n // const handleResetPreju = () => {\n // setResetedPreju(true);\n // };\n\n const handleEditPreju = () => {\n setResetedPreju(false);\n setShowPrejuModal(true);\n };\n\n const handleEditPrejuData = (preju: any) => {\n setDataToEditPreju(preju);\n setShowEditPrejuConfirmation(true);\n };\n\n const handleClosePrejuModal = () => {\n setShowPrejuModal(false);\n };\n\n const editPreju = () => {\n setLoadingEditPreju(true);\n setShowEditPrejuConfirmation(false);\n\n (currentPage?.api || apis)\n .put(\n `${prejuizoFeature.apiUrl}?month=${month + 1}&year=${year}`,\n dataToEditPreju\n )\n .then((res) => {\n message.success(\"Dados salvos\");\n getTaxes(true, true, false, true);\n setLoadingEditPreju(false);\n handleClosePrejuModal();\n })\n .catch(() => {\n message.error(errorMessage);\n setLoadingEditPreju(false);\n handleClosePrejuModal();\n });\n };\n /* Fim do editar prejuízo acumulado */\n\n /* Editar IRRF */\n const [showIrrfModal, setShowIrrfModal] = useState(false);\n\n const irrf = useMemo(\n () => ({\n userIrrfComum: data.irrfComum,\n userIrrfDayTrade: data.irrfDayTrade,\n userIrrfFII: data.irrfFII,\n userIrrfTotal: data.irrfTotal,\n }),\n [data]\n );\n\n // const handleResetIrrf = () => {\n // setResetedIrrf(true);\n // };\n\n const handleEditIrrf = () => {\n setShowIrrfModal(true);\n };\n\n const handleCloseIrrfModal = () => {\n setShowIrrfModal(false);\n };\n\n const editIrrf = (data: any) => {\n handleCloseIrrfModal();\n (currentPage?.api || apis)\n .put(`${irrfFeature.apiUrl}?month=${month + 1}&year=${year}`, data)\n .then((response) => {\n message.success(\"Dados salvos\");\n getTaxes(true, true, false, true);\n })\n .catch(() => {\n message.error(errorMessage);\n });\n };\n /* Fim do editar prejuízo acumulado */\n\n useEffect(() => {\n // if (month === 0) {\n if (!darf?.payed) getTaxes(false, false, false, true, false);\n // } else {\n // getTaxes(false, false, false, false, true);\n // }\n }, [getTaxes, month, year, darf?.payed]);\n\n useEffect(() => {\n if (view && darf) {\n getDarf(darf.id);\n }\n }, [getDarf, view, darf]);\n\n useEffect(() => {\n getYearResume(year);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (data?.memoriaCalculo?.length > 0) sethasItems(true);\n setBuffer(data?.buffer?.data);\n }, [data]);\n\n useEffect(() => {\n const dataToPayment = {\n ...data,\n year,\n month: month + 1,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: data.memoriaCalculo,\n };\n\n setPaymentData(dataToPayment);\n }, [data.impostoTotalFinal, data, month, user.user.name, year]);\n\n const handlePlanModal = (isBatch?: boolean) => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleSaveMonth = async () => {\n setLoadingDarfButton(true);\n try {\n const retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ? handleDarf(true)\n : handlePlanModal();\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n };\n\n useEffect(()=> {\n if (ignoreZeroBuyPrice) handleEventDarfButton();\n }, [ignoreZeroBuyPrice])\n\n const handleEventDarfButton = async () => {\n setLoadingDarfButton(true);\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n } catch (err) {\n console.error(err);\n }\n setLoadingDarfButton(false);\n\n if (!ignoreZeroBuyPrice) {\n const hasZeroBuyPrice = await getZeroBuyPrice(data?.memoriaCalculo);\n if (hasZeroBuyPrice.length > 0) {\n setModalZeroBuyPrice(true);\n setDataZeroBuyPrice(hasZeroBuyPrice);\n return;\n }\n }\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n })\n ? handleOpenPaymentModal()\n : handlePlanModal();\n };\n\n const handleBatchDarf = async () => {\n let retPlanInfo = {\n data: {\n active: false,\n type: \"\",\n },\n };\n let allow = false;\n try {\n retPlanInfo = await apiPayment.get(\"/user-plan/plan-info\");\n\n const hasPlan = planInfoToHasPlan(retPlanInfo.data);\n allow = ativarDarfsRetroativos({\n item: { month: month + 1, year },\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 11 : planMonthSignature - 1,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n\n });\n allow ? handleDarf(true) : handlePlanModal();\n } catch (err) {\n console.error(err);\n }\n\n if (!allow) {\n handlePlanModal(true);\n } else {\n setOpenLoadingModal(true);\n (currentPage?.api || apis)\n .get(`/darf/batch/calculate?year=${yearBatch}`)\n .then((res) => {\n setTotalPagarBatch(res.data.totalImpostoPagar);\n setResumo(res.data.resumo);\n setIsBatchDarf(true);\n setPaymentModal(true);\n })\n .finally(() => setOpenLoadingModal(false));\n }\n };\n\n const checkBlockedOption = (maxValue: number) => {\n if (isBatchDarf) {\n return (\n resumo.filter((darf) => (darf?.impostoTotalFinal || 0) > maxValue)\n .length > 0\n );\n } else {\n return (data?.impostoTotalFinal || 0) > maxValue;\n }\n };\n\n const downloadAction = (record: any) => {\n (currentPage?.api || apis)\n .get(`/darf/download/${record._id}`)\n .then((res) => {\n if (res.data.url) {\n download(res.data.url);\n }\n });\n };\n\n const allow = ativarDarfsRetroativos({\n item,\n currentMonth,\n currentYear,\n hasPlan,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n });\n\n const disableCurrentMonth = (item: any) =>\n item.year === currentYear && item.month + 1 === currentMonth;\n\n return (\n \n {openLoadingModal && (\n \n {`Estamos calculando todas as DARFs pendentes para o ano de ${yearBatch}. Por favor, aguarde.`}\n \n )}\n \n \n \n \n \n \n {!view && !viewEdit && (\n <>\n {currentBroker.initialYear === year && month === 0 ? (\n
\n ) : (\n {\n if (month === 0) {\n setYear((year) => {\n const newYear = year - 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(11);\n } else {\n setMonth((month) => month - 1);\n }\n }}\n />\n )}\n \n )}\n {monthsExtended[month]} de {year}\n {!view && !viewEdit && (\n <>\n {currentYear === year && currentMonth - 1 === month ? (\n
\n ) : (\n {\n if (month === 11) {\n setYear((year) => {\n const newYear = year + 1;\n getYearResume(newYear);\n setDatePickerYear(newYear);\n return newYear;\n });\n setMonth(0);\n } else {\n setMonth((month) => month + 1);\n }\n }}\n />\n )}\n \n )}\n \n \n {!view && !viewEdit && (\n \n }\n defaultValue={defaultValue}\n locale={antDatePickerLocale}\n value={moment({ year: datePickerYear, month })}\n onSelect={(e) => {\n if (e.month() === month && year !== datePickerYear) {\n onChangeMonth(e, `${month + 1}-${datePickerYear}`);\n }\n }}\n onPanelChange={(e) => {\n setYearBatch(e.year());\n getYearResume(e.year());\n setDatePickerYear(e.year());\n }}\n renderExtraFooter={() =>\n yearResumeFeature.disabled ? (\n <>\n ) : (\n handleBatchDarf()}\n />\n )\n }\n disabledDate={(current) =>\n current &&\n (current > currentDate.endOf(\"month\") ||\n current < moment(`${currentBroker.initialYear}-01-01`) ||\n current < moment(`2020-01-01`))\n }\n monthCellRender={(e) => (\n \n )}\n />\n \n )}\n \n \n \n\n
\n\n \n \n {allow && view && darf?.fullPath && (\n \n \n }\n onClick={() => downloadAction(darf)}\n style={{ marginTop: \"-32px\", padding: \"4px 0\" }}\n >\n BAIXAR DARF\n \n \n \n )}\n \n {!allow && (\n
\n \n Contrate o plano premium para ver os impostos devidos\n \n }\n onClick={() => {\n handlePlanModal();\n closeModal();\n }}\n >\n PREMIUM\n \n
\n )}\n {DarfBolsaTabs(data, {\n handleEditPreju,\n view,\n month,\n year,\n }).map((container, rowIndex) => (\n
\n {container.tabs.map((item, colIndex) => (\n 0 && colIndex > 0,\n }\n )}\n >\n {rowIndex === 0 && (\n }\n onClick={\n !allow || colIndex === 0 || tab === 1\n ? undefined\n : handlePrev\n }\n style={{\n visibility:\n !allow || colIndex === 0 || tab === 1\n ? \"hidden\"\n : \"visible\",\n }}\n />\n )}\n {!allow && rowIndex > 0 && colIndex > 0\n ? formatCurrency(13443)\n : isMobile() && !allow && rowIndex === 0\n ? \"\"\n : item.content}\n {rowIndex === 0 && (\n }\n onClick={\n !allow || colIndex === 0 || tab === 3\n ? undefined\n : handleNext\n }\n style={{\n visibility:\n !allow || colIndex === 0 || tab === 3\n ? \"hidden\"\n : \"visible\",\n }}\n />\n )}\n \n ))}\n
\n ))}\n
\n\n
\n\n \n \n Vendas realizadas no mês\n \n }\n >\n {hasItems && (\n {\n const serializedData: any[] = [];\n data.memoriaCalculo\n ?.sort(\n (a, b) =>\n new Date(b.originalDate).getTime() -\n new Date(a.originalDate).getTime()\n )\n .forEach((item) => {\n const ret =\n item.sellPrice && item.buyPrice\n ? (item.sellPrice / item.buyPrice - 1) * 100\n : 0;\n serializedData.push({\n Data: item?.date,\n Operação: item?.operacao,\n Mercado: item?.market,\n Ativo: item?.code,\n Quantidade: item?.quantity,\n \"Preço de Venda\": `R$${(item?.sellPrice).toFixed(2)}`,\n \"Custo de Compra\": `R$${(item?.buyPrice).toFixed(2)}`,\n Taxas: `R$${(item?.fee).toFixed(2)}`,\n Ganho: `R$${(item?.capitalGain).toFixed(2)}`,\n Retorno: `${ret ? ret.toFixed(2) + \"%\" : \"-\"}`,\n });\n });\n handleDownloadSheet(\n serializedData,\n \"Vendas\",\n \"Vendas.xlsx\"\n );\n }}\n style={{\n fontSize: \"13px\",\n paddingLeft: \"0\",\n alignItems: \"center\",\n display: \"inline-flex\",\n }}\n icon={\n \n }\n >\n Baixar planilha\n \n )}\n {!view && (\n }\n >\n Adicionar\n \n )}\n \n new Date(b.originalDate).getTime() -\n new Date(a.originalDate).getTime()\n )}\n renderItem={(item, index) => (\n handleEdit(item, index)}\n icon={}\n />,\n handleRemove(item, index)}\n icon={}\n />,\n ]\n }\n >\n \n {item.code}}\n description={\n
\n {/*
\n Op.{\" \"}\n {Object.values(TipoOperacao).find(\n (value) =>\n value.toLocaleLowerCase() ===\n item.operacao?.toLocaleLowerCase() ?? \"\"\n )}{\" \"}\n -{\" \"}\n {Object.values(TipoMercado).find(\n (value) =>\n value.toLocaleLowerCase() ===\n item.market?.toLocaleLowerCase() ?? \"\"\n )}\n
*/}\n
\n Data:{\" \"}\n {moment(item.date, [\n \"DD/MM/YYYY\",\n \"YYYY-MM-DD\",\n ]).format(\"DD/MM/YYYY\")}\n
\n
Quantidade: {item.quantity}
\n {view && (\n <>\n
\n Custo médio de compra:{\" \"}\n \n {formatCurrency(item.buyPrice)}\n \n
\n
\n Preço de venda:{\" \"}\n \n {formatCurrency(item.sellPrice)}\n \n
\n \n )}\n
\n Ganho:{\" \"}\n \n {formatCurrency(item.capitalGain)}\n \n
\n
\n }\n />\n
\n \n )}\n />\n \n \n\n {allow &&
}\n\n {allow && (\n \n Imposto total\n \n {loading ? (\n \n ) : (\n formatCurrency(impostoCharge)\n )}\n \n
\n )}\n {allow && (\n \n {DarfResultDescriptions.map((description) => (\n \n {loading ? (\n \n ) : description.Component ? (\n \n ) : (\n formatCurrency(\n Number(data[description.id as keyof IDarfBolsa] || 0)\n )\n )}\n \n ))}\n \n )}\n\n {!view && (\n <>\n \n {/* \n \n Ver no histórico\n \n */}\n {allow &&\n !(month === currentMonth && year === currentYear) &&\n valorPrincipal < minDarfPrice &&\n data?.memoriaCalculo?.length > 0 && (\n \n
\n \n O valor do imposto devido é menor que{\" \"}\n {formatCurrency(minDarfPrice)}. Você não precisa\n emitir um DARF para este mês. Clique aqui para\n regularizar este mês.\n \n }\n >\n {\n // handleRegularize(true);\n // }}\n onClick={handleSaveMonth}\n >\n Salvar sem emitir DARF\n {\" \"}\n \n \n )}\n {valorPrincipal >= minDarfPrice && (\n \n
\n target.parentElement!}\n title={\n !allow\n ? mensagemDarfsRetroativos\n : thirdBusinessDayAndMonth(date).title\n }\n >\n }\n loading={emitting || loadingDarfButton}\n onClick={() => handleEventDarfButton()}\n disabled={\n loading ||\n emitting ||\n thirdBusinessDayAndMonth(date).disabled\n }\n >\n {handleLabelButton}\n {\" \"}\n \n \n )}\n \n {allow && !(month === currentMonth && year === currentYear) && (\n \n \n }\n >\n Salvar apenas\n \n \n \n )}\n \n )}\n\n {!view && !hideOldPositionsText && (\n
\n
\n

\n Você tinha investimentos em\n 31/12/2019 e ainda não preencheu o seu custo médio?{\" \"}\n \n navigate(`/${currentBroker.path}/bolsa-insert-manual`)\n }\n style={{\n cursor: \"pointer\",\n color: \"var(--ant-primary-color)\",\n }}\n >\n Clique aqui\n \n

\n
\n
\n )}\n \n \n \n {helpModal?.content}\n \n {}}\n rows={[]}\n itemToEdit={null}\n loading={loadingEditPreju}\n visibility={showEditPrejuConfirmation}\n saveButtonText={\"Sim\"}\n title={\"Editar prejuízos\"}\n onCancel={() => setShowEditPrejuConfirmation(false)}\n >\n \n Você tem certeza que deseja editar os valores calculados de prejuízos\n acumulados?\n
\n \n \n {}}\n edit={(data: any) => handleEditPrejuData(data)}\n itemToEdit={preju}\n loading={loadingEditPreju}\n disableButtons={loadingResetPreju || loadingEditPreju}\n rows={PrejuFormItemRows(loadingResetPreju || loadingEditPreju)}\n visibility={showPrejuModal}\n onCancel={handleClosePrejuModal}\n title=\"Editar prejuízos a compensar\"\n >\n {/* \n \n \n \n Caso altere algum desses valores, você pode voltar aos valores\n calculados automaticamente pelo sistema (clique em aplicar e\n salvar):\n \n \n \n \n Prejuízo Comum:\n {formatCurrency(data.prejuizoComum ?? 0)}\n Prejuízo Day Trade:\n {formatCurrency(data.prejuizoDayTrade ?? 0)}\n Prejuízo FII:\n {formatCurrency(data.prejuizoFII ?? 0)}\n \n \n \n \n \n */}\n \n {}}\n edit={editIrrf}\n itemToEdit={irrf}\n rows={IrrfFormItemRows}\n visibility={showIrrfModal}\n onCancel={handleCloseIrrfModal}\n title=\"Editar IRRF\"\n >\n {/* \n \n \n \n Caso altere algum desses valores, você pode voltar aos valores\n calculados automaticamente pelo sistema (clique em aplicar e\n salvar):\n \n \n \n \n IRRF Comum:\n {formatCurrency(data.irrfComum ?? 0)}\n IRRF Day Trade:\n {formatCurrency(data.irrfDayTrade ?? 0)}\n IRRF FII:\n {formatCurrency(data.irrfFII ?? 0)}\n IRRF Total:\n {formatCurrency(data.irrfTotal ?? 0)}\n \n \n \n \n \n */}\n \n {\n handleOpenDarfModal();\n HandleTag(\"76\");\n }}\n disablePixOption={checkBlockedOption(maxPixPayment)}\n paymentData={{\n ...paymentData,\n impostoTotalFinal: isBatchDarf ? totalPagarBatch : impostoCharge,\n }}\n disableCreditCardOption={checkBlockedOption(maxCreditCardPayment)}\n openPlanModal={handlePlanModal}\n />\n Promise.resolve(removeAsset())}\n body=\"Você realmente quer deletar esse ativo?\"\n />\n \n
\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const CardContainer = styled.div`\n width: 160px;\n height: 160px;\n border-radius: 8px;\n transition: opacity 0.3s ease-in-out;\n background-color: var(--light-gray);\n\n &.disabled {\n cursor: default !important;\n }\n\n &,\n a {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n }\n\n a {\n width: 100%;\n height: 100%;\n }\n\n figure {\n margin: 0;\n\n svg {\n width: 56px;\n height: 56px;\n fill: var(--ant-primary-color);\n }\n }\n\n .content {\n font-weight: 600;\n font-size: 0.875rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n text-align: center;\n\n .ant-typography {\n color: inherit;\n }\n }\n\n :hover {\n opacity: 0.8;\n cursor: pointer;\n }\n :active {\n opacity: 0.7;\n filter: contrast(0.95);\n cursor: pointer;\n }\n\n &.add {\n background-color: var(--velotax-background-color-ghost);\n border-bottom: 4px solid var(--velotax-ghost);\n svg {\n fill: var(--velotax-font-color-ghost);\n }\n .content {\n color: var(--velotax-font-color-ghost);\n }\n }\n`;\n","import { ReactNode } from \"react\";\nimport { CardContainer } from \"./styles\";\n\ninterface CardProps {\n icon: ReactNode;\n children: ReactNode;\n handleClick?: any;\n className?: string;\n}\n\nexport const Card = ({ icon, handleClick, children, className }: CardProps) => {\n return (\n \n
{icon}
\n
{children}
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { RiMoneyDollarCircleLine, RiFileSearchLine } from \"react-icons/ri\";\n\nexport const cards = [\n {\n id: \"anual-report\",\n icon: (\n \n ),\n content: Relatórios anuais,\n },\n {\n id: \"gain\",\n icon: (\n \n ),\n content: Ganho de capital,\n },\n];\n","import styled from \"styled-components\";\n\nexport const ReportContainer = styled.div`\n height: 100%;\n h3 {\n display: flex;\n align-items: center;\n column-gap: 16px;\n color: var(--velotax-font-color);\n margin-bottom: 0;\n }\n\n div.ant-typography {\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n }\n\n .ant-typography.destak {\n margin: 48px 0;\n display: block;\n font-weight: 700;\n font-size: 1rem;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n padding-left: 16px;\n border-left: 4px solid var(--ant-primary-color);\n }\n\n .cards {\n margin: 32px 0 0;\n width: fit-content;\n display: grid;\n row-gap: 1rem;\n column-gap: 1rem;\n grid-template-columns: repeat(4, 1fr);\n }\n\n @media only screen and (max-device-width: 812px) {\n h1 {\n :after {\n left: -24px;\n }\n }\n\n .cards {\n width: 100%;\n grid-template-columns: repeat(2, 1fr);\n /* background-color: red !important; */\n > div {\n width: auto;\n }\n }\n }\n\n @media only screen and (max-device-width: 400px) {\n .cards {\n /* background-color: red !important; */\n }\n }\n`;\n\nexport const Container = styled.div`\n h2.ant-typography {\n display: flex;\n align-items: center;\n column-gap: 8px;\n max-width: 600px;\n margin: 0 auto 1.5rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n color: var(--velotax-font-color);\n\n &.info {\n align-items: flex-start;\n font-size: 0.875rem;\n line-height: 1.125rem;\n opacity: 0.85;\n margin: 0 auto 2.5rem;\n svg {\n margin-top: 4px;\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 0;\n\n h1 {\n max-width: calc(100% - 48px);\n margin: 0 24px 1.5rem;\n padding: 24px 0 1rem;\n }\n\n h2.ant-typography {\n max-width: 100%;\n margin: 0 auto 1.5rem;\n padding: 0 24px;\n }\n }\n`;\n\nexport const Content = styled.div`\n .ant-list.ant-list-split {\n margin: 24px 0 0;\n padding: 0 16px;\n background-color: var(--light-gray);\n border-radius: 8px;\n .ant-list-item-action > li {\n padding: 0;\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n .ant-list-item-action > li > button {\n font-size: 16px;\n color: var(--ant-primary-color);\n }\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n font-size: 16px;\n color: var(--velotax-font-color);\n }\n .ant-list-item-action-split {\n opacity: 0;\n }\n }\n .ant-btn.ant-btn-text {\n color: var(--ant-primary-color);\n }\n @media only screen and (max-device-width: 812px) {\n .ant-list.ant-list-split {\n .ant-list-item-action {\n align-items: end;\n grid-template-rows: 1fr 0.75fr;\n grid-template-columns: 1fr 1fr;\n }\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const BolsaManualContainer = styled.div`\n\n .btn-preencher-pos2019 {\n margin-bottom: 3rem;\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n .ant-list {\n padding: 0;\n border-radius: 4px;\n background-color: var(--velotax-background-color-ghost);\n .ant-list-item {\n padding: 16px;\n &.error-border {\n border: 1px solid var(--ant-error-color);\n }\n :first-child {\n border-radius: 4px 4px 0 0;\n }\n :last-child {\n border-radius: 0 0 4px 4px;\n }\n }\n .error-border + .error-border {\n border-top: none;\n }\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n\n .alert-icon {\n fill: var(--ant-error-color) !important;\n }\n\n .row-margin {\n margin-top: 24px;\n }\n`;\n","import { FaRegEdit } from \"react-icons/fa\";\nimport { PlusCircleOutlined } from \"@ant-design/icons\";\nimport { Col, List, Row, Skeleton, Tooltip, Typography } from \"antd\";\nimport { Dispatch, SetStateAction, useEffect, useState } from \"react\";\nimport { AiOutlineDelete, AiOutlineInfoCircle } from \"react-icons/ai\";\nimport { Container } from \"./styles\";\nimport Button from \"../../../../components/Button\";\nimport { formatCurrency } from \"../../../../utils\";\nimport { FormModal } from \"../../../../components/FormModal\";\nimport { AddTransactionGOVFormItemRows } from \"../../../../constants/darfBolsa\";\n\nexport interface OldTransactionsProps {\n changed: boolean;\n loadingPut: boolean;\n loadingGet: boolean;\n setLoadingPut: Dispatch>;\n setLoadingGet: Dispatch>;\n oldPositionEdit: any;\n oldPositionList: any[];\n showAddPositionModal: boolean;\n setOldPositionEdit: Dispatch>;\n setShowAddPositionModal: Dispatch>;\n saveOldPositions: () => void;\n addOldPosition: (item: any) => void;\n editOldPosition: (item: any) => void;\n handleEditOldPosition: (item: any, index: number) => void;\n handleRemoveOldPosition: (item: any, index: number) => void;\n getOldTransactionsInit: () => void;\n}\n\nexport const OldTransactions: React.FC = ({\n loadingGet,\n loadingPut,\n oldPositionList,\n setOldPositionEdit,\n setShowAddPositionModal,\n handleEditOldPosition,\n handleRemoveOldPosition,\n addOldPosition,\n editOldPosition,\n showAddPositionModal,\n oldPositionEdit,\n}) => {\n const [hasLendingPosition, setHasLendingPosition] = useState(false);\n\n useEffect(() => {\n if (oldPositionEdit?._id || oldPositionEdit?.id) {\n if (oldPositionEdit?.lendingSide) {\n setHasLendingPosition(true);\n } else {\n setHasLendingPosition(false);\n }\n }\n }, [oldPositionEdit]);\n\n return (\n \n \n \n \n Ativos em carteira\n \n \n \n }\n loading={loadingPut || loadingGet}\n onClick={() => {\n setOldPositionEdit({});\n setHasLendingPosition(false);\n setShowAddPositionModal(true);\n }}\n >\n Adicionar Posição\n \n \n \n !oldPosition.lendingSide\n ) ?? []\n }\n renderItem={(item, index) => (\n \n handleEditOldPosition(item, index)}\n icon={\n \n }\n type=\"text\"\n />\n ,\n ]\n : []),\n }\n onClick={() => handleEditOldPosition(item, index)}\n />,\n }\n onClick={() => handleRemoveOldPosition(item, index)}\n />,\n ]}\n >\n \n {item.code}}\n description={\n <>\n
\n
\n Quantidade: {item.quantity}\n
\n
\n Custo médio:{\" \"}\n {formatCurrency(item.price ?? 0)}\n
\n
\n \n }\n />\n
\n \n )}\n />\n \n
\n
\n \n \n \n Empréstimo de ativos\n \n \n \n }\n loading={loadingPut || loadingGet}\n onClick={() => {\n setOldPositionEdit({});\n setHasLendingPosition(true);\n setShowAddPositionModal(true);\n }}\n >\n Adicionar Posição\n \n \n \n oldPosition.lendingSide\n ) ?? []\n }\n renderItem={(item, index) => (\n \n \n }\n type=\"text\"\n />\n ,\n ]\n : []),\n }\n onClick={() => handleEditOldPosition(item, index)}\n />,\n }\n onClick={() => handleRemoveOldPosition(item, index)}\n />,\n ]}\n >\n \n {item.code}}\n description={\n
\n
\n Quantidade: {item.quantity}\n
\n
\n Custo médio:{\" \"}\n {formatCurrency(item.price ?? 0)}\n
\n
\n }\n />\n
\n \n )}\n />\n \n
\n\n {\n setShowAddPositionModal(false);\n // setHasLendingPosition(false);\n }}\n title={\n oldPositionEdit?._id || oldPositionEdit?.id\n ? \"Editar ativo\"\n : \"Adicionar ativo\"\n }\n itemToEdit={\n oldPositionEdit.id || oldPositionEdit._id\n ? oldPositionEdit\n : undefined\n }\n />\n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n .ant-collapse {\n border: none;\n\n .ant-collapse-item {\n margin-bottom: 8px;\n border-radius: 8px;\n border: 2px solid var(--velotax-ligh-gray);\n &.ant-collapse-item-active {\n .ant-collapse-header {\n background-color: var(--white);\n }\n }\n &.ant-collapse-item-disabled {\n .ant-collapse-header {\n cursor: pointer;\n }\n }\n &.collapse-skip-btn {\n .ant-spin-nested-loading {\n width: 100%;\n }\n .ant-collapse-header {\n padding: 0;\n .collapse-skip-btn-content {\n padding: 24px 32px;\n }\n }\n }\n .ant-collapse-header {\n border-radius: 8px;\n padding: 24px 32px;\n background-color: var(--velotax-ligh-gray);\n .ant-typography {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 1rem;\n font-weight: bold;\n line-height: 32px;\n color: var(--ant-primary-color);\n button {\n display: inline-flex;\n height: 32px !important;\n svg {\n width: 20px;\n height: 20px;\n }\n }\n .opcao-recomendada {\n padding: 2px 4px;\n font-weight: 400;\n font-size: 0.75rem;\n line-height: 1rem;\n color: var(--white);\n white-space: nowrap;\n border-radius: 4px;\n display: flex;\n align-items: center;\n background-color: var(--ant-success-color);\n svg {\n margin-right: 4px;\n }\n }\n }\n .sub-title {\n font-size: 0.8125rem;\n color: var(--ant-primary-color);\n }\n }\n .ant-collapse-content {\n border: none;\n border-radius: 0 0 8px 8px;\n .ant-collapse-content-box {\n padding: 16px 16px 32px;\n .ant-steps-item-title {\n margin-top: 0.25rem;\n /* font-size: 0.875rem; */\n line-height: 1.5rem;\n }\n .ant-btn {\n font-size: 14px;\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .ant-collapse {\n .ant-collapse-item {\n &.collapse-skip-btn {\n .ant-collapse-header {\n .collapse-skip-btn-content {\n padding: 8px 16px;\n .ant-typography {\n font-size: 0.95rem;\n line-height: 1.25rem;\n flex-direction: column;\n align-items: flex-start;\n }\n .sub-title {\n margin-top: 4px;\n font-size: 0.75rem;\n }\n }\n }\n }\n .ant-collapse-header {\n padding: 8px 16px;\n .ant-typography {\n font-size: 0.95rem;\n line-height: 1.5rem;\n flex-direction: column;\n align-items: flex-start;\n }\n }\n }\n }\n }\n`;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n .income-report-uploader {\n height: auto;\n display: block;\n margin-bottom: 16px;\n\n .ant-upload {\n width: 100%;\n height: 200px;\n border-radius: 16px;\n\n .upload-text-icon {\n height: 100%;\n cursor: pointer;\n font-size: 20px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n svg {\n fill: var(--ant-primary-color);\n }\n\n .upload-text-desc {\n font-size: 14px;\n text-align: center;\n }\n }\n\n .loading-container {\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n .anticon {\n width: 40px;\n height: 40px;\n margin-bottom: 12px;\n\n svg {\n width: 100%;\n height: 100%;\n fill: var(--ant-primary-color);\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport { Upload } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { AiOutlineCloudUpload } from \"react-icons/ai\";\nimport { RcFile, UploadChangeParam } from \"antd/lib/upload\";\nimport { UploadRequestOption as RcCustomRequestOptions } from \"rc-upload/lib/interface\";\nimport {\n ShowUploadListInterface,\n UploadFile,\n UploadListType\n} from \"antd/lib/upload/interface\";\nimport { Container } from \"./styles\";\n\nexport interface IUploadProps {\n accept: string;\n tabIndex?:number;\n beforeUpload?: (file: RcFile) => void;\n customRequest?: (file: RcCustomRequestOptions) => void;\n loading?: boolean;\n multiple?: boolean;\n descText?: string;\n maxCount?: number;\n customText?: string;\n listType?: UploadListType;\n fileList?: UploadFile[];\n showUploadList?: boolean | ShowUploadListInterface;\n onRemove?:\n | ((file: UploadFile) => boolean | void | Promise)\n | undefined;\n onChange?: ((info: UploadChangeParam>) => void) | undefined;\n}\n\nconst UploadVelotax: React.FC = ({\n accept,\n tabIndex,\n fileList,\n onRemove,\n onChange,\n maxCount,\n beforeUpload,\n customRequest,\n loading = false,\n multiple = false,\n descText = \"\",\n showUploadList = false,\n listType = \"picture-card\",\n customText = \"Arraste ou clique\"\n}) => {\n return (\n \n \n {loading ? (\n
\n \n Isso pode demorar alguns minutos, aguarde\n
\n ) : (\n
\n \n {customText}\n {descText && {descText}}\n
\n )}\n \n
\n );\n};\n\nexport default UploadVelotax;\n","export default __webpack_public_path__ + \"static/media/govbr.16bc87af.svg\";","import styled from \"styled-components\";\nimport GovBrIcon from \"../../assets/govbr.svg\";\n\nexport const Container = styled.div`\n min-height: 100%;\n padding: 64px 32px;\n background-color: var(--velotax-ghost);\n\n @media only screen and (max-device-width: 812px) {\n padding: 0;\n background-color: var(--velotax-background-color);\n }\n`;\n\nexport const Content = styled.div`\n padding: 48px;\n width: fit-content;\n max-width: 720px;\n margin: 0 auto;\n border-radius: 16px;\n border: 1px solid var(--velotax-background-color-ghost);\n background-color: var(--velotax-background-color);\n\n h1 {\n display: flex;\n align-items: center;\n margin: 0 0 24px;\n font-size: 22px;\n line-height: 30px;\n font-weight: bold;\n position: relative;\n color: var(--velotax-font-color);\n\n .gov-logo {\n width: 64px;\n height: 40px;\n margin-left: 8px;\n display: inline-block;\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n background-image: url(${GovBrIcon});\n }\n\n button {\n display: inline-flex;\n height: 32px !important;\n svg {\n width: 20px;\n height: 20px;\n }\n }\n\n &::before {\n content: \"\";\n top: 0;\n width: 4px;\n left: -48px;\n height: 100%;\n position: absolute;\n background-color: var(--ant-primary-color);\n }\n }\n\n h5 {\n margin-bottom: 24px;\n }\n\n a.ant-btn.ant-btn-primary.ant-btn-lg {\n padding-top: 6.4px !important;\n }\n\n div.ant-typography {\n font-size: 1rem;\n }\n\n .upload-dec-info {\n margin: 24px 0 16px;\n font-weight: 500;\n font-size: 1.125rem;\n line-height: 1.5rem;\n color: var(--ant-primary-color);\n svg {\n width: 20px;\n height: 20px;\n margin: 0 0 -2px 4px;\n fill: var(--ant-primary-color);\n }\n }\n\n .ant-divider {\n margin: 24px 0 0;\n }\n\n .skip-btn {\n padding: 0;\n margin: 0 0 -16px auto;\n svg {\n margin: 0;\n }\n }\n\n .ant-steps {\n margin-top: 24px;\n .ant-steps-item:nth-of-type(3),\n .ant-steps-item:nth-of-type(4) {\n .ant-steps-item-container {\n .ant-steps-item-content {\n padding-bottom: 48px;\n }\n }\n }\n .ant-steps-item {\n &.ant-steps-item-wait {\n .ant-steps-item-title {\n opacity: 0.8;\n }\n }\n &.ant-steps-item-active {\n .ant-steps-item-title {\n background-color: red;\n font-weight: 500;\n color: var(--velotax-font-color) !important;\n }\n }\n .ant-steps-item-container {\n .ant-steps-item-content {\n padding-bottom: 24px;\n .ant-steps-item-title {\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n border: none;\n border-radius: 0;\n padding: 32px 24px 96px;\n h1 {\n font-size: 1.2rem;\n letter-spacing: -0.35px;\n .gov-logo {\n width: 58px;\n height: 38px;\n margin-left: 6px;\n }\n button {\n margin-top: -4px;\n height: 40px !important;\n }\n }\n .skip-btn {\n bottom: 24px;\n font-size: 13px;\n position: fixed;\n margin: 0;\n }\n }\n`;\n\nexport const DecUploadContent = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n .dec-icon {\n width: 48px;\n height: 48px;\n font-size: 24px;\n margin: 0 0 16px;\n border-radius: 8px;\n color: var(--ant-primary-color);\n border: 2px solid var(--ant-primary-color);\n display: flex;\n position: relative;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n svg {\n margin-top: -4px;\n }\n &:before {\n content: \"\";\n height: 2px;\n bottom: 8px;\n position: absolute;\n width: calc(100% - 24px);\n background-color: var(--ant-primary-color);\n }\n }\n span.ant-typography {\n font-size: 16px;\n font-weight: 500;\n max-width: 320px;\n color: var(--ant-primary-color);\n }\n`;\n","import { createContext, useContext, useState } from \"react\";\n\nexport const today = new Date();\n\nconst year = today.getFullYear();\n\nconst anoCalendario = year - 1;\n\ninterface IYearContext {\n year: number;\n currentMonth: number;\n anoCalendario: number;\n changeYear: (year: number) => void;\n}\n\nconst YearContext = createContext({} as IYearContext);\n\nexport const YearProvider: React.FC = ({ children }) => {\n const [Year, setYear] = useState(year);\n const [AnoCalendario, setAnoCalendario] = useState(anoCalendario);\n\n const changeYear = (year: number) => {\n setYear(year);\n setAnoCalendario(year - 1);\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useYear = () => useContext(YearContext);\n","import { useState } from \"react\";\nimport { Divider, Steps, Typography } from \"antd\";\nimport { AiOutlineArrowRight } from \"react-icons/ai\";\nimport { LoadingOutlined, QuestionCircleOutlined } from \"@ant-design/icons\";\nimport Button from \"../../components/Button\";\nimport { Container, Content } from \"./styles\";\nimport { useEcac } from \"../../contexts/EcacContext\";\nimport { useYear } from \"../../contexts/YearContext\";\nimport apiIrpf2023 from \"../../services/apiIrpf2023\";\nimport { useOldTransactions } from \"../../contexts/OldTransactionsContext\";\n\ninterface DecPrepreenchidaProps {\n successCallback?: () => void;\n setShowModalPrePreenchida: (p: boolean) => void;\n}\n\nexport const DecPrepreenchidaContent: React.FC = ({\n setShowModalPrePreenchida,\n}) => {\n const [currentStep, setCurrentStep] = useState(0);\n const [loading, setLoading] = useState(true);\n\n const { getOldTransactionsInit } = useOldTransactions();\n\n const programLink =\n process.env.REACT_APP_NODE_ENV === \"development\"\n ? \"https://velotax-programas.s3.amazonaws.com/posicao-2019-dev/velotax.msi\"\n : \"https://velotax-programas.s3.amazonaws.com/posicao-2019/velotax.msi\";\n\n return (\n \n \n {\n setCurrentStep(1);\n setCurrentStep(2);\n setLoading(true);\n let interval: NodeJS.Timeout | null = null;\n if (loading) {\n interval = setInterval(() => {\n apiIrpf2023\n .get(`/receitaFederal/checkStatusRecuperarDecIRPF`)\n .then(({ data }) => {\n if (data?.processamantoDec2019) {\n setLoading(false);\n setShowModalPrePreenchida(false);\n\n getOldTransactionsInit();\n // window.location.reload();\n\n return clearInterval(\n interval as unknown as NodeJS.Timeout\n );\n }\n });\n }, 1000);\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n }}\n >\n Clique aqui\n {\" \"}\n {\"para baixar o arquivo de conexão\"}\n \n }\n />\n \n : \"\"}\n title={\n <>\n Execute o atalho Velotax no seu desktop, faça o\n login no gov.br e aguarde alguns minutos.\n \n }\n />\n \n );\n};\n\nexport const DecPrepreenchida = () => {\n const { year } = useYear();\n const { loadingEcac, handleSkipEcacStep, clearEcacInterval } = useEcac();\n\n return (\n \n \n \n Conecte sua conta \n }\n />\n \n\n \n Você terá acesso a sua declaração de IRPF {year} pré-preenchida\n \n\n \n {\n clearEcacInterval();\n await handleSkipEcacStep();\n // updateUserEcac();\n }}\n loading={loadingEcac.skipStep}\n disabled={loadingEcac.postLogin}\n >\n Não utilizar o gov.br \n {!loadingEcac.skipStep && }\n \n \n \n );\n};\n","import { message } from \"antd\";\nimport { RcFile } from \"antd/lib/upload\";\nimport { UploadRequestOption as RcCustomRequestOptions } from \"rc-upload/lib/interface\";\nimport {\n createContext,\n Dispatch,\n SetStateAction,\n useContext,\n useState,\n} from \"react\";\nimport apiIrpf2023 from \"../services/apiIrpf2023\";\nimport { useOldTransactions } from \"./OldTransactionsContext\";\n\ninterface IUploadDecContext {\n loading: boolean;\n loadingSkip: boolean;\n confirmarModal: boolean;\n beforeUpload: (file: RcFile) => boolean;\n customRequest: (params: RcCustomRequestOptions) => void;\n setConfirmarModal: Dispatch>;\n}\n\nconst UploadDecContext = createContext({} as IUploadDecContext);\n\nexport const UploadDecProvider: React.FC = ({ children }) => {\n const [loading, setLoading] = useState(false);\n const [loadingSkip] = useState(false);\n const [confirmarModal, setConfirmarModal] = useState(false);\n const { getOldTransactionsInit } = useOldTransactions();\n\n const beforeUpload = (file: RcFile) => {\n const nameSplitted = file.name.split(\".\");\n const isDec = nameSplitted[nameSplitted.length - 1].toLowerCase() === \"dec\";\n\n if (!isDec) {\n message.error(\"Você só pode fazer upload de arquivos .dec\");\n }\n\n return isDec;\n };\n\n const customRequest = ({ file }: RcCustomRequestOptions) => {\n const formData = new FormData();\n formData.append(\"file\", file);\n setLoading(true);\n\n apiIrpf2023\n .post(\"/receitaFederal/processarDec2019IRPF\", formData)\n .then(async () => {\n message.success(\"Arquivo .dec importado com sucesso!\");\n let interval: NodeJS.Timeout | null = null;\n if (loading) {\n interval = setInterval(() => {\n apiIrpf2023\n .get(`/receitaFederal/checkStatusRecuperarDecIRPF`)\n .then(({ data }) => {\n if (data?.processamantoDec2019) {\n setLoading(false);\n getOldTransactionsInit();\n\n return clearInterval(interval as unknown as NodeJS.Timeout);\n }\n });\n }, 2000);\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n setLoading(false);\n })\n .catch((err) => {\n const errorMessage =\n err.reponse?.message?.error ||\n \"Não foi possivel importar o arquivo .dec!\";\n message.error(errorMessage);\n setLoading(false);\n });\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport const useUploadDec = () => useContext(UploadDecContext);\n","import { useState } from \"react\";\nimport { Collapse, Spin, Typography } from \"antd\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport { AiOutlineArrowUp, AiOutlineCheck } from \"react-icons/ai\";\nimport { UploadRequestOption as RcCustomRequestOptions } from \"rc-upload/lib/interface\";\nimport { Container } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport UploadVelotax from \"../../components/UploadVelotax\";\nimport { DecUploadContent } from \"../DecPrepreenchida/styles\";\nimport { DecPrepreenchidaContent } from \"../DecPrepreenchida\";\nimport { useUploadDec } from \"../../contexts/UploadDecContext\";\nimport { DrawerModal, DrawerModalProps } from \"../../components/DrawerModal\";\ninterface PrePreenchidaModalProps extends DrawerModalProps {\n setShowModalPrePreenchida: (b: boolean) => void;\n}\n\nexport const PrePreenchidaModal: React.FC = ({\n visible,\n setShowModalPrePreenchida,\n ...props\n}) => {\n const [showModal, setShowModal] = useState(true);\n const [loadingSkip] = useState(false);\n const { loading, beforeUpload, customRequest } = useUploadDec();\n\n const onCancel = () => {\n setShowModal(false);\n };\n\n return (\n \n \n \n Você pode conectar a sua conta gov.br ou carregar o arquivo DEC da sua\n declaração de 2019/2020. Selecione uma das opções abaixo:\n \n\n \n \n
\n \n Conecte sua conta gov.br\n \n }\n onClick={(e) => {\n e.stopPropagation();\n // openHelpDrawer();\n }}\n />\n
\n
\n \n Opção recomendada\n
\n \n }\n >\n \n \n \n \n\n \n
\n Carregue arquivo .DEC referente ao IR de 2019/2020\n }\n onClick={(e) => {\n e.stopPropagation();\n }}\n />\n
\n \n }\n >\n ) => {\n customRequest(params);\n setShowModalPrePreenchida(false);\n }}\n >\n \n
\n \n
\n \n Arraste aqui sua declaração do ano passado (formato .DEC)\n \n
\n \n \n
\n
\n \n );\n};\n","import styled from \"styled-components\";\n\nexport const Content = styled.div`\n .termos {\n padding: 0;\n font-size: 12px;\n margin: 32px auto 16px;\n text-align: justify;\n }\n label[for=\"cpf\"],\n label[for=\"email\"] {\n font-weight: 700;\n &::before {\n display: none !important;\n }\n }\n @media only screen and (max-device-width: 812px) {\n .corretoras {\n margin-top: -24px;\n & > div {\n row-gap: 12px;\n flex-wrap: wrap;\n column-gap: 24px !important;\n justify-content: start !important;\n }\n }\n }\n`;\n","import { useState } from \"react\";\nimport ReactInputMask from \"react-input-mask\";\nimport { AiOutlineArrowDown } from \"react-icons/ai\";\nimport { Col, Form, Input, Row, Typography } from \"antd\";\nimport { Content } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { validationCpf, validationEmail } from \"../../utils/formValidations\";\n\ntype Step = \"cpf\" | \"email\";\n\ninterface NovoCadastroProps {\n item: Partial;\n corretoras?: JSX.Element;\n}\n\nexport const NovoCadastro: React.FC = ({\n item,\n corretoras,\n}) => {\n const [step, setStep] = useState(\"cpf\");\n const { handleSignUp, loading, resgisterForm } = useAuth();\n\n const {\n settings: { title, subTitle },\n } = item;\n\n const onFinish = (data: any) => {\n handleSignUp(\n {\n name: \"\",\n pass: \"\",\n email: data.email,\n policiesAccepted: true,\n cpf: data.cpf.replace(/[_.-/-]/g, \"\"),\n },\n {}\n );\n };\n\n return (\n
\n \n {step === \"email\" ? \"Saiba quando tiver impostos\" : title}\n \n \n {step === \"email\"\n ? \"Notificações no seu e-mail quando estiver com impostos em aberto\"\n : subTitle}\n \n
\n \n \n {corretoras && (\n \n {corretoras}\n \n )}\n \n \n \n {step === \"email\" && (\n \n Ao prosseguir você declara que leu, entendeu e está de acordo com\n os{\" \"}\n \n Termos de Uso\n \n ,{\" \"}\n \n Política de Privacidade\n {\" \"}\n e{\" \"}\n \n Política de Cookies\n {\" \"}\n do Velotax.\n \n )}\n \n
\n
\n );\n};\n","import moment from \"moment\";\nimport { message } from \"antd\";\nimport { useNavigate, useLocation } from \"react-router-dom\";\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { useAuth } from \"./AuthContext\";\nimport { errorMessage } from \"../utils\";\nimport apiExterior from \"../services/apiExterior\";\nimport { useBroker } from \"./BrokerContext\";\n\ntype LoadingOperation = \"get\" | \"put\" | \"delete\";\n\ntype Loading = {\n get: boolean;\n put: boolean;\n delete: boolean;\n};\n\ninterface Ativo {\n id: string;\n codigo: string;\n quantidade: number;\n dataCompra?: string;\n valorCompraUSDOrigemBRA?: number;\n valorCompraUSDOrigemEUA?: number;\n orderId: string;\n type: string;\n}\n\ninterface ITransferenciaCustodiaContext {\n ativo?: Ativo;\n ativos: Ativo[];\n loading: Loading;\n getAtivos: any;\n showFormModal: boolean;\n showDeleteModal: boolean;\n closeFormModal: () => void;\n closeDeleteModal: () => void;\n handleAdd: () => void;\n handleEdit: (item: Ativo, index: number) => void;\n handleRemove: (item: Ativo, index: number) => void;\n add: (item: Ativo) => void;\n edit: (item: Ativo) => void;\n remove: (item: Ativo) => void;\n saveAtivos: () => void;\n isInvalidItem: (item: Ativo) => boolean;\n}\n\nexport const TransferenciaCustodiaContext =\n createContext(\n {} as ITransferenciaCustodiaContext\n );\n\nexport const TransferenciaCustodiaProvider: React.FC = ({ children }) => {\n const { user } = useAuth();\n const { currentBroker } = useBroker();\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const [ativo, setAtivo] = useState();\n const [ativos, setAtivos] = useState([]);\n const [indexAtivo, setIndexAtivo] = useState(-1);\n const [redirected, setRedirected] = useState(false);\n const [showFormModal, setShowFormModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [loading, setLoading] = useState({\n get: false,\n put: false,\n delete: false,\n });\n\n const isInvalidItem = (item: Ativo) =>\n !item.dataCompra ||\n (!item.valorCompraUSDOrigemBRA && !item.valorCompraUSDOrigemEUA);\n\n const handleLoading = (operation: LoadingOperation, value: boolean) => {\n setLoading((loading) => ({ ...loading, [operation]: value }));\n };\n\n const closeFormModal = () => {\n setShowFormModal(false);\n setAtivo(undefined);\n setIndexAtivo(-1);\n };\n\n const closeDeleteModal = () => {\n setShowDeleteModal(false);\n setAtivo(undefined);\n setIndexAtivo(-1);\n };\n\n const handleAdd = () => {\n setShowFormModal(true);\n };\n\n const handleEdit = (item: Ativo, index: number) => {\n setShowFormModal(true);\n setIndexAtivo(index);\n const dataCompra = !item.dataCompra\n ? \"\"\n : item.dataCompra.includes(\"/\")\n ? item.dataCompra\n : moment.utc(item.dataCompra)?.format(\"DD/MM/YYYY\");\n setAtivo({\n ...item,\n dataCompra,\n });\n };\n\n const handleRemove = (item: Ativo, index: number) => {\n setShowDeleteModal(true);\n setIndexAtivo(index);\n setAtivo(item);\n };\n\n const getAtivos = useCallback(() => {\n handleLoading(\"get\", true);\n apiExterior\n .get(\"/custodia\")\n .then(({ data }) => {\n setAtivos(data || []);\n closeFormModal();\n })\n .catch(() => {\n message.error(errorMessage);\n })\n .finally(() => {\n handleLoading(\"get\", false);\n });\n }, []);\n\n const saveAtivos = () => {\n handleLoading(\"put\", true);\n apiExterior\n .post(\"/custodia\", ativos)\n .then(({ data }) => {\n setAtivos(data ?? []);\n navigate(\"/exterior-historic\");\n })\n .catch(() => {\n message.error(errorMessage);\n })\n .finally(() => {\n handleLoading(\"put\", false);\n });\n };\n\n const add = (item: Ativo) => {\n setAtivos((ativos) => [...ativos, item]);\n closeFormModal();\n };\n\n const edit = (item: Ativo) => {\n setAtivos((ativos) =>\n ativos.map((ativo, index) =>\n index === indexAtivo ? { ...item, type: ativo.type } : ativo\n )\n );\n closeFormModal();\n };\n\n const remove = () => {\n setAtivos((ativos) =>\n ativos.filter((ativo, index) => index !== indexAtivo)\n );\n closeDeleteModal();\n };\n\n useEffect(() => {\n if (\n !redirected &&\n pathname.includes(\"exterior\") &&\n ativos.filter((item: Ativo) => isInvalidItem(item)).length > 0\n ) {\n navigate(\"/transferencia-custodia\");\n setRedirected(true);\n }\n }, [pathname, navigate, ativos, redirected]);\n\n useEffect(() => {\n if (user.user && currentBroker.useTransferenciaCustodia) {\n getAtivos();\n }\n }, [user.user, currentBroker.useTransferenciaCustodia, getAtivos]);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useTransferenciaCustodia = () =>\n useContext(TransferenciaCustodiaContext);\n","import { message } from \"antd\";\nimport { useRef, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport Upload, { RcFile } from \"antd/lib/upload\";\nimport {\n UploadFile,\n UploadFileStatus,\n UploadProps,\n} from \"antd/lib/upload/interface\";\nimport apiBolsa from \"../../../services/apiBolsa\";\nimport apiExterior from \"../../../services/apiExterior\";\nimport { useTransferenciaCustodia } from \"../../../contexts/TransferenciaCustodiaContext\";\n\nconst isValidFile = (file: UploadFile) => file.type === \"application/pdf\";\nconst sameNameFile = (file: UploadFile, files: UploadFile[]) =>\n files.findIndex((item) => item.name === file.name) >= 0;\n\nexport const useNotasCorretagem = () => {\n const navigate = useNavigate();\n const sameNameFiles = useRef([]);\n const [loadingSend, setLoadingSend] = useState(false);\n const [notas, setNotas] = useState[]>([]);\n const [showNotasCorretagemModal, setShowNotasCorretagemModal] =\n useState(false);\n const { getAtivos } = useTransferenciaCustodia();\n\n const sendNotasCustodyTransfer = (\n setLoadingSend: any,\n setShowNotasCorretagemModal: any\n ) => {\n const formData = new FormData();\n\n notas.forEach((nota) => {\n formData.append(\"files\", nota.originFileObj as File);\n });\n setLoadingSend(true);\n apiExterior\n .post(\"/xpinvestimentos/custodia/notes\", formData)\n .then(() => {\n message.success(\"Informações extraídas com sucesso\");\n })\n .catch((err) => {\n const errorMessage =\n err.reponse?.message?.error || \"Não foi possivel extrair informações\";\n message.error(errorMessage);\n })\n .finally(() => {\n getAtivos();\n setShowNotasCorretagemModal(false);\n setLoadingSend(false);\n });\n };\n\n const beforeUploadNota = (file: RcFile) => {\n if (!isValidFile(file)) {\n message.error(\"Você só pode fazer upload de arquivos pdf\");\n return Upload.LIST_IGNORE;\n }\n if (sameNameFile(file, notas)) {\n sameNameFiles.current.push(file.name);\n message.error(\"Este arquivo já foi adicionado\");\n return Upload.LIST_IGNORE;\n }\n };\n\n const onChangeNotas = ({\n file,\n fileList,\n }: {\n file: UploadFile;\n fileList: UploadFile[];\n }) => {\n if (file && file.status === \"removed\") return;\n if (!isValidFile(file)) return;\n if (sameNameFiles.current.includes(file.name)) {\n sameNameFiles.current = sameNameFiles.current.filter(\n (name) => name !== file.name\n );\n return;\n }\n setNotas(\n fileList\n .filter((file) => file.status !== \"removed\")\n .map((file) => ({ ...file, status: \"done\" as UploadFileStatus }))\n );\n };\n\n const onRemoveNota = (file: UploadFile) => {\n setNotas((notas) => notas.filter((nota) => nota.uid !== file.uid));\n };\n\n const sendNotas = () => {\n const formData = new FormData();\n notas.forEach((nota) => {\n formData.append(\"files\", nota.originFileObj as File);\n });\n setLoadingSend(true);\n apiBolsa\n .post(\"/brokerage-notes/read\", formData)\n .then(() => {\n message.success(\"Informações extraídas com sucesso\");\n setShowNotasCorretagemModal(false);\n setNotas([]);\n navigate(\"/velotax/bolsa-historic\");\n })\n .catch((err) => {\n const errorMessage =\n err.reponse?.message?.error || \"Não foi possivel extrair informações\";\n message.error(errorMessage);\n })\n .finally(() => {\n setLoadingSend(false);\n });\n };\n\n const uploadProps: UploadProps = {\n fileList: notas,\n\n multiple: true,\n listType: \"text\",\n accept: \"application/pdf\",\n onRemove: onRemoveNota,\n onChange: onChangeNotas,\n beforeUpload: beforeUploadNota,\n customRequest: () => {},\n showUploadList: {\n showRemoveIcon: true,\n showPreviewIcon: false,\n showDownloadIcon: false,\n },\n };\n\n return {\n sendNotas,\n loadingSend,\n uploadProps,\n showNotasCorretagemModal,\n setShowNotasCorretagemModal,\n sendNotasCustodyTransfer,\n };\n};\n","import { Tooltip, Button } from \"antd\";\n// import { Button } from \"@mui/material\";\n\nexport const PayButton: React.FC<{\n fullWidth?: boolean;\n onClick?: () => void;\n disabled?: boolean;\n title?: React.ReactNode;\n isReport?: boolean\n}> = ({ onClick, fullWidth, disabled, title, isReport }) => (\n target.parentElement!}>\n \n {isReport ? 'Emitir relatório' : 'Pagar'}\n {\" \"}\n \n);\n","import styled from \"styled-components\";\nexport const BottomAdvice = styled.div`\n margin-top: 40px;\n width: 700px;\n line-height: 24px;\n @media only screen and (max-device-width: 812px) {\n width: 100%;\n padding: 24px;\n }\n`;\nexport const AttentionIconContainer = styled.div`\n position: relative;\n display: inline;\n margin-right: 3px;\n width: 14px;\n & svg {\n position: relative;\n top: 2px;\n }\n`;","import clsx from \"clsx\";\nimport moment from \"moment-timezone\";\nimport { BsExclamationCircle, BsEye } from \"react-icons/bs\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { InfoCircleOutlined, LoadingOutlined } from \"@ant-design/icons\";\nimport { useLocation, useNavigate, useSearchParams } from \"react-router-dom\";\nimport {\n AiOutlineCalendar,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n List,\n message,\n Row,\n Select,\n Skeleton,\n Space,\n Tooltip,\n Typography,\n} from \"antd\";\nimport apis from \"../../services/apis\";\nimport { DarfBolsa } from \"../DarfBolsa\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport HandleTag from \"../../services/handleTag\";\nimport { itensBolsa } from \"../Bolsa/itensBolsa\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { vendasIsentas, vendasTotais } from \"./utils\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport UploadVelotax from \"../../components/UploadVelotax\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { PayDarfButton } from \"../../components/PayDarfButton\";\nimport { CardHorizontal } from \"../../components/CardHorizontal\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { useOldTransactions } from \"../../contexts/OldTransactionsContext\";\nimport { useNotasCorretagem } from \"../IntegrationBolsa/NotasCorretagem/useNotasCorretagem\";\nimport {\n maxCreditCardPayment,\n maxDarfPrice,\n maxPixPayment,\n minDarfPrice,\n} from \"../../constants/darf\";\nimport {\n mensagemDarfsRetroativos,\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n isMobile,\n monthsExtended,\n getLastBusinessDay,\n getInitialYear,\n getZeroBuyPrice,\n} from \"../../utils\";\nimport { instanceMsCalc } from \"../../services/msCalc\";\nimport { NotasHistoricoModal } from \"../IntegrationBolsa/NotasHistoricoModal\";\nimport { PayButton } from \"./PayButton\";\nimport { ModalZeroBuyPrice } from \"../../components/ModalZeroBuyPrice\";\nimport { AttentionIconContainer, BottomAdvice } from \"./styles\";\n\nconst INITIAL_VALID_YEAR = 2020;\n\ninterface ShowCalcModal {\n visible: boolean;\n view?: boolean;\n month?: number;\n year?: number;\n}\n\ninterface HistoricProps {\n item: Page;\n}\n\nexport const HistoricBolsa: React.FC = ({ item }) => {\n const navigate = useNavigate();\n const { state } = useLocation();\n const [searchParams] = useSearchParams();\n const { oldPositionList } = useOldTransactions();\n const { user, hasPlan, showUserPlanModal } = useAuth();\n const {\n b3Authorized,\n handleIntegrate,\n interval,\n backgroundIntegration,\n notas: {\n getHistoricoNotasCorretagem,\n setShowHistoricoNotasCorretagemModal,\n },\n } = useB3Integration();\n const { currentPage, integration, integrouHoje, initIntegration } =\n useBroker();\n const {\n sendNotas,\n loadingSend,\n uploadProps,\n showNotasCorretagemModal,\n setShowNotasCorretagemModal,\n } = useNotasCorretagem();\n\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = getInitialYear(currentYear, currentMonth);\n const queryYear = Number(searchParams.get(\"year\"));\n const queryYearValid =\n queryYear >= INITIAL_VALID_YEAR && queryYear <= initialYear\n ? queryYear\n : undefined;\n window.history.replaceState({}, document.title);\n\n const [data, setData] = useState();\n const [holidays, setHolidays] = useState([]);\n const [loading, setLoading] = useState(false);\n const [emitting, setEmitting] = useState(false);\n const [itemToPay, setItemToPay] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [year, setYear] = useState(queryYearValid ?? stateYear ?? initialYear);\n const [showCalcModal, setShowCalcModal] = useState({\n visible: false,\n });\n const [ignoreZeroBuyPrice, setIgnoreZeroBuyPrice] = useState(false);\n const [dataZeroBuyPrice, setDataZeroBuyPrice] = useState([]);\n const [modalZeroBuyPrice, setModalZeroBuyPrice] = useState(false);\n\n const planMonthSignature = new Date(\n user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt\n ).getMonth();\n const planYearSignature = new Date(\n user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt\n ).getFullYear();\n\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes(\"BASIC\");\n\n const historicFeature = item.features[0];\n const payFeature = item.features[1];\n\n const yearOptions = Array.from(Array(initialYear - INITIAL_VALID_YEAR + 1))\n .map((y, i) => ({\n value: INITIAL_VALID_YEAR + i,\n label: `${INITIAL_VALID_YEAR + i}`,\n }))\n .reverse();\n\n const getHistoric = useCallback(() => {\n setLoading(true);\n (currentPage?.api || apis)\n .get(historicFeature.apiUrl, { params: { year } })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, currentPage]);\n\n const pay = useCallback(\n (payed: boolean, item: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .put(`${payFeature.apiUrl}/${item._id}`, { payed })\n .then(() => {\n getHistoric();\n setData((data) =>\n (data || []).map((darf) => ({\n ...darf,\n payed: item._id === darf._id ? payed : darf.payed,\n }))\n );\n })\n .catch(() => {\n message.error(errorMessage);\n setLoading(false);\n });\n },\n [payFeature, getHistoric, currentPage]\n );\n\n // const downloadAction = (record: any, index: number) => {\n // if (!hasPlan) {\n // handleOpenPlanModal();\n // } else {\n // (currentPage?.api || apis)\n // .get(`${item.features[2].apiUrl}/${record._id}`)\n // .then((res) => {\n // if (res.data.url) {\n // download(res.data.url);\n // }\n // });\n // }\n // };\n\n const handleOpenNotas = () => {\n setShowNotasCorretagemModal(true);\n };\n\n const editAction = (\n record: any,\n view: boolean,\n index: number,\n noPlanMode?: boolean\n ) => {\n if (!hasPlan && !noPlanMode) {\n handleOpenPlanModal();\n } else {\n const { month, year } = record;\n setShowCalcModal({ visible: true, view, month, year });\n if (view) {\n setItemToPay(record);\n }\n }\n };\n\n const payAction = (value: boolean, record: any) => {\n if (!hasPlan) {\n handleOpenPlanModal();\n } else {\n pay(value, record);\n }\n };\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const handleOpenPlanModal = () => {\n showUserPlanModal(true);\n };\n\n const isAntesTerceiroDiaUtil = () => {\n const today = moment();\n // Verifica se a data de hoje é um sábado\n if (today.isoWeekday() === 6) {\n return false;\n }\n // Verifica se a data de hoje é anterior ao terceiro dia útil\n const firstDayOfMonth = moment(today).startOf(\"month\");\n let businessDaysCount = 0;\n while (businessDaysCount < 2) {\n if (firstDayOfMonth.isoWeekday() < 6) {\n businessDaysCount++;\n }\n firstDayOfMonth.add(1, \"day\");\n }\n return today.isBefore(firstDayOfMonth);\n };\n\n const thirdBusinessDayAndMonth = (item: any) => {\n if (disableCurrentMonth(item))\n return { disabled: true, title: \"Aguarde o encerramento do mês para pagar seu DARF\" }\n else if (item.month == currentMonth && item.year == currentYear && isAntesTerceiroDiaUtil())\n return { disabled: true, title: \"Aguarde o terceiro dia útil deste mês para pagar seu DARF\" }\n else return { disabled: false, title: \"\" }\n }\n\n useEffect(() => {\n if (ignoreZeroBuyPrice) handlePayButton(item);\n }, [ignoreZeroBuyPrice]);\n\n const handlePayButton = async (item: any) => {\n if (!hasPlan || isBasic) {\n handleOpenPlanModal();\n } else {\n if (!ignoreZeroBuyPrice) {\n const hasZeroBuyPrice = await getZeroBuyPrice(item?.memoriaCalculo);\n if (hasZeroBuyPrice.length > 0) {\n setModalZeroBuyPrice(true);\n setDataZeroBuyPrice(hasZeroBuyPrice);\n getTaxes(item.month, false, false, false, true, false);\n\n return;\n }\n }\n getTaxes(item.month, false, false, false, true, false);\n setPaymentModal(!paymentModal);\n }\n };\n\n const handleDarf = (justSave?: boolean, obj?: any) => {\n const url = \"/darf\";\n const darfData = obj ? obj : itemToPay;\n const payload = {\n ...darfData,\n memoriaCalculo: [],\n transactions: darfData?.memoriaCalculo,\n totalImpostoDevido: darfData?.impostoTotalFinal,\n impostoDevido: darfData?.impostoTotal,\n juros: darfData?.jurosAux,\n multa: darfData?.multaAux,\n year,\n month: darfData?.month,\n name: user.user.name,\n insertPix: true,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n justSave,\n payed: justSave,\n };\n setEmitting(true);\n (currentPage?.api || apis)\n .post(url, payload)\n .then((res) => {\n getHistoric();\n setEmitting(false);\n if (!justSave) {\n setPaymentModal((paymentModal) => !paymentModal);\n if (res.data?.url) {\n download(res.data?.url);\n } else if (res.data?.darfUrl) {\n download(res.data?.darfUrl);\n }\n }\n })\n .catch((err) => {\n message.error(err.response?.data?.message || errorMessage);\n setEmitting(false);\n });\n };\n\n const handleOpenDarfModal = () => {\n handleDarf();\n };\n\n const checkBlockedOption = (maxValue: number) =>\n (itemToPay?.impostoTotalFinal || 0) > maxValue;\n\n const valorPrincipal = useMemo(\n () =>\n Math.max(\n 0,\n Number(\n (itemToPay?.impostoComumFinal || 0) +\n (itemToPay?.impostoDTFinal || 0) +\n (itemToPay?.impostoFIIFinal || 0)\n ) +\n (Number(itemToPay?.[\"impostoAcumulado\"] || 0) -\n Number(itemToPay?.[\"irrfTotal\"] || 0))\n ),\n [itemToPay]\n );\n\n const impostoCharge = useMemo(\n () =>\n valorPrincipal +\n (valorPrincipal < minDarfPrice\n ? 0\n : (itemToPay?.multaAux ?? 0) + (itemToPay?.jurosAux ?? 0)),\n [itemToPay, valorPrincipal]\n );\n\n const handleValue = (item: any) => {\n const valorPrincipal = Math.max(\n 0,\n Number(\n (item.impostoComumFinal || 0) +\n (item.impostoDTFinal || 0) +\n (item.impostoFIIFinal || 0)\n ) +\n (Number(item[\"impostoAcumulado\"] || 0) - Number(item[\"irrfTotal\"] || 0))\n );\n return (\n valorPrincipal +\n (valorPrincipal < minDarfPrice\n ? 0\n : (item?.multaAux ?? 0) + (item?.jurosAux ?? 0))\n );\n };\n\n const valueIsGreaterThanMin = (item: any) =>\n Math.max(\n 0,\n Number(\n (item?.impostoComumFinal || 0) +\n (item?.impostoDTFinal || 0) +\n (item?.impostoFIIFinal || 0)\n ) +\n (Number(item?.[\"impostoAcumulado\"] || 0) -\n Number(item?.[\"irrfTotal\"] || 0))\n ) >= minDarfPrice;\n\n const valueIsLessThanMax = (item: any) =>\n (item?.impostoTotalFinal || 0) <= maxDarfPrice;\n\n const getHolidays = async () => {\n instanceMsCalc\n .get(`/rates/get-holidays`)\n .then(({ data }) => {\n const dataFormated = data?.map((el: any) => {\n return moment(el).tz(\"Europe/London\").format(\"MM-DD\");\n });\n setHolidays(dataFormated);\n })\n .catch(() => console.log(\"Erro ao buscar feriados\"));\n };\n\n useEffect(() => {\n getHistoric();\n getHolidays();\n }, [getHistoric, year, initIntegration]);\n\n const getTaxes = useCallback(\n (\n month: number,\n nAtualizarDarfsPassadas?: boolean,\n nAtualizarIrrf?: boolean,\n atualizouImpostoAcumulado?: boolean,\n nAtualizarPrejuizosAcumulados?: boolean,\n atualizarTotalmente?: boolean,\n callback?: (obj: any) => void\n ) => {\n (currentPage?.api || apis)\n .get(\"/bolsa/transaction\", {\n params: {\n month,\n year,\n nAtualizarDarfsPassadas: nAtualizarDarfsPassadas || false,\n nAtualizarIrrf: nAtualizarIrrf || false,\n atualizouImpostoAcumulado: atualizouImpostoAcumulado || false,\n nAtualizarPrejuizosAcumulados:\n nAtualizarPrejuizosAcumulados || false,\n atualizarTotalmente: atualizarTotalmente || false,\n },\n })\n .then((response) => {\n if (response.data.memoriaCalculo) {\n const data = {\n ...response.data,\n year,\n month,\n multa: response.data.multaAux,\n juros: response.data.jurosAux,\n impostoDevido: response.data.impostoTotal,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: response.data.memoriaCalculo.map(\n (memoCalc: any) => ({\n ...memoCalc,\n date: moment(memoCalc.date.slice(0, 10)).format(\"DD/MM/YYYY\"),\n originalDate: memoCalc.date,\n market:\n memoCalc.market === \"Opção de Compra\" ||\n memoCalc.market === \"Opção de Venda\"\n ? \"Mercado de opções\"\n : memoCalc.market,\n })\n ),\n };\n setItemToPay(data);\n callback?.(data);\n }\n })\n .catch(() => {});\n },\n [year, currentPage, user.user.name]\n );\n\n const handleCloseCalcModal = () => {\n setShowCalcModal({ visible: false });\n getHistoric();\n };\n\n const showPayButton = (item: any) =>\n valueIsGreaterThanMin(item) &&\n valueIsLessThanMax(item) &&\n (item.status !== \"PAYED\" || !item.payed);\n\n useEffect(() => {\n if (\n user.user &&\n b3Authorized &&\n !integrouHoje &&\n !interval.current &&\n integration.key !== \"unset\"\n ) {\n handleIntegrate({ integrationInBackground: true });\n }\n }, [\n interval,\n user.user,\n integrouHoje,\n b3Authorized,\n handleIntegrate,\n integration.key,\n ]);\n\n const backgroundIntegrationDisabled = (item: any) =>\n backgroundIntegration.loading &&\n (item.year > backgroundIntegration.year ||\n (item.year === backgroundIntegration.year &&\n item.month >= backgroundIntegration.month));\n\n const disableCurrentMonth = (item: any) =>\n item.year === currentYear && item.month === currentMonth + 1;\n\n return (\n
\n
\n \n Impostos devidos (DARF)\n {false && !hasPlan && (\n \n Contratar plano\n \n \n )}\n \n }\n getPopupContainer={(target) => target.parentElement}\n />\n\n \n !(item.year === currentYear && item.month > currentMonth + 1)\n ) ?? []\n }\n itemLayout=\"horizontal\"\n className={clsx(\"velotax-historic-list\", { \"no-plan\": !hasPlan })}\n renderItem={(item, index) => {\n const ultimoDiaUtilDoMes = getLastBusinessDay(\n new Date(item.year, item.month + 1, 0),\n holidays\n );\n\n const vencimento = moment(ultimoDiaUtilDoMes).format(\"DD/MM/YYYY\");\n const currentDarfDate = new Date(year, item.month - 1, 1);\n const month =\n planMonthSignature === 0 ? 11 : planMonthSignature - 1;\n const yearSign =\n planMonthSignature === 0\n ? planYearSignature - 1\n : planYearSignature;\n\n const dateAllowedOnBasic = new Date(yearSign, month, 1);\n const checkMonth =\n currentDarfDate.getTime() < dateAllowedOnBasic.getTime();\n const hideOnBasic = isBasic && checkMonth;\n const disabled = backgroundIntegrationDisabled(item);\n\n return (\n }\n disabled={disabled}\n onClick={() => editAction(item, true, index, true)}>\n Visualizar\n ,\n ]\n : []\n : !isMobile()\n ? [\n showPayButton(item) && (\n handlePayButton(item)}\n title={\n thirdBusinessDayAndMonth(item).title\n }\n disabled={\n disabled || thirdBusinessDayAndMonth(item).disabled\n }\n />\n ),\n }\n disabled={disabled}\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }>\n {showPayButton(item) ? (\n \"\"\n ) : (\n Visualizar\n )}\n ,\n // item.fullPath && (\n // }\n // onClick={() => downloadAction(item, index)}\n // />\n // ),\n ]\n : []\n }>\n \n \n {monthsExtended[item.month - 1]}\n {!isMobile() ? ` de ${item.year}` : \"\"}\n {!hasPlan &&\n item.transactions?.length > 0 &&\n !disabled &&\n isMobile() && (\n \n editAction(item, true, index, true)\n }\n icon={\n \n }\n />\n )}\n {hasPlan ? (\n \n {valueIsGreaterThanMin(item) &&\n !disableCurrentMonth(item) &&\n !hideOnBasic &&\n !disabled ? (\n {\n if (\n !ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature:\n planMonthSignature === 0\n ? 12\n : planMonthSignature,\n planYearSignature:\n planMonthSignature === 0\n ? planYearSignature - 1\n : planYearSignature,\n })\n ) {\n showUserPlanModal(true);\n } else if (\n item._id &&\n item.institution !== \"b3\"\n ) {\n payAction(!item.payed, item);\n } else {\n getTaxes(\n item.month,\n false,\n false,\n false,\n true,\n false,\n (obj: any) => {\n handleDarf(true, obj);\n }\n );\n }\n }}\n />\n ) : undefined}\n {isMobile() && !disabled && (\n \n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n />\n )}\n
\n ) : undefined}\n \n }\n description={\n \n {!hasPlan || hideOnBasic ? (\n <>\n {item.transactions?.length > 0 || disabled ? (\n <>\n \n Vendas totais: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : (\n formatCurrency(vendasTotais(item))\n )}\n \n \n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}>\n \n Clique para verificar \n \n \n \n \n \n ) : (\n \n Não houve movimentações tributáveis neste mês\n \n )}\n \n ) : (\n <>\n {item.transactions?.length > 0 ? (\n <>\n \n Vendas totais: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : (\n formatCurrency(vendasTotais(item))\n )}\n \n \n {disableCurrentMonth(item) && (\n \n Vendas isentas: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : (\n <>\n {formatCurrency(vendasIsentas(item))}\n  \n \n \n \n \n )}\n \n \n )}\n {!ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature:\n planMonthSignature === 0\n ? 12\n : planMonthSignature,\n planYearSignature:\n planMonthSignature === 0\n ? planYearSignature - 1\n : planYearSignature,\n }) ? (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}>\n \n Clique para verificar \n \n \n \n \n ) : (\n \n Imposto a pagar: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : handleValue(item) > 0 ? (\n formatCurrency(handleValue(item))\n ) : (\n \"Isento\"\n )}\n \n \n )}\n {handleValue(item) > 0 &&\n ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature:\n planMonthSignature === 0\n ? 12\n : planMonthSignature,\n planYearSignature:\n planMonthSignature === 0\n ? planYearSignature - 1\n : planYearSignature,\n }) && (\n \n Vencimento: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : (\n vencimento\n )}\n \n \n )}\n {isMobile() && showPayButton(item) && (\n handlePayButton(item)}\n title={\n thirdBusinessDayAndMonth(item).title\n }\n disabled={\n disabled || thirdBusinessDayAndMonth(item).disabled\n }\n />\n )}\n \n ) : (\n \n {disabled ? (\n <>\n \n \n Vendas totais: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : (\n formatCurrency(vendasTotais(item))\n )}\n \n \n \n\n \n {\" \"}\n \n Imposto a pagar: \n \n {disabled ? (\n <>\n \n Atualizando...\n \n \n \n ) : handleValue(item) > 0 ? (\n formatCurrency(handleValue(item))\n ) : (\n \"Isento\"\n )}\n \n \n \n \n ) : (\n \n Não houve movimentações tributáveis neste\n mês\n \n )}\n \n )}\n \n )}\n \n }\n />\n \n \n );\n }}\n />\n\n \n Outras opções\n \n\n
\n {[...itensBolsa.slice(1)]\n .filter(\n (item) =>\n !([\"insert-manual\", \"anual-report\"].includes(item.id)) || oldPositionList?.length > 0\n )\n // .filter((item) => (b3Authorized ? item.id !== \"integration\" : true))\n .map((item) => (\n handleOpenNotas()\n : (hasPlan && !isBasic)\n ? undefined\n : () => {\n handleOpenPlanModal();\n }\n }\n >\n {(hasPlan && !isBasic) ||\n item.id === \"integration\" ||\n item.id === 'insert-manual' ||\n item.id === \"brokerage-note\" ? (\n <>{item.content}\n ) : (\n \n {item.content}\n }\n onClick={() => {\n handleOpenPlanModal();\n }}>\n PREMIUM\n \n \n )}\n \n ))}\n
\n
\n \n \n \n \n Informamos que, para pagamento do DARF via PIX ou cartão de crédito,\n é necessário que o mesmo seja realizado até as 17h30 para processamento no mesmo dia.\n Pagamentos efetuados após esse horário serão processados no próximo dia útil,\n o que pode resultar em alterações nos valores de juros e multa.\n \n {\n setPaymentModal(false);\n getHistoric();\n }}\n onCancel={() => {\n setPaymentModal(!paymentModal);\n }}\n callDarf={() => {\n handleOpenDarfModal();\n HandleTag(\"76\");\n }}\n paymentData={{\n ...itemToPay,\n impostoTotalFinal: impostoCharge,\n }}\n />\n \n \n \n {\n if (!loadingSend) {\n setShowNotasCorretagemModal(false);\n }\n }}>\n \n Você pode carregar as notas de corretagem para\n verificar o imposto de renda sobre operações realizadas no mercado de\n balcão\n \n \n \n \n sendNotas()}>\n Finalizar\n \n \n \n {\n setShowHistoricoNotasCorretagemModal(true);\n getHistoricoNotasCorretagem({ filters: {} });\n }}>\n Histórico de notas\n \n \n \n \n \n );\n};\n","import { Typography } from \"antd\";\nimport {\n RiMoneyDollarCircleLine,\n RiHandCoinLine,\n RiFileSearchLine,\n} from \"react-icons/ri\";\n\nexport const cards = [\n {\n id: \"gain\",\n icon: (\n \n ),\n content: Ganho de capital,\n },\n {\n id: \"income\",\n icon: (\n \n ),\n content: Rendimentos,\n },\n {\n id: \"anual-report\",\n icon: (\n \n ),\n content: Relatórios anuais,\n },\n];\n","export default __webpack_public_path__ + \"static/media/b3-logo-azul.a6889965.png\";","import styled from \"styled-components\";\n\nexport const Content = styled.div`\n margin-top: 20px;\n .titulo {\n font-size: 16px;\n font-weight: 500;\n color: var(--ant-primary-color);\n }\n .beneficios {\n margin: 16px 0;\n border-radius: 8px;\n border: 1px solid var(--light-gray);\n .beneficio {\n padding: 16px;\n .beneficio-titulo {\n display: flex;\n align-items: center;\n font-size: 16px;\n font-weight: 600;\n line-height: 20px;\n margin-bottom: 4px;\n svg {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n }\n }\n .beneficio-descricao {\n font-size: 13px;\n text-align: justify;\n }\n }\n }\n .skip-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n .ant-btn {\n font-size: 11px;\n }\n }\n @media only screen and (max-device-width: 812px) {\n .beneficios {\n .beneficio {\n .beneficio-titulo {\n align-items: start;\n }\n }\n }\n }\n`;\n\nexport const Parceiros = styled.div`\n display: flex;\n align-items: center;\n flex-direction: column;\n font-size: 12px;\n line-height: 24px;\n font-weight: 400;\n letter-spacing: -0.5px;\n .parceiros {\n display: flex;\n align-items: center;\n margin-bottom: 6px;\n\n svg.veloicon {\n height: 24px;\n width: auto;\n * {\n fill: var(--ant-primary-color);\n }\n }\n svg.arrow {\n height: 18px;\n margin: 0 10px;\n fill: var(--dark-gray);\n }\n img[alt=\"b3-logo\"] {\n height: 24px;\n }\n }\n`;\n\nexport const Subtitle = styled.span`\n font-size:13px;\n font-weight:bold;\n margin-bottom:5px;\n`;\n","import { Typography } from \"antd\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { AiOutlineArrowRight } from \"react-icons/ai\";\nimport Button from \"../../../components/Button\";\nimport { useB3Integration } from \"../../../contexts/B3IntegrationContext\";\n\ninterface B3IntegrationButtonsProps {\n checkOnlyExistsUserB3?: boolean;\n}\n\nexport const B3IntegrationButtons: React.FC = ({\n checkOnlyExistsUserB3,\n}) => {\n const { handleIntegrate, checkingAuhtorization } = useB3Integration();\n\n return (\n <>\n {\n // checkOnlyExistsUserB3\n // ? handleAuthorizationB3()\n handleIntegrate();\n }}\n >\n Autorizar conexão \n \n \n {checkingAuhtorization && (\n \n \n   Consultando a B3...\n \n )}\n \n );\n};\n","import clsx from \"clsx\";\nimport { Typography } from \"antd\";\nimport styled from \"styled-components\";\nimport { useState, useEffect, useRef } from \"react\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { useNavigate } from \"react-router-dom\";\n\nconst Container = styled.div`\n top: 0;\n left: 0;\n width: 100%;\n height: 100vh;\n position: fixed;\n display: flex;\n row-gap: 16px;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n background-color: #fffd;\n backdrop-filter: blur(1px);\n z-index: 999;\n h3 {\n width: 100%;\n font-size: 2rem;\n text-align: center;\n position: relative;\n margin: 0 !important;\n span.timer-text {\n left: 0;\n opacity: 0;\n width: 100%;\n position: absolute;\n transition-delay: 400ms;\n transition-duration: 800ms;\n transition-property: opacity;\n transition-timing-function: ease-in-out;\n &.active {\n opacity: 1;\n }\n }\n }\n .loader {\n display: flex;\n align-items: center;\n .timer {\n font-weight: 500;\n font-size: 1.125rem;\n margin-left: 16px;\n }\n .anticon.anticon-loading.anticon-spin {\n width: 40px;\n height: 40px;\n svg {\n width: 40px;\n height: 40px;\n fill: var(--ant-primary-color);\n }\n }\n }\n @media only screen and (max-device-width: 812px) {\n h3 {\n font-size: 1.5rem;\n }\n }\n`;\n\ninterface LoadingIntegrationProps {\n show: boolean;\n hasError?: boolean;\n}\n\nconst integrationMessages = [\n \"Iniciando integração com a B3\",\n \"Organizando suas operações\",\n \"Calculando custo médio das operações\",\n \"Calculando suas DARFs\",\n \"Integração concluída\",\n];\n\nexport const LoadingIntegration: React.FC = ({\n show,\n hasError,\n}) => {\n const { integrationMessage } = useB3Integration();\n // const [timer, setTimer] = useState(0);\n // const [close, setClose] = useState();\n // const finishTimer = useRef | null>(null);\n // const initialTimer = useRef | null>(null);\n \n const intervalTimer = useRef | null>(null);\n const [percent, setPercent] = useState(0);\n const percentRef = useRef(0);\n const navigate = useNavigate();\n\n useEffect(() => {\n const message = integrationMessage ?? \"\";\n const index = integrationMessages.findIndex((m) => message === m);\n if (index === -1) {\n percentRef.current = -1;\n return;\n }\n const newPercent = ((index + 1) * 100) / integrationMessages.length;\n percentRef.current = newPercent;\n }, [integrationMessage]);\n\n useEffect(() => {\n intervalTimer.current = setInterval(() => {\n setPercent((prev) => {\n if (percentRef.current === 0) return 0;\n if (percentRef.current === 100) return 100;\n return prev < percentRef.current ? prev + 1 : prev;\n });\n }, 1000);\n\n function clearPercentInterval() {\n if (intervalTimer.current) clearInterval(intervalTimer.current);\n intervalTimer.current = null;\n }\n\n if (percent === 100) {\n clearPercentInterval();\n setTimeout(() => {\n navigate(\"/velotax/bolsa-historic\");\n }, 1000);\n }\n\n return () => {\n clearPercentInterval();\n };\n }, [percent]);\n\n // useEffect(() => {\n // if (show && close === undefined) {\n // setClose(false);\n // initialTimer.current = setInterval(() => {\n // setTimer((timer) => (timer + 1 >= 100 ? 100 : timer + 1));\n // }, 1500);\n // }\n // if (!show && close === false) {\n // if (initialTimer.current) {\n // clearInterval(initialTimer.current);\n // }\n // finishTimer.current = setInterval(() => {\n // setTimer((timer) => {\n // if (finishTimer.current && timer >= 100) {\n // setClose(undefined);\n // clearInterval(finishTimer.current);\n // return 100;\n // }\n // return timer + 1;\n // });\n // }, 25);\n // }\n // if (!show && close === undefined) {\n // setTimer(0);\n // finishTimer.current = null;\n // initialTimer.current = null;\n // }\n // }, [show, close]);\n\n // useEffect(() => {\n // if (timer === 100) {\n // setClose(true);\n // message.info({\n // content:\n // \"Você possui um número alto de operações realizadas na bolsa de valores. Por isso, precisaremos de um pouco mais de tempo para finalizar os seus cálculos de imposto de renda. Volte novamente em 30 minutos.\",\n // duration: 40,\n // });\n // }\n // }, [timer]);\n\n return (\n \n
\n \n {/* {timer} % */}\n {percentRef.current !== -1 && (\n {percent} %\n )}\n
\n \n {integrationMessages.map((message) => {\n return (\n \n {message}\n \n );\n })}\n \n Analisando dados da integração...\n \n \n\n {/* \n \n Lendo suas transações...\n \n = 2 && timer < 4 })}\n >\n Conferindo seus impostos...\n \n = 6 })}>\n Preparando seu painel de controle...\n \n */}\n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/mercado-logo2.8b142b99.png\";","import styled, { css } from \"styled-components\";\n\nexport const Container = styled.div<{ imgHeight?: boolean }>`\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n height: 150px;\n padding: 32px;\n cursor: pointer;\n background: var(--velotax-background-color);\n border-radius: 6px;\n position: relative;\n border: 2px solid var(--velotax-ghost-white);\n position: relative;\n transition: 0.3s;\n\n &.loading {\n img {\n opacity: 0.5;\n filter: blur(3px);\n }\n }\n\n :hover {\n opacity: 0.9;\n filter: contrast(0.9);\n }\n\n #corretora-svg {\n height: auto;\n }\n\n img {\n ${(props) =>\n props.imgHeight\n ? css`\n height: 100%;\n `\n : css`\n width: 100%;\n `}\n }\n\n .loading-animation {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 8px;\n border-radius: 6px;\n backdrop-filter: blur(4px);\n background: var(--ant-info-color-outline);\n span {\n font-size: 14px;\n line-height: 16px;\n font-weight: bold;\n text-align: center;\n }\n .anticon-spin {\n margin: 4px 8px 4px 0;\n font-size: 28px;\n color: var(--white);\n\n svg {\n margin: 0;\n }\n }\n }\n\n &.integrado {\n border: 2px solid var(--ant-success-color);\n }\n\n .integrado-check {\n bottom: 12px;\n right: 12px;\n font-size: 22px;\n position: absolute;\n }\n\n .click-here {\n margin: 16px 0 0;\n font-size: 11px !important;\n font-weight: 500;\n line-height: 20px;\n color: var(--velotax-font-color);\n opacity: 0.8;\n }\n\n .click-here-generic {\n margin: 0 0 0 0;\n font-size: 12px !important;\n font-weight: 500;\n line-height: 20px;\n color: var(--velotax-font-color);\n opacity: 0.8;\n }\n\n .icon-spreadsheet {\n color: var(--ant-primary-color) !important;\n background-color: var(--light-gray);\n border-radius: 30px;\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: center;\n min-height: 50px;\n width: 50px;\n margin-bottom: 20px;\n }\n`;\n","import clsx from \"clsx\";\nimport React from \"react\";\nimport { useLocation } from \"react-use\";\nimport { Tooltip, Typography } from \"antd\";\nimport { CheckCircleTwoTone, LoadingOutlined } from \"@ant-design/icons\";\nimport { Container } from \"./styles\";\nimport { useB3Integration } from \"../../../contexts/B3IntegrationContext\";\n\ninterface IIntegrationButtonProps {\n alt: string;\n loading: boolean;\n integrado: boolean;\n setIntegrationModalVisible: Function;\n logo?: string;\n imgHeight?: boolean;\n handleClick?: () => void;\n style?: Object;\n}\n\nconst IntegrationButton: React.FC = ({\n style,\n alt,\n logo,\n loading,\n integrado,\n imgHeight,\n setIntegrationModalVisible,\n handleClick = () => {},\n}) => {\n const location = useLocation();\n const { timer } = useB3Integration();\n const isB3 = location.pathname === \"/velotax/bolsa-integration\";\n\n const onClick = () => {\n if (isB3) {\n handleClick();\n } else if (!loading) {\n setIntegrationModalVisible(true);\n }\n };\n return (\n \n \n {alt}\n \n Clique aqui\n \n {!loading && integrado && (\n
\n \n
\n )}\n {isB3 && loading && (\n
\n \n Verificando autorização com a B3 ({timer} s)\n
\n )}\n {!isB3 && loading && (\n
\n \n Isso pode demorar alguns minutos, aguarde\n
\n )}\n \n \n );\n};\n\nexport default IntegrationButton;\n","import { Typography } from \"antd\";\nimport React, { Dispatch, SetStateAction } from \"react\";\nimport { DrawerModal } from \"../../DrawerModal\";\nimport myntLogo from \"../../../assets/mynt.svg\";\n\ninterface IMyntIntegrationModalProps {\n visible: boolean;\n dependentId?: string;\n setVisible: Dispatch>;\n setLoadingIntegration: Dispatch>;\n}\n\nconst MyntIntegrationModal: React.FC = ({\n visible,\n setVisible,\n dependentId,\n setLoadingIntegration,\n}) => {\n const onCancel = () => {\n setVisible(false);\n };\n\n return (\n \n \n Integrar com a Mynt\n \n }\n >\n
\n
    \n \n Para integrar com a Mynt, realize os seguintes passos:\n \n
  • \n \n Acesse o aplicativo ou{\" \"}\n \n \n \n website da Mynt\n \n \n \n \n
  • \n
  • \n \n Clique na aba “Carteira”\n \n
  • \n
  • \n \n Clique no botão “Calcular imposto”\n \n
  • \n
  • \n \n Aceite os Termos de Uso e clique em “Continuar”\n \n
  • \n
\n \n Após realizar esses passos, sua integração será concluída. Você então\n poderá atualizar a página atual para confirmar que o procedimento\n funcionou corretamente.\n \n
\n \n );\n};\n\nexport default MyntIntegrationModal;\n","import { message } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport IntegrationButton from \"../IntegrationButton\";\nimport apiIrpf2023 from \"../../../services/apiIrpf2023\";\nimport bitcoinTradeLogo from \"../../../assets/mynt.svg\";\nimport MyntIntegrationModal from \"./MyntIntegrationModal\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { IntegrationStatusExterior } from \"../ExteriorIntegration\";\n\ninterface IGetEstadoIntegracao {\n success: (data: any) => void;\n error: (data: any) => void;\n}\n\ninterface IBitcoinTradeIntegrationProps {\n dependentId?: string;\n integrationCallback: (type: IntegrationStatusExterior) => void;\n}\n\nconst MyntIntegration: React.FC = ({\n dependentId,\n integrationCallback,\n}) => {\n const { setIntegrations } = useBroker();\n const [loading, setLoading] = useState(false);\n const [integrado, setIntegrado] = useState(false);\n const [integrationModalVisible, setIntegrationModalVisible] = useState(false);\n\n const getEstadoIntegracao = ({ success, error }: IGetEstadoIntegracao) =>\n apiIrpf2023\n .get(\"/operacoes/cripto/check\")\n .then(({ data }) => {\n setIntegrado(data.isIntegrated);\n success(data);\n setLoading(false);\n setIntegrations((integrations) => ({ ...integrations, mynt: data }));\n })\n .catch((err) => {\n error(err);\n });\n\n useEffect(() => {\n getEstadoIntegracao({\n success: (data) => {\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n integrationCallback(\"integrado\");\n } else {\n integrationCallback(\"nao-integrado\");\n }\n },\n error: () => {\n integrationCallback(\"erro\");\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n if (integrationModalVisible) {\n interval = setInterval(\n () => {\n integrationCallback(\"carregando\");\n getEstadoIntegracao({\n success: (data: any) => {\n if (data.estado === \"carregando\") {\n integrationCallback(\"carregando\");\n }\n if (data.estado === \"erro\") {\n setLoading(false);\n setIntegrado(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n message.error(\n \"Algo deu errado na integração com a Mynt, verifique suas credenciais\"\n );\n }\n\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n setIntegrationModalVisible(false);\n message.success(\"Integração feita com sucesso!\");\n integrationCallback(\"integrado\");\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com a Mynt, verifique suas credenciais\"\n );\n },\n });\n },\n\n 3000\n );\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [integrationModalVisible, integrado]);\n\n return (\n <>\n \n \n \n );\n};\n\nexport default MyntIntegration;\n","export default __webpack_public_path__ + \"static/media/mercado-bitcoin.6848fa7d.svg\";","import { RcFile } from \"antd/lib/upload\";\nimport { Form, message, Typography } from \"antd\";\nimport { UploadRequestOption } from \"rc-upload/lib/interface\";\nimport React, { Dispatch, SetStateAction, useState } from \"react\";\nimport apis from \"../../../services/apiCrypto\";\nimport UploadVelotax from \"../../UploadVelotax\";\nimport { DrawerModal } from \"../../DrawerModal\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport mercadoBitcoinLogo from \"../../../assets/mercado-bitcoin.svg\";\n// import EmbedCollapse from '../EmbedCollapse';\n\ninterface IMercadoBitcoinIntegrationModalProps {\n visible: boolean;\n setVisible: Dispatch>;\n setLoadingIntegration: Dispatch>;\n}\n\nconst MercadoBitcoinIntegrationModal: React.FC<\n IMercadoBitcoinIntegrationModalProps\n> = ({ visible, setVisible, setLoadingIntegration }) => {\n const { user } = useAuth();\n const [form] = Form.useForm();\n const [loadingFile, setLoadingFile] = useState(false);\n const [sendRequest, setSendRequest] = React.useState(true);\n\n const onCancel = () => {\n setVisible(false);\n form.resetFields();\n };\n\n const beforeUpload = (file: RcFile) => {\n setSendRequest(true);\n if (\n ![\n \"text/csv\",\n \"application/vnd.ms-excel\",\n \"text/x-csv\",\n \"text/plain\",\n \"text/tab-separated-values\",\n \"text/x-comma-separated-values\",\n \"text/comma-separated-values\",\n \"application/x-csv\",\n \"application/csv\",\n ].includes(file.type)\n ) {\n message.error(\"Envie um arquivo do tipo CSV\");\n setSendRequest(false);\n }\n };\n\n const customRequest = ({ file }: UploadRequestOption) => {\n const formData = new FormData();\n if (!sendRequest) return;\n formData.append(\"file\", file);\n setLoadingFile(true);\n apis\n .post(\"/mercado-bitcoin/integrate\", formData, {\n params: { email: user.user.email, key: \"mercadoBitcoin\" },\n })\n .then(() => {\n setVisible(false);\n setLoadingFile(false);\n setLoadingIntegration(true);\n message.success(\"Integração iniciada com sucesso\");\n })\n .catch(() => {\n setVisible(false);\n setLoadingFile(false);\n setLoadingIntegration(false);\n message.error(\"Não foi possivel realizar a integração\");\n });\n };\n\n return (\n \n \n Integrar com o Mercado Bitcoin\n \n }\n >\n {/* */}\n \n Faça o upload do arquivo csv de integração com o Mercado Bitcoin\n \n \n \n );\n};\n\nexport default MercadoBitcoinIntegrationModal;\n","import { message } from \"antd\";\nimport React, { useEffect, useState } from \"react\";\nimport apis from \"../../../services/apiCrypto\";\nimport IntegrationButton from \"../IntegrationButton\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport mercadoBitcoinLogo from \"../../../assets/mercado-bitcoin.svg\";\nimport MercadoBitcoinIntegrationModal from \"./MercadoBitcoinIntegrationModal\";\nimport { IntegrationStatusExterior } from \"../ExteriorIntegration\";\n\ninterface IGetEstadoIntegracao {\n success: (data: any) => void;\n error: (data: any) => void;\n}\n\ninterface IMercadoBitcoinIntegrationProps {\n dependentId?: string;\n integrationCallback: (type: IntegrationStatusExterior) => void;\n}\n\nconst MercadoBitcoinIntegration: React.FC = ({\n dependentId,\n integrationCallback,\n}) => {\n const { integrations, setIntegrations } = useBroker();\n const [loading, setLoading] = useState(false);\n const [integrationModalVisible, setIntegrationModalVisible] = useState(false);\n\n const getEstadoIntegracao = ({ success, error }: IGetEstadoIntegracao) =>\n apis\n .get(\"/mercado-bitcoin/integration-status\")\n .then(({ data }) => {\n setIntegrations((integrations) => ({\n ...integrations,\n mercadobitcoin: data,\n }));\n success(data);\n })\n .catch((err) => {\n error(err);\n });\n\n useEffect(() => {\n getEstadoIntegracao({\n success: (data) => {\n if (!data.integrated && data.providerExists) {\n setLoading(true);\n integrationCallback(\"carregando\");\n } else if (data.integrated) {\n setLoading(false);\n integrationCallback(\"integrado\");\n } else {\n setLoading(false);\n integrationCallback(\"nao-integrado\")\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com o Mercado Bitcoin, verifique suas credenciais\"\n );\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n if (loading) {\n interval = setInterval(\n () => {\n getEstadoIntegracao({\n success: (data: any) => {\n if (!data.integrated && data.providerExists) {\n integrationCallback(\"carregando\");\n } else if (data.integrated) {\n setLoading(false);\n message.success(\"Integração feita com sucesso!\");\n integrationCallback(\"integrado\");\n } else {\n setLoading(false);\n integrationCallback(\"nao-integrado\");\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com o Mercado Bitcoin, verifique suas credenciais\"\n );\n },\n });\n },\n\n 3000\n );\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading]);\n\n return (\n <>\n \n \n \n );\n};\n\nexport default MercadoBitcoinIntegration;\n","import styled from \"styled-components\";\n\nexport const ContainerCards = styled.div`\n display: flex;\n justify-content: center;\n margin-top: 30px;\n gap: 10px;\n`;\n\nexport const CardSpreadsheet = styled.div`\n width: 250px;\n height: 150px;\n border-radius: 8px;\n transition: opacity 0.3s ease-in-out;\n border: 2px solid var(--light-gray);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n\n a {\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n .ant-upload {\n color: none !important;\n background-color: transparent !important;\n border-color: none !important;\n }\n\n .button {\n width: 50px;\n height: 50px;\n border-radius: 30px;\n border: 2px solid var(--light-gray);\n background-color: var(--light-gray);\n align-items: center;\n justify-content: center;\n display: flex;\n\n figure {\n align-items: center;\n justify-content: center;\n display: flex;\n }\n\n svg {\n width: 26px;\n height: 26px;\n fill: var(--ant-primary-color) !important;\n }\n }\n\n .content {\n font-weight: 700;\n margin-top: 10px;\n }\n\n .ant-typography {\n color: var(--ant-primary-color) !important;\n }\n`\n","import Button from \"../../../Button\";\nimport { DrawerModal } from \"../../../DrawerModal\";\nimport { message, Typography, Upload, UploadProps } from \"antd\";\nimport { CardSpreadsheet, ContainerCards } from \"./styles\";\nimport { AiOutlineCloudUpload } from \"react-icons/ai\";\nimport { BsDownload } from \"react-icons/bs\";\nimport { useState } from \"react\";\nimport api from \"../../../../services/apiCrypto\";\nimport { useAuth } from \"../../../../contexts/AuthContext\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useBroker } from \"../../../../contexts/BrokerContext\";\nimport { download } from \"../../../../utils\";\n\ninterface SpreadsheetModalProps {\n visible: boolean;\n setModalSpreadsheet: Function;\n}\n\nexport const itensModalSpreadsheet = [\n {\n id: \"downloadSpreadsheet\",\n content: Clique aqui para baixar e,\n description: preencher a planilha modelo,\n icon: ,\n },\n {\n id: \"uploadSpreadsheet\",\n premium: true,\n content: Clique aqui para enviar a,\n description: planilha modelo preenchida,\n icon: ,\n },\n];\n\nexport const SpreadsheetModal: React.FC = ({\n visible,\n setModalSpreadsheet\n}) => {\n const { user } = useAuth();\n const { currentBroker } = useBroker();\n const navigate = useNavigate();\n const [loading, setLoading] = useState(false);\n\n const downloadAction = async (id: string) => {\n const response = await api.get(\"/generic/\");\n if (response?.data?.file) download(response?.data?.file)\n }\n\n const props: UploadProps = {\n listType: 'picture',\n beforeUpload(file) {\n return new Promise(async (resolve) => {\n setLoading(true);\n const formData = new FormData();\n formData.append(\"file\", file);\n await api\n .post(\"/generic/readSpreadsheet/\", formData, {\n params: { email: user.user.email, key: \"generic\" },\n })\n .then(() => {\n message.success(\"Integração iniciada com sucesso\");\n setLoading(false);\n setModalSpreadsheet(false);\n resolve();\n })\n .catch((error) => {\n message.error(\"Não foi possivel realizar a integração\");\n setLoading(true);\n resolve();\n }).finally(() => {\n navigate(`/${currentBroker.path}/cripto`);\n });\n });\n },\n };\n\n return (\n { setModalSpreadsheet(false) }}\n maskClosable={false}\n visible={visible}\n title=\"Integração via planilha\"\n >\n Baixe a planilha modelo e preencha suas operações de criptoativos ou faça o upload da sua planilha preenchida.\n \n {itensModalSpreadsheet.map((item) => {\n return (\n \n {item.id === \"uploadSpreadsheet\"\n ? ()\n : (\n )}\n (\n {value}\n ),\n },\n {\n align: \"left\",\n title: \"Data\",\n dataIndex: \"referenceDate\",\n render: (value) => moment(value).format(\"DD/MM/YYYY\"),\n },\n {\n align: \"left\",\n dataIndex: \"tipo\",\n title: \"Tipo de rendimento\",\n },\n {\n align: \"left\",\n title: \"Valor\",\n width: \"150px\",\n dataIndex: \"valor\",\n render: (value) => formatCurrency(value ?? 0, \"R$ \"),\n },\n ]}\n />\n
\n {item?.operations?.map((op: any, index: number) => (\n
\n

{op.ticker}

\n Tipo:\n {op.tipo}\n Data:\n \n {moment(op.referenceDate).format(\"DD/MM/YYYY\")}\n \n Valor:\n \n {formatCurrency(op.valor ?? 0, \"R$ \")}\n \n
\n ))}\n {!item?.operations?.length && (\n
Nenhum dividendo recebido neste mês
\n )}\n
\n {item?.operations?.length > 0 && (\n
\n Total recebido no mês:\n {formatCurrency(item.value)}\n
\n )}\n \n );\n};\n","import { monthsExtended } from \"../../utils\";\n\nexport const monthList = Array.from(Array(12))\n .map((_, i) => ({\n month: i + 1,\n monthName: monthsExtended[i],\n valorRendimento: 0,\n impostoPagoExterior: 0,\n }))\n .reverse();\n","import styled from \"styled-components\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\n\nexport const ModalStyled = styled(DrawerModal)`\n`;\n\nexport const BolsaOperations = styled.div`\n margin-top: 20px;\n border-radius: 8px;\n color: var(--velotax-font-color);\n background-color: var(--velotax-ghost);\n border: 1px solid var(--velotax-background-color-ghost);\n\n div.strong span {\n font-weight: 700 !important;\n }\n div.opacity {\n opacity: 0.8;\n }\n\n span.dividendos-header {\n background-color: var(--velotax-background-color-ghost) !important;\n font-weight: 700 !important;\n }\n div.header,\n div.sub-header,\n div.row {\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 0.5fr;\n span {\n text-align: center;\n justify-content: center;\n }\n }\n\n div.sub-header,\n div.row {\n height: auto;\n min-height: 48px;\n border-top: none;\n & + div.sub-header {\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n & > span + span {\n background-color: var(--velotax-background-color);\n }\n & > span {\n display: flex;\n align-items: center;\n border-left: none;\n }\n &:last-of-type > span:last-of-type {\n border-radius: 0 0 8px 0;\n }\n }\n\n div.header {\n padding: 16px;\n border-radius: 8px 8px 0 0;\n background-color: var(--velotax-background-color-ghost);\n span {\n font-weight: 700;\n }\n button {\n display: none;\n }\n }\n\n div.sub-header {\n font-size: 14px;\n & > span {\n font-weight: 300;\n }\n }\n\n div.row {\n opacity: 0.85;\n font-size: 13px;\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n\n @media only screen and (max-device-width: 812px) {\n div.sub-header {\n font-size: 12px;\n }\n }\n`;\n","import { Typography, Spin, Table } from \"antd\";\nimport { AiOutlineDownload } from \"react-icons/ai\";\nimport Button from \"../Button\";\nimport { Container } from \"./styles\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { formatCurrency, formatDate } from \"../../utils\";\nimport { handleDownloadSheet } from \"../../utils/handleDownloadSheet\";\n\nexport const DividendosModalExterior = ({ item, year, quotes }: any) => {\n const [total, setTotal] = useState({});\n const [object, setObject] = useState({});\n const [loading, setLoading] = useState(false);\n\n const checkType = (el: any) => {\n if (el.type === \"DIVIDEND\" && el.operation === \"BUY\") {\n return \"valorRendimento\";\n } else return \"impostoPagoExterior\";\n };\n\n const getTotal = useCallback(async () => {\n let auxTotal: any = {\n totalRendimento: 0,\n totalRendimentoReal: 0,\n totalImposto: 0,\n totalImpostoReal: 0,\n };\n Object.keys(object).forEach((item: any) => {\n auxTotal = {\n ...auxTotal,\n totalRendimento:\n (auxTotal.totalRendimento ?? 0) + (object[item].valorRendimento ?? 0),\n totalRendimentoReal:\n (auxTotal.totalRendimentoReal ?? 0) +\n (object[item].valorRendimentoReal ?? 0),\n totalImposto:\n (auxTotal.totalImposto ?? 0) +\n (object[item].impostoPagoExterior ?? 0),\n totalImpostoReal:\n (auxTotal.totalImpostoReal ?? 0) +\n (object[item].impostoPagoExteriorReal ?? 0),\n };\n });\n\n setTotal(auxTotal);\n }, [object]);\n\n const groupBycode = useCallback(async () => {\n setLoading(true);\n const aux: any = {};\n for (const el of item.orders ?? []) {\n if (!aux[el.code]) {\n if (checkType(el) === \"valorRendimento\") {\n aux[el.code] = {\n valorRendimento: el.value,\n valorRendimentoReal: el.value * item.dolarQuote,\n date: formatDate(el.date),\n };\n } else {\n aux[el.code] = {\n impostoPagoExterior: el.value,\n impostoPagoExteriorReal: el.value * item.dolarQuote,\n date: formatDate(el.date),\n };\n }\n } else {\n if (checkType(el) === \"valorRendimento\") {\n aux[el.code] = {\n ...aux[el.code],\n valorRendimento: (aux[el.code]?.valorRendimento ?? 0) + el.value,\n valorRendimentoReal:\n (aux[el.code]?.valorRendimentoReal ?? 0) +\n el.value * item.dolarQuote,\n };\n } else {\n aux[el.code] = {\n ...aux[el.code],\n impostoPagoExterior:\n (aux[el.code]?.impostoPagoExterior ?? 0) + el.value,\n impostoPagoExteriorReal:\n (aux[el.code]?.impostoPagoExteriorReal ?? 0) +\n el.value * item.dolarQuote,\n };\n }\n }\n }\n\n setObject(aux);\n setLoading(false);\n }, [item.orders, item.dolarQuote]);\n\n useEffect(() => {\n groupBycode();\n }, [groupBycode, item.month, year]);\n\n useEffect(() => {\n getTotal();\n }, [getTotal, object]);\n\n return (\n \n {loading ? (\n \n ) : (\n <>\n {Object.keys(object)?.length > 0 && (\n }\n onClick={() => {\n const serializedData: any[] = [];\n Object.keys(object)\n .map((key) => ({\n ...object[key],\n code: key,\n }))\n .forEach((item: any) => {\n serializedData.push({\n Ativo: item?.code,\n Data: item?.date,\n \"Valor em USD\": Number(\n item?.valorRendimento\n ).toLocaleString(\"en\", {\n style: \"currency\",\n currency: \"USD\",\n }),\n \"Valor em BRL\": Number(\n item?.valorRendimentoReal\n ).toLocaleString(\"pt-BR\", {\n style: \"currency\",\n currency: \"BRL\",\n }),\n });\n });\n handleDownloadSheet(\n serializedData,\n \"Dividendos\",\n `Dividendos-${year}-${item.month}.xlsx`\n );\n }}\n >\n Baixar planilha\n \n )}\n ({\n ...object[key],\n ticker: key,\n }))}\n locale={{ emptyText: \"Nenhum dividendo recebido neste mês\" }}\n columns={[\n {\n align: \"left\",\n title: \"Ativo\",\n dataIndex: \"ticker\",\n render: (value) => (\n {value}\n ),\n },\n {\n align: \"left\",\n title: \"Data\",\n dataIndex: \"date\",\n },\n {\n width: \"30%\",\n align: \"left\",\n dataIndex: \"valorRendimento\",\n title: \"Valor em USD\",\n render: (value) => formatCurrency(value ?? 0, \"US$ \"),\n },\n {\n width: \"30%\",\n align: \"left\",\n dataIndex: \"valorRendimentoReal\",\n title: \"Valor em BRL\",\n render: (value) => formatCurrency(value ?? 0, \"R$ \"),\n },\n ]}\n />\n
\n {Object.keys(object)\n .map((key) => ({\n ...object[key],\n ticker: key,\n }))\n ?.map((op: any, index: number) => (\n
\n

{op.ticker}

\n Data:\n {op.date}\n Valor em USD:\n \n {formatCurrency(op.valorRendimento ?? 0, \"US$ \")}\n \n Valor em BRL:\n \n {formatCurrency(op.valorRendimentoReal ?? 0, \"R$ \")}\n \n
\n ))}\n {!Object.keys(object).length && (\n
\n Nenhum dividendo recebido neste mês\n
\n )}\n
\n {Object.keys(object).length > 0 && (\n
\n \n Total recebido no mês:\n \n \n {formatCurrency(total.totalRendimentoReal ?? 0)}\n \n
\n )}\n \n )}\n
\n );\n};\n","export default __webpack_public_path__ + \"static/media/warren-logo.1de4cd65.svg\";","export default __webpack_public_path__ + \"static/media/xp-black.af040f4a.svg\";","export default __webpack_public_path__ + \"static/media/sprotifi-logo.5477e3e1.svg\";","import clsx from \"clsx\";\nimport React from \"react\";\n// import { Typography } from \"antd\";\nimport { CheckCircleTwoTone, LoadingOutlined } from \"@ant-design/icons\";\nimport { Container } from \"../IntegrationButton/styles\";\nimport { Typography } from \"antd\";\n\ninterface IIntegrationButtonProps {\n alt: string;\n loading: boolean;\n integrado: boolean;\n setIntegrationModalVisible: Function;\n logo?: string;\n imgHeight?: boolean;\n handleClick?: Function;\n b3Link?: string;\n isB3LinkRedirect?: boolean;\n}\n\nconst XpIntegrationButton: React.FC = ({\n alt,\n logo,\n b3Link,\n loading,\n integrado,\n imgHeight,\n isB3LinkRedirect,\n setIntegrationModalVisible,\n}) => {\n return (\n // \n !loading && setIntegrationModalVisible(true)}\n // style={{ cursor: \"default\"}}\n >\n {isB3LinkRedirect && b3Link && (\n \n .\n \n )}\n {alt}\n \n {integrado ? \"Integrado!\" : \"Clique para integrar\"}\n \n {!loading && integrado && (\n
\n \n
\n )}\n {loading && (\n
\n \n Isso pode demorar alguns minutos, aguarde\n
\n )}\n \n //
\n );\n};\n\nexport default XpIntegrationButton;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.788 39.035h6.343c2.372 0 4.022-1.083 4.022-3.3 0-2.218-1.65-3.3-4.022-3.3h-6.343v6.6zm0 11.5h8.457c4.486 0 6.807-2.321 6.807-6.808v-4.692h-.155c-1.29 3.919-4.641 5.105-8.612 5.105h-6.29c-.155 0-.207.051-.207.206v6.188zm-11.911-14.8l6.497 6.29v-12.58l-6.497 6.29zm-22.07 14.8h28.567V49.09c0-2.527.877-3.97 2.887-4.744v-.154H30.27c-.413 0-.567-.052-.877-.361l-4.177-4.332-4.331 4.383c-.206.206-.361.31-.774.31h-6.445c-.361 0-.361-.207-.155-.413l8.25-7.993-8.405-8.147c-.206-.206-.154-.412.207-.412h6.497c.36 0 .516.051.722.309l4.538 4.538 4.28-4.538c.206-.206.36-.31.67-.31h16.965c3.919 0 7.374 1.29 8.663 5.209h.155V6.807C56.052 2.32 53.732 0 49.245 0H6.807C2.32 0 0 2.32 0 6.807v36.972c0 4.435 2.32 6.755 6.807 6.755z\",\n fill: \"#121212\"\n});\nfunction SvgXpBlack(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 56,\n height: 51,\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgXpBlack);\nexport default __webpack_public_path__ + \"static/media/xp-black.af040f4a.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/integracao_xp_exterior_fundo_branco.f35bdfb7.gif\";","import { Col, Image, Row, Typography } from \"antd\";\nimport { DrawerModal, DrawerModalProps } from \"../../DrawerModal\";\nimport { ReactComponent as XpBlackLogo } from \"../../../assets/xp-black.svg\";\nimport xpIntegrationExample from \"../../../assets/integracao_xp_exterior_fundo_branco.gif\";\n\ninterface XpIntegrationModalProps extends DrawerModalProps { }\n\nexport const XpIntegrationModal: React.FC = (\n props\n) => {\n return (\n \n \n \n \n Integrar com a XP\n \n }\n >\n \n Para integrar com a XP, realize os seguintes passos:\n \n
    \n
  • Acesse o aplicativo da XP
  • \n
  • \n Clique na aba \"Mercado Internacional\"\n
  • \n
  • \n Role até o fim da página e clique no botão \"IR/DARF\"\n
  • \n
  • \n Clique no botão \"Calcular Imposto de Renda\"\n
  • \n
  • \n Aceite os Termos de Uso e clique em \"Continuar\"\n
  • \n
\n \n \n \n \n Após realizar esses passos, sua integração será concluída. Você então\n poderá atualizar a página atual para confirmar que a conexão funcionou\n corretamente.\n \n \n );\n};\n","import { message } from \"antd\";\nimport { useState, useEffect } from \"react\";\nimport apis from \"../../../services/apiExterior\";\nimport XPIntegrationButton from \"./XpIntegrationButton\";\nimport XP_black_logo from \"../../../assets/xp-black.svg\";\nimport { XpIntegrationModal } from \"./XpIntegrationModal\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { IntegrationStatusExterior } from \"../ExteriorIntegration\";\n\ninterface IntegrationExteriorProps {\n item?: any;\n integrationCallback: (type: IntegrationStatusExterior, blockRedirect?: boolean) => void;\n}\ninterface IGetEstadoIntegracao {\n success: (data: any) => void;\n error: (data: any) => void;\n}\n\nexport const IntegrationExteriorXP: React.FC = ({\n integrationCallback,\n}) => {\n const { setIntegrations } = useBroker();\n\n const [, setLoading] = useState(true);\n const [integrado, setIntegrado] = useState(false);\n const [integrationModalVisible, setIntegrationModalVisible] = useState(false);\n\n const getEstadoIntegracao = ({ success, error }: IGetEstadoIntegracao) =>\n apis\n .get(\"/xp/integration-status\")\n .then(({ data }) => {\n setIntegrado(data.isIntegrated);\n success(data);\n setLoading(false);\n setIntegrations((integrations) => ({ ...integrations, xp: data }));\n })\n .catch((err) => {\n error(err);\n });\n\n useEffect(() => {\n getEstadoIntegracao({\n success: (data) => {\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n integrationCallback(\"integrado\", true);\n } else {\n integrationCallback(\"nao-integrado\", true);\n }\n },\n error: () => {\n integrationCallback(\"erro\");\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n if (integrationModalVisible) {\n interval = setInterval(\n () => {\n integrationCallback(\"carregando\");\n getEstadoIntegracao({\n success: (data: any) => {\n if (data.estado === \"carregando\") {\n integrationCallback(\"carregando\");\n }\n if (data.estado === \"erro\") {\n setLoading(false);\n setIntegrado(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n message.error(\n \"Algo deu errado na integração com a XP, verifique suas credenciais\"\n );\n }\n\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n setIntegrationModalVisible(false);\n message.success(\"Integração feita com sucesso!\");\n integrationCallback(\"integrado\");\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com a XP, verifique suas credenciais\"\n );\n },\n });\n },\n\n 3000\n );\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [integrationModalVisible, integrado]);\n\n return (\n <>\n \n {\n setIntegrationModalVisible(false);\n }}\n />\n \n );\n};\n","import clsx from \"clsx\";\nimport React from \"react\";\n// import { Typography } from \"antd\";\nimport { CheckCircleTwoTone, LoadingOutlined } from \"@ant-design/icons\";\nimport { Container } from \"../IntegrationButton/styles\";\nimport { Tooltip, Typography } from \"antd\";\n\ninterface IIntegrationButtonProps {\n alt: string;\n loading: boolean;\n integrado: boolean;\n setIntegrationModalVisible: Function;\n logo?: string;\n imgHeight?: boolean;\n handleClick?: Function;\n b3Link?: string;\n isB3LinkRedirect?: boolean;\n}\n\nconst WarrenIntegrationButton: React.FC = ({\n alt,\n logo,\n b3Link,\n loading,\n integrado,\n imgHeight,\n isB3LinkRedirect,\n setIntegrationModalVisible,\n}) => {\n return (\n \n !loading && setIntegrationModalVisible(true)}\n >\n {isB3LinkRedirect && b3Link && (\n \n .\n \n )}\n {alt}\n \n {integrado ? \"Integrado!\" : \"Clique para integrar\"}\n \n {!loading && integrado && (\n
\n \n
\n )}\n {loading && (\n
\n \n Isso pode demorar alguns minutos, aguarde\n
\n )}\n \n
\n );\n};\n\nexport default WarrenIntegrationButton;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.5232 25.1249C29.5232 27.2399 27.8409 28.9524 25.7678 28.9524C25.3315 28.9524 24.979 28.5922 24.979 28.1509V11.3472C24.979 10.9023 25.3315 10.5457 25.7678 10.5457H28.7344C29.1707 10.5457 29.5232 10.9059 29.5232 11.3472V25.1249ZM21.1643 28.9524H18.1977C17.7614 28.9524 17.4089 28.5922 17.4089 28.1509V15.948C17.4089 15.5031 17.7614 15.1465 18.1977 15.1465H21.1643C21.6006 15.1465 21.9531 15.5066 21.9531 15.948V28.1509C21.9531 28.5922 21.6006 28.9524 21.1643 28.9524ZM13.5976 28.9524H10.631C10.1947 28.9524 9.84219 28.5922 9.84219 28.1509V13.66C9.84219 13.2151 10.1947 12.8585 10.631 12.8585H13.5976C14.0339 12.8585 14.3864 13.2186 14.3864 13.66V28.1509C14.3829 28.5922 14.0304 28.9524 13.5976 28.9524ZM24.979 0.507324H14.3829C6.43931 0.507324 0 7.0713 0 15.1677V38.1751C0 38.62 0.352508 38.9766 0.788776 38.9766H24.979C32.9226 38.9766 39.3619 32.4127 39.3619 24.3163V15.1677C39.3619 7.07483 32.9226 0.507324 24.979 0.507324Z\",\n fill: \"#2F2F33\"\n});\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.688 12.835H68.2781C67.8035 12.835 67.5208 13.0292 67.3951 13.5094L65.0846 22.2943L62.4077 13.5094C62.282 13.061 61.9714 12.8385 61.5317 12.835H59.0606C58.6243 12.8385 58.3102 13.061 58.1846 13.5094L55.5077 22.2943L53.1971 13.5094C53.0715 13.0257 52.7854 12.835 52.3142 12.835H48.9043C48.3354 12.835 48.0841 13.1881 48.2412 13.7354L52.7853 28.2475C52.911 28.6994 53.26 28.9218 53.6998 28.9218H56.7292C57.1725 28.9218 57.5179 28.6959 57.6436 28.2475L60.2891 19.7944L62.9347 28.2475C63.0604 28.6994 63.4093 28.9218 63.8491 28.9218H66.8786C67.3218 28.9218 67.6673 28.6959 67.793 28.2475L72.3371 13.7354C72.5117 13.1881 72.2569 12.835 71.688 12.835Z\",\n fill: \"#2F2F33\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M88.5766 12.8337H85.4215C84.9154 12.8337 84.6327 13.1232 84.6327 13.6387V14.3555C83.3379 13.1268 81.6766 12.3853 79.8582 12.3853C75.7399 12.3853 72.4033 16.1845 72.4033 20.8736C72.4033 25.5626 75.7399 29.3619 79.8582 29.3619C81.6766 29.3619 83.3379 28.6204 84.6327 27.3916V28.1084C84.6327 28.6239 84.9154 28.9135 85.4215 28.9135H88.5766C89.0827 28.9135 89.3654 28.6239 89.3654 28.1084V13.6387C89.3654 13.1232 89.0792 12.8337 88.5766 12.8337ZM80.8495 24.8388C78.7589 24.8388 77.0661 23.0628 77.0661 20.8701C77.0661 18.6774 78.7589 16.9013 80.8495 16.9013C82.9366 16.9013 84.6327 18.6774 84.6327 20.8701C84.6327 23.0628 82.9401 24.8388 80.8495 24.8388Z\",\n fill: \"#2F2F33\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 18.72V28.1157C144 28.6312 143.717 28.9208 143.211 28.9208H140.056C139.554 28.9208 139.268 28.6312 139.268 28.1157V19.1366C139.268 17.5265 138.353 16.8203 137.152 16.8203C135.732 16.8203 134.849 17.6254 134.849 19.525V28.1157C134.849 28.6312 134.566 28.9208 134.06 28.9208H130.905C130.399 28.9208 130.116 28.6312 130.116 28.1157V13.6354C130.116 13.1199 130.403 12.8304 130.905 12.8304H134.06C134.566 12.8304 134.849 13.1199 134.849 13.6354V14.2993C135.592 13.18 136.936 12.3784 138.953 12.3784C141.885 12.3819 144 14.6983 144 18.72Z\",\n fill: \"#2F2F33\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.547 12.3818C115.559 12.3818 112.086 16.0823 112.086 20.8772C112.086 25.6722 115.43 29.3726 120.672 29.3726C123.89 29.3726 126.48 27.925 127.712 25.1249C127.967 24.6094 127.649 24.2564 127.08 24.2564H124.051C123.639 24.2564 123.388 24.4152 123.073 24.673C122.504 25.1567 121.621 25.478 120.738 25.478C119.095 25.478 117.622 24.7189 117.046 22.8086H127.586C128.061 22.8086 128.375 22.5827 128.438 22.0707C128.469 21.6859 128.5 21.2974 128.5 20.8808C128.5 16.0187 125.154 12.3818 120.547 12.3818ZM117.025 19.1401C117.514 17.537 118.742 16.6613 120.515 16.6613C121.908 16.6613 123.3 17.3075 123.789 19.1401H117.025Z\",\n fill: \"#2F2F33\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.32 12.5761C110.857 12.4808 111.14 12.8338 111.14 13.3494V17.1451C111.14 17.6606 110.92 17.9184 110.508 17.9184C108.739 17.8549 107.036 18.7552 107.036 21.3293V28.1192C107.036 28.6347 106.753 28.9243 106.247 28.9243H103.092C102.586 28.9243 102.303 28.6347 102.303 28.1192V13.6389C102.303 13.1234 102.586 12.8339 103.092 12.8339H106.247C106.753 12.8339 107.036 13.1234 107.036 13.6389V15.3796C107.507 13.7625 108.753 12.8162 110.32 12.5761Z\",\n fill: \"#2F2F33\"\n});\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M99.4307 12.5761C99.9682 12.4808 100.251 12.8338 100.251 13.3494V17.1451C100.251 17.6606 100.031 17.9184 99.6191 17.9184C97.8496 17.8549 96.1465 18.7552 96.1465 21.3293V28.1192C96.1465 28.6347 95.8638 28.9243 95.3577 28.9243H92.2026C91.6965 28.9243 91.4138 28.6347 91.4138 28.1192V13.6389C91.4138 13.1234 91.6965 12.8339 92.2026 12.8339H95.3577C95.8638 12.8339 96.1465 13.1234 96.1465 13.6389V15.3796C96.6211 13.7625 97.8637 12.8162 99.4307 12.5761Z\",\n fill: \"#2F2F33\"\n});\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.2169 34.7005H85.317V41.3969H84.2169V34.7005Z\",\n fill: \"#2F2F33\"\n});\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.567 36.6137H87.6289V41.3969H86.567V36.6137ZM89.8674 38.5461C89.8674 38.1443 89.7782 37.8542 89.5996 37.6756C89.4274 37.497 89.1627 37.4077 88.8056 37.4077C88.4739 37.4077 88.1869 37.513 87.9446 37.7234C87.7023 37.9275 87.5173 38.2432 87.3897 38.6705L87.1028 38.3357C87.192 38.0104 87.3292 37.7107 87.5141 37.4364C87.7054 37.1622 87.9446 36.9422 88.2316 36.7764C88.525 36.6042 88.8534 36.5181 89.2169 36.5181C89.7654 36.5181 90.1863 36.6711 90.4797 36.9772C90.7794 37.277 90.9293 37.6852 90.9293 38.2017V41.3969H89.8674V38.5461Z\",\n fill: \"#2F2F33\"\n});\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M91.4901 36.6137H92.6093L93.9773 40.5072H93.7286L95.0009 36.6137H96.0436L94.36 41.3969H93.279L91.4901 36.6137Z\",\n fill: \"#2F2F33\"\n});\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.8121 41.4926C98.3211 41.4926 97.881 41.3905 97.492 41.1864C97.1093 40.9824 96.8064 40.6954 96.5832 40.3255C96.3663 39.9492 96.2579 39.5123 96.2579 39.0149C96.2579 38.5238 96.3663 38.0901 96.5832 37.7139C96.8 37.3312 97.0966 37.0378 97.4728 36.8338C97.8491 36.6233 98.2541 36.5181 98.6878 36.5181C99.1151 36.5181 99.4945 36.6042 99.8262 36.7764C100.158 36.9422 100.416 37.1877 100.601 37.513C100.792 37.8318 100.888 38.2113 100.888 38.6514C100.888 38.8682 100.878 39.0723 100.859 39.2636H97.2815V38.4792H100.228L99.9027 38.9575C99.9346 38.46 99.8357 38.071 99.6061 37.7904C99.3829 37.5098 99.0704 37.3695 98.6686 37.3695C98.4008 37.3695 98.1648 37.4364 97.9607 37.5704C97.763 37.6979 97.61 37.8829 97.5015 38.1252C97.3931 38.3676 97.3389 38.6609 97.3389 39.0053C97.3389 39.3433 97.4059 39.6303 97.5398 39.8663C97.6737 40.0959 97.8587 40.2713 98.0947 40.3924C98.3306 40.5072 98.6017 40.5646 98.9078 40.5646C99.2012 40.5646 99.469 40.52 99.7114 40.4307C99.9537 40.3414 100.193 40.1884 100.429 39.9715L100.783 40.8038C100.515 41.027 100.212 41.1992 99.874 41.3204C99.536 41.4352 99.182 41.4926 98.8121 41.4926Z\",\n fill: \"#2F2F33\"\n});\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M103.352 41.4926C103.001 41.4926 102.669 41.4607 102.357 41.3969C102.044 41.3331 101.783 41.2438 101.572 41.129L101.783 40.1628C101.968 40.3032 102.21 40.4148 102.51 40.4977C102.809 40.5806 103.103 40.622 103.39 40.622C103.709 40.622 103.951 40.571 104.117 40.469C104.289 40.3606 104.375 40.2075 104.375 40.0098C104.375 39.8759 104.337 39.7738 104.26 39.7037C104.19 39.6271 104.082 39.5697 103.935 39.5315C103.788 39.4868 103.575 39.4422 103.294 39.3975C102.963 39.3529 102.679 39.2859 102.443 39.1966C102.213 39.101 102.025 38.9575 101.878 38.7662C101.738 38.5748 101.668 38.3197 101.668 38.0008C101.668 37.7202 101.738 37.4683 101.878 37.2451C102.025 37.0219 102.242 36.8465 102.529 36.719C102.822 36.585 103.179 36.5181 103.6 36.5181C103.887 36.5181 104.181 36.5468 104.48 36.6042C104.78 36.6552 105.029 36.7285 105.227 36.8242L105.007 37.7234C104.751 37.6086 104.503 37.5225 104.26 37.4651C104.018 37.4014 103.773 37.3695 103.524 37.3695C103.256 37.3695 103.045 37.4173 102.892 37.513C102.739 37.6023 102.663 37.7298 102.663 37.8956C102.663 38.0678 102.727 38.189 102.854 38.2591C102.982 38.3293 103.211 38.3931 103.543 38.4505L103.725 38.4792C104.107 38.5366 104.417 38.6163 104.653 38.7183C104.889 38.8204 105.067 38.9639 105.188 39.1488C105.316 39.3338 105.38 39.5761 105.38 39.8759C105.38 40.1884 105.3 40.4658 105.14 40.7081C104.981 40.9505 104.748 41.1418 104.442 41.2821C104.136 41.4224 103.773 41.4926 103.352 41.4926Z\",\n fill: \"#2F2F33\"\n});\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M108.366 41.4926C107.862 41.4926 107.46 41.3778 107.161 41.1482C106.861 40.9122 106.711 40.5264 106.711 39.9907V35.1309H107.773V39.828C107.773 40.0959 107.833 40.284 107.955 40.3924C108.076 40.4945 108.274 40.5455 108.548 40.5455C108.739 40.5455 108.953 40.5136 109.189 40.4498L109.17 41.3395C109.068 41.3905 108.946 41.4288 108.806 41.4543C108.666 41.4798 108.519 41.4926 108.366 41.4926ZM105.802 36.6137H109.141V37.5034H105.802V36.6137Z\",\n fill: \"#2F2F33\"\n});\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.053 36.6137H111.115V41.3969H110.053V36.6137ZM110.589 35.7241C110.353 35.7241 110.178 35.6667 110.063 35.5519C109.948 35.4307 109.891 35.2649 109.891 35.0544C109.891 34.8376 109.948 34.6718 110.063 34.557C110.178 34.4422 110.353 34.3848 110.589 34.3848C110.825 34.3848 111 34.4422 111.115 34.557C111.23 34.6718 111.287 34.8376 111.287 35.0544C111.287 35.2649 111.23 35.4307 111.115 35.5519C111 35.6667 110.825 35.7241 110.589 35.7241Z\",\n fill: \"#2F2F33\"\n});\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M112.295 36.6137H113.357V41.3969H112.295V36.6137ZM115.357 38.4409C115.357 38.0774 115.277 37.8159 115.117 37.6565C114.958 37.4906 114.725 37.4077 114.419 37.4077C114.1 37.4077 113.826 37.513 113.596 37.7234C113.373 37.9339 113.204 38.2432 113.089 38.6514L112.831 38.2974C112.908 37.9849 113.035 37.6947 113.214 37.4269C113.392 37.1526 113.619 36.9326 113.893 36.7668C114.167 36.601 114.473 36.5181 114.811 36.5181C115.143 36.5181 115.43 36.585 115.672 36.719C115.915 36.8465 116.1 37.0315 116.227 37.2738C116.355 37.5162 116.418 37.8031 116.418 38.1348V41.3969H115.357V38.4409ZM118.274 38.4409C118.274 38.0774 118.195 37.8159 118.035 37.6565C117.876 37.4906 117.643 37.4077 117.337 37.4077C117.018 37.4077 116.744 37.513 116.514 37.7234C116.291 37.9339 116.122 38.2432 116.007 38.6514L115.758 38.2974C115.828 37.9849 115.953 37.6947 116.131 37.4269C116.31 37.1526 116.536 36.9326 116.811 36.7668C117.085 36.601 117.394 36.5181 117.739 36.5181C118.064 36.5181 118.348 36.585 118.59 36.719C118.832 36.8465 119.017 37.0315 119.145 37.2738C119.272 37.5162 119.336 37.8031 119.336 38.1348V41.3969H118.274V38.4409Z\",\n fill: \"#2F2F33\"\n});\nvar _ref17 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M122.7 41.4926C122.209 41.4926 121.769 41.3905 121.38 41.1864C120.997 40.9824 120.694 40.6954 120.471 40.3255C120.254 39.9492 120.146 39.5123 120.146 39.0149C120.146 38.5238 120.254 38.0901 120.471 37.7139C120.688 37.3312 120.984 37.0378 121.361 36.8338C121.737 36.6233 122.142 36.5181 122.576 36.5181C123.003 36.5181 123.382 36.6042 123.714 36.7764C124.046 36.9422 124.304 37.1877 124.489 37.513C124.68 37.8318 124.776 38.2113 124.776 38.6514C124.776 38.8682 124.766 39.0723 124.747 39.2636H121.169V38.4792H124.116L123.791 38.9575C123.822 38.46 123.724 38.071 123.494 37.7904C123.271 37.5098 122.958 37.3695 122.556 37.3695C122.289 37.3695 122.053 37.4364 121.849 37.5704C121.651 37.6979 121.498 37.8829 121.389 38.1252C121.281 38.3676 121.227 38.6609 121.227 39.0053C121.227 39.3433 121.294 39.6303 121.428 39.8663C121.562 40.0959 121.747 40.2713 121.983 40.3924C122.218 40.5072 122.49 40.5646 122.796 40.5646C123.089 40.5646 123.357 40.52 123.599 40.4307C123.842 40.3414 124.081 40.1884 124.317 39.9715L124.671 40.8038C124.403 41.027 124.1 41.1992 123.762 41.3204C123.424 41.4352 123.07 41.4926 122.7 41.4926Z\",\n fill: \"#2F2F33\"\n});\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M125.599 36.6137H126.66V41.3969H125.599V36.6137ZM128.899 38.5461C128.899 38.1443 128.81 37.8542 128.631 37.6756C128.459 37.497 128.194 37.4077 127.837 37.4077C127.505 37.4077 127.218 37.513 126.976 37.7234C126.734 37.9275 126.549 38.2432 126.421 38.6705L126.134 38.3357C126.224 38.0104 126.361 37.7107 126.546 37.4364C126.737 37.1622 126.976 36.9422 127.263 36.7764C127.556 36.6042 127.885 36.5181 128.248 36.5181C128.797 36.5181 129.218 36.6711 129.511 36.9772C129.811 37.277 129.961 37.6852 129.961 38.2017V41.3969H128.899V38.5461Z\",\n fill: \"#2F2F33\"\n});\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.216 41.4926C132.712 41.4926 132.31 41.3778 132.011 41.1482C131.711 40.9122 131.561 40.5264 131.561 39.9907V35.1309H132.623V39.828C132.623 40.0959 132.684 40.284 132.805 40.3924C132.926 40.4945 133.124 40.5455 133.398 40.5455C133.589 40.5455 133.803 40.5136 134.039 40.4498L134.02 41.3395C133.918 41.3905 133.796 41.4288 133.656 41.4543C133.516 41.4798 133.369 41.4926 133.216 41.4926ZM130.652 36.6137H133.991V37.5034H130.652V36.6137Z\",\n fill: \"#2F2F33\"\n});\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M137.058 41.4926C136.593 41.4926 136.169 41.3937 135.786 41.196C135.403 40.9919 135.097 40.7018 134.868 40.3255C134.644 39.9492 134.533 39.5091 134.533 39.0053C134.533 38.5015 134.644 38.0614 134.868 37.6852C135.097 37.3089 135.403 37.0219 135.786 36.8242C136.169 36.6201 136.593 36.5181 137.058 36.5181C137.511 36.5181 137.929 36.6201 138.311 36.8242C138.7 37.0219 139.007 37.3089 139.23 37.6852C139.459 38.0614 139.574 38.5015 139.574 39.0053C139.574 39.5028 139.459 39.9428 139.23 40.3255C139.007 40.7018 138.7 40.9919 138.311 41.196C137.929 41.3937 137.511 41.4926 137.058 41.4926ZM137.058 40.5646C137.332 40.5646 137.578 40.5009 137.795 40.3733C138.012 40.2458 138.177 40.064 138.292 39.828C138.413 39.5857 138.474 39.3114 138.474 39.0053C138.474 38.6928 138.413 38.4186 138.292 38.1826C138.177 37.9466 138.012 37.7649 137.795 37.6373C137.578 37.5098 137.332 37.446 137.058 37.446C136.771 37.446 136.519 37.5098 136.302 37.6373C136.092 37.7649 135.926 37.9466 135.805 38.1826C135.69 38.4186 135.633 38.6928 135.633 39.0053C135.633 39.3178 135.69 39.5921 135.805 39.828C135.926 40.064 136.092 40.2458 136.302 40.3733C136.519 40.5009 136.771 40.5646 137.058 40.5646Z\",\n fill: \"#2F2F33\"\n});\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.925 41.4926C141.575 41.4926 141.243 41.4607 140.93 41.3969C140.618 41.3331 140.356 41.2438 140.146 41.129L140.356 40.1628C140.541 40.3032 140.784 40.4148 141.083 40.4977C141.383 40.5806 141.677 40.622 141.964 40.622C142.282 40.622 142.525 40.571 142.691 40.469C142.863 40.3606 142.949 40.2075 142.949 40.0098C142.949 39.8759 142.911 39.7738 142.834 39.7037C142.764 39.6271 142.656 39.5697 142.509 39.5315C142.362 39.4868 142.149 39.4422 141.868 39.3975C141.536 39.3529 141.252 39.2859 141.017 39.1966C140.787 39.101 140.599 38.9575 140.452 38.7662C140.312 38.5748 140.242 38.3197 140.242 38.0008C140.242 37.7202 140.312 37.4683 140.452 37.2451C140.599 37.0219 140.816 36.8465 141.103 36.719C141.396 36.585 141.753 36.5181 142.174 36.5181C142.461 36.5181 142.754 36.5468 143.054 36.6042C143.354 36.6552 143.603 36.7285 143.8 36.8242L143.58 37.7234C143.325 37.6086 143.076 37.5225 142.834 37.4651C142.592 37.4014 142.346 37.3695 142.097 37.3695C141.83 37.3695 141.619 37.4173 141.466 37.513C141.313 37.6023 141.237 37.7298 141.237 37.8956C141.237 38.0678 141.3 38.189 141.428 38.2591C141.555 38.3293 141.785 38.3931 142.117 38.4505L142.298 38.4792C142.681 38.5366 142.99 38.6163 143.226 38.7183C143.462 38.8204 143.641 38.9639 143.762 39.1488C143.89 39.3338 143.953 39.5761 143.953 39.8759C143.953 40.1884 143.874 40.4658 143.714 40.7081C143.555 40.9505 143.322 41.1418 143.016 41.2821C142.71 41.4224 142.346 41.4926 141.925 41.4926Z\",\n fill: \"#2F2F33\"\n});\nfunction SvgWarrenLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 144,\n height: 42,\n viewBox: \"0 0 144 42\",\n fill: \"none\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWarrenLogo);\nexport default __webpack_public_path__ + \"static/media/warren-logo.1de4cd65.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/integracao_warren_exterior.abe871c7.gif\";","import { Col, Image, Row, Typography } from \"antd\";\nimport { DrawerModal, DrawerModalProps } from \"../../DrawerModal\";\nimport { ReactComponent as WarrenLogo } from \"../../../assets/warren-logo.svg\";\nimport warrenIntegrationExample from \"../../../assets/integracao_warren_exterior.gif\";\n\ninterface WarrenIntegrationModalProps extends DrawerModalProps {}\n\nexport const WarrenIntegrationModal: React.FC = (\n props\n) => {\n return (\n \n \n \n \n Integrar com a Warren\n \n }\n >\n \n Para integrar com a Warren, realize os seguintes passos:\n \n
    \n
  • Acesse o aplicativo da Warren
  • \n
  • \n Na parte inferior da tela principal clique em{\" \"}\n \"Imposto de renda e DARF\"\n
  • \n
  • \n {\" \"}\n Clique no botão \"Continuar\"{\" \"}\n
  • \n
\n \n \n \n \n Após realizar esses passos, sua integração será concluída. Você então\n poderá atualizar a página atual para confirmar que a conexão funcionou\n corretamente.\n \n \n );\n};\n","import { message } from \"antd\";\nimport { useEffect, useState } from \"react\";\nimport apis from \"../../../services/apiExterior\";\nimport WarrenLogo from \"../../../assets/warren-logo.svg\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport WarrenIntegrationButton from \"./WarrenIntegrationButton\";\nimport { WarrenIntegrationModal } from \"./WarrenIntegrationModal\";\nimport { IntegrationStatusExterior } from \"../ExteriorIntegration\";\n\ninterface IGetEstadoIntegracao {\n success: (data: any) => void;\n error: (data: any) => void;\n}\ninterface IntegrationExteriorProps {\n item?: any;\n integrationCallback: (type: IntegrationStatusExterior) => void;\n}\n\nexport const IntegrationExteriorWarren: React.FC = ({\n integrationCallback,\n}) => {\n const { setIntegrations } = useBroker();\n const [, setLoading] = useState(true);\n const [integrado, setIntegrado] = useState(false);\n const [integrationModalVisible, setIntegrationModalVisible] = useState(false);\n\n const getEstadoIntegracao = ({ success, error }: IGetEstadoIntegracao) =>\n apis\n .get(\"/warren/integration-status\")\n .then(({ data }) => {\n setIntegrado(data.isIntegrated);\n success(data);\n setLoading(false);\n setIntegrations((integrations) => ({ ...integrations, warren: data }));\n })\n .catch((err) => {\n error(err);\n });\n\n useEffect(() => {\n getEstadoIntegracao({\n success: (data: any) => {\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n integrationCallback(\"integrado\");\n } else {\n integrationCallback(\"nao-integrado\");\n }\n },\n error: () => {\n integrationCallback(\"erro\");\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n if (integrationModalVisible) {\n interval = setInterval(\n () => {\n integrationCallback(\"carregando\");\n getEstadoIntegracao({\n success: (data: any) => {\n if (data.estado === \"carregando\") {\n integrationCallback(\"carregando\");\n }\n if (data.estado === \"erro\") {\n setLoading(false);\n setIntegrado(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n message.error(\n \"Algo deu errado na integração com a Warren, verifique suas credenciais\"\n );\n }\n\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n setIntegrationModalVisible(false);\n message.success(\"Integração feita com sucesso!\");\n integrationCallback(\"integrado\");\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com a Warren, verifique suas credenciais\"\n );\n },\n });\n },\n\n 3000\n );\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [integrationModalVisible, integrado]);\n\n return (\n <>\n \n {\n setIntegrationModalVisible(false);\n }}\n />\n \n );\n};\n","import clsx from \"clsx\";\nimport React from \"react\";\n// import { Typography } from \"antd\";\nimport { CheckCircleTwoTone, LoadingOutlined } from \"@ant-design/icons\";\nimport { Container } from \"../IntegrationButton/styles\";\nimport { Typography } from \"antd\";\n\ninterface IIntegrationButtonProps {\n alt: string;\n loading: boolean;\n integrado: boolean;\n setIntegrationModalVisible: Function;\n logo?: string;\n imgHeight?: boolean;\n handleClick?: Function;\n b3Link?: string;\n isB3LinkRedirect?: boolean;\n}\n\nconst BTGIntegrationButton: React.FC = ({\n alt,\n logo,\n b3Link,\n loading,\n integrado,\n imgHeight,\n isB3LinkRedirect,\n setIntegrationModalVisible,\n}) => {\n return (\n // \n !loading && setIntegrationModalVisible(true)}\n // style={{ cursor: \"default\"}}\n >\n {isB3LinkRedirect && b3Link && (\n \n .\n \n )}\n {alt}\n \n {integrado ? \"Integrado!\" : \"Clique para integrar\"}\n \n {!loading && integrado && (\n
\n \n
\n )}\n {loading && (\n
\n \n Isso pode demorar alguns minutos, aguarde\n
\n )}\n \n );\n};\n\nexport default BTGIntegrationButton;\n","export default __webpack_public_path__ + \"static/media/btgpactual.dc4bd1c0.svg\";","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M93.1694 16.9853H90.7512L90.5509 17.8771H93.1694C95.5651 17.8771 96.3734 18.5327 96.3734 20.4754V21.4158C95.7794 20.8042 94.729 20.4942 93.2447 20.4942C90.8766 20.4942 89.7255 21.5265 89.7255 23.6496V23.8041C89.7255 25.7947 90.8592 26.8042 93.0944 26.8042H93.6963C96.0642 26.8042 97.2654 25.7947 97.2654 23.8041V20.4754C97.2654 17.9964 96.0785 16.9853 93.1694 16.9853ZM96.3734 23.9328C96.3734 25.3574 95.6159 25.9125 93.6713 25.9125H93.2951C91.4185 25.9125 90.6177 25.2816 90.6177 23.8041V23.6496C90.6177 22.0446 91.3807 21.3603 93.1694 21.3603H93.32C95.4603 21.3603 96.3734 22.0216 96.3734 23.5721V23.9328ZM31.0734 18.7349L31.5491 16.3527H27.4544V13.0985L24.5801 13.5449V23.265C24.5801 26.6254 25.8619 27.6253 29.3567 27.6253H30.8868L31.3628 25.2641H29.5635C27.9714 25.2641 27.4542 24.8606 27.4542 23.0735V18.7349H31.0734ZM11.3247 11.9708V22.4145C11.3247 26.2856 13.0615 27.902 16.846 27.902C20.775 27.902 22.5121 26.3282 22.5121 22.4355V21.4361C22.5121 17.7778 20.8989 15.9909 17.3836 15.9909C16.2668 15.9909 15.0467 16.2248 14.2194 16.884V11.5029L11.3247 11.9708ZM16.9492 18.3303C18.9344 18.3303 19.6377 19.1388 19.6377 21.542V22.4355C19.6377 24.7749 18.9344 25.5836 16.9079 25.5836C14.8815 25.5836 14.1779 24.7749 14.1779 22.4143V21.202C14.1779 19.0536 14.8815 18.3303 16.9492 18.3303ZM38.0216 15.9909C34.2371 15.9909 32.5 17.6286 32.5 21.372V21.9463C32.5 25.4982 34.0097 27.221 37.5663 27.221C38.7038 27.221 39.8413 27.0087 40.6476 26.349V26.7748C40.6476 28.7743 39.8 29.433 37.8146 29.433H36.626C35.9465 29.4454 35.6378 29.5695 35.2283 30.2599L35.2261 30.2589C31.8163 35.8092 25.8966 39.1999 19.4453 39.1999C9.1519 39.1999 0.777894 30.5872 0.777894 19.9999C0.777894 9.41281 9.1519 0.800066 19.4453 0.800066C26.6755 0.800066 33.253 5.10669 36.3303 11.8087H37.188C34.0518 4.63217 27.0991 0 19.4453 0C8.72329 0 0 8.97199 0 19.9999C0 31.028 8.72329 40 19.4453 40C25.7511 40 31.5703 36.8904 35.1981 31.73H37.98C41.6403 31.73 43.5223 30.3052 43.5223 26.6682V21.1807C43.5223 17.5647 41.7232 15.9909 38.0216 15.9909ZM40.6686 22.3079C40.6686 24.3073 39.9861 24.9239 38.0218 24.9239C35.8088 24.9239 35.3746 24.137 35.3746 21.8189V21.4574C35.3746 19.1598 35.7675 18.3303 38.0216 18.3303C40.2341 18.3303 40.6686 19.1388 40.6686 21.4784V22.3079ZM99.1075 26.8042H100V13.2958H99.1078L99.1075 26.8042ZM79.0062 17.8773L79.2064 16.9853H75.2157V14.4351L74.2985 14.6036V23.3397C74.2985 25.8276 75.2049 26.7528 77.642 26.7528H78.9599L79.1266 25.861H77.642C75.8052 25.861 75.2157 25.2611 75.2157 23.3909V17.8776L79.0062 17.8773ZM87.2674 22.927C87.2674 25.2261 86.568 25.9639 84.3897 25.9639C82.2757 25.9639 81.562 25.1978 81.562 22.927V16.9853H80.6448V22.927C80.6448 25.7544 81.6949 26.8557 84.3895 26.8557C87.0674 26.8557 88.1596 25.7179 88.1596 22.927V16.9853H87.2674V22.927ZM67.088 22.282V21.4561C67.088 18.8137 67.9656 17.8773 70.4423 17.8773H72.535L72.7344 16.9853H70.4426C67.4886 16.9853 66.1706 18.364 66.1706 21.4559V22.282C66.1706 25.3738 67.4884 26.7528 70.4426 26.7528H72.5594L72.7596 25.861H70.4426C68.0283 25.861 67.088 24.8575 67.088 22.282ZM60.4838 16.9853H58.0653L57.8656 17.8771H60.4838C62.8605 17.8771 63.6624 18.5327 63.6624 20.4754V21.4158C63.0688 20.8042 62.0184 20.4942 60.5337 20.4942C58.166 20.4942 57.0149 21.5265 57.0149 23.6496V23.8041C57.0149 25.7947 58.1564 26.8042 60.4083 26.8042H61.0104C63.3624 26.8042 64.5548 25.7947 64.5548 23.8041V20.4754C64.5548 17.9964 63.3753 16.9853 60.4838 16.9853ZM63.6624 23.9328C63.6624 25.3761 62.9369 25.9125 60.9854 25.9125H60.6092C58.7155 25.9125 57.9071 25.2816 57.9071 23.8041V23.6496C57.9071 22.0446 58.6702 21.3603 60.4586 21.3603H60.6092C62.7492 21.3603 63.6624 22.0216 63.6624 23.5721V23.9328ZM51.5032 16.8305C48.6746 16.8305 47.3571 18.2677 47.3571 21.3527V29.7456H48.2493V25.4359C48.895 26.2991 50.0987 26.8042 51.5533 26.8042C54.3689 26.8042 55.6246 25.4093 55.6246 22.282V21.3272C55.6246 18.2173 54.3533 16.8305 51.5032 16.8305ZM54.7069 22.2818C54.7069 24.9285 53.8524 25.9122 51.5533 25.9122C49.3775 25.9122 48.2742 24.821 48.2742 22.6686V21.3527C48.2742 18.7737 49.2098 17.722 51.5032 17.722C53.8086 17.722 54.7069 18.7326 54.7069 21.3272V22.2818Z\",\n fill: \"#121212\"\n});\nfunction SvgBtgpactual(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 100,\n height: 40,\n viewBox: \"0 0 100 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBtgpactual);\nexport default __webpack_public_path__ + \"static/media/btgpactual.dc4bd1c0.svg\";\nexport { ForwardRef as ReactComponent };","export default __webpack_public_path__ + \"static/media/integracao_btg_exterior.b48b1d0d.gif\";","import { Col, Image, Row, Typography } from \"antd\";\nimport { DrawerModal, DrawerModalProps } from \"../../DrawerModal\";\nimport { ReactComponent as BTGLogo } from \"../../../assets/btgpactual.svg\";\nimport btgIntegrationExample from \"../../../assets/integracao_btg_exterior.gif\";\n\ninterface BTGIntegrationModalProps extends DrawerModalProps {}\n\nexport const BTGIntegrationModal: React.FC = (\n props\n) => {\n return (\n \n \n \n \n Integrar com a BTG\n \n }\n >\n \n Para integrar com a BTG, realize os seguintes passos:\n \n
    \n
  • Acesse a sua conta internacional dentro do aplicativo da BTG
  • \n
  • No menu inicial clique em \"Mais opções\"
  • \n
  • Clique em \"Imposto de Renda com Velotax\" e aceite os termos
  • \n
\n \n \n \n \n Após realizar esses passos, sua integração será concluída. \n Você então poderá atualizar a página atual para confirmar que a conexão funcionou corretamente.\n \n \n );\n};\n","import { message } from \"antd\";\nimport { useState, useEffect } from \"react\";\nimport apis from \"../../../services/apiExterior\";\nimport BTGIntegrationButton from \"./BTGIntegrationButton\";\nimport BTGLogo from \"../../../assets/btgpactual.svg\";\nimport { BTGIntegrationModal } from \"./BTGIntegrationModal\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { IntegrationStatusExterior } from \"../ExteriorIntegration\";\n\ninterface IntegrationExteriorProps {\n item?: any;\n integrationCallback: (type: IntegrationStatusExterior, blockRedirect?: boolean) => void;\n}\ninterface IGetEstadoIntegracao {\n success: (data: any) => void;\n error: (data: any) => void;\n}\n\nexport const IntegrationExteriorBTG: React.FC = ({\n integrationCallback,\n}) => {\n const { setIntegrations } = useBroker();\n\n const [, setLoading] = useState(true);\n const [integrado, setIntegrado] = useState(false);\n const [integrationModalVisible, setIntegrationModalVisible] = useState(false);\n\n const getEstadoIntegracao = ({ success, error }: IGetEstadoIntegracao) =>\n apis\n .get(\"/btg/integration-status\")\n .then(({ data }) => {\n setIntegrado(data.isIntegrated);\n success(data);\n setLoading(false);\n setIntegrations((integrations) => ({ ...integrations, btg: data }));\n })\n .catch((err) => {\n error(err);\n });\n\n useEffect(() => {\n getEstadoIntegracao({\n success: (data) => {\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n integrationCallback(\"integrado\", true);\n } else {\n integrationCallback(\"nao-integrado\", true);\n }\n },\n error: () => {\n integrationCallback(\"erro\");\n },\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n if (integrationModalVisible) {\n interval = setInterval(\n () => {\n integrationCallback(\"carregando\");\n getEstadoIntegracao({\n success: (data: any) => {\n if (data.estado === \"carregando\") {\n integrationCallback(\"carregando\");\n }\n if (data.estado === \"erro\") {\n setLoading(false);\n setIntegrado(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n message.error(\n \"Algo deu errado na integração com a BTG, verifique suas credenciais\"\n );\n }\n\n if (data.isIntegrated) {\n setLoading(false);\n setIntegrado(true);\n setIntegrationModalVisible(false);\n message.success(\"Integração feita com sucesso!\");\n integrationCallback(\"integrado\");\n }\n },\n error: (err: any) => {\n setLoading(false);\n integrationCallback(\"erro\");\n setIntegrationModalVisible(false);\n if (err.response?.data?.message) {\n return message.error(err.response?.data?.message);\n }\n return message.error(\n \"Algo deu errado na integração com a BTG, verifique suas credenciais\"\n );\n },\n });\n },\n\n 3000\n );\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [integrationModalVisible, integrado]);\n\n return (\n <>\n \n {\n setIntegrationModalVisible(false);\n }}\n />\n \n );\n};\n","import { Col, Row } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport { IntegrationExteriorXP } from \"../XpIntegration\";\nimport { useBroker } from \"../../../contexts/BrokerContext\";\nimport { IntegrationExteriorWarren } from \"../WarrenIntegration\";\nimport { IntegrationExteriorBTG } from \"../BTGIntegration\";\n\ninterface IExteriorIntegrationProps {\n id?: string;\n data?: any;\n dependentId?: string;\n setLoadingIntegration?: React.Dispatch>;\n setData?: ({ id, value, customData, from }: any, patch?: any) => void;\n customActions?: { [id: string]: (data: any) => void };\n}\n\nexport type IntegrationStatusExterior = \"carregando\" | \"integrado\" | \"erro\" | \"nao-integrado\";\n\nconst ExteriorIntegration = (props: IExteriorIntegrationProps) => {\n const { id, setData } = props;\n const navigate = useNavigate();\n const { currentBroker, searchParams } = useBroker();\n\n const handleIntegration = (type: IntegrationStatusExterior, blockRedirect?: boolean) => {\n setData?.({ id, value: type === \"carregando\" }, false);\n if (type === \"carregando\") return;\n else {\n props.setLoadingIntegration?.(false);\n }\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ExteriorIntegration;\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n padding: 64px 32px 32px;\n\n h1 {\n width: 700px;\n margin: 0 auto 1.5rem;\n font-weight: 400;\n font-size: 2rem;\n position: relative;\n line-height: 2.5rem;\n padding-bottom: 1rem;\n color: var(--velotax-font-color-light);\n\n :after {\n content: \"\";\n position: absolute;\n left: 0;\n bottom: 0;\n height: 2px;\n width: 100px;\n background-color: var(--ant-primary-color);\n }\n }\n\n div.ant-typography {\n margin: 0 auto 1.5rem;\n font-size: 1rem;\n width: 700px;\n line-height: 1.5rem;\n text-align: justify;\n color: var(--velotax-font-color);\n }\n\n @media only screen and (max-device-width: 812px) {\n padding: 24px 24px 0;\n\n h1,\n div.ant-typography {\n width: 100%;\n }\n }\n`;\n\nexport const Content = styled.div`\n .container-buttons {\n display: flex;\n width: 100%;\n justify-content: space-between;\n button {\n margin: 0px 0px 12px;\n :first-of-type {\n margin-right: 8px;\n }\n }\n }\n padding: 32px;\n margin: 0 auto;\n width: 700px;\n border-radius: 4px;\n background-color: var(--velotax-background-color);\n\n .add-button {\n display: flex;\n margin: 0 0 1.5rem auto;\n background-color: var(--ant-primary-color);\n }\n\n .ant-list {\n padding: 0;\n border-radius: 4px;\n background-color: var(--velotax-background-color-ghost);\n .ant-list-item {\n padding: 16px;\n &.error-border {\n border: 1px solid var(--ant-error-color);\n }\n :first-child {\n border-radius: 4px 4px 0 0;\n }\n :last-child {\n border-radius: 0 0 4px 4px;\n }\n }\n .error-border + .error-border {\n border-top: none;\n }\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color-light);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n\n .alert-icon {\n padding-top: 1px;\n fill: var(--ant-error-color) !important;\n }\n\n @media only screen and (max-device-width: 812px) {\n width: calc(100% + 48px);\n margin-left: -24px;\n padding: 24px 24px 64px;\n\n .container-buttons {\n flex-wrap: wrap;\n button {\n margin: 0 0 8px !important;\n width: 100%;\n }\n }\n }\n`;\n","import moment from \"moment\";\nimport { checkDateExpiration, checkDateLimit, isValidDate } from \"../../utils\";\nimport {\n validationFieldRequired,\n validationNumberFieldPositive,\n} from \"../../utils/formValidations\";\nimport {\n CurrencyFormItem,\n DateFormItem,\n NumberFormItem,\n TextFormItem,\n} from \"../../constants/formItems\";\n\nconst TransferenciaCustodiaFormItems = {\n id: TextFormItem({\n name: \"id\",\n label: \"Id\",\n hidden: true,\n }),\n codigo: (disabled: boolean) =>\n TextFormItem({\n name: \"codigo\",\n label: \"Código\",\n disabled,\n rules: validationFieldRequired,\n }),\n quantidade: (disabled: boolean) =>\n NumberFormItem({\n name: \"quantidade\",\n label: \"Quantidade\",\n disabled,\n rules: validationFieldRequired,\n decimalScale: 8,\n }),\n dataCompra: DateFormItem({\n name: \"dataCompra\",\n mask: \"99/99/9999\",\n label: \"Data de compra\",\n placeholder: \"DD/MM/YYYY\",\n rules: [\n {\n validator: (rule, value) =>\n !value || !isValidDate(value)\n ? Promise.reject(new Error(\"Informe uma data válida\"))\n : value && !checkDateLimit(\"2017-01-01\", value)\n ? Promise.reject(\n new Error(\"Informe uma data a partir de 01/01/2017\")\n )\n : value &&\n !checkDateExpiration(moment().add(1, \"day\").toString(), value)\n ? Promise.reject(\n new Error(\n `Informe uma data até ${moment().format(\"DD/MM/YYYY\")}`\n )\n )\n : Promise.resolve(),\n },\n ],\n }),\n valorCompraUSDOrigemBRA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valorCompraUSDOrigemBRA\",\n label: \"Valor de compra (USD, Origem BRA)\",\n placeholder: \"US$ 0,00\",\n rules: validationNumberFieldPositive,\n }),\n valorCompraUSDOrigemEUA: CurrencyFormItem({\n prefix: \"US$ \",\n name: \"valorCompraUSDOrigemEUA\",\n label: \"Valor de compra (USD, Origem EUA)\",\n placeholder: \"US$ 0,00\",\n rules: validationNumberFieldPositive,\n }),\n};\n\nexport const TransferenciaCustodiaRows = (disabled: boolean) => [\n [TransferenciaCustodiaFormItems.id],\n [\n TransferenciaCustodiaFormItems.codigo(disabled),\n TransferenciaCustodiaFormItems.quantidade(disabled),\n ],\n [TransferenciaCustodiaFormItems.dataCompra],\n [TransferenciaCustodiaFormItems.valorCompraUSDOrigemBRA],\n [TransferenciaCustodiaFormItems.valorCompraUSDOrigemEUA],\n];\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n .ant-list {\n padding: 0;\n border-radius: 4px;\n background-color: var(--velotax-background-color-ghost);\n .ant-list-item {\n padding: 16px;\n &.error-border {\n border: 1px solid var(--ant-error-color);\n }\n :first-child {\n border-radius: 4px 4px 0 0;\n }\n :last-child {\n border-radius: 0 0 4px 4px;\n }\n }\n .error-border + .error-border {\n border-top: none;\n }\n .ant-list-item-action > li {\n padding: 0;\n }\n }\n .ant-list-item-action > li,\n .ant-list-item-meta-title,\n .ant-list-item-meta-description {\n color: var(--velotax-font-color-light);\n }\n .ant-list-item-meta-description {\n opacity: 0.75;\n }\n\n .alert-icon {\n fill: var(--ant-error-color) !important;\n }\n\n .row-margin {\n margin-top: 24px;\n }\n`;\n","import { Button } from \"@mui/material\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { Col, List, Row, Skeleton, Tooltip, Typography } from \"antd\";\nimport { Dispatch, SetStateAction, useEffect, useState } from \"react\";\nimport { AiOutlineDelete, AiOutlineInfoCircle } from \"react-icons/ai\";\nimport {\n LoadingOutlined,\n DownloadOutlined,\n PlusCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Container } from \"./styles\";\nimport { formatCurrency } from \"../../../../utils\";\nimport AntButton from \"../../../../components/Button\";\nimport { FormModal } from \"../../../../components/FormModal\";\nimport { DoacoesHerancasRows } from \"../../../../constants/darfBolsa\";\nimport moment from \"moment-timezone\";\n\nexport interface DoacoesHerancasProps {\n changed: boolean;\n loadingPut: boolean;\n loadingGet: boolean;\n setLoadingPut: Dispatch>;\n setLoadingGet: Dispatch>;\n doacaoHerancaEdit: any;\n doacoesHerancas: any[];\n showAddPositionModal: boolean;\n downloadDoacoesHerancasExcel: () => Promise;\n setDoacaoHerancaEdit: Dispatch>;\n setShowAddPositionModal: Dispatch>;\n saveDoacoesHerancas: () => void;\n addDoacaoHeranca: (item: any) => void;\n editDoacaoHeranca: (item: any) => void;\n handleEditDoacaoHeranca: (item: any, index: number) => void;\n handleRemoveDoacaoHeranca: (item: any, index: number) => void;\n getOldTransactionsInit: () => void;\n}\n\nexport const DoacoesHerancas: React.FC = ({\n loadingGet,\n loadingPut,\n doacoesHerancas,\n downloadDoacoesHerancasExcel,\n setDoacaoHerancaEdit,\n setShowAddPositionModal,\n handleEditDoacaoHeranca,\n handleRemoveDoacaoHeranca,\n addDoacaoHeranca,\n editDoacaoHeranca,\n showAddPositionModal,\n doacaoHerancaEdit,\n}) => {\n const [downloading, setDownloading] = useState(false);\n const [orders, setOrders] = useState([]);\n\n useEffect(()=>{\n if (doacoesHerancas?.length > 0)\n {\n const ordersLocal: any[] = [];\n doacoesHerancas?.map((op) => {\n op?.orders.map((or: any)=> {\n or['dateView'] = moment(or?.date, [\"DD/MM/YYYY\",\"YYYY-MM-DD\",]).format(\"DD/MM/YYYY\");\n ordersLocal.push(or);\n })\n })\n setOrders(ordersLocal);\n }\n }, [doacoesHerancas])\n\n async function download() {\n setDownloading(true);\n const file = await downloadDoacoesHerancasExcel();\n if (file) {\n const blob = new Blob([file], { type: \"xlsx\" });\n const element = document.createElement(\"a\");\n element.href = URL.createObjectURL(blob);\n element.download = \"doacoes_herancas.xlsx\";\n document.body.appendChild(element);\n element.click();\n element.remove();\n }\n setDownloading(false);\n }\n\n return (\n \n \n \n \n Doações ou heranças\n \n \n \n \n {orders.length === 0 ? (\n
\n ) : (\n \n ) : (\n \n )\n }\n onClick={download}>\n BAIXAR EXCEL\n \n )}\n {\n setDoacaoHerancaEdit({});\n setShowAddPositionModal(true);\n }}\n startIcon={\n loadingPut || loadingGet ? (\n \n ) : (\n \n )\n }>\n Adicionar Doação/Herança\n \n \n \n \n !oldPosition.lendingSide\n ) ?? []\n }\n renderItem={(item, index) => (\n \n \n }\n type=\"text\"\n />\n ,\n ]\n : []),\n }\n onClick={() => handleEditDoacaoHeranca(item, index)}\n />,\n }\n onClick={() => handleRemoveDoacaoHeranca(item, index)}\n />,\n ]}>\n \n {item.code}
}\n description={\n <>\n
\n
\n Data: {moment(item.date, [\n \"DD/MM/YYYY\",\n \"YYYY-MM-DD\",\n ]).format(\"DD/MM/YYYY\")}\n
\n
\n Quantidade: {item.quantity}\n
\n
\n Custo médio:{\" \"}\n {formatCurrency(item.price ?? 0)}\n
\n
\n \n }\n />\n \n \n )}\n />\n \n
\n\n {\n setShowAddPositionModal(false);\n }}\n title={\n doacaoHerancaEdit?._id || doacaoHerancaEdit?.id\n ? \"Editar ativo\"\n : \"Adicionar ativo\"\n }\n itemToEdit={\n doacaoHerancaEdit.id || doacaoHerancaEdit.code\n ? doacaoHerancaEdit\n : undefined\n }\n />\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { DoacoesHerancaData, Question } from \"./interfaces\";\nimport {\n DoacoesHerancas,\n DoacoesHerancasProps,\n} from \"./Components/DoacoesHerancas\";\n\nexport const validateDoacoesHerancaData = (data: DoacoesHerancaData) => {\n return true;\n};\n\nexport const questions: Question[] = [\n {\n id: \"doacoesHerancas\",\n title: \"Complete seus dados de doações e heranças\",\n children: (\n \n Lembre-se de clicar em finalizar para salvar seus dados\n \n ),\n formItems: [\n {\n name: \"doacoesHerancas\",\n FormItem: ({ rest }) => (\n \n ),\n },\n ],\n },\n];\n","import styled, { css } from \"styled-components\";\n\nexport const BolsaManualContainer = styled.div`\n height: 100%;\n overflow-y: hidden;\n h2 {\n margin: 0 0 0 0 !important;\n }\n .beauty-scrollbar{\n margin-top: 64px;\n }\n`;\n\nexport const Container = styled.div`\n height: calc(100vh - 64px);\n overflow: hidden;\n`;\n\nexport const QuestionContainer = styled.div<{ width?: string | number }>`\n display: flex;\n height: 100%;\n overflow-y: auto;\n align-items: center;\n flex-direction: column;\n h2 {\n font-size: 2rem;\n font-weight: 400;\n line-height: 2.5rem;\n position: relative;\n color: var(--velotax-text-color);\n margin: 64px auto 0;\n padding: 0 0 1rem;\n ${({ width }) =>\n width\n ? css`\n width: ${width} !important;\n `\n : \"\"}\n &::after {\n content: \"\";\n left: 0;\n bottom: 0;\n width: 100px;\n height: 2px;\n position: absolute;\n background-color: var(--ant-primary-color);\n }\n }\n\n @media only screen and (max-width: 812px) {\n padding: 32px 0 0;\n h2 {\n width: 100% !important;\n padding: 0 24px 12px;\n margin: 0;\n &::after {\n left: 24px;\n }\n }\n }\n`;\n\nexport const Question = styled.div<{ width?: string | number }>`\n height: fit-content;\n padding: 32px;\n margin: 24px 0 96px;\n border-radius: 4px;\n background-color: var(--velotax-background-color);\n border: 1px solid var(--velotax-background-color-ghost);\n ${({ width }) =>\n width\n ? css`\n width: ${width} !important;\n `\n : \"\"}\n h2 {\n font-size: 24px;\n padding-bottom: 12px;\n font-weight: 400;\n position: relative;\n color: var(--velotax-text-color);\n margin: 32px 0 0;\n &::after {\n content: \"\";\n left: 0;\n bottom: 0;\n width: 100px;\n height: 2px;\n position: absolute;\n background-color: var(--ant-primary-color);\n }\n }\n @media only screen and (min-width: 1025px) {\n width: 48%;\n }\n @media only screen and (max-width: 1024px) {\n width: 72% !important;\n padding: 32px;\n h2 {\n &::before {\n left: -32px;\n }\n }\n }\n @media only screen and (max-width: 812px) {\n width: 100% !important;\n padding: 24px 24px 48px;\n border: none;\n border-radius: 0;\n margin: 24px 0 0;\n h2 {\n padding: 0 0 12px;\n &::before {\n left: -24px;\n }\n }\n .ant-descriptions {\n .ant-descriptions-item-content {\n font-size: 12px;\n }\n .ant-descriptions-item-label {\n width: 30%;\n font-size: 12px;\n }\n }\n }\n`;\n","import { Darf } from \"../../pages/Darf\";\nimport { Bolsa } from \"../../pages/Bolsa\";\nimport { Cripto } from \"../../pages/Cripto\";\nimport { Imoveis } from \"../../pages/Imoveis\";\nimport { Exterior } from \"../../pages/Exterior\";\nimport { Historic } from \"../../pages/Historic\";\nimport { HistoricCrypto } from \"../../pages/HistoricCrypto\";\nimport { Autonomos } from \"../../pages/Autonomos\";\nimport { DarfBolsa } from \"../../pages/DarfBolsa\";\nimport { Regulation } from \"../../pages/Regulation\";\nimport { ReportBolsa } from \"../../pages/ReportBolsa\";\nimport { BolsaManual } from \"../../pages/BolsaManual\";\nimport { Rendimentos } from \"../../pages/Rendimentos\";\nimport { DarfExterior } from \"../../pages/DarfExterior\";\nimport { NovoCadastro } from \"../../pages/NovoCadastro\";\nimport { HistoricBolsa } from \"../../pages/HistoricBolsa\";\nimport { HistoricAutonomos } from \"../../pages/HistoricAutonomos\";\nimport { ReportExterior } from \"../../pages/ReportExterior\";\nimport { IntegrationBolsa } from \"../../pages/IntegrationBolsa\";\nimport { IntegrationCrypto } from \"../../pages/IntegrationCrypto\";\nimport { ReportCripto } from \"../../pages/ReportCripto\";\nimport { ImoveisCalculadora } from \"../../pages/ImoveisCalculadora\";\nimport { DividendosBolsa } from \"../../pages/DividendosBolsa\";\nimport { DividendosExterior } from \"../../pages/DividendosExterior\";\nimport { IntegrationExterior } from \"../../pages/IntegrationExterior\";\nimport {UserHasAccount} from \"../../pages/IntegrationBolsa/UserHasAccount\";\nimport {UserNoHasAccount} from \"../../pages/IntegrationBolsa/UserNoHasAccount\";\nimport {UserForgotPasswordB3} from \"../../pages/IntegrationBolsa/UserForgotPasswordB3\";\nimport { TransferenciaCustodia } from \"../../pages/TransferenciaCustodia\";\nimport { DoacoesHeranca } from \"../../pages/DoacoesHeranca\";\n\nexport const Pages: { [key: string]: any } = {\n TransferenciaCustodia,\n Bolsa,\n Cripto,\n Imoveis,\n Exterior,\n Autonomos,\n IntegrationBolsa,\n Darf,\n DarfBolsa,\n DarfExterior,\n Historic,\n HistoricCrypto,\n HistoricBolsa,\n HistoricAutonomos,\n ReportBolsa,\n ReportExterior,\n ReportCripto,\n Regulation,\n Rendimentos,\n IntegrationCrypto,\n IntegrationExterior,\n BolsaManual,\n DoacoesHeranca,\n ImoveisCalculadora,\n DividendosBolsa,\n DividendosExterior,\n NovoCadastro,\n UserHasAccount,\n UserNoHasAccount,\n UserForgotPasswordB3\n};\n","import moment from \"moment\";\nimport { Button } from \"@mui/material\";\nimport { FaRegEdit } from \"react-icons/fa\";\nimport { useNavigate } from \"react-router-dom\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport {\n Button as AntButton,\n Col,\n List,\n Row,\n Skeleton,\n Tooltip,\n Typography,\n} from \"antd\";\nimport {\n AiOutlineCheck,\n AiOutlineDelete,\n AiOutlineInfoCircle,\n} from \"react-icons/ai\";\nimport { Button as MuiButton } from \"@mui/material\";\nimport { formatCurrency } from \"../../utils\";\nimport { Container, Content } from \"./styles\";\nimport { FormModal } from \"../../components/FormModal\";\nimport { TransferenciaCustodiaRows } from \"./formItems\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport { useTransferenciaCustodia } from \"../../contexts/TransferenciaCustodiaContext\";\nimport { useNotasCorretagem } from \"../IntegrationBolsa/NotasCorretagem/useNotasCorretagem\";\nimport { useState } from \"react\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport UploadVelotax from \"../../components/UploadVelotax\";\nimport { useCarteira } from \"../../contexts/CarteiraContext\";\n\ninterface TransferenciaCustodiaProps {}\n\nexport const TransferenciaCustodia: React.FC<\n TransferenciaCustodiaProps\n> = () => {\n const [showNotasCorretagemModal, setShowNotasCorretagemModal] = useState(false);\n const [loadingSend, setLoadingSend] = useState(false);\n const navigate = useNavigate();\n const {\n add,\n edit,\n remove,\n ativo,\n ativos,\n loading,\n handleAdd,\n handleEdit,\n handleRemove,\n showFormModal,\n showDeleteModal,\n closeFormModal,\n closeDeleteModal,\n saveAtivos,\n isInvalidItem,\n } = useTransferenciaCustodia();\n const { sendNotasCustodyTransfer, uploadProps } = useNotasCorretagem();\n const { handleRefresh } = useCarteira()\n\n const handleSave = () => {\n handleRefresh()\n saveAtivos()\n }\n\n return (\n \n Transferência de custódia\n \n Insira manualmente as informações do seu histórico de operação para os\n ativos em que foi realizada a transferência de custódia. A inserção\n manual é necessária pois não possuímos acesso às informações do seu\n histórico transacionado em outra corretora.\n \n \n
\n setShowNotasCorretagemModal(true)}\n >\n Importar nota de corretagem\n \n \n Adicionar ativo\n \n
\n\n (\n \n \n }\n />\n
,\n ]\n : []),\n }\n onClick={() => handleEdit(item, index)}\n />,\n }\n onClick={() => handleRemove(item, index)}\n />,\n ]}\n >\n \n {item.codigo}}\n description={\n <>\n
\n
\n Quantidade: {item.quantidade}\n
\n {item.dataCompra && (\n
\n Data de compra:{\" \"}\n \n {item.dataCompra.includes(\"/\")\n ? item.dataCompra\n : moment\n .utc(item.dataCompra)\n ?.format(\"DD/MM/YYYY\")}\n \n
\n )}\n
\n Valor de compra (USD, Origem BRA):{\" \"}\n \n {formatCurrency(item.valorCompraUSDOrigemBRA ?? 0, \"USD\")}\n \n
\n
\n Valor de compra (USD, Origem EUA):{\" \"}\n \n {formatCurrency(item.valorCompraUSDOrigemEUA ?? 0, \"USD\")}\n \n
\n
\n \n }\n />\n
\n \n )}\n />\n \n Lembre-se de clicar em finalizar para salvar seus dados\n \n \n \n {\n navigate(\"/velotax/exterior\");\n }}\n >\n Voltar\n \n \n \n }\n >\n Finalizar\n \n \n \n add({ ...at, orderId: ativo?.orderId })}\n edit={(at: any) => edit({ ...at, orderId: ativo?.orderId })}\n itemToEdit={ativo}\n onCancel={closeFormModal}\n visibility={showFormModal}\n rows={TransferenciaCustodiaRows(!!ativo?.id)}\n title={ativo ? \"Editar ativo\" : \"Adicionar ativo\"}\n />\n closeDeleteModal()}\n onOk={() => Promise.resolve(remove(ativo!))}\n body=\"Você realmente quer deletar esse ativo?\"\n />\n {\n if (!loadingSend) {\n setShowNotasCorretagemModal(false);\n }\n }}\n >\n \n Você pode carregar as notas de corretagem para trazer automaticamente suas transferencias de custódia\n \n \n \n \n sendNotasCustodyTransfer(setLoadingSend, setShowNotasCorretagemModal)}\n >\n Finalizar\n \n \n \n \n \n \n );\n};\n","import { Typography } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiOutlineLock } from \"react-icons/ai\";\nimport { Card } from \"./Cards\";\nimport { itensBolsa } from \"./itensBolsa\";\nimport Button from \"../../components/Button\";\nimport { HomeContainer } from \"../Home/styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\n\nexport const Bolsa = () => {\n const navigate = useNavigate();\n const { integration } = useBroker();\n const { hasPlan, showUserPlanModal } = useAuth();\n\n const handleOpenPlanModal = () => {\n showUserPlanModal(true);\n };\n\n return (\n \n
\n
\n Bolsa de valores\n \n Selecione a opção que deseja utilizar\n \n
\n {itensBolsa.slice(0, 3).map((item) => (\n {\n navigate(\"/velotax/bolsa-integration\");\n }\n : (item.premium && (!hasPlan || !hasPlan.premium))\n ? () => {\n handleOpenPlanModal();\n }\n : undefined\n }\n >\n {item.content}\n {item.description && (\n
{item.description}
\n )}\n {item.premium && (!hasPlan || !hasPlan.premium) && (\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n )}\n \n ))}\n
\n
\n
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { Card } from \"../Bolsa/Cards\";\nimport { itensCripto } from \"./itensCripto\";\nimport { HomeContainer } from \"../Home/styles\";\nimport { CardHorizontal } from \"../../components/CardHorizontal\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { AiOutlineLock } from \"react-icons/ai\";\nimport Button from \"../../components/Button\";\nimport { isMobile } from \"../../utils\";\nimport { itensCriptoSemLogo } from \"./itensCriptoSemLogos\";\n\nexport const Cripto = () => {\n const { hasPlan, showUserPlanModal } = useAuth();\n\n const handleOpenPlanModal = () => {\n showUserPlanModal(true);\n };\n\n return (\n \n
\n
\n Criptoativos\n \n Selecione a opção que deseja utilizar\n \n
\n {(itensCriptoSemLogo).map((item) => (\n {\n handleOpenPlanModal();\n }\n : undefined\n }\n >\n {item.content}\n {item.description && (\n
{item.description}
\n )}\n {(true)\n ?\n null\n : item.premium && (!hasPlan || !hasPlan.premium) && (\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n )}\n \n ))}\n
\n
\n
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { Card } from \"../Bolsa/Cards\";\nimport { itensImoveis } from \"./itensImoveis\";\nimport { HomeContainer } from \"../Home/styles\";\n\nexport const Imoveis = () => {\n return (\n \n
\n
\n Imóveis\n \n Selecione a opção que deseja utilizar\n \n
\n {itensImoveis.slice(0, 2).map((item) => (\n \n {item.content}\n {item.description && (\n
{item.description}
\n )}\n \n ))}\n
\n
\n
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { AiOutlineLock } from \"react-icons/ai\";\nimport { Card } from \"../Bolsa/Cards\";\nimport Button from \"../../components/Button\";\nimport { HomeContainer } from \"../Home/styles\";\nimport { itensExterior } from \"./itensExterior\";\nimport { useAuth } from \"../../contexts/AuthContext\";\n\nexport const Exterior = () => {\n const { hasPlan, showUserPlanModal } = useAuth();\n\n const handleOpenPlanModal = () => {\n showUserPlanModal(true);\n };\n\n return (\n \n
\n
\n Ativos no exterior\n \n Selecione a opção que deseja utilizar\n \n
\n {itensExterior.map((item: any) => (\n {\n handleOpenPlanModal();\n }\n : undefined\n }\n >\n {item.content}\n {item.description && (\n
{item.description}
\n )}\n {\n item.showToBasic && (hasPlan && hasPlan.basic)\n ?\n null\n : item.premium && (!hasPlan || !hasPlan.premium)\n ? (\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n )\n :\n null}\n \n ))}\n
\n
\n
\n
\n );\n};\n","import { Typography } from \"antd\";\nimport { Card } from \"../Bolsa/Cards\";\nimport { HomeContainer } from \"../Home/styles\";\nimport { itensAutonomos } from \"./itensAutonomos\";\n\nexport const Autonomos = () => {\n return (\n \n
\n
\n Carnê-leão\n \n Selecione a opção que deseja utilizar\n \n
\n {itensAutonomos.slice(0, 2).map((item) => (\n \n {item.content}\n {item.description && (\n
{item.description}
\n )}\n \n ))}\n
\n
\n
\n
\n );\n};\n","import { useEffect } from \"react\";\nimport { Col, Row, Typography } from \"antd\";\nimport { BsArrowLeftRight } from \"react-icons/bs\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport b3Logo from \"../../assets/b3-logo-azul.png\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { Content, Parceiros, Subtitle } from \"./styles\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { B3IntegrationButtons } from \"./B3IntegrationButtons\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport { ReactComponent as VeloIcon } from \"../../assets/velotax/veloicon.svg\";\nimport { LoadingIntegration } from \"../../components/LoadingIntegration\";\nimport { useNavigate } from \"react-router-dom\";\n\ninterface IntegrationProps {\n item: Page;\n}\n\nexport const IntegrationBolsa: React.FC = () => {\n const { integration, initIntegration } = useBroker();\n const { user, cameFromRegister, setCameFromRegister } = useAuth();\n const {\n interval,\n b3Authorized,\n handleIntegrate,\n handleSkipB3Integration,\n loadingSkipB3Integration,\n } = useB3Integration();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (\n user.user &&\n !b3Authorized &&\n !interval.current &&\n cameFromRegister.bolsa &&\n integration.key !== \"unset\"\n ) {\n setCameFromRegister((data) => ({ ...data, bolsa: false }));\n handleIntegrate();\n }\n }, [\n interval,\n user.user,\n b3Authorized,\n handleIntegrate,\n integration.key,\n setCameFromRegister,\n cameFromRegister.bolsa,\n ]);\n\n useEffect(() => {\n if (integration?.integrated) {\n navigate(\"/velotax/bolsa\");\n }\n }, [integration?.integrated]);\n\n return (\n <>\n {(b3Authorized && initIntegration) && (\n \n )}\n \n
\n
\n \n \n Conecte sua conta à B3\n \n \n Parceiros oficiais\n
\n \n \n \"b3-logo\"\n
\n
\n \n
\n
\n \n \n \n \n Precisamos das informações da B3 para saber com precisão\n qual o valor de Imposto de Renda incidirá sobre seus\n investimentos.\n \n \n \n \n \n\n \n
\n \n Não tenho investimento na bolsa\n {/* */}\n \n
\n
\n
\n
\n
\n \n );\n};\n","import clsx from \"clsx\";\nimport moment from \"moment-timezone\";\nimport { BsEye } from \"react-icons/bs\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useLocation, useNavigate, useSearchParams } from \"react-router-dom\";\nimport {\n AiOutlineCalendar,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n List,\n message,\n Row,\n Select,\n Skeleton,\n Space,\n Typography,\n} from \"antd\";\nimport { Darf } from \"../Darf\";\nimport apis from \"../../services/apis\";\nimport MsDarf from \"../../services/msDarf\";\nimport Button from \"../../components/Button\";\nimport imoveis from \"../../services/imoveis\";\nimport { Rendimentos } from \"../Rendimentos\";\nimport { Page } from \"../../constants/brokers\";\nimport { DarfExterior } from \"../DarfExterior\";\nimport darfBackend from \"../../services/msDarf\";\nimport HandleTag from \"../../services/handleTag\";\nimport apiCrypto from \"../../services/apiCrypto\";\nimport { itensCriptoSemLogo } from \"../Cripto/itensCriptoSemLogos\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport apiExterior from \"../../services/apiExterior\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { itensExteriorSemLogo } from \"../Exterior/itensExteriorSemLogos\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport rendimentosBackend from \"../../services/rendimentos\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { PayDarfButton } from \"../../components/PayDarfButton\";\nimport { CardHorizontal } from \"../../components/CardHorizontal\";\nimport {\n DarfIMoveis,\n maxImoveisCreditCardPayment,\n maxImoveisDarfPrice,\n maxImoveisPixPayment,\n} from \"../../components/ImoveisImposto\";\nimport {\n maxCreditCardPayment,\n maxDarfPrice,\n maxPixPayment,\n minDarfPrice,\n yearConfigPL4173,\n} from \"../../constants/darf\";\nimport {\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n getLastBusinessDay,\n isMobile,\n mensagemDarfsRetroativos,\n monthsExtended,\n} from \"../../utils\";\nimport { instanceMsCalc } from \"../../services/msCalc\";\nimport { PayButton } from \"./PayButton\";\nimport { itensCripto } from \"../Cripto/itensCripto\";\nimport { TitleContainer } from \"./styles\";\n\ninterface ShowCalcModal {\n visible: boolean;\n view?: boolean;\n month?: number;\n year?: number;\n calc?: \"cripto\" | \"exterior\" | \"autonomos\" | \"imoveis\";\n}\n\ninterface HistoricProps {\n item: Page;\n}\n\nexport const Historic: React.FC = ({ item }) => {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const { state, pathname } = useLocation();\n const { currentBroker, currentPage, integrations } = useBroker();\n const { user, hasPlan, showUserPlanModal } = useAuth();\n\n const integrationSproutfi = Boolean(integrations?.sproutfi?.isIntegrated)\n\n const today = new Date();\n const currentMonth = today.getMonth();\n\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = currentYear;\n const queryYear = Number(searchParams.get(\"year\"));\n const queryYearValid =\n queryYear >= currentBroker.initialYear && queryYear <= initialYear\n ? queryYear\n : undefined;\n window.history.replaceState({}, document.title);\n\n const [data, setData] = useState();\n const [holidays, setHolidays] = useState([]);\n const [loading, setLoading] = useState(false);\n const [emitting, setEmitting] = useState(false);\n const [itemToPay, setItemToPay] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [year, setYear] = useState(queryYearValid ?? stateYear ?? initialYear);\n // const [year, setYear] = useState(2023);\n const [showCalcModal, setShowCalcModal] = useState({\n visible: false,\n });\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const historicFeature = item.features[0];\n const payFeature = item.features[1];\n const isCripto = pathname.includes(\"cripto\");\n const isImoveis = pathname.includes(\"imoveis\");\n const isExterior = pathname.includes(\"exterior\");\n const isAutonomos = pathname.includes(\"autonomos\");\n\n const backend = isExterior\n ? apiExterior\n : isAutonomos\n ? rendimentosBackend\n : isImoveis\n ? imoveis\n : isCripto\n ? apiCrypto\n : apis;\n const oldModel = year < yearConfigPL4173;\n\n const yearOptions = Array.from(\n Array(initialYear - currentBroker.initialYear + 1)\n )\n .map((y, i) => ({\n value: currentBroker.initialYear + i,\n label: `${currentBroker.initialYear + i}`,\n }))\n .reverse()\n\n const getHistoric = useCallback(() => {\n setLoading(true);\n backend\n .get(historicFeature.apiUrl, {\n params: { year },\n })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, backend]);\n\n const pay = useCallback(\n (payed: boolean, item: any) => {\n setLoading(true);\n backend\n .put(`${payFeature.apiUrl}/${item._id}`, { payed })\n .then(() => {\n getHistoric();\n setData((data) =>\n (data || []).map((darf) => ({\n ...darf,\n payed: item._id === darf._id ? payed : darf.payed,\n }))\n );\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n },\n [payFeature, getHistoric, backend]\n );\n\n const sendDarfToEmail = (darfId: string) => {\n backend\n .get(`/darf/sendEmail/${darfId}`)\n .then(() => {\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n })\n .catch(() => {\n console.log(\"Algo inesperado aconteceu. Tente novamente!\");\n });\n };\n\n // const downloadAction = (record: any, index: number) => {\n // if (!hasPlan) {\n // handleOpenPlanModal();\n // } else {\n // backend.get(`${item.features[2].apiUrl}/${record._id}`).then((res) => {\n // if (res.data.url) {\n // download(res.data.url);\n // }\n // });\n // }\n // };\n\n const editAction = (\n record: any,\n view: boolean,\n index: number,\n noPlanMode?: boolean\n ) => {\n if (!hasPlan && !noPlanMode) {\n handleOpenPlanModal();\n } else if (isImoveis) {\n if (view) {\n setItemToPay(record);\n setShowCalcModal({\n visible: true,\n view,\n calc: \"imoveis\",\n });\n } else {\n navigate(`/${currentBroker.path}/imoveis-calculadora`, {\n state: record,\n });\n }\n } else {\n const { month, year } = record;\n setShowCalcModal({\n visible: true,\n view,\n year,\n month,\n calc: isAutonomos ? \"autonomos\" : isExterior ? \"exterior\" : \"cripto\",\n });\n if (view) {\n setItemToPay(record);\n }\n }\n };\n\n const payAction = (value: boolean, record: any) => {\n if (!hasPlan) {\n handleOpenPlanModal();\n } else {\n pay(value, record);\n }\n };\n\n const handleOpenPlanModal = () => {\n navigate('/planos');\n };\n\n const handlePayButton = (item: any, allow: boolean) => {\n if(year >= yearConfigPL4173) {\n handleDarf(false, item)\n } else if (!hasPlan || !allow) {\n handleOpenPlanModal();\n } else {\n getTaxes(item.month);\n setPaymentModal(!paymentModal);\n }\n };\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const handleTitle = (data: any) => {\n if (isImoveis) {\n return `CEP: ${data.cep}`;\n } else\n return `${monthsExtended[data.month - 1]}${\n !isMobile() ? ` de ${data.year}` : \"\"\n }`;\n };\n\n const valueIsGreaterThanMin = (data: any) =>\n (isAutonomos\n ? Number(\n Math.max(\n 0,\n data.impostoDevido +\n (data.impostoAcumulado || 0) -\n (data.gastosExterior || 0) +\n (data.multa || 0) +\n (data.juros || 0)\n )\n ) ?? 0\n : data?.impostoDevido + (data?.impostoAcumulado || 0) - (data.irrfExterior || 0)) >= minDarfPrice;\n\n const valueIsLessThanMax = (data: any) =>\n isImoveis\n ? data?.impostoDevido + (data?.impostoAcumulado || 0) <=\n maxImoveisDarfPrice\n : (isAutonomos ? data?.impostoDevido || 0 : data?.totalImpostoDevido) <=\n maxDarfPrice;\n\n const handleDarf = (justSave?: boolean, obj?: any) => {\n setLoading(true);\n setEmitting(true);\n const darfData = obj ? obj : itemToPay;\n (currentPage?.api || apis)\n .post(\"/darf\", {\n ...darfData,\n year,\n month: darfData?.month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: darfData?.memoriaCalculo,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n justSave: false,\n })\n .then((res) => {\n getHistoric();\n setEmitting(false);\n if (!justSave) {\n setPaymentModal(year >= yearConfigPL4173 ? false : !paymentModal);\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n\n if (res.data?.id) {\n sendDarfToEmail(res.data.id);\n }\n download(res.data.darfUrl);\n } else {\n payAction(true, { ...data, _id: res.data?.darf?._id });\n }\n })\n .catch((err) => {\n message.error(err?.response?.data?.message || errorMessage);\n setEmitting(false);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const generateDarf = async (\n pixValue: boolean,\n justSave?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const response = await MsDarf.post(\"/darf\", {\n month: data?.month,\n year,\n cpf: user.user.cpf,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge: Math.max(\n 0,\n data?.impostoDevido +\n data?.impostoAcumulado -\n data?.gastosExterior +\n data?.juros +\n data?.multa\n ),\n institution: \"velotax-rendimentos\",\n impostoDevido: data?.impostoDevido,\n totalImpostoDevido: data?.impostoDevido,\n totalRendimentos: data?.totalRendimentos,\n baseTributaria: data?.baseTributaria,\n totalDependentes: data?.totalDependentes,\n totalDespesas: data?.totalDespesas,\n totalPrevidencia: data?.totalPrevidencia,\n totalPensao: data?.totalPensao,\n totalDeducoes: data?.totalDeducoes,\n aliquotaDevida: data?.aliquotaDevida,\n impostoAcumulado: data?.impostoAcumulado,\n juros: data?.juros,\n multa: data?.multa,\n transactions: data?.monthStock,\n from: 18,\n gastosExterior: data?.gastosExterior,\n justSave: false,\n });\n setEmitting(false);\n setLoading(false);\n if (!justSave) {\n window.location.href = response.data?.darfUrl;\n setPaymentModal(!paymentModal);\n } else {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n }\n };\n\n const generateDarfImoveis = async (\n pixValue: boolean,\n justPay?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const valueCharge =\n (data?.impostoDevido ?? 0) +\n (data?.impostoAcumulado ?? 0) +\n (data?.juros ?? 0) +\n (data?.multa ?? 0);\n\n const response = await darfBackend.post(\"/darf\", {\n month: new Date().getMonth() + 1,\n year: new Date().getFullYear(),\n cpf: user.user.cpf,\n cep: data?.cep,\n _id: data?.imovelId,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge,\n totalImpostoDevido: data?.impostoDevido,\n institution: \"imoveis-velotax\",\n impostoDevido: data?.impostoDevido || 0,\n impostoAcumulado: data?.impostoAcumulado || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n from: 18,\n });\n setLoading(false);\n setEmitting(false);\n if (justPay) {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n } else {\n setPaymentModal(!paymentModal);\n window.location.href = response.data?.darfUrl;\n }\n };\n\n const handleOpenDarfModal = (justSave?: boolean, obj?: any) => {\n if (isAutonomos) {\n generateDarf(true, justSave, obj);\n } else if (isImoveis) {\n generateDarfImoveis(true, false, obj);\n } else {\n handleDarf(justSave, obj);\n }\n };\n\n const getHolidays = async () => {\n instanceMsCalc.get(`/rates/get-holidays`)\n .then(({ data }) => {\n const dataFormated = data?.map((el: any) => {\n return moment(el).tz('Europe/London').format('MM-DD');\n });\n setHolidays(dataFormated);\n })\n .catch(() => console.log('Erro ao buscar feriados'));\n\n }\n\n useEffect(() => {\n getHistoric();\n getHolidays();\n }, [getHistoric, year]);\n\n const getTaxes = useCallback(\n (month: number, callback?: (obj: any) => void) => {\n (currentPage?.api || apis)\n .get(\"/transaction\", { params: { month, year } })\n .then((response) => {\n const data = {\n ...response.data,\n year,\n month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: response.data.memoriaCalculo,\n };\n setItemToPay(data);\n callback?.(data);\n })\n .catch(() => {});\n },\n [currentPage?.api, year, user.user.name]\n );\n\n const getRendimentos = useCallback(\n async (month: number, callback?: (obj: any) => void) => {\n const response = await rendimentosBackend.get(\n `/rendimentos/${year}/${month}`\n );\n const { data } = response;\n const monthStock = data.monthStock || [];\n const currentImpostos = {\n totalRendimentos: data?.totalRendimentos || 0,\n baseTributaria: data?.baseTributaria || 0,\n aliquotaDevida: data?.aliquotaDevida || 0,\n impostoDevido: data?.impostoDevido || 0,\n totalDeducoes: data?.totalDeducoes || 0,\n totalDependentes: data?.totalDependentes || 0,\n totalDespesas: data?.totalDespesas || 0,\n totalPensao: data?.totalPensao || 0,\n totalPrevidencia: data?.totalPrevidencia || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n impostoTotal:\n (data.impostoDevido || 0) + (data.juros || 0) + (data.multa || 0),\n impostoAcumulado: data?.impostoAcumulado || 0,\n gastosExterior: data?.gastosExterior || 0,\n payed: data?.payed || false,\n emitted: data?.emitted || false,\n };\n\n const valueToCharge = Math.max(\n 0,\n (currentImpostos?.impostoDevido || 0) +\n (currentImpostos.impostoAcumulado || 0) -\n (currentImpostos.gastosExterior || 0) +\n (currentImpostos.juros || 0) +\n (currentImpostos.multa || 0)\n );\n\n const dataToPayment = {\n cpf: user.user.cpf,\n name: user.user.name,\n valueCharge: valueToCharge,\n institution: \"velotax-rendimentos\",\n impostoDevido: currentImpostos.impostoDevido,\n totalImpostoDevido: currentImpostos.impostoTotal,\n impostoTotalFinal: valueToCharge,\n totalRendimentos: currentImpostos.totalRendimentos,\n baseTributaria: currentImpostos.baseTributaria,\n totalDependentes: currentImpostos.totalDependentes,\n totalDespesas: currentImpostos.totalDespesas,\n totalPrevidencia: currentImpostos.totalPrevidencia,\n totalPensao: currentImpostos.totalPensao,\n totalDeducoes: currentImpostos.totalDeducoes,\n aliquotaDevida: currentImpostos.aliquotaDevida,\n impostoAcumulado: currentImpostos.impostoAcumulado,\n gastosExterior: currentImpostos.gastosExterior,\n juros: currentImpostos.juros,\n multa: currentImpostos.multa,\n transactions: monthStock,\n year,\n month,\n };\n\n setItemToPay(dataToPayment);\n callback?.({ ...data, ...dataToPayment });\n },\n [user.user.cpf, user.user.name, year]\n );\n\n const setImovelToPay = (item: any) => {\n setItemToPay({\n from: 18,\n paymentForm: \"pix\",\n cep: item.cep,\n _id: item.imovelId,\n cpf: user.user.cpf,\n name: user.user.name,\n year: new Date().getFullYear(),\n month: new Date().getMonth() + 1,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n juros: item.juros,\n multa: item.multa,\n institution: \"imoveis-velotax\",\n impostoDevido: item.impostoDevido,\n totalImpostoDevido: item.impostoDevido,\n impostoAcumulado: item.impostoAcumulado ?? 0,\n valueCharge:\n (item.impostoDevido ?? 0) +\n (item.impostoAcumulado ?? 0) +\n (item.juros ?? 0) +\n (item.multa ?? 0),\n });\n };\n\n const handleFinalValue = (item: any) => {\n if (isAutonomos) {\n return (\n item.totalImpostoDevido ??\n Number(\n Math.max(\n 0,\n item.impostoDevido +\n (item.impostoAcumulado || 0) -\n (item.gastosExterior || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n )\n ) ??\n 0\n );\n } else if (isImoveis) {\n return Number(\n (item.impostoDevido || 0) +\n (item.impostoAcumulado || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n );\n } else {\n return Number(\n (item.impostoDevido || 0) +\n (oldModel || item.month == 1 ? (item.impostoAcumulado || 0) : 0)\n - (item.irrfExterior || 0 ) +\n ((item.impostoDevido || 0) + (item.impostoAcumulado || 0) - (item.irrfExterior || 0 ) < minDarfPrice || !oldModel\n ? 0\n : (item.juros || 0) + (item.multa || 0) || !oldModel)\n );\n }\n };\n\n const handleCloseCalcModal = () => {\n setShowCalcModal({ visible: false });\n getHistoric();\n };\n\n const exteriorTransactionsFilter = (el: any) =>\n (el.operation === \"SELL\" && !el?.type) ||\n (el.operation === \"SELL\" && el.manual) ||\n (el.operation === \"SELL\" && el.type === \"TRADE\");\n\n const handleVendasTotais = (item: any) => {\n return isExterior\n ? item.transactions\n ?.filter(exteriorTransactionsFilter)\n .reduce((a: number, t: any) => a + (oldModel ? ((t.valor || 0) * (t.cambioVenda || 0)) : (t.sellPrice_BRL || 0) * (t.quantidade || 0)), 0)\n : pathname.includes('autonomos') ? 0\n : item.transactions.reduce(\n (a: number, t: any) => a + t.quantity * t.sellPrice,\n 0\n );\n };\n\n const ImpostoAPagarNoPlan = (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n );\n\n const ImpostoAPagarWithPlan: React.FC<{ item: any }> = ({ item }) => {\n const value = handleFinalValue(item);\n return (\n \n Imposto a pagar: \n \n {value > 0 ? formatCurrency(value) : \"Isento\"}\n \n \n );\n };\n\n const showPayButton = (item: any) =>\n (valueIsGreaterThanMin(item) &&\n valueIsLessThanMax(item) &&\n (item.status !== \"PAYED\" || !item.payed)) ||\n (year >= yearConfigPL4173\n && item.transactions?.filter((t: any) => ['TRADE', 'DIVIDEND', 'INTEREST'].includes(t.type)).length > 0\n );\n\n // const PayButton: React.FC<{ item: any; block?: boolean }> = ({\n // item,\n // block,\n // }) => {\n // const allow = ativarDarfsRetroativos({\n // item,\n // hasPlan,\n // currentYear,\n // currentMonth,\n // });\n // return (\n // target.parentElement!}\n // title={\n // !allow\n // ? mensagemDarfsRetroativos\n // : disableCurrentMonth(item)\n // ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n // : \"\"\n // }\n // >\n // }\n // style={block ? { marginTop: \"16px\", height: \"40px\" } : {}}\n // onClick={() => {\n // if (!allow) {\n // handleOpenPlanModal();\n // } else {\n // if (isAutonomos) {\n // getRendimentos(item.month);\n // } else if (isImoveis) {\n // setImovelToPay(item);\n // } else {\n // getTaxes(item.month);\n // }\n // setPaymentModal(!paymentModal);\n // }\n // }}\n // >\n // Pagar\n // {\" \"}\n // \n // );\n // };\n\n const disableCurrentMonth = (item: any) =>\n item.year === currentYear && item.month === currentMonth + 1 && item.year < yearConfigPL4173;\n\n const defineMovement = (item: any) => {\n if (item.transactions && item.transactions.length) return 'Há movimentações neste mês'\n return 'Sem movimentações'\n }\n\n return (\n
\n
\n \n {year <= 2023? 'Impostos devidos (DARF)' : 'Movimentações'} \n {false && !hasPlan && (\n \n Contratar plano\n \n \n )}\n \n {!isImoveis && (\n }\n getPopupContainer={(target) => target.parentElement}\n />\n )}\n\n \n !(item.year === currentYear && item.month > currentMonth + 1)\n ) ?? []\n }\n itemLayout=\"horizontal\"\n className={clsx(\"velotax-historic-list\", { \"no-plan\": !hasPlan })}\n renderItem={(item, index) => {\n const ultimoDiaUtilDoMes = getLastBusinessDay(\n new Date(item.year, item.month + 1, 0),\n holidays,\n );\n const vencimento = moment(ultimoDiaUtilDoMes).format(\"DD/MM/YYYY\");\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n\n const month = planMonthSignature === 0 ? 11 : planMonthSignature - 1;\n const yearSign = planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature;\n\n const dateAllowedOnBasic = new Date(yearSign, month, 1);\n const currentDarfDate = new Date(year, item.month - 1, 1);\n const checkMonth = (currentDarfDate.getTime() < dateAllowedOnBasic.getTime());\n const hideOnBasic = isBasic && checkMonth;\n\n const allow = ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n });\n\n return handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n allow={allow}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n isReport={!oldModel}\n />\n ),\n <>\n {year <= 2023 && }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n >\n {showPayButton(item) ? \"\" : Visualizar}\n }\n \n ]\n : []\n }\n >\n \n \n {handleTitle(item)}\n {year > 2023 &&\n }\n onClick={() =>\n editAction(\n item,\n item.payed && valueIsGreaterThanMin(item),\n index\n )\n }\n children={isMobile()? \"\" : \"Visualizar\"}\n />}\n {(!hasPlan || hideOnBasic) &&\n (isAutonomos ? item.monthStock : item.transactions)\n ?.length > 0 &&\n isMobile() && (\n \n }\n onClick={() => editAction(item, true, index, true)}\n />\n )}\n {(hasPlan && !hideOnBasic && year <= 2023) ? (\n
\n {valueIsGreaterThanMin(item) &&\n !hideOnBasic &&\n !disableCurrentMonth(item) ? (\n {\n if (\n !ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ) {\n showUserPlanModal(true);\n } else if (item._id && item.fullPath) {\n payAction(!item.payed, item);\n } else if (isAutonomos) {\n setLoading(true);\n getRendimentos(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n } else if (isImoveis) {\n setItemToPay(item);\n generateDarfImoveis(true, true, item);\n } else {\n setLoading(true);\n getTaxes(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n }\n }}\n />\n ) : undefined}\n {isMobile() && (\n \n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n />\n )}\n
\n ) : undefined}\n \n }\n description={<>{year <= 2023 ?\n \n {!hasPlan || hideOnBasic ? (\n <>\n {isImoveis ? (\n ImpostoAPagarNoPlan\n ) : (isAutonomos\n ? item.monthStock\n : isExterior\n ? item.transactions?.filter(\n exteriorTransactionsFilter\n )\n : item.transactions\n )?.length > 0 ? (\n <>\n \n Vendas totais: \n \n {formatCurrency(handleVendasTotais(item))}\n \n \n {ImpostoAPagarNoPlan}\n \n ) : (\n \n Não houve movimentações tributáveis neste mês\n \n )}\n \n ) : (\n <>\n {isImoveis ? (\n \n ) : (isAutonomos\n ? item.monthStock\n : item.transactions\n )?.length > 0 ? (\n <>\n \n Vendas totais: \n \n {formatCurrency(handleVendasTotais(item))}\n \n \n {!ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) ? (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n ) : (\n \n )}\n {handleFinalValue(item) > 0 && oldModel &&\n ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) && (\n \n Vencimento: \n \n {vencimento}\n \n \n )}\n {isMobile() && showPayButton(item) && (\n handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o terceiro dia útil deste mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n isReport={!oldModel}\n />\n )}\n \n ) : (\n \n Não houve movimentações tributáveis neste mês\n \n )}\n \n )}\n : undefined}\n {year > 2023 && isExterior && defineMovement(item)}\n \n }\n />\n
\n \n }}\n />\n\n {(isCripto || isExterior) && (\n \n Outras opções\n \n )}\n\n
\n {(isCripto\n ? [...itensCripto.slice(1)]\n : isExterior\n ? [...itensExteriorSemLogo.slice(1)]\n : []\n ).map((item: any) => {\n if (item.sprotifi && !integrationSproutfi) {\n return null;\n } \n return (\n {\n handleOpenPlanModal();\n }\n }\n >\n {(hasPlan && !isBasic) || item.id === \"integration\" ? (\n <>{item.content}\n ) : (\n \n {item.content}\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n \n )}\n \n )\n })}\n
\n
\n\n \n (isImoveis ? maxImoveisPixPayment : maxPixPayment)\n }\n disableCreditCardOption={\n (handleFinalValue(itemToPay || {}) || 0) >\n (isImoveis ? maxImoveisCreditCardPayment : maxCreditCardPayment)\n }\n closeDarfModal={() => {\n setPaymentModal(false);\n getHistoric();\n }}\n onCancel={() => {\n setPaymentModal(!paymentModal);\n }}\n callDarf={() => {\n handleOpenDarfModal(false, itemToPay);\n if (isCripto) {\n HandleTag(\"78\");\n }\n if (isExterior) {\n HandleTag(\"77\");\n }\n }}\n paymentData={{\n ...itemToPay,\n impostoTotalFinal: isImoveis\n ? (itemToPay?.impostoDevido ?? 0) +\n (itemToPay?.juros ?? 0) +\n (itemToPay?.multa ?? 0) +\n (itemToPay?.impostoAcumulado ?? 0)\n : itemToPay?.totalImpostoDevido + itemToPay?.impostoAcumulado,\n }}\n {...(isImoveis ? { customInstallments: 12 } : {})}\n />\n \n {isImoveis && itemToPay ? (\n \n ) : isAutonomos ? (\n \n ) : isExterior ? (\n \n ) : (\n \n )}\n \n
\n );\n};\n","import clsx from \"clsx\";\nimport moment from \"moment-timezone\";\nimport { BsEye } from \"react-icons/bs\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useLocation, useNavigate, useSearchParams } from \"react-router-dom\";\nimport {\n AiOutlineCalendar,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n List,\n message,\n Row,\n Select,\n Skeleton,\n Space,\n Typography,\n} from \"antd\";\nimport { Darf } from \"../Darf\";\nimport apis from \"../../services/apis\";\nimport MsDarf from \"../../services/msDarf\";\nimport Button from \"../../components/Button\";\nimport imoveis from \"../../services/imoveis\";\nimport { Rendimentos } from \"../Rendimentos\";\nimport { Page } from \"../../constants/brokers\";\nimport { DarfExterior } from \"../DarfExterior\";\nimport darfBackend from \"../../services/msDarf\";\nimport HandleTag from \"../../services/handleTag\";\nimport apiCrypto from \"../../services/apiCrypto\";\nimport { itensCriptoSemLogo } from \"../Cripto/itensCriptoSemLogos\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport apiExterior from \"../../services/apiExterior\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { itensExteriorSemLogo } from \"../Exterior/itensExteriorSemLogos\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport rendimentosBackend from \"../../services/rendimentos\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { PayDarfButton } from \"../../components/PayDarfButton\";\nimport { CardHorizontal } from \"../../components/CardHorizontal\";\nimport {\n DarfIMoveis,\n maxImoveisCreditCardPayment,\n maxImoveisDarfPrice,\n maxImoveisPixPayment,\n} from \"../../components/ImoveisImposto\";\nimport {\n maxCreditCardPayment,\n maxDarfPrice,\n maxPixPayment,\n minDarfPrice,\n} from \"../../constants/darf\";\nimport {\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n getLastBusinessDay,\n isMobile,\n mensagemDarfsRetroativos,\n monthsExtended,\n} from \"../../utils\";\nimport { instanceMsCalc } from \"../../services/msCalc\";\nimport { PayButton } from \"./PayButton\";\nimport { log } from \"console\";\n\ninterface ShowCalcModal {\n visible: boolean;\n view?: boolean;\n month?: number;\n year?: number;\n calc?: \"cripto\" | \"exterior\" | \"autonomos\" | \"imoveis\";\n}\n\ninterface HistoricProps {\n item: Page;\n}\n\nexport const HistoricCrypto: React.FC = ({ item }) => {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const { state, pathname } = useLocation();\n const { currentBroker, currentPage, integrations } = useBroker();\n const { user, hasPlan, showUserPlanModal } = useAuth();\n\n const integrationSproutfi = Boolean(integrations?.sproutfi?.isIntegrated)\n\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = currentYear;\n const queryYear = Number(searchParams.get(\"year\"));\n const queryYearValid =\n queryYear >= currentBroker.initialYear && queryYear <= initialYear\n ? queryYear\n : undefined;\n window.history.replaceState({}, document.title);\n\n const [data, setData] = useState();\n const [holidays, setHolidays] = useState([]);\n const [loading, setLoading] = useState(false);\n const [emitting, setEmitting] = useState(false);\n const [itemToPay, setItemToPay] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [year, setYear] = useState(queryYearValid ?? stateYear ?? initialYear);\n const [showCalcModal, setShowCalcModal] = useState({\n visible: false,\n });\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const historicFeature = item.features[0];\n const payFeature = item.features[1];\n const isCripto = pathname.includes(\"cripto\");\n const isImoveis = pathname.includes(\"imoveis\");\n const isExterior = pathname.includes(\"exterior\");\n const isAutonomos = pathname.includes(\"autonomos\");\n\n const backend = isExterior\n ? apiExterior\n : isAutonomos\n ? rendimentosBackend\n : isImoveis\n ? imoveis\n : isCripto\n ? apiCrypto\n : apis;\n const oldModel = true;\n\n const yearOptions = Array.from(\n Array(initialYear - currentBroker.initialYear + 1)\n )\n .map((y, i) => ({\n value: currentBroker.initialYear + i,\n label: `${currentBroker.initialYear + i}`,\n }))\n .reverse();\n\n const getHistoric = useCallback(() => {\n setLoading(true);\n backend\n .get(historicFeature.apiUrl, {\n params: { year },\n })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, backend]);\n\n const pay = useCallback(\n (payed: boolean, item: any) => {\n setLoading(true);\n backend\n .put(`${payFeature.apiUrl}/${item._id}`, { payed })\n .then(() => {\n getHistoric();\n setData((data) =>\n (data || []).map((darf) => ({\n ...darf,\n payed: item._id === darf._id ? payed : darf.payed,\n }))\n );\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n },\n [payFeature, getHistoric, backend]\n );\n\n const sendDarfToEmail = (darfId: string) => {\n backend\n .get(`/darf/sendEmail/${darfId}`)\n .then(() => {\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n })\n .catch(() => {\n console.log(\"Algo inesperado aconteceu. Tente novamente!\");\n });\n };\n\n // const downloadAction = (record: any, index: number) => {\n // if (!hasPlan) {\n // handleOpenPlanModal();\n // } else {\n // backend.get(`${item.features[2].apiUrl}/${record._id}`).then((res) => {\n // if (res.data.url) {\n // download(res.data.url);\n // }\n // });\n // }\n // };\n\n const editAction = (\n record: any,\n view: boolean,\n index: number,\n noPlanMode?: boolean\n ) => {\n if (!hasPlan && !noPlanMode) {\n handleOpenPlanModal();\n } else if (isImoveis) {\n if (view) {\n setItemToPay(record);\n setShowCalcModal({\n visible: true,\n view,\n calc: \"imoveis\",\n });\n } else {\n navigate(`/${currentBroker.path}/imoveis-calculadora`, {\n state: record,\n });\n }\n } else {\n const { month, year } = record;\n setShowCalcModal({\n visible: true,\n view,\n year,\n month,\n calc: isAutonomos ? \"autonomos\" : isExterior ? \"exterior\" : \"cripto\",\n });\n if (view) {\n setItemToPay(record);\n }\n }\n };\n\n const payAction = (value: boolean, record: any) => {\n if (!hasPlan) {\n handleOpenPlanModal();\n } else {\n pay(value, record);\n }\n };\n\n const handleOpenPlanModal = () => {\n navigate('/planos');\n };\n\n const handlePayButton = (item: any, allow: boolean) => {\n if (!hasPlan || !allow) {\n handleOpenPlanModal();\n } else {\n getTaxes(item.month);\n setPaymentModal(!paymentModal);\n }\n };\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const handleTitle = (data: any) => {\n if (isImoveis) {\n return `CEP: ${data.cep}`;\n } else\n return `${monthsExtended[data.month - 1]}${\n !isMobile() ? ` de ${data.year}` : \"\"\n }`;\n };\n\n const valueIsGreaterThanMin = (data: any) =>\n (isAutonomos\n ? Number(\n Math.max(\n 0,\n data.impostoDevido +\n (data.impostoAcumulado || 0) -\n (data.gastosExterior || 0) +\n (data.multa || 0) +\n (data.juros || 0)\n )\n ) ?? 0\n : data?.impostoDevido + (data?.impostoAcumulado || 0) - (data.irrfExterior || 0)) >= minDarfPrice;\n\n const valueIsLessThanMax = (data: any) =>\n isImoveis\n ? data?.impostoDevido + (data?.impostoAcumulado || 0) <=\n maxImoveisDarfPrice\n : (isAutonomos ? data?.impostoDevido || 0 : data?.totalImpostoDevido) <=\n maxDarfPrice;\n\n const handleDarf = (justSave?: boolean, obj?: any) => {\n setLoading(true);\n setEmitting(true);\n const darfData = obj ? obj : itemToPay;\n (currentPage?.api || apis)\n .post(\"/darf\", {\n ...darfData,\n year,\n month: darfData?.month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: darfData?.memoriaCalculo,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n justSave: false,\n })\n .then((res) => {\n getHistoric();\n setEmitting(false);\n if (!justSave) {\n setPaymentModal(!paymentModal);\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n\n if (res.data?.id) {\n sendDarfToEmail(res.data.id);\n }\n download(res.data.darfUrl);\n } else {\n payAction(true, { ...data, _id: res.data?.darf?._id });\n }\n })\n .catch((err) => {\n message.error(err?.response?.data?.message || errorMessage);\n setEmitting(false);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const generateDarf = async (\n pixValue: boolean,\n justSave?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const response = await MsDarf.post(\"/darf\", {\n month: data?.month,\n year,\n cpf: user.user.cpf,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge: Math.max(\n 0,\n data?.impostoDevido +\n data?.impostoAcumulado -\n data?.gastosExterior +\n data?.juros +\n data?.multa\n ),\n institution: \"velotax-rendimentos\",\n impostoDevido: data?.impostoDevido,\n totalImpostoDevido: data?.impostoDevido,\n totalRendimentos: data?.totalRendimentos,\n baseTributaria: data?.baseTributaria,\n totalDependentes: data?.totalDependentes,\n totalDespesas: data?.totalDespesas,\n totalPrevidencia: data?.totalPrevidencia,\n totalPensao: data?.totalPensao,\n totalDeducoes: data?.totalDeducoes,\n aliquotaDevida: data?.aliquotaDevida,\n impostoAcumulado: data?.impostoAcumulado,\n juros: data?.juros,\n multa: data?.multa,\n transactions: data?.monthStock,\n from: 18,\n gastosExterior: data?.gastosExterior,\n justSave: false,\n });\n setEmitting(false);\n setLoading(false);\n if (!justSave) {\n window.location.href = response.data?.darfUrl;\n setPaymentModal(!paymentModal);\n } else {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n }\n };\n\n const generateDarfImoveis = async (\n pixValue: boolean,\n justPay?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const valueCharge =\n (data?.impostoDevido ?? 0) +\n (data?.impostoAcumulado ?? 0) +\n (data?.juros ?? 0) +\n (data?.multa ?? 0);\n\n const response = await darfBackend.post(\"/darf\", {\n month: new Date().getMonth() + 1,\n year: new Date().getFullYear(),\n cpf: user.user.cpf,\n cep: data?.cep,\n _id: data?.imovelId,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge,\n totalImpostoDevido: data?.impostoDevido,\n institution: \"imoveis-velotax\",\n impostoDevido: data?.impostoDevido || 0,\n impostoAcumulado: data?.impostoAcumulado || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n from: 18,\n });\n setLoading(false);\n setEmitting(false);\n if (justPay) {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n } else {\n setPaymentModal(!paymentModal);\n window.location.href = response.data?.darfUrl;\n }\n };\n\n const handleOpenDarfModal = (justSave?: boolean, obj?: any) => {\n if (isAutonomos) {\n generateDarf(true, justSave, obj);\n } else if (isImoveis) {\n generateDarfImoveis(true, false, obj);\n } else {\n handleDarf(justSave, obj);\n }\n };\n\n const getHolidays = async () => {\n instanceMsCalc.get(`/rates/get-holidays`)\n .then(({ data }) => {\n const dataFormated = data?.map((el: any) => {\n return moment(el).tz('Europe/London').format('MM-DD');\n });\n setHolidays(dataFormated);\n })\n .catch(() => console.log('Erro ao buscar feriados'));\n\n }\n\n useEffect(() => {\n getHistoric();\n getHolidays();\n }, [getHistoric, year]);\n\n const getTaxes = useCallback(\n (month: number, callback?: (obj: any) => void) => {\n (currentPage?.api || apis)\n .get(\"/transaction\", { params: { month, year } })\n .then((response) => {\n const data = {\n ...response.data,\n year,\n month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: response.data.memoriaCalculo,\n };\n setItemToPay(data);\n callback?.(data);\n })\n .catch(() => {});\n },\n [currentPage?.api, year, user.user.name]\n );\n\n const getRendimentos = useCallback(\n async (month: number, callback?: (obj: any) => void) => {\n const response = await rendimentosBackend.get(\n `/rendimentos/${year}/${month}`\n );\n const { data } = response;\n const monthStock = data.monthStock || [];\n const currentImpostos = {\n totalRendimentos: data?.totalRendimentos || 0,\n baseTributaria: data?.baseTributaria || 0,\n aliquotaDevida: data?.aliquotaDevida || 0,\n impostoDevido: data?.impostoDevido || 0,\n totalDeducoes: data?.totalDeducoes || 0,\n totalDependentes: data?.totalDependentes || 0,\n totalDespesas: data?.totalDespesas || 0,\n totalPensao: data?.totalPensao || 0,\n totalPrevidencia: data?.totalPrevidencia || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n impostoTotal:\n (data.impostoDevido || 0) + (data.juros || 0) + (data.multa || 0),\n impostoAcumulado: data?.impostoAcumulado || 0,\n gastosExterior: data?.gastosExterior || 0,\n payed: data?.payed || false,\n emitted: data?.emitted || false,\n };\n\n const valueToCharge = Math.max(\n 0,\n (currentImpostos?.impostoDevido || 0) +\n (currentImpostos.impostoAcumulado || 0) -\n (currentImpostos.gastosExterior || 0) +\n (currentImpostos.juros || 0) +\n (currentImpostos.multa || 0)\n );\n\n const dataToPayment = {\n cpf: user.user.cpf,\n name: user.user.name,\n valueCharge: valueToCharge,\n institution: \"velotax-rendimentos\",\n impostoDevido: currentImpostos.impostoDevido,\n totalImpostoDevido: currentImpostos.impostoTotal,\n impostoTotalFinal: valueToCharge,\n totalRendimentos: currentImpostos.totalRendimentos,\n baseTributaria: currentImpostos.baseTributaria,\n totalDependentes: currentImpostos.totalDependentes,\n totalDespesas: currentImpostos.totalDespesas,\n totalPrevidencia: currentImpostos.totalPrevidencia,\n totalPensao: currentImpostos.totalPensao,\n totalDeducoes: currentImpostos.totalDeducoes,\n aliquotaDevida: currentImpostos.aliquotaDevida,\n impostoAcumulado: currentImpostos.impostoAcumulado,\n gastosExterior: currentImpostos.gastosExterior,\n juros: currentImpostos.juros,\n multa: currentImpostos.multa,\n transactions: monthStock,\n year,\n month,\n };\n\n setItemToPay(dataToPayment);\n callback?.({ ...data, ...dataToPayment });\n },\n [user.user.cpf, user.user.name, year]\n );\n\n const setImovelToPay = (item: any) => {\n setItemToPay({\n from: 18,\n paymentForm: \"pix\",\n cep: item.cep,\n _id: item.imovelId,\n cpf: user.user.cpf,\n name: user.user.name,\n year: new Date().getFullYear(),\n month: new Date().getMonth() + 1,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n juros: item.juros,\n multa: item.multa,\n institution: \"imoveis-velotax\",\n impostoDevido: item.impostoDevido,\n totalImpostoDevido: item.impostoDevido,\n impostoAcumulado: item.impostoAcumulado ?? 0,\n valueCharge:\n (item.impostoDevido ?? 0) +\n (item.impostoAcumulado ?? 0) +\n (item.juros ?? 0) +\n (item.multa ?? 0),\n });\n };\n\n const handleFinalValue = (item: any) => {\n if (isAutonomos) {\n return (\n item.totalImpostoDevido ??\n Number(\n Math.max(\n 0,\n item.impostoDevido +\n (item.impostoAcumulado || 0) -\n (item.gastosExterior || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n )\n ) ??\n 0\n );\n } else if (isImoveis) {\n return Number(\n (item.impostoDevido || 0) +\n (item.impostoAcumulado || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n );\n } else {\n return Number(\n (item.impostoDevido || 0) +\n (item.impostoAcumulado || 0) -\n (item.irrfExterior || 0 ) +\n ((item.impostoDevido || 0) + (item.impostoAcumulado || 0) <\n minDarfPrice\n ? 0\n : (item.juros || 0) + (item.multa || 0) || !oldModel)\n );\n }\n };\n\n const handleCloseCalcModal = () => {\n setShowCalcModal({ visible: false });\n getHistoric();\n };\n\n const exteriorTransactionsFilter = (el: any) =>\n (el.operation === \"SELL\" && !el?.type) ||\n (el.operation === \"SELL\" && el.manual) ||\n (el.operation === \"SELL\" && el.type === \"TRADE\");\n\n const handleVendasTotais = (item: any) => {\n return isExterior\n ? item.transactions\n ?.filter(exteriorTransactionsFilter)\n .reduce((a: number, t: any) => a + (oldModel ? ((t.valor || 0) * (t.cambioVenda || 0)) : (t.sellPrice_BRL || 0) * (t.quantidade || 0)), 0)\n : pathname.includes('autonomos') ? 0\n : item.transactions.reduce(\n (a: number, t: any) => a + t.quantity * t.sellPrice,\n 0\n );\n };\n\n const ImpostoAPagarNoPlan = (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n );\n\n const ImpostoAPagarWithPlan: React.FC<{ item: any }> = ({ item }) => {\n const value = handleFinalValue(item);\n return (\n \n Imposto a pagar: \n \n {value > 0 ? formatCurrency(value) : \"Isento\"}\n \n \n );\n };\n\n const showPayButton = (item: any) =>\n (valueIsGreaterThanMin(item) &&\n valueIsLessThanMax(item) &&\n (item.status !== \"PAYED\" || !item.payed))\n\n // const PayButton: React.FC<{ item: any; block?: boolean }> = ({\n // item,\n // block,\n // }) => {\n // const allow = ativarDarfsRetroativos({\n // item,\n // hasPlan,\n // currentYear,\n // currentMonth,\n // });\n // return (\n // target.parentElement!}\n // title={\n // !allow\n // ? mensagemDarfsRetroativos\n // : disableCurrentMonth(item)\n // ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n // : \"\"\n // }\n // >\n // }\n // style={block ? { marginTop: \"16px\", height: \"40px\" } : {}}\n // onClick={() => {\n // if (!allow) {\n // handleOpenPlanModal();\n // } else {\n // if (isAutonomos) {\n // getRendimentos(item.month);\n // } else if (isImoveis) {\n // setImovelToPay(item);\n // } else {\n // getTaxes(item.month);\n // }\n // setPaymentModal(!paymentModal);\n // }\n // }}\n // >\n // Pagar\n // {\" \"}\n // \n // );\n // };\n\n const disableCurrentMonth = (item: any) =>\n item.year === currentYear && item.month === currentMonth + 1;\n\n return (\n
\n
\n \n Impostos devidos (DARF)\n {false && !hasPlan && (\n \n Contratar plano\n \n \n )}\n \n {!isImoveis && (\n }\n getPopupContainer={(target) => target.parentElement}\n />\n )}\n\n \n !(item.year === currentYear && item.month > currentMonth + 1)\n ) ?? []\n }\n itemLayout=\"horizontal\"\n className={clsx(\"velotax-historic-list\", { \"no-plan\": !hasPlan })}\n renderItem={(item, index) => {\n const ultimoDiaUtilDoMes = getLastBusinessDay(\n new Date(item.year, item.month + 1, 0),\n holidays,\n );\n const vencimento = moment(ultimoDiaUtilDoMes).format(\"DD/MM/YYYY\");\n const currentDarfDate = new Date(year, item.month - 1, 1);\n const month = planMonthSignature === 0 ? 11 : planMonthSignature - 1;\n const yearSign = planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature;\n\n const dateAllowedOnBasic = new Date(yearSign, month, 1); const checkMonth = (currentDarfDate.getTime() < dateAllowedOnBasic.getTime());\n const hideOnBasic = isBasic && checkMonth;\n\n const allow = ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n });\n\n\n return handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n allow={allow}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n isReport={!oldModel}\n />\n ),\n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n >\n {showPayButton(item) ? \"\" : Visualizar}\n ,\n ]\n : []\n }\n >\n \n \n {handleTitle(item)}\n {(!hasPlan || hideOnBasic) &&\n (isAutonomos ? item.monthStock : item.transactions)\n ?.length > 0 &&\n isMobile() && (\n \n }\n onClick={() => editAction(item, true, index, true)}\n />\n )}\n {(hasPlan && !hideOnBasic && oldModel) ? (\n
\n {valueIsGreaterThanMin(item) &&\n !hideOnBasic &&\n !disableCurrentMonth(item) ? (\n {\n if (\n !ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ) {\n showUserPlanModal(true);\n } else if (item._id && item.fullPath) {\n payAction(!item.payed, item);\n } else if (isAutonomos) {\n setLoading(true);\n getRendimentos(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n } else if (isImoveis) {\n setItemToPay(item);\n generateDarfImoveis(true, true, item);\n } else {\n setLoading(true);\n getTaxes(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n }\n }}\n />\n ) : undefined}\n {isMobile() && (\n \n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n />\n )}\n
\n ) : undefined}\n \n }\n description={\n \n {!hasPlan || hideOnBasic ?\n (\n <>\n {isImoveis ? (\n ImpostoAPagarNoPlan\n ) : (isAutonomos\n ? item.monthStock\n : isExterior\n ? item.transactions?.filter(\n exteriorTransactionsFilter\n )\n : item.transactions\n )?.length > 0 ? (\n <>\n \n Vendas totais: \n \n {formatCurrency(handleVendasTotais(item))}\n \n \n {ImpostoAPagarNoPlan}\n \n ) : (\n \n Não houve movimentações tributáveis neste mês\n \n )}\n \n ) : (\n <>\n {isImoveis ? (\n \n ) : (isAutonomos\n ? item.monthStock\n : item.transactions\n )?.length > 0 ? (\n <>\n \n Vendas totais: \n \n {formatCurrency(handleVendasTotais(item))}\n \n \n {!ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) ? (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n ) : (\n \n )}\n {handleFinalValue(item) > 0 && oldModel &&\n ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) && (\n \n Vencimento: \n \n {vencimento}\n \n \n )}\n {isMobile() && showPayButton(item) && (\n handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n isReport={!oldModel}\n />\n )}\n \n ) : (\n \n Não houve movimentações tributáveis neste mês\n \n )}\n \n )}\n \n }\n />\n
\n \n }}\n />\n\n {(isCripto || isExterior) && (\n \n Outras opções\n \n )}\n\n
\n {(isCripto\n ? [...itensCriptoSemLogo.slice(1)]\n : isExterior\n ? [...itensExteriorSemLogo.slice(1)]\n : []\n ).map((item: any) => {\n if (item.sprotifi && !integrationSproutfi) {\n return null;\n } \n return (\n {\n handleOpenPlanModal();\n }\n }\n >\n {(hasPlan && !isBasic) || item.id === \"integration\" ? (\n <>{item.content}\n ) : (\n \n {item.content}\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n \n )}\n \n )\n })}\n
\n
\n\n \n (isImoveis ? maxImoveisPixPayment : maxPixPayment)\n }\n disableCreditCardOption={\n (handleFinalValue(itemToPay || {}) || 0) >\n (isImoveis ? maxImoveisCreditCardPayment : maxCreditCardPayment)\n }\n closeDarfModal={() => {\n setPaymentModal(false);\n getHistoric();\n }}\n onCancel={() => {\n setPaymentModal(!paymentModal);\n }}\n callDarf={() => {\n handleOpenDarfModal();\n if (isCripto) {\n HandleTag(\"78\");\n }\n if (isExterior) {\n HandleTag(\"77\");\n }\n }}\n paymentData={{\n ...itemToPay,\n impostoTotalFinal: isImoveis\n ? (itemToPay?.impostoDevido ?? 0) +\n (itemToPay?.juros ?? 0) +\n (itemToPay?.multa ?? 0) +\n (itemToPay?.impostoAcumulado ?? 0)\n : itemToPay?.totalImpostoDevido + itemToPay?.impostoAcumulado,\n }}\n {...(isImoveis ? { customInstallments: 12 } : {})}\n />\n \n {isImoveis && itemToPay ? (\n \n ) : isAutonomos ? (\n \n ) : isExterior ? (\n \n ) : (\n \n )}\n \n
\n );\n};\n","import clsx from \"clsx\";\nimport moment from \"moment-timezone\";\nimport { BsEye } from \"react-icons/bs\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport {\n AiOutlineCalendar,\n AiOutlineLock,\n AiOutlineUnlock,\n} from \"react-icons/ai\";\nimport {\n Col,\n List,\n message,\n Row,\n Select,\n Skeleton,\n Space,\n Tooltip,\n Typography,\n} from \"antd\";\nimport { Darf } from \"../Darf\";\nimport apis from \"../../services/apis\";\nimport MsDarf from \"../../services/msDarf\";\nimport Button from \"../../components/Button\";\nimport imoveis from \"../../services/imoveis\";\nimport { Rendimentos } from \"../Rendimentos\";\nimport { Page } from \"../../constants/brokers\";\nimport { DarfExterior } from \"../DarfExterior\";\nimport darfBackend from \"../../services/msDarf\";\nimport HandleTag from \"../../services/handleTag\";\nimport apiCrypto from \"../../services/apiCrypto\";\nimport { itensCriptoSemLogo } from \"../Cripto/itensCriptoSemLogos\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport apiExterior from \"../../services/apiExterior\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { itensExteriorSemLogo } from \"../Exterior/itensExteriorSemLogos\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport rendimentosBackend from \"../../services/rendimentos\";\nimport { PaymentModal } from \"../../components/PaymentModal\";\nimport { PayDarfButton } from \"../../components/PayDarfButton\";\nimport { CardHorizontal } from \"../../components/CardHorizontal\";\nimport {\n DarfIMoveis,\n maxImoveisCreditCardPayment,\n maxImoveisDarfPrice,\n maxImoveisPixPayment,\n} from \"../../components/ImoveisImposto\";\nimport {\n maxCreditCardPayment,\n maxDarfPrice,\n maxPixPayment,\n minDarfPrice,\n yearConfigPL4173,\n} from \"../../constants/darf\";\nimport {\n ativarDarfsRetroativos,\n download,\n errorMessage,\n formatCurrency,\n getInitialYear,\n getLastBusinessDay,\n isMobile,\n mensagemDarfsRetroativos,\n monthsExtended,\n} from \"../../utils\";\nimport { instanceMsCalc } from \"../../services/msCalc\";\n\ninterface ShowCalcModal {\n visible: boolean;\n view?: boolean;\n month?: number;\n year?: number;\n calc?: \"cripto\" | \"exterior\" | \"autonomos\" | \"imoveis\";\n}\n\ninterface HistoricProps {\n item: Page;\n}\n\nexport const HistoricAutonomos: React.FC = ({ item }) => {\n const navigate = useNavigate();\n const { state, pathname } = useLocation();\n const { currentBroker, currentPage, integrations } = useBroker();\n const { user, hasPlan, showUserPlanModal } = useAuth();\n\n const integrationSproutfi = Boolean(integrations?.sproutfi?.isIntegrated);\n\n const planMonthSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getMonth();\n const planYearSignature = new Date(user?.user?.userPlanInfoVelotax?.currentPlan?.createdAt).getFullYear();\n\n const today = new Date();\n const currentMonth = today.getMonth() + 1;\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = 2024;\n window.history.replaceState({}, document.title);\n\n const [data, setData] = useState();\n const [holidays, setHolidays] = useState([]);\n const [loading, setLoading] = useState(false);\n const [emitting, setEmitting] = useState(false);\n const [itemToPay, setItemToPay] = useState();\n const [paymentModal, setPaymentModal] = useState(false);\n const [year, setYear] = useState(stateYear ?? initialYear);\n const [showCalcModal, setShowCalcModal] = useState({\n visible: false,\n });\n const isBasic = user.user?.userPlanInfoVelotax?.type?.includes('BASIC');\n\n const historicFeature = item.features[0];\n const payFeature = item.features[1];\n const isCripto = pathname.includes(\"cripto\");\n const isImoveis = pathname.includes(\"imoveis\");\n const isExterior = pathname.includes(\"exterior\");\n const isAutonomos = pathname.includes(\"autonomos\");\n\n const backend = rendimentosBackend;\n const oldModel = year < yearConfigPL4173;\n\n const yearOptions = Array.from(\n Array(initialYear - currentBroker.initialYear + 1)\n )\n .map((y, i) => ({\n value: currentBroker.initialYear + i,\n label: `${currentBroker.initialYear + i}`,\n }))\n .reverse();\n\n const getHistoric = useCallback(() => {\n setLoading(true);\n backend\n .get(historicFeature.apiUrl, {\n params: { year },\n })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, backend]);\n\n const pay = useCallback(\n (payed: boolean, item: any) => {\n setLoading(true);\n backend\n .put(`${payFeature.apiUrl}/${item._id}`, { payed })\n .then(() => {\n getHistoric();\n setData((data) =>\n (data || []).map((darf) => ({\n ...darf,\n payed: item._id === darf._id ? payed : darf.payed,\n }))\n );\n })\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n },\n [payFeature, getHistoric, backend]\n );\n\n const sendDarfToEmail = (darfId: string) => {\n backend\n .get(`/darf/sendEmail/${darfId}`)\n .then(() => {\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n })\n .catch(() => {\n console.log(\"Algo inesperado aconteceu. Tente novamente!\");\n });\n };\n\n // const downloadAction = (record: any, index: number) => {\n // if (!hasPlan) {\n // handleOpenPlanModal();\n // } else {\n // backend.get(`${item.features[2].apiUrl}/${record._id}`).then((res) => {\n // if (res.data.url) {\n // download(res.data.url);\n // }\n // });\n // }\n // };\n\n const editAction = (\n record: any,\n view: boolean,\n index: number,\n noPlanMode?: boolean\n ) => {\n if (!hasPlan && !noPlanMode) {\n handleOpenPlanModal();\n } else if (isImoveis) {\n if (view) {\n setItemToPay(record);\n setShowCalcModal({\n visible: true,\n view,\n calc: \"imoveis\",\n });\n } else {\n navigate(`/${currentBroker.path}/imoveis-calculadora`, {\n state: record,\n });\n }\n } else {\n const { month, year } = record;\n setShowCalcModal({\n visible: true,\n view,\n year,\n month,\n calc: isAutonomos ? \"autonomos\" : isExterior ? \"exterior\" : \"cripto\",\n });\n if (view) {\n setItemToPay(record);\n }\n }\n };\n\n const payAction = (value: boolean, record: any) => {\n if (!hasPlan) {\n handleOpenPlanModal();\n } else {\n pay(value, record);\n }\n };\n\n const handleOpenPlanModal = () => {\n navigate('/planos');\n };\n\n const handlePayButton = (item: any, allow: boolean) => {\n if (!hasPlan || !allow) {\n handleOpenPlanModal();\n } else {\n getTaxes(item.month);\n setPaymentModal(!paymentModal);\n }\n };\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const handleTitle = (data: any) => {\n if (isImoveis) {\n return `CEP: ${data.cep}`;\n } else\n return `${monthsExtended[data.month - 1]}${!isMobile() ? ` de ${data.year}` : \"\"\n }`;\n };\n\n const valueIsGreaterThanMin = (data: any) =>\n (isAutonomos\n ? Number(\n Math.max(\n 0,\n data.impostoDevido +\n (data.impostoAcumulado || 0) -\n (data.gastosExterior || 0) +\n (data.multa || 0) +\n (data.juros || 0)\n )\n ) ?? 0\n : data?.impostoDevido + (data?.impostoAcumulado || 0) - (data.irrfExterior || 0)) >= minDarfPrice;\n\n const valueIsLessThanMax = (data: any) =>\n isImoveis\n ? data?.impostoDevido + (data?.impostoAcumulado || 0) <=\n maxImoveisDarfPrice\n : (isAutonomos ? data?.impostoDevido || 0 : data?.totalImpostoDevido) <=\n maxDarfPrice;\n\n const handleDarf = (justSave?: boolean, obj?: any) => {\n setLoading(true);\n setEmitting(true);\n const darfData = obj ? obj : itemToPay;\n (currentPage?.api || apis)\n .post(\"/darf\", {\n ...darfData,\n year,\n month: darfData?.month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: darfData?.memoriaCalculo,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n insertPix: true,\n justSave: false,\n })\n .then((res) => {\n getHistoric();\n setEmitting(false);\n if (!justSave) {\n setPaymentModal(year >= yearConfigPL4173 ? false : !paymentModal);\n oldModel\n ? message.success(\"O DARF foi enviado para o seu e-mail\")\n : message.success(\"O Relatório foi enviado para o seu e-mail\");\n\n if (res.data?.id) {\n sendDarfToEmail(res.data.id);\n }\n download(res.data.darfUrl);\n } else {\n payAction(true, { ...data, _id: res.data?.darf?._id });\n }\n })\n .catch((err) => {\n message.error(err?.response?.data?.message || errorMessage);\n setEmitting(false);\n })\n .finally(() => {\n setLoading(false);\n });\n };\n\n const generateDarf = async (\n pixValue: boolean,\n justSave?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const response = await MsDarf.post(\"/darf\", {\n month: data?.month,\n year,\n cpf: user.user.cpf,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge: Math.max(\n 0,\n data?.impostoDevido +\n data?.impostoAcumulado -\n data?.gastosExterior +\n data?.juros +\n data?.multa\n ),\n institution: \"velotax-rendimentos\",\n impostoDevido: data?.impostoDevido,\n totalImpostoDevido: data?.impostoDevido,\n totalRendimentos: data?.totalRendimentos,\n baseTributaria: data?.baseTributaria,\n totalDependentes: data?.totalDependentes,\n totalDespesas: data?.totalDespesas,\n totalPrevidencia: data?.totalPrevidencia,\n totalPensao: data?.totalPensao,\n totalDeducoes: data?.totalDeducoes,\n aliquotaDevida: data?.aliquotaDevida,\n impostoAcumulado: data?.impostoAcumulado,\n juros: data?.juros,\n multa: data?.multa,\n transactions: data?.monthStock,\n from: 18,\n gastosExterior: data?.gastosExterior,\n justSave: false,\n });\n setEmitting(false);\n setLoading(false);\n if (!justSave) {\n window.location.href = response.data?.darfUrl;\n setPaymentModal(!paymentModal);\n } else {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n }\n };\n\n const allow = ativarDarfsRetroativos({\n item: { month: showCalcModal?.month, year: showCalcModal?.year },\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n });\n const PayButton: React.FC<{ onClick: any; disabled: any; title: any; item: any; }> = ({\n onClick,\n disabled,\n title,\n item,\n }) => {\n\n console.log('item', item);\n\n return (\n target.parentElement!}\n title={title}\n >\n }\n disabled={disabled}\n onClick={onClick}\n >\n Pagar\n {\" \"}\n \n );\n };\n\n const generateDarfImoveis = async (\n pixValue: boolean,\n justPay?: boolean,\n obj?: any\n ) => {\n setEmitting(true);\n const data = obj ? obj : itemToPay;\n const valueCharge =\n (data?.impostoDevido ?? 0) +\n (data?.impostoAcumulado ?? 0) +\n (data?.juros ?? 0) +\n (data?.multa ?? 0);\n\n const response = await darfBackend.post(\"/darf\", {\n month: new Date().getMonth() + 1,\n year: new Date().getFullYear(),\n cpf: user.user.cpf,\n cep: data?.cep,\n _id: data?.imovelId,\n name: user.user.name,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n insertPix: pixValue,\n valueCharge,\n totalImpostoDevido: data?.impostoDevido,\n institution: \"imoveis-velotax\",\n impostoDevido: data?.impostoDevido || 0,\n impostoAcumulado: data?.impostoAcumulado || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n from: 18,\n });\n setLoading(false);\n setEmitting(false);\n if (justPay) {\n payAction(true, { ...data, _id: response.data?.darf?._id });\n } else {\n setPaymentModal(!paymentModal);\n window.location.href = response.data?.darfUrl;\n }\n };\n\n const handleOpenDarfModal = (justSave?: boolean, obj?: any) => {\n if (isAutonomos) {\n generateDarf(true, justSave, obj);\n } else if (isImoveis) {\n generateDarfImoveis(true, false, obj);\n } else {\n handleDarf(justSave, obj);\n }\n };\n\n const getHolidays = async () => {\n instanceMsCalc.get(`/rates/get-holidays`)\n .then(({ data }) => {\n const dataFormated = data?.map((el: any) => {\n return moment(el).tz('Europe/London').format('MM-DD');\n });\n setHolidays(dataFormated);\n })\n .catch(() => console.log('Erro ao buscar feriados'));\n\n };\n\n useEffect(() => {\n getHistoric();\n getHolidays();\n }, [getHistoric, year]);\n\n const getTaxes = useCallback(\n (month: number, callback?: (obj: any) => void) => {\n (backend)\n .get(`/rendimentos/${year}/${month}`)\n .then((response) => {\n const data = {\n ...response.data,\n year,\n month,\n name: user.user.name,\n memoriaCalculo: [],\n transactions: response.data.memoriaCalculo,\n };\n setItemToPay(data);\n callback?.(data);\n })\n .catch(() => { });\n },\n [currentPage?.api, year, user.user.name]\n );\n\n const getRendimentos = useCallback(\n async (month: number, callback?: (obj: any) => void) => {\n const response = await rendimentosBackend.get(\n `/rendimentos/${year}/${month}`\n );\n const { data } = response;\n const monthStock = data.monthStock || [];\n const currentImpostos = {\n totalRendimentos: data?.totalRendimentos || 0,\n baseTributaria: data?.baseTributaria || 0,\n aliquotaDevida: data?.aliquotaDevida || 0,\n impostoDevido: data?.impostoDevido || 0,\n totalDeducoes: data?.totalDeducoes || 0,\n totalDependentes: data?.totalDependentes || 0,\n totalDespesas: data?.totalDespesas || 0,\n totalPensao: data?.totalPensao || 0,\n totalPrevidencia: data?.totalPrevidencia || 0,\n juros: data?.juros || 0,\n multa: data?.multa || 0,\n impostoTotal:\n (data.impostoDevido || 0) + (data.juros || 0) + (data.multa || 0),\n impostoAcumulado: data?.impostoAcumulado || 0,\n gastosExterior: data?.gastosExterior || 0,\n payed: data?.payed || false,\n emitted: data?.emitted || false,\n };\n\n const valueToCharge = Math.max(\n 0,\n (currentImpostos?.impostoDevido || 0) +\n (currentImpostos.impostoAcumulado || 0) -\n (currentImpostos.gastosExterior || 0) +\n (currentImpostos.juros || 0) +\n (currentImpostos.multa || 0)\n );\n const dataToPayment = {\n cpf: user.user.cpf,\n name: user.user.name,\n valueCharge: valueToCharge,\n institution: \"velotax-rendimentos\",\n impostoDevido: currentImpostos.impostoDevido,\n totalImpostoDevido: currentImpostos.impostoTotal,\n impostoTotalFinal: valueToCharge,\n totalRendimentos: currentImpostos.totalRendimentos,\n baseTributaria: currentImpostos.baseTributaria,\n totalDependentes: currentImpostos.totalDependentes,\n totalDespesas: currentImpostos.totalDespesas,\n totalPrevidencia: currentImpostos.totalPrevidencia,\n totalPensao: currentImpostos.totalPensao,\n totalDeducoes: currentImpostos.totalDeducoes,\n aliquotaDevida: currentImpostos.aliquotaDevida,\n impostoAcumulado: currentImpostos.impostoAcumulado,\n gastosExterior: currentImpostos.gastosExterior,\n juros: currentImpostos.juros,\n multa: currentImpostos.multa,\n transactions: monthStock,\n year,\n month,\n };\n\n setItemToPay(dataToPayment);\n callback?.({ ...data, ...dataToPayment });\n },\n [user.user.cpf, user.user.name, year]\n );\n\n const setImovelToPay = (item: any) => {\n setItemToPay({\n from: 18,\n paymentForm: \"pix\",\n cep: item.cep,\n _id: item.imovelId,\n cpf: user.user.cpf,\n name: user.user.name,\n year: new Date().getFullYear(),\n month: new Date().getMonth() + 1,\n paymentInfo: {\n clientInfo: {\n document: user.user.cpf,\n email: user.user.email,\n name: user.user.name,\n phone: \"\",\n },\n },\n juros: item.juros,\n multa: item.multa,\n institution: \"imoveis-velotax\",\n impostoDevido: item.impostoDevido,\n totalImpostoDevido: item.impostoDevido,\n impostoAcumulado: item.impostoAcumulado ?? 0,\n valueCharge:\n (item.impostoDevido ?? 0) +\n (item.impostoAcumulado ?? 0) +\n (item.juros ?? 0) +\n (item.multa ?? 0),\n });\n };\n\n const handleFinalValue = (item: any) => {\n if (isAutonomos) {\n return (\n item.totalImpostoDevido ??\n Number(\n Math.max(\n 0,\n item.impostoDevido +\n (item.impostoAcumulado || 0) -\n (item.gastosExterior || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n )\n ) ??\n 0\n );\n } else if (isImoveis) {\n return Number(\n (item.impostoDevido || 0) +\n (item.impostoAcumulado || 0) +\n (item.juros || 0) +\n (item.multa || 0)\n );\n } else {\n return Number(\n (item.impostoDevido || 0) +\n (item.impostoAcumulado || 0) -\n (item.irrfExterior || 0) +\n ((item.impostoDevido || 0) + (item.impostoAcumulado || 0) <\n minDarfPrice\n ? 0\n : (item.juros || 0) + (item.multa || 0) || !oldModel)\n );\n }\n };\n\n const handleCloseCalcModal = () => {\n setShowCalcModal({ visible: false });\n getHistoric();\n };\n\n const exteriorTransactionsFilter = (el: any) =>\n (el.operation === \"SELL\" && !el?.type) ||\n (el.operation === \"SELL\" && el.manual) ||\n (el.operation === \"SELL\" && el.type === \"TRADE\");\n\n const handleVendasTotais = (item: any) => {\n return isExterior\n ? item.transactions\n ?.filter(exteriorTransactionsFilter)\n .reduce((a: number, t: any) => a + (oldModel ? ((t.valor || 0) * (t.cambioVenda || 0)) : (t.sellPrice_BRL || 0) * (t.quantidade || 0)), 0)\n : pathname.includes('autonomos') ? 0\n : item.transactions.reduce(\n (a: number, t: any) => a + t.quantity * t.sellPrice,\n 0\n );\n };\n\n const ImpostoAPagarNoPlan = (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n );\n\n const ImpostoAPagarWithPlan: React.FC<{ item: any; }> = ({ item }) => {\n const value = handleFinalValue(item);\n return (\n \n Imposto a pagar: \n \n {value >= 10 ? formatCurrency(value) : \"Isento\"}\n \n \n );\n };\n\n const showPayButton = (item: any) => {\n return (valueIsGreaterThanMin(item) &&\n valueIsLessThanMax(item) &&\n (item.status !== \"PAYED\" || !item.payed));\n };\n // block,\n // }) => {\n // const allow = ativarDarfsRetroativos({\n // item,\n // hasPlan,\n // currentYear,\n // currentMonth,\n // });\n // return (\n // target.parentElement!}\n // title={\n // !allow\n // ? mensagemDarfsRetroativos\n // : disableCurrentMonth(item)\n // ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n // : \"\"\n // }\n // >\n // }\n // style={block ? { marginTop: \"16px\", height: \"40px\" } : {}}\n // onClick={() => {\n // if (!allow) {\n // handleOpenPlanModal();\n // } else {\n // if (isAutonomos) {\n // getRendimentos(item.month);\n // } else if (isImoveis) {\n // setImovelToPay(item);\n // } else {\n // getTaxes(item.month);\n // }\n // setPaymentModal(!paymentModal);\n // }\n // }}\n // >\n // Pagar\n // {\" \"}\n // \n // );\n // };\n\n const disableCurrentMonth = (item: any) =>\n item.year === currentYear && item.month === currentMonth;\n\n return (\n
\n
\n \n Impostos devidos (DARF)\n {false && !hasPlan && (\n \n Contratar plano\n \n \n )}\n \n {!isImoveis && (\n }\n getPopupContainer={(target) => target.parentElement}\n />\n )}\n\n \n !(item.year === currentYear && item.month > currentMonth + 1)\n ) ?? []\n }\n itemLayout=\"horizontal\"\n className={clsx(\"velotax-historic-list\", { \"no-plan\": !hasPlan })}\n renderItem={(item, index) => {\n const allow = ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n });\n const ultimoDiaUtilDoMes = getLastBusinessDay(\n new Date(item.year, item.month + 1, 0),\n holidays,\n );\n const vencimento = moment(ultimoDiaUtilDoMes).format(\"DD/MM/YYYY\");\n const currentDarfDate = new Date(year, item.month - 1, 1);\n const month = planMonthSignature === 0 ? 11 : planMonthSignature - 1;\n const yearSign = planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature;\n\n const dateAllowedOnBasic = new Date(yearSign, month, 1); \n const checkMonth = (currentDarfDate.getTime() < dateAllowedOnBasic.getTime());\n const hideOnBasic = isBasic && checkMonth;\n\n return handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n item={item}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n />\n ),\n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n >\n {showPayButton(item) ? \"\" : Visualizar}\n ,\n ]\n : []\n }\n >\n \n \n {handleTitle(item)}\n {(!hasPlan || hideOnBasic) &&\n (isAutonomos ? item.monthStock : item.transactions)\n ?.length > 0 &&\n isMobile() && (\n \n }\n onClick={() => editAction(item, true, index, true)}\n />\n )}\n {(hasPlan && !hideOnBasic) ? (\n
\n {valueIsGreaterThanMin(item) &&\n !hideOnBasic &&\n !disableCurrentMonth(item) ? (\n {\n if (\n !ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n })\n ) {\n showUserPlanModal(true);\n } else if (item._id && item.fullPath) {\n payAction(!item.payed, item);\n } else if (isAutonomos) {\n setLoading(true);\n getRendimentos(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n } else if (isImoveis) {\n setItemToPay(item);\n generateDarfImoveis(true, true, item);\n } else {\n setLoading(true);\n getTaxes(item.month, (obj: any) => {\n handleOpenDarfModal(true, obj);\n });\n }\n }}\n />\n ) : undefined}\n {isMobile() && (\n \n }\n onClick={() =>\n editAction(\n item,\n item.status === \"PAYED\" &&\n valueIsGreaterThanMin(item),\n index\n )\n }\n />\n )}\n
\n ) : undefined}\n \n }\n description={\n \n {!hasPlan || hideOnBasic ?\n (\n <>\n {(\n item.monthStock)?.length > 0 ? (\n <>\n {ImpostoAPagarNoPlan}\n \n ) : (\n \n Insira seus rendimentos tributáveis\n \n )}\n \n ) : (\n <>\n {(item.monthStock\n )?.length > 0 ? (\n <>\n {!ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) ? (\n \n Imposto a pagar: \n {\n handleOpenPlanModal();\n }}\n >\n \n Clique para verificar \n \n \n \n \n ) : (\n \n )}\n {handleFinalValue(item) > 0 &&\n ativarDarfsRetroativos({\n item,\n hasPlan,\n currentYear,\n currentMonth,\n planMonthSignature: planMonthSignature === 0 ? 12 : planMonthSignature,\n planYearSignature: planMonthSignature === 0 ? planYearSignature - 1 : planYearSignature\n }) && (\n \n Vencimento: \n \n {vencimento}\n \n \n )}\n {isMobile() && showPayButton(item) && (\n handlePayButton(item, allow)}\n disabled={disableCurrentMonth(item)}\n item={item}\n title={\n allow\n ? disableCurrentMonth(item) ? \"Aguarde o encerramento do mês para pagar seu DARF\"\n : \"\"\n : mensagemDarfsRetroativos\n }\n />\n )}\n \n ) : (\n \n Insira seus rendimentos tributáveis\n \n )}\n \n )}\n \n }\n />\n
\n ;\n }}\n />\n\n {(isCripto || isExterior) && (\n \n Outras opções\n \n )}\n\n
\n {(isCripto\n ? [...itensCriptoSemLogo.slice(1)]\n : isExterior\n ? [...itensExteriorSemLogo.slice(1)]\n : []\n ).map((item: any) => {\n if (item.sprotifi && !integrationSproutfi) {\n return null;\n }\n return (\n {\n handleOpenPlanModal();\n }\n }\n >\n {(hasPlan && !isBasic) || item.id === \"integration\" ? (\n <>{item.content}\n ) : (\n \n {item.content}\n }\n onClick={() => {\n handleOpenPlanModal();\n }}\n >\n PREMIUM\n \n \n )}\n \n );\n })}\n
\n
\n\n \n (isImoveis ? maxImoveisPixPayment : maxPixPayment)\n }\n disableCreditCardOption={\n (handleFinalValue(itemToPay || {}) || 0) >\n (isImoveis ? maxImoveisCreditCardPayment : maxCreditCardPayment)\n }\n closeDarfModal={() => {\n setPaymentModal(false);\n getHistoric();\n }}\n onCancel={() => {\n setPaymentModal(!paymentModal);\n }}\n callDarf={() => {\n handleOpenDarfModal();\n if (isCripto) {\n HandleTag(\"78\");\n }\n if (isExterior) {\n HandleTag(\"77\");\n }\n }}\n paymentData={{\n ...itemToPay,\n cpf: user?.user?.cpf,\n institution: 'velotax-rendimentos',\n impostoTotalFinal: (itemToPay?.impostoTotal || 0) + (itemToPay?.impostoAcumulado || 0),\n valueCharge: (itemToPay?.impostoTotal || 0) + (itemToPay?.impostoAcumulado || 0),\n }}\n {...(isImoveis ? { customInstallments: 12 } : {})}\n />\n \n {isImoveis && itemToPay ? (\n \n ) : isAutonomos ? (\n \n ) : isExterior ? (\n \n ) : (\n \n )}\n \n
\n );\n};\n","import { LoadingOutlined } from \"@ant-design/icons\";\nimport { RiDownloadCloudLine } from \"react-icons/ri\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\nimport { Col, List, message, Row, Select, Skeleton, Typography } from \"antd\";\nimport { Card } from \"./Cards\";\nimport { cards } from \"./items\";\nimport apis from \"../../services/apis\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DrawerModal } from \"../../components/DrawerModal\";\nimport { ReportContainer, Container, Content } from \"./styles\";\nimport {\n download,\n downloadPDF,\n errorMessage,\n getInitialYear,\n monthsExtended,\n zero,\n} from \"../../utils\";\n\ninterface ReportProps {\n item: Page;\n}\n\nexport const ReportBolsa: React.FC = ({ item }) => {\n const { showUserPlanModal, userPlanModal, hasPlan } = useAuth();\n const { state } = useLocation();\n const navigate = useNavigate();\n\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = getInitialYear(currentYear, currentMonth);\n window.history.replaceState({}, document.title);\n\n const { currentPage } = useBroker();\n\n const [action, setAction] = useState();\n\n const [data, setData] = useState();\n const [infoModal, toggleModal] = useState(null);\n const [loading, setLoading] = useState(false);\n const [loadingLinks] = useState(false);\n const [year, setYear] = useState(stateYear ?? initialYear);\n\n const historicFeature = item.features[0];\n const downloadFeature = item.features[1];\n // const sendEmailFeature = item.features[2];\n\n const yearOptions = Array.from(Array(initialYear - 2020 + 1))\n .map((y, i) => ({\n value: 2020 + i,\n label: `${2020 + i}`,\n }))\n .reverse();\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const getHistoric = useCallback(() => {\n if (!action) return;\n if (action === \"anual-report\")\n return setData(\n Array.from(Array(new Date().getFullYear() - 2022))\n .map((y, i) => ({\n year: 2022 + i,\n label: `${2022 + i}`,\n }))\n .reverse()\n );\n\n setLoading(true);\n (currentPage?.api || apis)\n .get(historicFeature.apiUrl, { params: { year } })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, currentPage, action]);\n\n // const getDowloadLinks = useCallback(\n // (data: any[], action: string) => {\n // setLoadingLinks(true);\n // const dataLinks = data.map((item) =>\n // !!item._id\n // ? (currentPage?.api || apis).post(\n // `${downloadFeature.apiUrl}/${action}`,\n // {\n // id: item._id,\n // year: item.year,\n // month: item.month,\n // }\n // )\n // : Promise.resolve({ data: item })\n // );\n // Promise.allSettled(dataLinks).then((response) => {\n // setData(\n // response.map((item, index) =>\n // item.status === \"fulfilled\" && item.value.data?.file\n // ? {\n // ...data?.[index],\n // url: `data:application/pdf;base64,${item.value.data.file}`,\n // }\n // : data?.[index]\n // )\n // );\n // setLoadingLinks(false);\n // });\n // },\n // [currentPage, downloadFeature]\n // );\n\n // const sendDarfToEmail = (reportId: string) => {\n // (currentPage?.api || apis)\n // .get(`${sendEmailFeature.apiUrl}/${reportId}`)\n // .then(() => {\n // message.success(\"O DARF foi enviado para o seu e-mail\");\n // })\n // .catch((error) => {\n // console.log(error);\n // });\n // };\n\n const downloadAction = (record: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .post(`${downloadFeature.apiUrl}/${action}`, {\n id: record._id,\n month: record.month,\n year: record.year,\n })\n .then((res) => {\n message.success(\"Relatório enviado para o seu e-mail\");\n if (res.data.file) {\n downloadPDF(res.data.file);\n } else if (res.data.fileUrl) {\n download(res.data.fileUrl);\n }\n })\n .catch(({ response }) =>\n message.error(response?.data?.message ?? errorMessage)\n )\n .finally(() => setLoading(false));\n };\n\n const checkProcessorAction = (record: any) => {\n setLoading(true);\n let showToast = false;\n toggleModal(record);\n const itvl = setInterval(() => {\n (currentPage?.api || apis)\n .get(`${downloadFeature.apiUrl}/${action}?year=${record.year}`)\n .then((res) => {\n const { data } = res;\n const { year, status } = data;\n const isProcessing = record.year === year && status === \"processing\";\n if (isProcessing && showToast) return;\n if (isProcessing && !showToast) {\n showToast = true;\n return message.success(\n `Estamos processando os dados para seu relatório anual de ${year}`\n );\n }\n setLoading(false);\n clearInterval(itvl);\n })\n .catch(({ response }) => {\n const { data, status } = response;\n if (status === 401)\n setTimeout(() => navigate(\"/velotax/bolsa-integration\"), 2000);\n message.error(data?.message ?? errorMessage);\n setLoading(false);\n clearInterval(itvl);\n });\n }, 5000);\n };\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleActionButton = (id: string) => {\n if (!hasPlan) {\n handlePlanModal();\n } else {\n setAction(id);\n }\n };\n\n useEffect(() => {\n getHistoric();\n }, [getHistoric, year]);\n\n return (\n \n
\n
\n \n Relatórios auxiliares\n \n \n Confira os relatórios{\" \"}\n {action !== \"anual-report\" ? \"auxiliares\" : \"anuais\"} para a\n declaração do seu IR na bolsa de valores.\n \n\n {!action && (\n
\n {cards.map((item) => (\n \n ) : (\n item.icon\n )\n }\n handleClick={() => !loading && handleActionButton(item.id)}\n >\n {item.content}\n \n ))}\n
\n )}\n {action && (\n \n \n Selecione o ano:\n {action !== \"anual-report\" && (\n \n )}\n {\n return (\n action === \"anual-report\" ||\n item.year === year ||\n item.year === currentYear)\n }\n ) ?? []\n }\n itemLayout=\"horizontal\"\n renderItem={(item, index) => {\n // if (item.year === 2024 && action === \"anual-report\") return <>\n return (\n \n action === \"anual-report\"\n ? checkProcessorAction(item)\n : downloadAction(\n item\n ) /*sendDarfToEmail(item._id)*/\n }\n download={`Relatório-${item.year}-${zero(\n item.month\n )}.pdf`}\n >\n Baixar\n {loadingLinks ? (\n \n ) : (\n \n )}\n ,\n ]}\n >\n \n \n \n \n )\n }}\n />\n handleActionButton(\"\")}\n style={{ marginTop: \"1rem\" }}\n >\n Voltar\n \n \n toggleModal(null)}\n footer={\n \n \n toggleModal(null)}\n >\n Cancelar\n \n \n \n {\n downloadAction(infoModal);\n toggleModal(null);\n }}\n >\n Continuar\n \n \n \n }\n >\n \n Você deve estar com as suas operações na bolsa salvas na aba{\" \"}\n \n Calculadora\n {\" \"}\n para todos os meses do ano selecionado.\n \n \n \n )}\n
\n
\n
\n );\n};\n","import { useLocation, useNavigate } from \"react-router-dom\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { RiDownloadCloudLine } from \"react-icons/ri\";\nimport { Button as MaterialButton } from \"@mui/material\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { Badge, Col,Row, Modal, List, message, Select, Skeleton, Typography } from \"antd\";\nimport { cards } from \"./items\";\nimport apis from \"../../services/apis\";\nimport { Card } from \"../ReportBolsa/Cards\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { ReportContainer, Container, Content } from \"../ReportBolsa/styles\";\nimport {\n download,\n downloadPDF,\n errorMessage,\n getInitialYear,\n monthsExtended,\n zero,\n} from \"../../utils\";\nimport { YearReport } from \"../../constants/rendimentos\";\n\ninterface ReportProps {\n item: Page;\n}\n\nexport const ReportExterior: React.FC = ({ item }) => {\n const { showUserPlanModal, userPlanModal, hasPlan, user } = useAuth();\n\n const navigate = useNavigate();\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = (today.getFullYear() - 1);\n const [initialYear, setInitialYear] = useState(currentYear);\n window.history.replaceState({}, document.title);\n\n const { currentPage } = useBroker();\n const [action, setAction] = useState('anual-report');\n // const [action, setAction] = useState();\n\n const [data, setData] = useState();\n const [infoModal, toggleModal] = useState(null);\n const [loading, setLoading] = useState(false);\n const [loadingLinks] = useState(false);\n const [year, setYear] = useState(initialYear);\n\n const historicFeature = item.features[0];\n const downloadFeature = item.features[1];\n // const sendEmailFeature = item.features[2];\n const transactionsFeature = item.features[3];\n const darfFeature = item.features[4];\n\n const yearOptions = Array.from(Array(initialYear - 2020 + 1))\n .map((y, i) => ({\n value: 2020 + i,\n label: `${2020 + i}`,\n }))\n .reverse();\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const getHistoric = useCallback(() => {\n if (!action) return;\n if (action === \"anual-report\")\n return setData(\n Array.from(Array(new Date().getFullYear() - 2022))\n .map((y, i) => ({\n year: 2022 + i,\n label: `${2022 + i}`,\n }))\n .reverse()\n );\n\n setLoading(true);\n (currentPage?.api || apis)\n .get(`${historicFeature.apiUrl}/${action || \"gain\"}`, {\n params: { year },\n })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, currentPage, action]);\n\n // const getDowloadLinks = useCallback(\n // (data: any[], action: string) => {\n // setLoadingLinks(true);\n // const dataLinks = data.map((item) =>\n // !!item._id\n // ? (currentPage?.api || apis).post(\n // `${downloadFeature.apiUrl}/${action}`,\n // {\n // id: item._id,\n // year: item.year,\n // month: item.month,\n // }\n // )\n // : Promise.resolve({ data: item })\n // );\n // Promise.allSettled(dataLinks).then((response) => {\n // setData(\n // response.map((item, index) =>\n // item.status === \"fulfilled\" && item.value.data?.file\n // ? {\n // ...data?.[index],\n // url: `data:application/pdf;base64,${item.value.data.file}`,\n // }\n // : data?.[index]\n // )\n // );\n // setLoadingLinks(false);\n // });\n // },\n // [currentPage, downloadFeature]\n // );\n\n // const sendDarfToEmail = (reportId: string) => {\n // (currentPage?.api || apis)\n // .get(`${sendEmailFeature.apiUrl}/${reportId}`)\n // .then(() => {\n // message.success(\"O DARF foi enviado para o seu e-mail\");\n // })\n // .catch((error) => {\n // console.log(error);\n // });\n // };\n\n const downloadAction = (record: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .post(`${downloadFeature.apiUrl}/${action}`, {\n id: record._id,\n month: record.month,\n year: record.year,\n })\n .then((res) => {\n if (res.data.file) {\n downloadPDF(res.data.file, \"exterior\");\n } else if (res.data.fileUrl) {\n download(res.data.fileUrl);\n }\n message.success(\"O relatório foi enviado para o seu e-mail\");\n })\n .catch(({ response }) =>\n message.error(response?.data?.message ?? errorMessage)\n )\n .finally(() => setLoading(false));\n };\n\n const downloadDarf = async (data: any) => {\n setLoading(true);\n\n (currentPage?.api || apis).post(`${darfFeature.apiUrl}`, data)\n .then((res) => {\n if (!res?.data?.darfUrl ) {\n return message.error(\"Houve um erro ao baixar seu relatório!\")\n }\n download(res.data.darfUrl);\n message.success(\"Relatório emitido com sucesso\");\n })\n .catch(({ response }) =>\n message.error(response?.data?.message)\n )\n .finally(() => {\n setLoading(false);\n });\n };\n\n \n const checkDarf = (record: any) => {\n setLoading(true);\n (currentPage?.api || apis).get(`${transactionsFeature.apiUrl}`, { params: { year: record.year} })\n .then((res) => {\n const darf = res.data.find((d: any)=> {\n if (record?.month == d?.month) return d;\n })\n if (!darf || !darf?._id) {\n message.info(\"Cliente não possui relatório para este mês.\");\n setLoading(false);\n return;\n }\n delete darf?.transactions;\n const data = {\n ...darf,\n year: record.year,\n month: record.month,\n name: user?.user?.name,\n memoriaCalculo: [],\n justSave: false,\n payed: false,\n noSendMail: true,\n paymentInfo: {\n clientInfo: {\n name: user?.user?.name,\n email: user?.user?.email,\n document: user?.user?.cpf,\n },\n },\n };\n setLoading(false);\n downloadDarf(data);\n })\n .catch(({ response }) => {\n const { data, status } = response;\n if (status === 401) message.error(data?.message);\n setLoading(false);\n });\n }\n\n const checkProcessorAction = (record: any) => {\n setLoading(true);\n let showToast = false;\n const itvl = setInterval(() => {\n (currentPage?.api || apis)\n .get(`${downloadFeature.apiUrl}/${action}?year=${record.year}`)\n .then((res) => {\n const { data } = res;\n const { year, status } = data;\n const isProcessing = record.year === year && status === \"processing\";\n if (isProcessing && showToast) return;\n if (isProcessing && !showToast) {\n showToast = true;\n return message.success(\n `Estamos processando os dados para seu relatório anual de ${year}`\n );\n }\n setLoading(false);\n clearInterval(itvl);\n })\n .catch(({ response }) => {\n const { data, status } = response;\n if (status === 401)\n setTimeout(() => navigate(\"/velotax/bolsa-integration\"), 2000);\n message.error(data?.message ?? errorMessage);\n setLoading(false);\n clearInterval(itvl);\n });\n }, 5000);\n };\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleActionButton = (id: string) => {\n navigate('/velotax/exterior')\n // if (!hasPlan) {\n // handlePlanModal();\n // } else {\n // setAction(id);\n // switch (id) {\n // case \"anual-report\":\n // case \"income\":\n // setYear(2023);\n // setInitialYear(2023);\n // break;\n // case \"gain\":\n // setYear(2024);\n // setInitialYear(2024);\n // break;\n // }\n // }\n };\n\n useEffect(() => {\n getHistoric();\n }, [getHistoric, year, action]);\n\n return (\n \n
\n
\n \n Relatórios auxiliares\n \n \n Confira os relatórios auxiliares de operações no exterior para a\n declaração do seu IR.\n \n {!action && (\n
\n {cards.map((item) => (\n // \n !loading && handleActionButton(item.id)}\n >\n {item.content}\n \n // \n ))}\n
\n )}\n {action && (\n \n \n Selecione o ano:\n {action !== \"anual-report\" && (\n trigger.parentElement}\n />\n )}\n {\n return (\n action === \"anual-report\" ||\n item.year === year ||\n item.year === currentYear)\n }\n ) ?? []\n }\n itemLayout=\"horizontal\"\n renderItem={(item, index) => {\n if(item.year === 2024 && action === \"anual-report\")return <>\n return (\n \n {\n (action === \"anual-report\")\n ? toggleModal(item)\n : ((action === \"gain\") && year === 2024)\n ? checkDarf(item)\n : downloadAction(item)\n }\n }\n download={`Relatório-${item.year}-${zero(\n item.month\n )}.pdf`}\n >\n Baixar\n {loadingLinks ? (\n \n ) : (\n \n )}\n ,\n ]}\n >\n \n \n \n \n )\n }}\n />\n handleActionButton(\"\")}\n style={{ marginTop: \"1rem\" }}\n >\n Voltar\n \n \n \n )}\n
\n {\n toggleModal(null);\n }}\n footer={\n \n \n {\n downloadAction(infoModal);\n toggleModal(null);\n }}\n >\n Continuar\n \n \n \n {\n navigate(\"/velotax/exterior-historic\");\n }}\n >\n Ir para calculadora de DARF\n \n \n \n }\n >\n \n \n Caso você tenha realizado operações de venda de ativos ou recebido\n cupom de bonds em {year},\n {\" \"}\n certifique-se de que todos os meses estejam com a situação \"Regular\"\n na Calculadora de DARF.\n \n \n
\n
\n );\n};\n","import { useLocation, useNavigate } from \"react-router-dom\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { RiDownloadCloudLine } from \"react-icons/ri\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport {\n List,\n message,\n Select,\n Skeleton,\n Typography,\n} from \"antd\";\nimport { cards } from \"./items\";\nimport apis from \"../../services/apis\";\nimport { Card } from \"../ReportBolsa/Cards\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { ReportContainer, Container, Content } from \"../ReportBolsa/styles\";\nimport {\n download,\n downloadPDF,\n errorMessage,\n getInitialYear,\n monthsExtended,\n zero,\n} from \"../../utils\";\n\ninterface ReportProps {\n item: Page;\n}\n\nexport const ReportCripto: React.FC = ({ item }) => {\n const { showUserPlanModal, userPlanModal, hasPlan } = useAuth();\n\n const { state } = useLocation();\n const navigate = useNavigate();\n const today = new Date();\n const currentMonth = today.getMonth();\n const currentYear = today.getFullYear();\n const stateYear = (state as any)?.year;\n const initialYear = getInitialYear(currentYear, currentMonth);\n window.history.replaceState({}, document.title);\n\n const { currentPage } = useBroker();\n const [action, setAction] = useState();\n\n const [data, setData] = useState();\n const [infoModal, toggleModal] = useState(null);\n const [loading, setLoading] = useState(false);\n const [loadingLinks] = useState(false);\n const [year, setYear] = useState(stateYear ?? initialYear);\n\n const historicFeature = item.features[0];\n const downloadFeature = item.features[1];\n // const sendEmailFeature = item.features[2];\n\n const yearOptions = Array.from(Array(initialYear - 2020 + 1))\n .map((y, i) => ({\n value: 2020 + i,\n label: `${2020 + i}`,\n }))\n .reverse();\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n const getHistoric = useCallback(() => {\n if (!action) return;\n if (action === \"anual-report\")\n return setData(\n Array.from(Array(new Date().getFullYear() - 2022))\n .map((y, i) => ({\n year: 2022 + i,\n label: `${2022 + i}`,\n }))\n .reverse()\n );\n\n setLoading(true);\n (currentPage?.api || apis)\n .get(`${historicFeature.apiUrl}/${action || \"gain\"}`, {\n params: { year },\n })\n .then((response) => setData((response.data ?? []).reverse()))\n .catch(() => message.error(errorMessage))\n .finally(() => setLoading(false));\n }, [historicFeature, year, currentPage, action]);\n\n const downloadAction = (record: any) => {\n setLoading(true);\n (currentPage?.api || apis)\n .post(`${downloadFeature.apiUrl}/${action}`, {\n id: record._id,\n month: record.month,\n year: record.year,\n })\n .then((res) => {\n if (res.data.file) {\n downloadPDF(res.data.file, \"crypto\");\n } else if (res.data.fileUrl) {\n download(res.data.fileUrl);\n }\n message.success(\"O relatório foi enviado para o seu e-mail\");\n })\n .catch(({ response }) =>\n message.error(response?.data?.message ?? errorMessage)\n )\n .finally(() => setLoading(false));\n };\n\n // const checkProcessorAction = (record: any) => {\n // setLoading(true);\n // let showToast = false;\n // const itvl = setInterval(() => {\n // (currentPage?.api || apis)\n // .get(`${downloadFeature.apiUrl}/${action}?year=${record.year}`)\n // .then((res) => {\n // const { data } = res;\n // const { year, status } = data;\n // const isProcessing = record.year === year && status === \"processing\";\n // if (isProcessing && showToast) return;\n // if (isProcessing && !showToast) {\n // showToast = true;\n // return message.success(\n // `Estamos processando os dados para seu relatório anual de ${year}`\n // );\n // }\n // setLoading(false);\n // clearInterval(itvl);\n // })\n // .catch(({ response }) => {\n // const { data, status } = response;\n // if (status === 401)\n // setTimeout(() => navigate(\"/velotax/bolsa-integration\"), 2000);\n // message.error(data?.message ?? errorMessage);\n // setLoading(false);\n // clearInterval(itvl);\n // });\n // }, 5000);\n // };\n\n const handlePlanModal = () => {\n showUserPlanModal(!userPlanModal);\n };\n\n const handleActionButton = (id: string) => {\n if (!hasPlan) {\n handlePlanModal();\n } else {\n setAction(id);\n }\n };\n\n useEffect(() => {\n getHistoric();\n }, [getHistoric, year, action]);\n\n return (\n \n
\n
\n \n Relatórios auxiliares\n \n \n Confira os relatórios auxiliares de operações de cripto para a\n declaração do seu IR.\n \n {!action && (\n
\n {cards.map((item) => (\n // \n !loading && handleActionButton(item.id)}>\n {item.content}\n \n // \n ))}\n
\n )}\n {action && (\n \n \n Selecione o ano:\n {action !== \"anual-report\" && (\n trigger.parentElement}\n />\n )}\n {\n return (\n action === \"anual-report\" ||\n item.year === year ||\n item.year === currentYear\n );\n }) ?? []\n }\n itemLayout=\"horizontal\"\n renderItem={(item, index) => {\n if (item.year === 2024 && action === \"anual-report\") return <>\n\n return (\n downloadAction(item)\n // action === \"anual-report\"\n // ? toggleModal(item)\n // : downloadAction(\n // item\n // ) /*sendDarfToEmail(item._id)*/\n }\n download={`Relatório-${item.year}-${zero(\n item.month\n )}.pdf`}>\n Baixar\n {loadingLinks ? (\n \n ) : (\n \n )}\n ,\n ]}>\n \n \n \n \n )\n }}\n />\n handleActionButton(\"\")}\n style={{ marginTop: \"1rem\" }}>\n Voltar\n \n \n \n )}\n
\n {/* {\n toggleModal(null);\n }}\n footer={\n \n \n {\n downloadAction(infoModal);\n toggleModal(null);\n }}>\n Continuar\n \n \n \n {\n navigate(\"/velotax/cripto-historic\");\n }}>\n Ir para calculadora de DARF\n \n \n \n }>\n \n \n Caso você tenha realizado operações de venda de ativos ou recebido\n cupom de bonds neste ano,\n {\" \"}\n certifique-se de que todos os meses estejam com a situação \"Regular\"\n na Calculadora de DARF.\n \n */}\n
\n
\n );\n};\n","import { Button, Spin, Typography } from \"antd\";\nimport { NovoCadastro } from \"../NovoCadastro\";\nimport myntLogo from \"../../assets/mynt.svg\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport mercadoBitcoinLogo from \"../../assets/mercado-logo2.png\";\nimport CryptoIntegration from \"../../components/IntegrationComponents/CryptoIntegration\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useState } from \"react\";\n\ninterface IntegrationCryptoProps {}\n\nexport const IntegrationCrypto: React.FC = () => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const [loading, setLoading] = useState(true);\n const { currentBroker } = useBroker();\n\n const title = \"Conecte com suas corretoras\";\n const subTitle =\n \"Seus impostos são calculados automaticamente após a conexão\";\n\n return user.user ? (\n
\n \n
\n \n {title}\n \n \n {subTitle}\n \n
\n {/* \n \n \n \n */}\n \n \n Não deseja integrar agora?\n {\n navigate(`/${currentBroker.path}/cripto`);\n }}>\n Continuar sem integração\n \n
\n
\n
\n \n \n ) : (\n \n \n {/* */}\n \n {/* */}\n \n }\n item={{\n settings: {\n title,\n subTitle,\n okText: \"Conectar com corretoras\",\n },\n }}\n />\n );\n};\n","import { Button, Typography, Spin } from \"antd\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport WarrenLogo from \"../../assets/warren-logo.svg\";\nimport XP_black_logo from \"../../assets/xp-black.svg\";\nimport SprotifiLogo from \"../../assets/sprotifi-logo.svg\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useState } from \"react\";\nimport ExteriorIntegration from \"../../components/IntegrationComponents/ExteriorIntegration\";\nimport { NovoCadastro } from \"../NovoCadastro\";\n\ninterface IntegrationExteriorProps {}\n\nexport const IntegrationExterior: React.FC = () => {\n const { user } = useAuth();\n const navigate = useNavigate();\n const [loading, setLoading] = useState(true);\n const { currentBroker } = useBroker();\n\n const title = \"Conecte com suas corretoras\";\n const subTitle =\n \"Seus impostos são calculados automaticamente após a conexão\";\n\n return user.user ? (\n
\n \n
\n \n {title}\n \n \n {subTitle}\n \n
\n \n \n {\n navigate(`/${currentBroker.path}/exterior`);\n }}>\n Continuar sem integração\n \n
\n
\n
\n \n \n ) : (\n \n \n \n \n \n }\n item={{\n settings: {\n title,\n subTitle,\n okText: \"Conectar com corretoras\",\n },\n }}\n />\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiOutlineCheck } from \"react-icons/ai\";\nimport { Col, Divider, Row, Typography } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport Button from \"../../components/Button\";\nimport Loading from \"../../components/Loading\";\nimport { BolsaManualContainer } from \"./styles\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\nimport {\n OldTransactions,\n OldTransactionsProps,\n} from \"../Darf/Components/OldTransactions\";\nimport { PrePreenchidaModal } from \"../PrePreenchidaModal\";\nimport { useOldTransactions } from \"../../contexts/OldTransactionsContext\";\nimport { useUploadDec } from \"../../contexts/UploadDecContext\";\n\ninterface BolsaManualProps {}\n\nexport const BolsaManual: React.FC = () => {\n const navigate = useNavigate();\n const { currentBroker } = useBroker();\n const [showAlertModal, setShowAlertModal] = useState(false);\n const { loadingGet, changed, getOldTransactionsInit, ...rest } =\n useOldTransactions();\n const [showModalPrePreenchida, setShowModalPrePreenchida] = useState(false);\n const { loading } = useUploadDec();\n\n const handleAlertModalVisibility = (value: boolean) => {\n setShowAlertModal(value);\n };\n\n const handleSubmit = async () => {\n try {\n if (rest.oldPositionList.some((oldPosition) => oldPosition.price === 0)) {\n handleAlertModalVisibility(true);\n return;\n }\n await rest.saveOldPositions();\n setTimeout(() => {\n navigate(`/${currentBroker.path}/bolsa-historic`);\n }, 1000);\n } catch (err) {}\n };\n\n useEffect(() => {\n if (rest.oldPositionList?.length < 1 && rest.oldPositionList !== null) {\n navigate(`/${currentBroker.path}/bolsa-historic`);\n }\n }, [rest.oldPositionList, navigate, currentBroker.path]);\n\n useEffect(() => {\n getOldTransactionsInit();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [showModalPrePreenchida, loading]);\n\n return loadingGet ? (\n \n ) : (\n \n
\n
\n \n Complete sua carteira de 31/12/2019\n \n \n \n  A B3 armazena dados somente a partir de 2020. Por isso, você\n precisará preencher manualmente o custo médio dos seus investimentos\n em 31/12/2019. Você pode encontrar essas informações na sua\n Declaração de Imposto de Renda de 2019/2020.\n \n \n \n setShowModalPrePreenchida(true)}\n >\n Preencher automaticamente\n \n \n \n \n \n Lembre-se de clicar em finalizar para salvar seus dados\n \n \n \n \n }\n >\n Finalizar\n \n \n \n
\n
\n\n setShowAlertModal(false)}\n setVisibility={handleAlertModalVisibility}\n successMessage=\"Ativos salvos com sucesso!\"\n onOk={() => Promise.resolve(rest.saveOldPositions())}\n body=\"O valor de algumas posições não foram preenchidas!\"\n />\n\n setShowModalPrePreenchida(false)}\n />\n
\n );\n};\n","import { Button } from \"@mui/material\";\nimport { useEffect, useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { AiOutlineCheck } from \"react-icons/ai\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { Col, Divider, Form, Row, Typography } from \"antd\";\nimport { questions } from \"./items\";\nimport Loading from \"../../components/Loading\";\nimport { DoacoesHerancaData } from \"./interfaces\";\nimport { Question, QuestionContainer, BolsaManualContainer } from \"./styles\";\nimport { PrePreenchidaModal } from \"../PrePreenchidaModal\";\nimport { useUploadDec } from \"../../contexts/UploadDecContext\";\nimport { useOldTransactions } from \"../../contexts/OldTransactionsContext\";\nimport DeleteConfirmationModal from \"../../components/DeleteConfirmationModal\";\n\nconst bolsaManualId = \"bolsa-manual-container\";\n\ninterface DoacoesHerancaProps {}\n\nexport const DoacoesHeranca: React.FC = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm();\n const [currentQuestion] = useState(0);\n const [showAlertModal, setShowAlertModal] = useState(false);\n\n const { loadingGet, changed, getDoacoesHerancasInit, ...rest } =\n useOldTransactions();\n const [showModalPrePreenchida, setShowModalPrePreenchida] = useState(false);\n const { loading } = useUploadDec();\n\n const handleAlertModalVisibility = (value: boolean) => {\n setShowAlertModal(value);\n };\n\n const handleSubmit = async (data: DoacoesHerancaData) => {\n try {\n await rest.saveDoacoesHerancas();\n } catch (err) {}\n };\n\n useEffect(() => {\n getDoacoesHerancasInit();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [showModalPrePreenchida, loading]);\n\n return loadingGet ? (\n \n ) : (\n \n \n {questions.map((question, index) => (\n \n {question.title}\n\n \n {question.formItems.map(({ FormItem, name }) => (\n \n ))}\n \n \n \n {\n navigate(\"/velotax/bolsa\");\n }}\n >\n Voltar\n \n \n \n }\n startIcon={rest.loadingPut && }\n >\n Finalizar\n \n \n \n \n \n ))}\n\n setShowModalPrePreenchida(false)}\n />\n\n setShowAlertModal(false)}\n setVisibility={handleAlertModalVisibility}\n onOk={() => {\n return Promise.resolve(rest.saveDoacoesHerancas());\n }}\n body=\"O valor de algumas posições não foram preenchidas!\"\n buttonLabel=\"Prosseguir\"\n successMessage=\"Ativos salvos com sucesso!\"\n />\n \n \n );\n};\n","import moment from \"moment\";\nimport { useLocation } from \"react-router-dom\";\nimport { useCallback, useState, useEffect } from \"react\";\nimport { Col, Divider, Form, Row, Typography } from \"antd\";\nimport {\n AiOutlineArrowDown,\n AiOutlineArrowUp,\n AiOutlineCheck,\n} from \"react-icons/ai\";\nimport { questions } from \"./items\";\nimport Button from \"../../components/Button\";\nimport { currencyToNumber } from \"../../utils\";\nimport Loading from \"../../components/Loading\";\nimport { ImoveisManualContainer } from \"./styles\";\nimport backendImoveis from \"../../services/imoveis\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { DarfIMoveis } from \"../../components/ImoveisImposto\";\n\nconst imoveisManualId = \"imoveis-manual-container\";\n\nexport const ImoveisCalculadora = ({ view, item }: any) => {\n const { state } = useLocation();\n const [form] = Form.useForm();\n const { user, hasPlan, showUserPlanModal } = useAuth();\n\n const [data, setData] = useState({});\n const [isForm, setIsForm] = useState(true);\n const [taxData, setTaxData] = useState({});\n const [docData, setDocData] = useState({});\n const [loading, setLoading] = useState(false);\n const [currentQuestion, setCurrentQuestion] = useState(0);\n const [isValorAPlicado, setIsValorAPlicado] = useState(false);\n\n const filteredQuestions = questions.filter(\n (question) => !question.skip?.({ data })\n );\n\n const setFields = useCallback(() => {\n const monthVenda = state?.mesVenda - 1;\n const monthAquisicao = state?.mesAquisicao - 1;\n if (!view) {\n setIsValorAPlicado(state?.isAplicado ?? false);\n form.setFieldsValue({\n valorAplicado: state?.valorAplicado ?? \"\",\n cep: state?.cep ?? \"\",\n mesVenda: moment({\n month: isNaN(monthVenda) ? new Date().getMonth() : monthVenda,\n year: state?.anoVenda ?? new Date().getFullYear(),\n }),\n valorVenda: state?.valorVenda ?? \"\",\n custoCorretagem: state?.custoCorretagem ?? \"\",\n mesAquisicao:\n moment({\n month: isNaN(monthAquisicao)\n ? new Date().getMonth()\n : monthAquisicao,\n year: state?.anoAquisicao ?? new Date().getFullYear(),\n }) ?? \"\",\n valorAquisicao: state?.valorAquisicao ?? \"\",\n isResidencial: state?.isResidencial ?? \"\",\n isAplicado: state?.isAplicado ?? false,\n });\n setData(state ?? {});\n } else {\n setDocData(item);\n setTaxData(item);\n setIsForm(false);\n }\n }, [form, state, view, item]);\n\n useEffect(() => {\n if (isForm) {\n document.getElementById(\"question-0\")?.classList.add(\"show\");\n }\n }, [isForm]);\n\n useEffect(() => {\n setFields();\n }, [setFields]);\n\n const event = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n const button = document.getElementById(\n currentQuestion < questions.length - 1\n ? `next-button-${currentQuestion}`\n : \"submit-button\"\n );\n button?.click();\n }\n },\n [currentQuestion]\n );\n\n useEffect(() => {\n document.addEventListener(\"keydown\", event);\n return () => {\n document.removeEventListener(\"keydown\", event);\n };\n }, [event]);\n\n const handleNav = useCallback(\n (value: 1 | -1) => {\n if (form.getFieldValue(\"isResidencial\") === false) {\n form.setFieldsValue({ isAplicado: false });\n form.setFieldsValue({ valorAplicado: 0 });\n }\n form\n .validateFields(\n value === 1\n ? questions[currentQuestion].formItems.map(\n (formItem) => formItem.name ?? \"\"\n )\n : []\n )\n .then(() => {\n (document.activeElement as HTMLElement)?.blur();\n setTimeout(() => {\n setCurrentQuestion((current) => {\n const newValue = current + value;\n const target =\n newValue >= 0 && newValue < questions.length\n ? newValue\n : current;\n\n const targetIndex = filteredQuestions.findIndex(\n (q) => filteredQuestions?.[target]?.id === q?.id\n );\n const currentIndex = filteredQuestions.findIndex(\n (q) => filteredQuestions?.[current]?.id === q?.id\n );\n const targetElement = document.getElementById(\n targetIndex < 0 ? \"question-0\" : `question-${targetIndex}`\n );\n const currentElement = document.getElementById(\n `question-${currentIndex}`\n );\n currentElement?.classList.remove(\"show\");\n setTimeout(() => {\n targetElement?.classList.add(\"show\");\n targetElement?.scrollIntoView();\n }, 250);\n return target;\n });\n }, 300);\n })\n .catch(() => {});\n },\n [currentQuestion, setCurrentQuestion, form, filteredQuestions]\n );\n\n const handleSubmit = async (data: any) => {\n if (!hasPlan) {\n showUserPlanModal(true);\n return;\n }\n setLoading(true);\n if (!data.isResidencial) {\n data.isAplicado = false;\n data.valorAplicado = 0;\n }\n const mesVenda = data.mesVenda.month() + 1;\n const anoVenda = data.mesVenda.year();\n const mesAquisicao = data.mesAquisicao.month() + 1;\n const anoAquisicao = data.mesAquisicao.year();\n\n const calcResponse = await backendImoveis.post(\"/imoveis/calculate-tax\", {\n mesVenda,\n mesAquisicao,\n anoVenda,\n anoAquisicao,\n valorVenda:\n typeof data.valorVenda === \"string\"\n ? currencyToNumber(data.valorVenda)\n : data.valorVenda,\n valorAquisicao:\n typeof data.valorAquisicao === \"string\"\n ? currencyToNumber(data.valorAquisicao)\n : data.valorAquisicao,\n custoCorretagem:\n typeof data.custoCorretagem === \"string\"\n ? currencyToNumber(data.custoCorretagem)\n : data.custoCorretagem,\n valorAplicado:\n typeof data.valorAplicado === \"string\"\n ? currencyToNumber(data.valorAplicado)\n : data.valorAplicado ?? 0,\n });\n\n let docData: any = {};\n\n if (state !== null) {\n docData = await backendImoveis.put(\"/imoveis/edit\", {\n _id: state.imovelId,\n cep: data.cep,\n isResidencial: data.isResidencial,\n isAplicado: data.isAplicado,\n userCode: user.user.cpf,\n mesVenda,\n institution: \"imoveis-velotax\",\n mesAquisicao,\n anoVenda,\n anoAquisicao,\n valorVenda:\n typeof data.valorVenda === \"string\"\n ? currencyToNumber(data.valorVenda)\n : data.valorVenda,\n valorAquisicao:\n typeof data.valorAquisicao === \"string\"\n ? currencyToNumber(data.valorAquisicao)\n : data.valorAquisicao,\n custoCorretagem:\n typeof data.custoCorretagem === \"string\"\n ? currencyToNumber(data.custoCorretagem)\n : data.custoCorretagem,\n valorAplicado:\n typeof data.valorAplicado === \"string\"\n ? currencyToNumber(data.valorAplicado)\n : data.valorAplicado ?? 0,\n deducoesLegais: calcResponse.data.deducoesLegais,\n impostoDevido: calcResponse.data.impostoDevido,\n juros: calcResponse.data.juros,\n multa: calcResponse.data.multa,\n aliquota: calcResponse.data.aliquota,\n });\n } else {\n docData = await backendImoveis.post(\"/imoveis/create\", {\n cep: data.cep,\n isResidencial: data.isResidencial,\n isAplicado: data.isAplicado,\n userCode: user.user.cpf,\n mesVenda,\n institution: \"imoveis-velotax\",\n mesAquisicao,\n anoVenda,\n anoAquisicao,\n valorVenda:\n typeof data.valorVenda === \"string\"\n ? currencyToNumber(data.valorVenda)\n : data.valorVenda,\n valorAquisicao:\n typeof data.valorAquisicao === \"string\"\n ? currencyToNumber(data.valorAquisicao)\n : data.valorAquisicao,\n custoCorretagem:\n typeof data.custoCorretagem === \"string\"\n ? currencyToNumber(data.custoCorretagem)\n : data.custoCorretagem,\n valorAplicado:\n typeof data.valorAplicado === \"string\"\n ? currencyToNumber(data.valorAplicado)\n : data.valorAplicado ?? 0,\n deducoesLegais: calcResponse.data.deducoesLegais,\n impostoDevido: calcResponse.data.impostoDevido,\n juros: calcResponse.data.juros,\n multa: calcResponse.data.multa,\n aliquota: calcResponse.data.aliquota,\n });\n }\n setTaxData({ ...calcResponse.data, impostoAcumulado: 0 });\n setDocData(docData.data);\n setLoading(false);\n setIsForm(false);\n };\n\n const onValuesChange = (changed: any, values: any) => {\n if (\"isResidencial\" in changed) {\n setData(values);\n }\n setIsValorAPlicado(values.isAplicado);\n };\n\n return loading ? (\n \n ) : isForm ? (\n \n \n {filteredQuestions.map((question: any, index: any, array: any[]) => (\n \n
\n
\n \n {question.title}\n \n \n {question.subTitle}\n \n {question.formItems.map(({ FormItem, name }: any) => (\n \n ))}\n {question.children}\n \n \n {index > 0 && (\n \n handleNav(-1)}\n icon={}\n tabIndex={currentQuestion === index ? 2 : -1}\n >\n Anterior\n \n \n )}\n {index < array.length - 1 ? (\n \n handleNav(1)}\n icon={}\n tabIndex={currentQuestion === index ? 3 : -1}\n >\n Próximo\n \n \n ) : (\n \n }\n tabIndex={currentQuestion === index ? 3 : -1}\n >\n Finalizar\n \n \n )}\n \n
\n
\n \n ))}\n
\n \n ) : (\n \n );\n};\n","import { Select, Typography } from \"antd\";\nimport { useLocation } from \"react-router-dom\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { monthList } from \"./dataSourceList\";\nimport { BolsaOperations, ModalStyled } from \"./styles\";\nimport backendBolsa from \"../../services/apiBolsa\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DividendosTabs } from \"../../constants/dividendos\";\nimport { DividendosModal } from \"../../components/DividendosModal/index\";\n\nexport const DividendosBolsa = () => {\n const { state } = useLocation();\n const today = new Date();\n const currentYear = today.getFullYear();\n const initialYear = state?.year ?? currentYear;\n window.history.replaceState({}, document.title);\n\n const { currentBroker } = useBroker();\n\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [item, setItem] = useState({});\n const [index, setIndex] = useState({});\n const [showModal, setShowModal] = useState(false);\n const [year, setYear] = useState(initialYear);\n\n const yearOptions = Array.from(\n Array(new Date().getFullYear() - currentBroker.initialYear + 1)\n )\n .map((y, i) => ({\n value: currentBroker.initialYear + i,\n label: `${currentBroker.initialYear + i}`,\n }))\n .reverse();\n\n const getHistoric = useCallback(() => {\n setLoading(true);\n backendBolsa\n .get(`/dividendos?year=${year}`)\n .then(async ({ data }) => setData(data))\n .finally(() => setLoading(false))\n // eslint-disable-next-line\n }, [year]);\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n useEffect(() => {\n getHistoric();\n }, [getHistoric, year]);\n\n return (\n
\n
\n \n Dividendos recebidos na bolsa de valores\n \n \n Os dividendos recebidos e os impostos pagos na bolsa de valores deverão ser\n declarados anualmente na Declaração de Ajuste Anual de IRPF.\n \n
\n
\n target.parentElement}\n />\n \n
\n Mês\n Rendimento Bruto\n \n
\n {monthList.map((item, index: number) => {\n return DividendosTabs(\n item,\n index,\n data,\n loading,\n setShowModal,\n setItem,\n setIndex,\n true\n ).map((container: any, rowIndex: any) => (\n
\n {container.tabs.map((item: any, colIndex: any) => (\n \n {item.content}\n \n ))}\n
\n ));\n })}\n
\n\n {/*
\n\n \n (1) A conversão de Dólar (US$) para Real (R$) utiliza a cotação do\n dólar PTAX de Compra fixada pelo Banco Central do Brasil para o último\n dia útil da primeira quinzena do mês anterior ao mês de recebimento do\n rendimento no exterior (art. 65 da IN RFB nº 1.500 de 2014)\n */}\n
\n setShowModal(false)}\n title={`${monthList[index]?.monthName ?? \"\"} de ${year}`}\n >\n \n \n
\n );\n};\n","import { Select, Typography } from \"antd\";\nimport { useLocation } from \"react-router-dom\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { formatDate } from \"../../utils\";\nimport { monthList } from \"./dataSourceList\";\nimport { BolsaOperations, ModalStyled } from \"./styles\";\nimport backendExterior from \"../../services/apiExterior\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { DividendosTabs } from \"../../constants/dividendos\";\nimport { DividendosModalExterior } from \"../../components/DividendosModal/DividendosModalExterior\";\n\nexport const DividendosExterior = () => {\n const { state } = useLocation();\n const today = new Date();\n const currentYear = today.getFullYear();\n const initialYear = state?.year ?? currentYear;\n window.history.replaceState({}, document.title);\n\n const { currentBroker } = useBroker();\n\n const [data, setData] = useState([]);\n const [loading, setLoading] = useState(false);\n const [item, setItem] = useState({});\n const [index, setIndex] = useState({});\n const [showModal, setShowModal] = useState(false);\n const [year, setYear] = useState(initialYear);\n const [quotes, setQuotes] = useState([]);\n\n const yearOptions = Array.from(\n Array(new Date().getFullYear() - currentBroker.initialYear + 1)\n )\n .map((y, i) => ({\n value: currentBroker.initialYear + i,\n label: `${currentBroker.initialYear + i}`,\n }))\n .reverse();\n\n const getTotal = useCallback((sortedData: any[]) => {\n const totalData = [];\n for (const month of sortedData) {\n let acumulatorImpostoPagoExterior = 0;\n let acumulatorValorRendimento = 0;\n const orders: any[] = [];\n for (const el of month.orders ?? []) {\n if (checkType(el) === \"valorRendimento\") {\n orders.push({\n ...el,\n valorRendimento: el.value,\n valorRendimentoReal: el.value * month.dolarQuote ?? 0,\n date: formatDate(el.date),\n });\n } else {\n orders.push({\n ...el,\n impostoPagoExterior: el.value,\n impostoPagoExteriorReal: el.value * month.dolarQuote ?? 0,\n date: formatDate(el.date),\n });\n }\n }\n for (const item of orders) {\n acumulatorImpostoPagoExterior += item.impostoPagoExterior ?? 0;\n acumulatorValorRendimento += item.valorRendimento ?? 0;\n }\n\n totalData.push({\n ...month,\n impostoPagoExterior: acumulatorImpostoPagoExterior ?? 0,\n valorRendimento: acumulatorValorRendimento ?? 0,\n });\n }\n return totalData;\n }, []);\n\n const getHistoric = useCallback(async () => {\n setLoading(true);\n try {\n const { data } = await backendExterior.get(`/dividendos?year=${year}`);\n const res = await backendExterior.get(\"/transaction/get-cotacoes\");\n const newData = getTotal(data);\n setQuotes(res.data.values);\n setData(newData);\n } catch (err) {\n } finally {\n setLoading(false);\n }\n }, [year, getTotal]);\n\n const onChangeYear = (value: string) => {\n setYear(parseInt(value));\n };\n\n useEffect(() => {\n getHistoric();\n }, [getHistoric, year]);\n\n const checkType = (el: any) => {\n if (el.type === \"DIVIDEND\" && el.operation === \"BUY\") {\n return \"valorRendimento\";\n } else return \"impostoPagoExterior\";\n };\n\n return (\n
\n
\n \n Dividendos recebidos no exterior\n \n \n Os dividendos recebidos e os impostos pagos no exterior deverão ser\n declarados anualmente na Declaração de Ajuste Anual de IRPF.\n \n
\n
\n target.parentElement}\n />\n \n
\n Mês\n Rendimento Bruto\n Imposto Pago\n \n
\n {monthList.map((item, index: number) => {\n return DividendosTabs(\n item,\n index,\n data,\n loading,\n setShowModal,\n setItem,\n setIndex\n ).map((container: any, rowIndex: any) => (\n
\n {container.tabs.map((item: any, colIndex: any) => (\n \n {item.content}\n \n ))}\n
\n ));\n })}\n
\n\n
\n\n \n (1) A conversão de Dólar (US$) para Real (R$) utiliza a cotação do\n dólar PTAX de Compra fixada pelo Banco Central do Brasil para o último\n dia útil da primeira quinzena do mês anterior ao mês de recebimento do\n rendimento no exterior (art. 65 da IN RFB nº 1.500 de 2014)\n \n
\n setShowModal(false)}\n title={`${monthList[index]?.monthName ?? \"\"} de ${year}`}\n >\n \n \n
\n );\n};\n","import { Col, Row, Typography } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useCallback, useEffect } from \"react\";\nimport { Subtitle } from \"./styles\";\nimport Button from \"../../components/Button\";\nimport { Page } from \"../../constants/brokers\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\n\ninterface UserHasAccountProps {\n item: Page;\n}\n\nexport const UserHasAccount: React.FC = () => {\n const navigate = useNavigate();\n const { integration } = useBroker();\n const { user, cameFromRegister, setCameFromRegister } = useAuth();\n\n const {\n interval,\n b3Authorized,\n openB3Window,\n handleIntegrate,\n verifyUserIsAuthorized,\n } = useB3Integration();\n\n useEffect(() => {\n if (\n user.user &&\n !b3Authorized &&\n !interval.current &&\n cameFromRegister.bolsa &&\n integration.key !== \"unset\"\n ) {\n handleIntegrate();\n }\n }, [\n interval,\n user.user,\n b3Authorized,\n handleIntegrate,\n integration.key,\n setCameFromRegister,\n cameFromRegister.bolsa,\n ]);\n\n const handleForgotPassword = useCallback(() => {\n setTimeout(() => {\n navigate(\"/velotax/forgot-password-b3\");\n }, 1000);\n }, [navigate]);\n\n return (\n \n
\n
\n \n \n \n {\" \"}\n Conecte sua conta à B3\n \n \n \n \n \n \n \n Boa notícia! Selecione abaixo uma opção para prosseguir\n \n \n \n \n\n \n \n \n {\n openB3Window();\n verifyUserIsAuthorized();\n }}\n >\n Eu sei minha senha \n \n handleForgotPassword()}\n >\n Não lembro minha senha \n \n \n \n \n
\n
\n
\n );\n};\n","import { useEffect } from \"react\";\nimport { Button, Col, Row, Typography } from \"antd\";\nimport { BsArrowLeftRight, } from \"react-icons/bs\";\nimport { Content, Parceiros, Subtitle } from \"./styles\";\nimport { Page } from \"../../constants/brokers\";\nimport b3Logo from \"../../assets/b3-logo-azul.png\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport { ReactComponent as VeloIcon } from \"../../assets/velotax/veloicon.svg\";\n\ninterface UserNoHasAccountProps {\n item: Page;\n}\n\nexport const UserNoHasAccount: React.FC = () => {\n const { integration } = useBroker();\n const { user, cameFromRegister, setCameFromRegister } = useAuth();\n const {\n interval,\n b3Authorized,\n handleIntegrate,\n handleSkipB3Integration,\n } = useB3Integration();\n\n useEffect(() => {\n if (\n user.user &&\n !b3Authorized &&\n !interval.current &&\n cameFromRegister.bolsa &&\n integration.key !== \"unset\"\n ) {\n setCameFromRegister((data) => ({ ...data, bolsa: false }));\n handleIntegrate();\n }\n }, [\n interval,\n user.user,\n b3Authorized,\n handleIntegrate,\n integration.key,\n setCameFromRegister,\n cameFromRegister.bolsa,\n ]);\n\n return (\n \n
\n
\n \n \n Conecte sua conta à B3\n \n \n Parceiros oficiais\n
\n \n \n \"b3-logo\"\n
\n
\n \n
\n
\n \n \n \n \n Não localizamos o seu cadastro na Área do Investidor da B3.\n \n \n \n \n \n \n
\n \n Não tenho investimento na bolsa\n {/* */}\n \n
\n
\n\n
\n
\n
\n );\n};\n","import { useNavigate } from \"react-router-dom\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { AiOutlineArrowRight } from \"react-icons/ai\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { Col, Form, Input, Row, Typography, message } from \"antd\";\nimport api from \"../../services/api\";\nimport Button from \"../../components/Button\";\nimport { Content, Subtitle } from \"./styles\";\nimport { Page } from \"../../constants/brokers\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\n\ninterface UserForgotPasswordB3Props {\n item: Page;\n}\n\ntype TDetailsUser = {\n cpf?: string;\n email?: string;\n institution?: string;\n};\n\nexport const UserForgotPasswordB3: React.FC = () => {\n const navigate = useNavigate();\n // const [loadingCheckDetail, setLoadingCheckDetail] = useState(true);\n const [form] = Form.useForm();\n const [loading, setLoading] = useState(false);\n const [, setCheckChangePassword] = useState(false);\n const [textLoading, setTextLoading] = useState(\"\");\n const [processingBot, setProcessingBot] = useState(true);\n const [detailsUserB3, setDetailsUserB3] = useState();\n\n const resetAccountCodeB3 = useCallback(() => {\n setCheckChangePassword(true);\n api\n .post(`/b3/reset`)\n .then(({ data }) => {\n message.success(\"Senha alterada com sucesso\", 5);\n\n if (data.success) {\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration-user-has-account\");\n }, 1000);\n } else {\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration-user-has-account\");\n }, 1000);\n message.error(\"Erro interno. Tente novamente\");\n }\n })\n .catch((err) => {\n message.error(err.response.data.message);\n })\n .finally(() => {\n setProcessingBot(false);\n setCheckChangePassword(false);\n });\n }, [navigate]);\n\n const checkFinishResetPassword = useCallback(() => {\n api\n .get(`/b3/checkPasswordReseted`)\n .then((response: any) => {\n if (response.data?.data) {\n setDetailsUserB3(response.data.data);\n\n if (response.data?.data?.passwordReset) {\n message.info(\"navegou\");\n setTimeout(() => {\n navigate(\"/velotax/bolsa-integration-user-has-account\");\n }, 1000);\n }\n }\n })\n .catch((err) => message.error(err));\n }, [navigate]);\n\n const onFinish = (data: any) => {\n api\n .post(`/b3/saveCode`, {\n data,\n })\n .then(() => {\n setLoading(true);\n setTextLoading(\"Alterando sua senha...\");\n setCheckChangePassword(true);\n })\n .catch((err) => message.error(err?.message))\n .finally(() => {});\n };\n\n useEffect(() => {\n let interval: NodeJS.Timeout | null = null;\n console.log(processingBot);\n\n if (processingBot) {\n interval = setInterval(() => {\n checkFinishResetPassword();\n }, 2500);\n } else {\n if (interval) {\n clearInterval(interval);\n }\n }\n return () => clearInterval(interval as unknown as NodeJS.Timeout);\n }, [processingBot, checkFinishResetPassword]);\n\n useEffect(() => {\n setTextLoading(\"Gerando código de segurança...\");\n resetAccountCodeB3();\n }, [resetAccountCodeB3]);\n\n return (\n \n
\n
\n \n \n \n {\" \"}\n Código de autenticação\n \n \n \n {processingBot && (\n \n \n \n \n Um código de autenticação foi enviado para o seu e-mail para\n cadastrarmos uma nova senha para você.\n \n \n \n \n )}\n\n {detailsUserB3 && (\n \n \n \n \n E-mail:\n {detailsUserB3?.email! || \"\"}\n \n \n \n \n )}\n\n \n {detailsUserB3?.email && (\n \n \n \n \n \n \n \n\n \n \n \n \n )}\n \n\n {(!detailsUserB3 || loading) && (\n \n \n   {textLoading}\n \n )}\n
\n
\n
\n );\n};\n","import React, { useState } from \"react\";\nimport { Form, message } from \"antd\";\nimport ReactInputMask from \"react-input-mask\";\nimport { useNavigate } from \"react-router-dom\";\nimport api from \"../../services/api\";\nimport Button from \"../../components/Button\";\nimport { validationCpf } from \"../../utils/formValidations\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\n\ninterface IData {\n cpf: string;\n}\n\nexport const ForgotPassword: React.FC = () => {\n const navigate = useNavigate();\n const [form] = Form.useForm();\n const [loading, setLoading] = useState(false);\n\n const onFinish = async (data: IData) => {\n try {\n setLoading(true);\n\n const res = await api.post(\"/user/forgot-password\", { cpf: data.cpf });\n res.data?.message?.includes(\"@\")\n ? message.success(res.data?.message)\n : message.success(\n \"Um email com um link foi enviado para recuperar sua senha!\",\n 5\n );\n\n setTimeout(() => {\n setLoading(false);\n navigate(\"/p/login\");\n }, 500);\n } catch (err: any) {\n if (err?.response?.status === 400) {\n message.error(err.response?.data?.message || \"Ocorreu um erro\");\n }\n setLoading(false);\n return;\n }\n };\n\n const onValuesChange = (changed: any, values: any) => {\n const cpf = changed.cpf ? changed.cpf.replace(/[_.-/-]/g, \"\") : values.cpf;\n form.setFieldsValue({\n cpf,\n });\n };\n\n const handleNavigateCreateAccount = () => {\n navigate(\"/p/cadastrar\");\n };\n\n const handleNavigateLogin = () => {\n navigate(\"/p/login\");\n };\n\n return (\n \n
\n
\n

Recupere sua senha

\n \n \n \n \n\n
\n \n Recuperar\n \n
\n
\n \n Voltar para o login\n \n
\n \n\n
\n Ainda não possui uma conta?\n \n Começar\n \n
\n
\n
\n
\n );\n};\n","import React, { useState } from \"react\";\nimport { Form, Input, message } from \"antd\";\nimport { useNavigate, useParams } from \"react-router-dom\";\nimport api from \"../../services/api\";\nimport Button from \"../../components/Button\";\nimport { AuthContainer } from \"../../styles/LoginSignUp/authContainer\";\nimport {\n validationPassConfirmation,\n validationPassword,\n} from \"../../utils/formValidations\";\n\ninterface IData {\n pass: string;\n passConfirmation: string;\n}\n\nexport const ChangePassword: React.FC = () => {\n const navigate = useNavigate();\n const { token } = useParams();\n const [form] = Form.useForm();\n const [loading, setLoading] = useState(false);\n\n const onFinish = async (data: IData) => {\n try {\n setLoading(true);\n\n await api.post(`/user/change-password/${token}`, data);\n message.success(\"Senha alterada com sucesso!\", 5);\n\n setTimeout(() => {\n setLoading(false);\n navigate(\"/p/login\");\n }, 500);\n } catch (err: any) {\n if (err?.response?.status === 400) {\n message.error(err.response?.data?.message || \"Ocorreu um erro\");\n }\n setLoading(false);\n return;\n }\n };\n\n return (\n \n
\n
\n

Alterar senha

\n
\n \n \n \n\n \n \n \n\n
\n \n Enviar\n \n
\n \n
\n
\n
\n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4167 13.5V15.1667M13.4167 5V6.66667M6.91674 16V17.6667M6.91674 2.5V4.16667M8.50008 4.16667V15.8333H5.16675V4.16667H8.50008ZM15.0001 6.66667V13.3333H11.6667V6.66667H15.0001Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgBolsa(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBolsa);\nexport default __webpack_public_path__ + \"static/media/bolsa.21beab85.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.14828 10.0425V11.8442C8.14828 12.36 8.56662 12.7775 9.08162 12.7775H11.4208C12.1699 12.7775 12.7774 12.17 12.7783 11.4208V11.4C12.7783 10.65 12.1699 10.0425 11.4208 10.0425H8.14828ZM8.14828 10.0425L11.0916 10.0425C11.8533 10.0425 12.4699 9.42583 12.4699 8.665V8.60083C12.4699 7.83917 11.8524 7.2225 11.0916 7.2225H9.09578C8.57245 7.2225 8.14828 7.64667 8.14828 8.17V10.0425ZM9.07495 7.225H7.22495M9.08328 12.775H7.22495M11.0249 6.3V7.225M8.74995 6.3V7.225M8.74995 13.7V12.775M11.0249 13.7V12.775M15.3033 4.6967C18.2322 7.62563 18.2322 12.3744 15.3033 15.3033C12.3743 18.2322 7.62562 18.2322 4.6967 15.3033C1.76777 12.3744 1.76777 7.62562 4.6967 4.6967C7.62563 1.76777 12.3744 1.76777 15.3033 4.6967Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgCripto(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgCripto);\nexport default __webpack_public_path__ + \"static/media/cripto.45c056dc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.6693 8.78784V17.5031M18.3367 10L10.5209 4.31848C10.2292 4.10722 9.83477 4.10722 9.54303 4.31848L1.66309 10M16.2525 8.11839V3.74741C16.2525 3.51719 16.0659 3.33057 15.8357 3.33057H13.3346C13.1044 3.33057 12.9178 3.51719 12.9178 3.74741V5.92248M18.3367 17.5031H1.66309M3.33045 8.79784V17.5031M5.83149 17.5031V12.9179C5.83149 12.6877 6.01811 12.5011 6.24833 12.5011H8.33253C8.56274 12.5011 8.74937 12.6877 8.74937 12.9179V17.5031M11.4587 15.0021H14.3768C14.4919 15.0021 14.5851 14.9088 14.5851 14.7938V12.7094C14.5851 12.5943 14.4919 12.5011 14.3768 12.5011H11.4587C11.3437 12.5011 11.2504 12.5943 11.2504 12.7094V14.7938C11.2504 14.9088 11.3437 15.0021 11.4587 15.0021Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgImoveis(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgImoveis);\nexport default __webpack_public_path__ + \"static/media/imoveis.aab25b21.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17.5 10C17.5 5.84833 14.1517 2.5 10 2.5C5.84833 2.5 2.5 5.84833 2.5 10M17.5 10C17.5 14.1517 14.1517 17.5 10 17.5C5.84833 17.5 2.5 14.1517 2.5 10M17.5 10H2.5M8.47333 3.38333C6.065 7.40417 6.065 12.5967 8.47333 16.6175C9.17833 17.795 10.8225 17.795 11.5275 16.6175C13.9358 12.5967 13.9358 7.40417 11.5275 3.38333C10.8217 2.20583 9.17833 2.20583 8.47333 3.38333Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgExterior(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgExterior);\nexport default __webpack_public_path__ + \"static/media/exterior.f3649a48.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.83149 2.49689V4.16425M2.49677 17.5031V7.49897C2.49677 7.03854 2.87002 6.66529 3.33045 6.66529H8.33253C8.79296 6.66529 9.16621 7.03854 9.16621 7.49897V10M11.6673 10V4.16425C11.6674 3.89089 11.8015 3.63495 12.0262 3.47928C12.2509 3.32361 12.5376 3.28798 12.7936 3.38392L16.962 4.94707C17.2876 5.06913 17.5032 5.38049 17.503 5.72823V17.5031M6.66517 17.5031V10.8337C6.66517 10.3733 7.03842 10 7.49885 10H12.5009C12.9614 10 13.3346 10.3733 13.3346 10.8337V17.5031M8.74937 14.752H11.2504M8.74937 12.5011H11.2504M18.3367 17.5031H1.66309M4.99781 4.16425H6.66517C7.1256 4.16425 7.49885 4.5375 7.49885 4.99793V6.66529H4.16413V4.99793C4.16413 4.5375 4.53738 4.16425 4.99781 4.16425Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgAutonomos(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAutonomos);\nexport default __webpack_public_path__ + \"static/media/autonomos.65dce42c.svg\";\nexport { ForwardRef as ReactComponent };","import { AxiosInstance } from \"axios\";\nimport { GiProfit } from \"react-icons/gi\";\nimport { VscHistory } from \"react-icons/vsc\";\nimport { AiOutlineApi } from \"react-icons/ai\";\nimport { RiFileList3Line } from \"react-icons/ri\";\nimport { HiOutlineCalculator } from \"react-icons/hi\";\nimport { MdSwapVerticalCircle } from \"react-icons/md\";\nimport { B3AuthURL } from \"../../utils\";\nimport msDarf from \"../../services/msDarf\";\nimport apiBolsa from \"../../services/apiBolsa\";\nimport apiCrypto from \"../../services/apiCrypto\";\nimport apiExterior from \"../../services/apiExterior\";\nimport { ReactComponent as BolsaIcon } from \"../../assets/icons/sidebar/bolsa.svg\";\nimport { ReactComponent as CriptoIcon } from \"../../assets/icons/sidebar/cripto.svg\";\nimport { ReactComponent as ImoveisIcon } from \"../../assets/icons/sidebar/imoveis.svg\";\nimport { ReactComponent as ExteriorIcon } from \"../../assets/icons/sidebar/exterior.svg\";\nimport { ReactComponent as AutonomosIcon } from \"../../assets/icons/sidebar/autonomos.svg\";\n\ninterface HTML {\n favicon: string;\n title: string;\n}\n\ninterface Input {\n name: string;\n label: string;\n placeholder: string;\n rules: any[];\n}\n\ninterface Feature {\n apiUrl: string;\n title?: string;\n inputs?: Input[];\n disabled?: boolean;\n buttonLabel?: string;\n}\n\nexport interface Page {\n month?: number;\n year?: number;\n calcId?: string;\n path: string;\n title: React.ReactNode;\n name: string;\n header: boolean;\n sidebar: boolean;\n features: Feature[];\n component?: string;\n disabled?: boolean;\n icon?: React.ReactNode;\n settings?: any;\n subPages?: Page[];\n api?: AxiosInstance;\n legacyHistory?: string;\n premium?: boolean;\n integratedOnly?: boolean;\n showOnSidebar?: boolean;\n mixedRoute?: boolean; // rota pública e privada ao mesmo tempo\n publicRoute?: boolean;\n publicWrapper?: boolean; // página privada com layout de pública\n}\n\nexport interface Broker {\n id: string;\n dns: string;\n name: string;\n dark: boolean;\n link: string;\n path: string;\n apiUrl: string;\n html: HTML;\n pages: Page[];\n colors: { [key: string]: string };\n initialYear: number;\n icon: any;\n iconStyle?: any;\n iconAlternative?: any;\n iconAlternativeStyle?: any;\n disabled?: boolean;\n defaultPath?: string;\n defaultProviderExistsPath?: string;\n useSSO?: boolean;\n useCarteira?: boolean;\n useSettings?: boolean;\n hidePoweredBy?: boolean;\n hideJuridicMessage?: boolean;\n useTransferenciaCustodia?: boolean;\n}\n\nexport const brokers: Broker[] = [\n {\n id: \"crypto-velotax\",\n name: \"Velotax\",\n dns: \"wldemo.velotax\",\n path: \"velotax\",\n apiUrl: \"/bitcoin-trade\",\n link: \"https://velotax.com.br\",\n dark: false,\n useSSO: true,\n useSettings: false,\n useCarteira: true,\n useTransferenciaCustodia: true,\n hideJuridicMessage: true,\n colors: {\n primary: \"#1634ff\",\n secondary: \"#000058\",\n },\n html: {\n favicon: \"\",\n title: \"\",\n },\n icon: null,\n iconStyle: {\n width: \"auto\",\n height: \"32px\",\n },\n initialYear: 2020,\n hidePoweredBy: true,\n iconAlternative: null,\n defaultPath: \"/velotax/bolsa-integration\",\n defaultProviderExistsPath: \"/velotax/bolsa-historic\",\n pages: [\n {\n calcId: \"bolsa\",\n integratedOnly: true,\n header: true,\n sidebar: true,\n path: \"/velotax/bolsa\",\n name: \"Bolsa de valores\",\n icon: ,\n title: \"\",\n api: apiBolsa,\n features: [],\n component: \"Bolsa\",\n showOnSidebar: true,\n subPages: [\n {\n premium: true,\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"ReportBolsa\",\n path: \"/velotax/bolsa-report\",\n name: \"Relatórios\",\n title: \"\",\n icon: ,\n features: [\n {\n apiUrl: \"/darf/report/transactions\",\n },\n {\n apiUrl: \"/darf/report/download\",\n },\n {\n apiUrl: \"/darf/report/sendEmail\",\n },\n ],\n },\n {\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"HistoricBolsa\",\n path: \"/velotax/bolsa-historic\",\n name: \"Histórico\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"DarfBolsa\",\n },\n features: [\n {\n apiUrl: \"/velotax/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n },\n {\n premium: true,\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"DividendosBolsa\",\n path: \"/velotax/bolsa-dividendos\",\n name: \"Dividendos\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"HistoricBolsa\",\n darfUrl: \"/velotax/bolsa-historic\",\n },\n features: [\n {\n apiUrl: \"/velotax/historic\",\n },\n ],\n },\n {\n header: true,\n sidebar: true,\n publicWrapper: true,\n component: \"IntegrationBolsa\",\n path: \"/velotax/bolsa-integration\",\n name: \"Integração com B3\",\n title: \"\",\n icon: ,\n features: [\n {\n apiUrl: \"/b3/integrate\",\n buttonLabel: \"Integrar\",\n title:\n \"Clique para autorizar que a Velotax possa acessar suas informações\",\n },\n {\n apiUrl: B3AuthURL,\n buttonLabel: \"Permita o nosso app acessar suas transações!\",\n },\n {\n apiUrl: \"/b3/verify-user\",\n },\n ],\n },\n {\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"BolsaManual\",\n path: \"/velotax/bolsa-insert-manual\",\n name: \"Posição 31/12/2019\",\n title: \"\",\n icon: ,\n features: [],\n },\n {\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"DoacoesHeranca\",\n path: \"/velotax/bolsa-doacoes-heranca\",\n name: \"Doações e heranças\",\n title: \"\",\n icon: (\n \n ),\n features: [],\n },\n {\n header: true,\n sidebar: true,\n publicWrapper: true,\n component: \"UserHasAccount\",\n path: \"/velotax/bolsa-integration-user-has-account\",\n name: \"Integração com B3\",\n title: \"\",\n icon: ,\n features: [],\n },\n {\n header: true,\n sidebar: true,\n publicWrapper: true,\n component: \"UserNoHasAccount\",\n path: \"/velotax/bolsa-integration-user-no-has-account\",\n name: \"Integração com B3\",\n title: \"\",\n icon: ,\n features: [],\n },\n {\n header: true,\n sidebar: true,\n publicWrapper: true,\n component: \"UserForgotPasswordB3\",\n path: \"/velotax/forgot-password-b3\",\n name: \"Integração com B3\",\n title: \"\",\n icon: ,\n features: [],\n },\n ],\n },\n {\n showOnSidebar: false,\n integratedOnly: true,\n header: true,\n calcId: \"cripto\",\n sidebar: true,\n name: \"Criptoativos\",\n path: \"/velotax/cripto\",\n icon: ,\n title: \"\",\n api: apiCrypto,\n component: \"Cripto\",\n legacyHistory: \"https://www.velotax.com.br/historico/crypto\",\n features: [],\n subPages: [\n {\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"HistoricCrypto\",\n path: \"/velotax/cripto-historic\",\n name: \"Histórico\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"Darf\",\n darfUrl: \"/velotax/cripto-darf\",\n },\n features: [\n {\n apiUrl: \"/velotax/cripto/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n },\n {\n header: true,\n sidebar: true,\n component: \"IntegrationCrypto\",\n path: \"/velotax/cripto-integrations\",\n name: \"Integrações\",\n title: \"\",\n icon: ,\n features: [],\n },\n {\n header: true,\n sidebar: true,\n component: \"ReportCripto\",\n path: \"/velotax/cripto-report\",\n name: \"Relatórios\",\n title: \"\",\n icon: ,\n features: [\n {\n apiUrl: \"/darf/report/transactions\",\n },\n {\n apiUrl: \"/darf/report/download\",\n },\n {\n apiUrl: \"/darf/report/sendEmail\",\n },\n ],\n },\n ],\n },\n {\n showOnSidebar: true,\n integratedOnly: true,\n calcId: \"exterior\",\n header: true,\n sidebar: true,\n name: \"Ativos no exterior\",\n path: \"/velotax/exterior\",\n icon: ,\n title: \"\",\n api: apiExterior,\n legacyHistory: \"https://www.velotax.com.br/historico/exterior\",\n features: [],\n component: \"Exterior\",\n subPages: [\n {\n premium: true,\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"TransferenciaCustodia\",\n path: \"/velotax/transferencia-custodia\",\n name: \"Transferência de custódia\",\n title: \"\",\n icon: ,\n features: [\n {\n apiUrl: \"/darf/report/transactions\",\n },\n {\n apiUrl: \"/darf/report/download\",\n },\n {\n apiUrl: \"/darf/report/sendEmail\",\n },\n ],\n },\n {\n premium: true,\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"ReportExterior\",\n path: \"/velotax/exterior-report\",\n name: \"Relatórios\",\n title: \"\",\n icon: ,\n features: [\n {\n apiUrl: \"/darf/report/transactions\",\n },\n {\n apiUrl: \"/darf/report/download\",\n },\n {\n apiUrl: \"/darf/report/sendEmail\",\n },\n {\n apiUrl: \"/velotax/exterior/historic\"\n },\n {\n apiUrl: \"/darf\"\n }\n ],\n },\n {\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"Historic\",\n path: \"/velotax/exterior-historic\",\n name: \"Histórico\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"DarfExterior\",\n darfUrl: \"/velotax/exterior-darf\",\n },\n features: [\n {\n apiUrl: \"/velotax/exterior/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n },\n {\n premium: true,\n integratedOnly: true,\n header: true,\n sidebar: true,\n component: \"DividendosExterior\",\n path: \"/velotax/exterior-dividendos\",\n name: \"Dividendos\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"DarfExterior\",\n darfUrl: \"/velotax/exterior-darf\",\n },\n features: [\n {\n apiUrl: \"/velotax/exterior/historic\",\n },\n ],\n },\n {\n header: true,\n sidebar: true,\n component: \"IntegrationExterior\",\n path: \"/velotax/exterior-integrations\",\n name: \"Integrações\",\n title: \"\",\n icon: ,\n features: [],\n },\n ],\n },\n {\n showOnSidebar: false,\n header: true,\n sidebar: true,\n calcId: \"autonomos\",\n name: \"Carnê-leão\",\n path: \"/velotax/autonomos-historico\",\n title: \"\",\n api: msDarf,\n component: \"HistoricAutonomos\",\n icon: ,\n legacyHistory: \"https://www.velotax.com.br/rendimentos/historico\",\n settings: {\n darfComponent: \"Rendimentos\",\n historicUrl: \"/velotax/autonomos-historico\",\n },\n features: [\n {\n apiUrl: \"/rendimentos/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n subPages: [\n {\n header: true,\n sidebar: true,\n publicRoute: true,\n component: \"NovoCadastro\",\n title: \"\",\n name: \"Cadastro\",\n path: \"/velotax/autonomos-cadastro\",\n features: [],\n settings: {\n okText: \"Próximo\",\n title: \"Carnê-leão\",\n subTitle: \"Seus impostos são calculados para o CPF informado\",\n },\n },\n {\n header: true,\n sidebar: true,\n component: \"Rendimentos\",\n path: \"/velotax/autonomos-darf\",\n name: \"Calculadora\",\n icon: ,\n title: \"\",\n settings: {\n historicUrl: \"/velotax/autonomos-historico\",\n },\n features: [\n {\n apiUrl: \"/transaction\",\n },\n {\n apiUrl: \"/darf\",\n buttonLabel: \"Emitir DARF\",\n },\n {\n apiUrl: \"/darf/year\",\n },\n ],\n },\n {\n header: true,\n sidebar: true,\n component: \"HistoricAutonomos\",\n path: \"/velotax/autonomos-historico\",\n name: \"Histórico\",\n title: \"\",\n icon: ,\n settings: {\n darfComponent: \"DarfExterior\",\n darfUrl: \"/velotax/exterior-darf\",\n },\n features: [\n {\n apiUrl: \"/rendimentos/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n },\n ],\n },\n {\n showOnSidebar: false,\n header: true,\n sidebar: true,\n calcId: \"imoveis\",\n name: \"Venda de imóveis\",\n path: \"/velotax/imoveis\",\n title: \"\",\n api: msDarf,\n component: \"Imoveis\",\n icon: ,\n features: [],\n subPages: [\n {\n header: true,\n sidebar: true,\n component: \"ImoveisCalculadora\",\n path: \"/velotax/imoveis-calculadora\",\n name: \"Calculadora\",\n icon: ,\n title: \"\",\n features: [],\n settings: {\n historicUrl: \"/velotax/imoveis-historico\",\n },\n },\n {\n header: true,\n sidebar: true,\n settings: {\n darfComponent: \"ImoveisCalculadora\",\n },\n component: \"Historic\",\n path: \"/velotax/imoveis-historico\",\n name: \"Histórico\",\n icon: ,\n title: \"\",\n features: [\n {\n apiUrl: \"/imoveis/historic\",\n },\n {\n apiUrl: \"/darf/pay\",\n },\n {\n apiUrl: \"/darf/download\",\n },\n ],\n },\n {\n header: true,\n sidebar: true,\n publicRoute: true,\n component: \"NovoCadastro\",\n title: \"\",\n name: \"Cadastro\",\n path: \"/velotax/imoveis-cadastro\",\n features: [],\n settings: {\n okText: \"Próximo\",\n title: \"Venda de imóveis\",\n subTitle: \"Seus impostos são calculados para o CPF informado\",\n },\n },\n ],\n },\n // {\n // header: true,\n // sidebar: true,\n // features: [],\n // name: \"MEI\",\n // title: \"MEI\",\n // calcId: \"mei\",\n // path:\n // process.env.REACT_APP_MEI_FRONT_URL ?? \"https://mei.velotax.com.br\",\n // icon: (\n // \n // ),\n // },\n ],\n },\n];\n","import { LoadingOutlined } from \"@ant-design/icons\";\nimport veloLogo from \"../../assets/velotax/velologo.svg\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\n\nexport const LoadingSession: React.FC = () => {\n const { currentBroker } = useBroker();\n\n return (\n
\n \n \n
\n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"b\",\n x1: 85.915,\n x2: 86.535,\n y1: 32.567,\n y2: 137.092,\n gradientUnits: \"userSpaceOnUse\"\n}, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#57d163\"\n}), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#23b33a\"\n})), /*#__PURE__*/React.createElement(\"filter\", {\n id: \"a\",\n width: 1.115,\n height: 1.114,\n x: -0.057,\n y: -0.057,\n colorInterpolationFilters: \"sRGB\"\n}, /*#__PURE__*/React.createElement(\"feGaussianBlur\", {\n stdDeviation: 3.531\n})));\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#b3b3b3\",\n d: \"m54.532 138.45 2.235 1.324c9.387 5.571 20.15 8.518 31.126 8.523h.023c33.707 0 61.139-27.426 61.153-61.135.006-16.335-6.349-31.696-17.895-43.251A60.75 60.75 0 0 0 87.94 25.983c-33.733 0-61.166 27.423-61.178 61.13a60.98 60.98 0 0 0 9.349 32.535l1.455 2.312-6.179 22.558zm-40.811 23.544L24.16 123.88c-6.438-11.154-9.825-23.808-9.821-36.772.017-40.556 33.021-73.55 73.578-73.55 19.681.01 38.154 7.669 52.047 21.572s21.537 32.383 21.53 52.037c-.018 40.553-33.027 73.553-73.578 73.553h-.032c-12.313-.005-24.412-3.094-35.159-8.954zm0 0\",\n filter: \"url(#a)\"\n});\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"m12.966 161.238 10.439-38.114a73.42 73.42 0 0 1-9.821-36.772c.017-40.556 33.021-73.55 73.578-73.55 19.681.01 38.154 7.669 52.047 21.572s21.537 32.383 21.53 52.037c-.018 40.553-33.027 73.553-73.578 73.553h-.032c-12.313-.005-24.412-3.094-35.159-8.954z\"\n});\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#linearGradient1780)\",\n d: \"M87.184 25.227c-33.733 0-61.166 27.423-61.178 61.13a60.98 60.98 0 0 0 9.349 32.535l1.455 2.312-6.179 22.559 23.146-6.069 2.235 1.324c9.387 5.571 20.15 8.518 31.126 8.524h.023c33.707 0 61.14-27.426 61.153-61.135a60.75 60.75 0 0 0-17.895-43.251 60.75 60.75 0 0 0-43.235-17.929z\"\n});\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"url(#b)\",\n d: \"M87.184 25.227c-33.733 0-61.166 27.423-61.178 61.13a60.98 60.98 0 0 0 9.349 32.535l1.455 2.313-6.179 22.558 23.146-6.069 2.235 1.324c9.387 5.571 20.15 8.517 31.126 8.523h.023c33.707 0 61.14-27.426 61.153-61.135a60.75 60.75 0 0 0-17.895-43.251 60.75 60.75 0 0 0-43.235-17.928z\"\n});\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n d: \"M68.772 55.603c-1.378-3.061-2.828-3.123-4.137-3.176l-3.524-.043c-1.226 0-3.218.46-4.902 2.3s-6.435 6.287-6.435 15.332 6.588 17.785 7.506 19.013 12.718 20.381 31.405 27.75c15.529 6.124 18.689 4.906 22.061 4.6s10.877-4.447 12.408-8.74 1.532-7.971 1.073-8.74-1.685-1.226-3.525-2.146-10.877-5.367-12.562-5.981-2.91-.919-4.137.921-4.746 5.979-5.819 7.206-2.144 1.381-3.984.462-7.76-2.861-14.784-9.124c-5.465-4.873-9.154-10.891-10.228-12.73s-.114-2.835.808-3.751c.825-.824 1.838-2.147 2.759-3.22s1.224-1.84 1.836-3.065.307-2.301-.153-3.22-4.032-10.011-5.666-13.647\"\n});\nfunction SvgWhatsapp(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 175.216 175.552\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgWhatsapp);\nexport default __webpack_public_path__ + \"static/media/whatsapp.6181e5ce.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect, useState } from \"react\";\nimport ReactInputMask from \"react-input-mask\";\nimport { AiOutlineArrowDown } from \"react-icons/ai\";\nimport { Col, Divider, Form, Row, message } from \"antd\";\nimport Button from \"../Button\";\nimport api from \"../../services/api\";\nimport { isMobile } from \"../../utils\";\nimport { DrawerModal } from \"../DrawerModal\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { validationPhoneRequired } from \"../../utils/formValidations\";\nimport { ReactComponent as WhatsAppIcon } from \"../../assets/whatsapp.svg\";\nimport HandleTag from \"../../services/handleTag\";\n\nexport const PhoneNotification = () => {\n const { loadingIntegrationStatus } = useBroker();\n const {\n user,\n setUser,\n loadingSession,\n updateUserInfo,\n showPhoneModal,\n cameFromRegister,\n setShowPhoneModal,\n } = useAuth();\n\n const [showed, setShowed] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const onCancel = () => {\n setLoading(true);\n api\n .post(\"/user/cellphone-filled\", { document: user.user.cpf })\n .then(() => {})\n .catch(() => {})\n .finally(() => {\n setUser((user: any) => ({\n ...user,\n user: { ...user.user, cellphoneFilled: true },\n }));\n updateUserInfo();\n setTimeout(() => {\n setShowPhoneModal(false);\n setLoading(false);\n }, 1000);\n });\n };\n\n const onFinish = ({ phone }: { phone: string }) => {\n setLoading(true);\n api\n .put(\"/user/feed-userinfo\", {\n name: user.user.name,\n document: user.user.cpf,\n phone: phone?.replace(/[\\s()-]/g, \"\"),\n })\n .then(() => {\n HandleTag(\"169\");\n message.success(\"Obrigado por adicionar seu número!\");\n })\n .catch(() => {})\n .finally(() => {\n onCancel();\n });\n };\n\n useEffect(() => {\n if (\n !showed &&\n user.user &&\n !loadingSession &&\n !loadingIntegrationStatus &&\n !user?.user?.cellphone &&\n !cameFromRegister.bolsa &&\n !cameFromRegister.phone\n ) {\n setShowed(true);\n // setShowPhoneModal(true);\n }\n }, [\n showed,\n user.user,\n loadingSession,\n setShowPhoneModal,\n cameFromRegister.phone,\n cameFromRegister.bolsa,\n loadingIntegrationStatus,\n ]);\n\n return (\n Proteção contra a malha-fina\n }\n >\n
\n \n \n \n \n \n \n Receba seus DARFs sempre que possuir impostos em aberto\n \n \n \n
\n \n \n \n \n \n \n }\n >\n Prosseguir\n \n \n \n \n Não me avise quando estiver devendo impostos{\" \"}\n \n \n \n \n \n );\n};\n","import moment from \"moment\";\nimport { message } from \"antd\";\nimport { Route, useLocation, useNavigate } from \"react-router-dom\";\nimport React, {\n createContext,\n Dispatch,\n SetStateAction,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport SSO from \"../pages/SSO\";\nimport apis from \"../services/apis\";\nimport { Home } from \"../pages/Home\";\nimport { Login } from \"../pages/Login\";\nimport { useAuth } from \"./AuthContext\";\nimport { Planos } from \"../pages/Planos\";\nimport { IRPFPage } from \"../pages/IRPF\";\nimport { Sucesso } from \"../pages/Sucesso\";\nimport { PlanIos } from \"../pages/PlanIos\";\nimport apiBolsa from \"../services/apiBolsa\";\nimport { Cadastro } from \"../pages/Cadastro\";\nimport { Carteira } from \"../pages/Carteira\";\nimport apiCrypto from \"../services/apiCrypto\";\nimport { MinhaConta } from \"../pages/MinhaConta\";\nimport { Regulation } from \"../pages/Regulation\";\nimport imoveisBackend from \"../services/imoveis\";\nimport apiExterior from \"../services/apiExterior\";\nimport { tenteIntegrarNovamente } from \"../utils\";\nimport { Pages } from \"../constants/brokers/pages\";\nimport { ForgotPassword } from \"../pages/ForgotPassword\";\nimport { ChangePassword } from \"../pages/ChangePassword\";\nimport rendimentosBackend from \"../services/rendimentos\";\nimport { Broker, brokers, Page } from \"../constants/brokers\";\nimport { LoadingSession } from \"../components/LoadingSession\";\nimport { PhoneNotification } from \"../components/PhoneNotification\";\nimport { parseSearchParams } from \"../utils/path.utils\";\nimport { DeclaracaoIRPF } from \"../pages/Declaracao-IRPF\";\n\ninterface HandleIntegrationInitParams {\n onlyB3?: boolean;\n}\n\nexport interface Integration {\n key: string;\n integrated: boolean;\n lastUpdate: string;\n providerExists: boolean;\n isIntegrated?: boolean;\n plans?: { name: string; status: string };\n secret?: string;\n userId?: string;\n status?: string;\n provider?: string;\n statusTimestamp?: string;\n hasError?: boolean;\n}\n\nconst defaultIntegration: Integration = {\n key: \"unset\",\n lastUpdate: \"\",\n integrated: false,\n providerExists: false,\n hasError: false,\n};\n\ninterface IBrokerContext {\n currentBroker: Broker;\n currentPage?: Page;\n integration: Integration;\n setIntegration?: React.Dispatch>;\n xtageIntegration: boolean;\n integrations: { [key: string]: Integration };\n setInitIntegration: (v: boolean) => void;\n setIntegrations: Dispatch>;\n initIntegration: boolean;\n loadingIntegrationStatus: boolean;\n handleIntegrationInit: (props?: HandleIntegrationInitParams) => void\n getIntegrationStatus: (options: {\n token?: string;\n onlyB3?: boolean;\n hideLoading?: boolean;\n }) => void;\n // getXtageIntegrationStatus: (options: {\n // token?: string;\n // redirect: boolean;\n // }) => void;\n handleProviderExists: (value: boolean) => void;\n hasCriptoIntegration?: boolean;\n hasExteriorIntegration?: boolean;\n integrouHoje: boolean;\n pathBackup: string;\n allPaths: string[];\n abledPages: Page[];\n sidebarPages: Page[];\n mixedRoutes: JSX.Element[];\n brokerRoutes: JSX.Element[];\n privatePublicWrapperRoutes: JSX.Element[];\n publicRoutes: { path: string; element: JSX.Element }[];\n privateRoutes: {\n path: string;\n element: JSX.Element;\n header?: boolean;\n sidebar?: boolean;\n }[];\n searchParams: Record;\n registerRoutes: JSX.Element[];\n}\n\nexport const BrokerContext = createContext({} as IBrokerContext);\n\nexport const BrokerProvider: React.FC = ({ children }) => {\n const navigate = useNavigate();\n const { hostname } = window.location;\n const { pathname, search } = useLocation();\n const { user, loadingSession, hasPlan, cameFromRegister, b3Authorized } =\n useAuth();\n const [onlyB3, setOnlyB3] = useState(false);\n const [pathBackup, setPathBackup] = useState('');\n const [initIntegration, setInitIntegration] = useState(false);\n const [integration, setIntegration] = useState(defaultIntegration);\n const [xtageIntegration] = useState(false);\n // const [counter, setCounter] = useState(0);\n const [integrations, setIntegrations] = useState<{\n [key: string]: Integration;\n }>({});\n const [loadingIntegrationStatus, setLoadingIntegrationStatus] =\n useState(false);\n\n const interval = useRef>();\n\n const searchParams = parseSearchParams(search);\n\n // useEffect(() => {\n // setCounter(counter + 1);\n // if (counter === 24) {\n // message.info({\n // content:\n // \"Você possui um número alto de operações realizadas na bolsa de valores. Por isso, precisaremos de um pouco mais de tempo para finalizar os seus cálculos de imposto de renda. Volte novamente em 30 minutos.\",\n // duration: 40,\n // });\n // }\n // }, [integration, counter]);\n\n useEffect(() => {\n setPathBackup((path) =>\n path !== pathname && pathname !== \"/\" && !pathname.includes(\"/p/\")\n ? `${pathname}${search || \"\"}`\n : path\n );\n }, [pathname, search]);\n\n const brokerList = useMemo(\n () => brokers.filter((broker) => !broker.disabled),\n []\n );\n\n const dnsBroker = useMemo(\n () => brokerList.find((broker) => hostname.includes(broker.dns)),\n [brokerList, hostname]\n );\n\n const currentBroker = useMemo(\n () =>\n dnsBroker ||\n brokerList.find((broker) => pathname.includes(broker.path)) ||\n brokerList[0],\n [pathname, brokerList, dnsBroker]\n );\n\n const integrouHoje = useMemo(\n () =>\n integration.lastUpdate\n ? moment(integration.lastUpdate).isAfter(moment().startOf(\"day\"))\n : false,\n [integration]\n );\n\n const hasCriptoIntegration = useMemo(\n () =>\n integrations?.mercadobitcoin?.integrated ||\n integrations?.mercadobitcoin?.status === \"sucesso\" ||\n integrations?.bitcointrade?.integrated ||\n integrations?.bitcointrade?.status === \"sucesso\" ||\n integrations?.binance?.integrated ||\n integrations?.binance?.status === \"sucesso\" ||\n integrations?.mynt?.isIntegrated,\n [integrations]\n );\n\n const hasExteriorIntegration = useMemo(\n () =>\n integrations?.sproutfi?.isIntegrated ||\n integrations?.warren?.isIntegrated ||\n integrations?.xp?.isIntegrated,\n [integrations]\n );\n\n const sidebarPages = useMemo(\n () => currentBroker.pages.filter((page) => page.showOnSidebar),\n [currentBroker?.pages]\n );\n\n const abledPages = useMemo(\n () =>\n currentBroker.pages\n .reduce(\n (acc, cur) => [...acc, cur, ...(cur.subPages ?? [])],\n [] as Page[]\n )\n .filter((page) => !!page.component)\n .filter((page) => hasPlan || !page.premium)\n .filter((page) => (page.publicRoute ? !user.user : true))\n .filter(\n (page) =>\n !page.path.includes(\"bolsa\") ||\n b3Authorized ||\n user?.user?.skippedB3Integration ||\n !page.integratedOnly\n ),\n [hasPlan, user.user, b3Authorized, currentBroker.pages]\n );\n\n const brokerRoutes = useMemo(\n () =>\n abledPages\n .filter(\n (page) => !page.mixedRoute && !page.publicRoute && !page.publicWrapper\n )\n .map((page) => {\n const Element = Pages[page.component!];\n return (\n }\n />\n );\n }),\n [abledPages]\n );\n\n const registerRoutes = useMemo(\n () =>\n abledPages\n .filter((page) => page.publicRoute)\n .map((page) => {\n const Element = Pages[page.component!];\n return (\n }\n />\n );\n }),\n [abledPages]\n );\n\n const mixedRoutes = useMemo(\n () =>\n abledPages\n .filter((page) => page.mixedRoute)\n .map((page) => {\n const Element = Pages[page.component!];\n return (\n }\n />\n );\n }),\n [abledPages]\n );\n\n const privatePublicWrapperRoutes = useMemo(\n () =>\n abledPages\n .filter((page) => page.publicWrapper)\n .map((page) => {\n const Element = Pages[page.component!];\n return (\n }\n />\n );\n }),\n [abledPages]\n );\n\n const publicRoutes = [\n { path: \"/p/login\", element: },\n { path: \"/p/cadastrar\", element: },\n { path: \"/p/forgot-password\", element: },\n { path: \"/p/change-password/:token\", element: },\n ...(currentBroker.useSSO\n ? [\n {\n path: \"/p/sso/:token\",\n element: ,\n },\n ]\n : []),\n ];\n\n const privateRoutes = [\n { path: \"/\", element: , header: true, sidebar: true },\n { path: \"/sucesso\", element: , header: false, sidebar: true },\n { path: \"/sucesso2\", element: , header: false, sidebar: true },\n { path: \"/conta\", element: , header: true, sidebar: true },\n {\n path: \"/regulacao\",\n element: ,\n header: true,\n sidebar: true,\n },\n // {\n // path: \"/declaracao-irpf\",\n // element: ,\n // header: true,\n // sidebar: true,\n // },\n {\n path: \"/plan/ios\",\n element: ,\n header: false,\n sidebar: false,\n },\n ...(!hasPlan || !hasPlan.concierge\n ? [\n {\n path: \"/planos\",\n element: ,\n header: true,\n sidebar: true,\n },\n ]\n : []),\n { path: \"/irpf\", element: , header: true, sidebar: true },\n ...(currentBroker.useCarteira\n ? [\n {\n path: \"/carteira\",\n element: ,\n header: true,\n sidebar: true,\n },\n ]\n : []),\n ];\n\n const privatePaths = privateRoutes.map((page) => page.path);\n const publicPaths = publicRoutes.map((page) =>\n page.path.replace(\"/:token\", \"\")\n );\n\n const abledPagesPaths = abledPages.map((page) => page.path);\n const allPaths = [...abledPagesPaths, ...privatePaths, ...publicPaths];\n\n const currentPage = useMemo(() => {\n const current = currentBroker?.pages.find((page) =>\n pathname.includes(page.path)\n );\n if (current?.api) {\n current.api.defaults.headers.common[\n \"Authorization\"\n ] = `Bearer ${localStorage.getItem(\"@VeloTax:token\")}`;\n }\n return current;\n }, [pathname, currentBroker?.pages]);\n\n const getIntegrationStatus = useCallback(\n async ({\n token = user.token,\n hideLoading,\n onlyB3,\n }: {\n token?: string;\n hideLoading?: boolean;\n onlyB3?: boolean;\n }) => {\n if (token && currentBroker) {\n !hideLoading && setLoadingIntegrationStatus(true);\n try {\n const { data: b3Data } = await apiBolsa.get(\n \"providers/integration-status\"\n );\n setIntegration({\n key: b3Data.key,\n integrated: b3Data.integrated,\n lastUpdate: b3Data.lastUpdate,\n providerExists: b3Data.providerExists,\n plans: b3Data.plans,\n hasError: b3Data.hasError,\n });\n } catch (error) {\n setIntegration(defaultIntegration);\n }\n\n if (!onlyB3) {\n const binance = apiCrypto.get(\"/binance/integration-status\");\n const bitcointrade = apiCrypto.get(\n \"/bitcoin-trade/integration-status\"\n );\n const mercadobitcoin = apiCrypto.get(\n \"/mercado-bitcoin/integration-status\"\n );\n const mynt = apiCrypto.get(\"/mynt/integration-status\");\n const xp = apiExterior.get(\"/xp/integration-status\", {\n headers: {\n \"x-api-provider\": \"exterior-velotax\",\n },\n });\n const sproutfi = apiExterior.get(\"/sproutfi/integration-status\", {\n headers: {\n \"x-api-provider\": \"exterior-velotax\",\n },\n });\n const warren = apiExterior.get(\"/warren/integration-status\", {\n headers: {\n \"x-api-provider\": \"exterior-velotax\",\n },\n });\n Promise.allSettled([\n binance,\n bitcointrade,\n mercadobitcoin,\n mynt,\n xp,\n sproutfi,\n warren,\n ])\n .then((values) => {\n setIntegrations((integrations) => ({\n ...integrations,\n ...(values[0].status === \"fulfilled\"\n ? { binance: values[0].value.data }\n : {}),\n ...(values[1].status === \"fulfilled\"\n ? { bitcointrade: values[1].value.data }\n : {}),\n ...(values[2].status === \"fulfilled\"\n ? { mercadobitcoin: values[2].value.data }\n : {}),\n ...(values[3].status === \"fulfilled\"\n ? { mynt: values[3].value.data }\n : {}),\n ...(values[4].status === \"fulfilled\"\n ? { xp: values[4].value.data }\n : {}),\n ...(values[5].status === \"fulfilled\"\n ? { sproutfi: values[5].value.data }\n : {}),\n ...(values[6].status === \"fulfilled\"\n ? { warren: values[6].value.data }\n : {}),\n }));\n })\n .catch(() => {\n setIntegrations({});\n });\n }\n !hideLoading && setLoadingIntegrationStatus(false);\n }\n },\n [currentBroker, user.token]\n );\n\n // const getXtageIntegrationStatus = useCallback(\n // ({\n // redirect,\n // token = user.token,\n // }: {\n // redirect: boolean;\n // token?: string;\n // }) => {\n // if (token && currentBroker) {\n // apiCrypto\n // .get(`brokerage-notes/status`)\n // .then((response) => {\n // const { isIntegrated } = response.data;\n // setXtageIntegration(isIntegrated);\n // if (isIntegrated && redirect) {\n // navigate(\"/velotax/cripto-historic\");\n // }\n // })\n // .catch(() => {\n // message.error(\"Erro ao consultar status de leitura\");\n // });\n // }\n // },\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // [currentBroker, user.token]\n // );\n\n const handleIntegrationInit = useCallback(\n (props?: HandleIntegrationInitParams) => {\n const { onlyB3 } = props ?? {}\n setOnlyB3(!!onlyB3);\n setIntegration((integration) => ({\n ...integration,\n hasError: false,\n integrated: false,\n }));\n setTimeout(() => {\n setInitIntegration(true);\n }, 250);\n },\n []\n );\n\n const handleProviderExists = useCallback((providerExists: boolean) => {\n setIntegration((integration) => ({ ...integration, providerExists }));\n }, []);\n\n useEffect(() => {\n if (currentBroker?.html.favicon) {\n const link = (document.querySelector(\"link[rel~='icon']\") ||\n document.createElement(\"link\")) as HTMLLinkElement;\n link.rel = \"icon\";\n document.getElementsByTagName(\"head\")[0].appendChild(link);\n link.href = currentBroker?.html.favicon;\n }\n if (currentBroker?.html.title) {\n const title = (document.querySelector(\"head title\") ||\n document.createElement(\"title\")) as HTMLTitleElement;\n document.getElementsByTagName(\"head\")[0].appendChild(title);\n title.innerHTML = currentBroker.html.title;\n }\n }, [currentBroker]);\n\n useEffect(() => {\n if (integration.key === \"unset\") {\n getIntegrationStatus({\n token: user.token,\n hideLoading: cameFromRegister.bolsa,\n });\n }\n }, [\n user.token,\n integration.key,\n getIntegrationStatus,\n cameFromRegister.bolsa,\n ]);\n\n // useEffect(() => {\n // if (!xtageIntegration) {\n // getXtageIntegrationStatus({\n // token: user.token,\n // redirect: false,\n // });\n // }\n // }, [user.token, xtageIntegration, getXtageIntegrationStatus]);\n\n useEffect(() => {\n if (integration.integrated && interval.current) {\n clearInterval(interval.current);\n setInitIntegration(false);\n setOnlyB3(false);\n setTimeout(() => {\n if (\n initIntegration &&\n pathname === `/${currentBroker.path}/bolsa-integration`\n ) {\n navigate(\"/carteira\");\n }\n }, 2500);\n } else if (initIntegration && integration.hasError && interval.current) {\n clearInterval(interval.current);\n setInitIntegration(false);\n setOnlyB3(false);\n setTimeout(() => {\n message.info(tenteIntegrarNovamente, 6);\n }, 300);\n }\n }, [\n integration.integrated,\n integration.hasError,\n pathname,\n currentBroker,\n navigate,\n initIntegration,\n ]);\n\n useEffect(() => {\n getIntegrationStatus({\n token: user.token,\n hideLoading: true,\n })\n }, [getIntegrationStatus, user.token]);\n\n apis.defaults.headers.common[\"x-api-provider\"] = currentBroker?.id || \"\";\n rendimentosBackend.defaults.headers.common[\"x-api-provider\"] =\n \"velotax-rendimentos\" || \"\";\n imoveisBackend.defaults.headers.common[\"x-api-provider\"] =\n \"imoveis-velotax\" || \"\";\n\n return (\n \n {children}\n {!initIntegration && (loadingSession || loadingIntegrationStatus) && (\n \n )}\n \n \n );\n};\n\nexport const useBroker = (): IBrokerContext => useContext(BrokerContext);\n","export function parseSearchParams(queryString: string) {\n queryString = queryString.replace(\"?\", \"\");\n const queryParams = queryString.split(\"&\");\n const params: Record = {};\n\n queryParams.forEach((param) => {\n const [key, value] = param.split(\"=\");\n params[key] = decodeURIComponent(value);\n });\n\n return params;\n}\n","export default __webpack_public_path__ + \"static/media/velotax-light.9bb89f4f.svg\";","import { Image } from \"antd\";\nimport { useNavigate } from \"react-router-dom\";\nimport { LogoStyled } from \"./styles\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport VelotaxLogo from \"../../assets/velotax/velotax-light.svg\";\n\nexport const Logo: React.FC = () => {\n const { currentBroker } = useBroker();\n const navigate = useNavigate();\n return (\n \n \n \n );\n};\n","import VelotaxLogo from \"../../assets/velotax/velotax-light.svg\";\n\ninterface PoweredByVelotaxProps {\n className?: string;\n}\n\nexport const PoweredByVelotax: React.FC = ({\n className,\n}) => {\n return (\n \n powered by\n \"velotax\"\n \n );\n};\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.85999 11.2C9.41816 11.2 9.05999 11.5582 9.05999 12C9.05999 12.4418 9.41816 12.8 9.85999 12.8V11.2ZM20 12L20.5657 12.5657C20.7157 12.4157 20.8 12.2122 20.8 12C20.8 11.7878 20.7157 11.5843 20.5657 11.4343L20 12ZM10.8676 20.781C11.3095 20.779 11.666 20.4192 11.664 19.9774C11.662 19.5355 11.3022 19.179 10.8603 19.181L10.8676 20.781ZM6.69599 20L6.69234 19.2L6.69198 19.2L6.69599 20ZM11 4.8C11.4418 4.8 11.8 4.44183 11.8 4C11.8 3.55817 11.4418 3.2 11 3.2V4.8ZM15.4343 15.4343C15.1219 15.7467 15.1219 16.2533 15.4343 16.5657C15.7467 16.8781 16.2533 16.8781 16.5657 16.5657L15.4343 15.4343ZM16.5657 7.43431C16.2533 7.12189 15.7467 7.12189 15.4343 7.43431C15.1219 7.74673 15.1219 8.25327 15.4343 8.56568L16.5657 7.43431ZM9.85999 12.8H20V11.2H9.85999V12.8ZM10.8603 19.181L6.69234 19.2L6.69964 20.8L10.8676 20.781L10.8603 19.181ZM6.69198 19.2C5.93298 19.2038 5.32899 18.5973 5.32899 17.865H3.72899C3.72899 19.4987 5.069 20.8082 6.70001 20.8L6.69198 19.2ZM5.32899 17.865V6.135H3.72899V17.865H5.32899ZM5.32899 6.135C5.32899 5.40534 5.92827 4.8 6.68599 4.8V3.2C5.05971 3.2 3.72899 4.50666 3.72899 6.135H5.32899ZM6.68599 4.8H11V3.2H6.68599V4.8ZM16.5657 16.5657L20.5657 12.5657L19.4343 11.4343L15.4343 15.4343L16.5657 16.5657ZM20.5657 11.4343L16.5657 7.43431L15.4343 8.56568L19.4343 12.5657L20.5657 11.4343Z\"\n});\nfunction SvgSair(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgSair);\nexport default __webpack_public_path__ + \"static/media/sair.4ef32787.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.5001 7.91666H15.8334M14.5001 11.25H12.5001M10.0792 13.75C9.93341 13.3842 9.70841 13.0558 9.41925 12.7883C8.93008 12.335 8.28842 12.0833 7.62175 12.0833H6.54508C5.87841 12.0833 5.23675 12.335 4.74758 12.7883C4.45841 13.0558 4.23341 13.3842 4.08758 13.75M8.40925 6.79917C9.14148 7.5314 9.14148 8.71858 8.40925 9.45082C7.67701 10.183 6.48983 10.183 5.7576 9.45082C5.02536 8.71858 5.02536 7.5314 5.7576 6.79917C6.48983 6.06693 7.67701 6.06693 8.40925 6.79917ZM1.66675 15.4167V4.61749C1.66675 3.67832 2.42841 2.91666 3.36758 2.91666H16.6667C17.5876 2.91666 18.3334 3.66249 18.3334 4.58332V15.4167C18.3334 16.3375 17.5876 17.0833 16.6667 17.0833H3.33341C2.41258 17.0833 1.66675 16.3375 1.66675 15.4167Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgIrpf(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgIrpf);\nexport default __webpack_public_path__ + \"static/media/irpf.2437e7f1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.4225 16.0475C14.1025 14.5142 12.2542 13.3333 10 13.3333C7.74582 13.3333 5.89749 14.5142 5.57749 16.0475M15.3032 4.6967C18.2322 7.62563 18.2322 12.3743 15.3032 15.3032C12.3743 18.2322 7.62562 18.2322 4.6967 15.3032C1.76777 12.3743 1.76777 7.62562 4.6967 4.6967C7.62563 1.76777 12.3743 1.76777 15.3032 4.6967ZM11.7677 6.56557C12.7441 7.54188 12.7441 9.12475 11.7677 10.1011C10.7914 11.0774 9.2085 11.0774 8.23223 10.1011C7.25593 9.12475 7.25593 7.54188 8.23223 6.56557C9.2085 5.58926 10.7914 5.58926 11.7677 6.56557Z\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\nfunction SvgConta(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgConta);\nexport default __webpack_public_path__ + \"static/media/conta.814b3af4.svg\";\nexport { ForwardRef as ReactComponent };","import { Drawer, Layout, Menu } from \"antd\";\nimport styled, { css } from \"styled-components\";\nimport Button from \"../Button\";\n\nexport const ContentButton = styled.div`\n width: 100%;\n height: 70px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n border-top: 2px solid var(--light-gray);\n border-bottom: 2px solid var(--light-gray);\n\n .plan-sidebar {\n font-size: 16px;\n user-select: none;\n color: var(--velotax-font-color);\n &.free {\n cursor: pointer;\n }\n strong {\n font-weight: 600;\n }\n }\n button {\n height: 48px !important;\n }\n`;\n\nexport const DrawerSider = styled(Drawer)`\n z-index: 99999999999;\n .ant-drawer-wrapper-body {\n position: relative;\n .ant-drawer-header {\n right: 16px;\n top: 24px;\n padding: 0;\n position: absolute;\n background-color: var(--velotax-background-color);\n }\n .ant-drawer-body {\n padding: 0;\n background-color: var(--velotax-background-color);\n }\n }\n\n @media (max-device-width: 812px) {\n .ant-drawer-body {\n overflow: hidden !important; \n }\n }\n`;\n\nexport const LayoutSider = styled(Layout.Sider)`\n box-shadow: 0px 0px 24px 0px rgba(0, 0, 88, 0.08);\n position: relative;\n z-index: 11;\n\n .ant-layout-sider-children {\n max-height: 100dvh;\n display: flex;\n flex-direction: column;\n }\n`;\n\nexport const Modules = styled(Menu)`\n overflow-y: auto;\n overflow-x: hidden;\n border-right: none;\n padding-top: 8px;\n border-top: 2px solid var(--light-gray);\n /* height: calc(100% - 96px - 70px); */\n\n height: 100%;\n &.user {\n height: calc(100% - 96px - 70px - 72px - 72px );\n height: 100%;\n }\n &.poweredBy {\n height: calc(100% - 96px - 70px - 64px);\n }\n &.user.poweredBy {\n height: calc(100% - 96px - 70px - 72px - 64px);\n }\n @media only screen and (max-device-width: 812px) {\n height: calc(100% - 64px - 70px);\n &.user {\n height: calc(100% - 64px - 70px - 72px - 72px);\n }\n &.poweredBy {\n height: calc(100% - 64px - 70px - 64px);\n }\n &.user.poweredBy {\n height: calc(100% - 64px - 70px - 72px - 64px);\n }\n }\n`;\n\nexport const Settings = styled(Menu)`\n width: 100%;\n height: 72px;\n display: flex;\n border: none;\n\n .ant-row {\n width: 100%;\n }\n`;\n\ninterface ModuleProps {\n sidebarselectedcolor: string;\n}\n\nexport const FeaturePromo = styled.div`\n position: relative;\n border-top: 2px solid var(--light-gray);\n height: 72px;\n display: flex;\n max-width: 208px;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n padding-left: 12px;\n gap: 8px;\n transition: 0.3s ease-in-out;\n\n .title-features {\n width: 180px;\n height: 40px;\n line-height: 40px;\n color: var(--dark-gray);\n font-size: 14px;\n font-weight: 500;\n }\n\n svg {\n font-size: 14px;\n min-width: 14px;\n color: var(--dark-gray);\n stroke: var(--dark-gray);\n }\n\n :hover {\n color: var(--ant-primary-color);\n\n .title-features {\n color: var(--ant-primary-color);\n }\n\n svg {\n color: var(--ant-primary-color);\n stroke: var(--ant-primary-color);\n }\n }\n`;\n\nexport const FeatureButton = styled(Button)`\n font-size: 8px !important;\n padding: 6px !important;\n height: auto !important;\n top: 4px !important;\n line-height: 1 !important;\n right: -6px !important;\n\n @media screen and (max-device-width: 812px) {\n right: -2px !important;\n }\n`;\n\nexport const Module = styled(Menu.Item)`\n border: none;\n height: ${({ height }) => `${height}px` ?? \"48px\"} !important;\n margin: 6px 0 !important;\n padding-left: 12px !important;\n background-color: var(--velotax-background-color);\n\n * {\n z-index: 1;\n }\n\n svg {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n color: var(--medium-gray);\n &.stroke {\n stroke: var(--medium-gray);\n transition: stroke 0.3s;\n }\n }\n\n .ant-menu-title-content {\n font-weight: 500;\n color: var(--dark-gray);\n margin-left: 0 !important;\n }\n\n &.ant-menu-item:hover {\n .ant-menu-title-content {\n color: var(--ant-primary-color);\n }\n }\n\n &.ant-menu-item:active {\n background-color: var(--velotax-background-color);\n }\n\n &.ant-menu-item-selected {\n .ant-menu-title-content {\n font-weight: 600;\n color: var(--ant-primary-color);\n }\n background-color: var(--velotax-background-color) !important;\n\n &::after {\n border-right: none;\n opacity: 0;\n }\n\n &::before {\n opacity: 1;\n }\n }\n\n &::before {\n content: \"\";\n top: 0;\n left: 0;\n z-index: 0;\n opacity: 0;\n height: 100%;\n position: absolute;\n width: calc(100% - 8px);\n border-radius: 0 6px 6px 0;\n transition: opacity 500ms ease-in-out;\n background-color: #eff1ff;\n }\n\n &.conta {\n width: 100%;\n margin: 0 !important;\n border: none;\n height: 72px !important;\n padding: 12px 8px 4px 8px !important;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n\n &::before {\n top: 8px;\n left: 8px;\n border-radius: 6px;\n width: calc(100% - 16px);\n height: calc(100% - 16px);\n }\n\n svg {\n width: 20px;\n height: 20px;\n min-width: 20px;\n min-height: 20px;\n margin-right: 0;\n &.sair {\n transition: fill 0.3s;\n }\n &.stroke {\n transition: stroke 0.3s;\n }\n }\n\n .ant-menu-title-content {\n margin: 0;\n }\n\n &.logout {\n border-left: 2px solid var(--light-gray);\n &::before {\n opacity: 0;\n }\n }\n }\n\n ${(props) =>\n props.sidebarselectedcolor\n ? css`\n &:hover {\n color: ${props.sidebarselectedcolor} !important;\n .ant-menu-title-content {\n color: ${props.sidebarselectedcolor} !important;\n }\n svg {\n color: ${props.sidebarselectedcolor} !important;\n }\n svg.stroke {\n stroke: ${props.sidebarselectedcolor} !important;\n }\n svg:not(.no-fill):not(.stroke) {\n fill: ${props.sidebarselectedcolor} !important;\n }\n }\n &.ant-menu-item-selected {\n color: ${props.sidebarselectedcolor} !important;\n svg {\n color: ${props.sidebarselectedcolor};\n }\n svg:not(.no-fill) {\n fill: ${props.sidebarselectedcolor};\n }\n &:hover {\n color: ${props.sidebarselectedcolor};\n }\n }\n `\n : css`\n &:hover {\n color: var(--ant-primary-color) !important;\n .ant-menu-title-content {\n color: var(--ant-primary-color) !important;\n }\n svg {\n color: var(--ant-primary-color) !important;\n }\n svg.stroke {\n stroke: var(--ant-primary-color) !important;\n }\n svg:not(.no-fill):not(.stroke) {\n fill: var(--ant-primary-color) !important;\n }\n }\n &.ant-menu-item-selected {\n color: var(--ant-primary-color) !important;\n svg {\n color: var(--ant-primary-color);\n }\n svg.stroke {\n stroke: var(--ant-primary-color) !important;\n }\n svg:not(.no-fill):not(.stroke) {\n fill: var(--ant-primary-color);\n }\n &:hover {\n color: var(--ant-primary-color);\n }\n }\n `}\n`;\n\nexport const Review = styled.div`\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-top: 1px solid var(--velotax-background-color-ghost);\n background-color: var(--velotax-background-color);\n`;\n\nexport const Users = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-start;\n height: 50px;\n\n @media only screen and (max-device-width: 812px) {\n .users-button {\n background-color: white;\n box-shadow: none;\n border: none;\n }\n\n .users-icon {\n height: 15px;\n width: 15px;\n }\n }\n`;\n\nexport const SupportContainerIcon = styled.div`\n\n & svg {\n height: 17px;\n width: 17px;\n margin-left: 2px;\n }\n`","import clsx from \"clsx\";\nimport { BiUserCircle } from \"react-icons/bi\";\nimport React, { useEffect, useState } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport Button from \"../Button\";\nimport { Logo } from \"../Logo\";\nimport { isMobile } from \"../../utils\";\nimport HandleTag from \"../../services/handleTag\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { PoweredByVelotax } from \"../PoweredByVelotax\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { ReactComponent as SairIcon } from \"../../assets/icons/sidebar/sair.svg\";\nimport { ReactComponent as IrpfIcon } from \"../../assets/icons/sidebar/irpf.svg\";\nimport { ReactComponent as ContaIcon } from \"../../assets/icons/sidebar/conta.svg\";\nimport {\n ContentButton,\n DrawerSider,\n FeatureButton,\n FeaturePromo,\n LayoutSider,\n Module,\n Modules,\n Settings,\n SupportContainerIcon,\n} from \"./styles\";\nimport { UserPlanEnum } from \"../../constants/plans\";\nimport { IoChatbubblesOutline } from \"react-icons/io5\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\n\ninterface ISideBarProps {\n pagePath: string;\n}\n\ninterface ISideBarContainerProps {\n visible: boolean;\n setVisible: Function;\n}\n\nconst SideBarContainer: React.FC = ({\n children,\n visible,\n setVisible,\n}) => {\n return isMobile() ? (\n setVisible(false)}\n >\n {children}\n \n ) : (\n \n {children}\n \n )}\n\nconst Sidebar: React.FC = ({ pagePath }) => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const { b3Authorized } = useB3Integration();\n const {\n user,\n signOut,\n hasPlan,\n showDrawer,\n setShowDrawer,\n hasPermissionGeneral,\n } = useAuth();\n const {\n sidebarPages,\n currentBroker,\n hasExteriorIntegration,\n hasCriptoIntegration,\n } = useBroker();\n\n const [openKeys, setOpenKeys] = useState([\"\"]);\n\n const sidebarselectedcolor = currentBroker.colors.sidebarSelectedColor;\n\n const handleNavigate = (path: string) => {\n if (!user.user) {\n setShowDrawer(false);\n const extension: Record = {\n bolsa: \"-integration\",\n cripto: \"-integrations\",\n exterior: \"-integrations\",\n autonomos: \"-cadastro\",\n imoveis: \"-cadastro\",\n };\n navigate(`${path}${extension[path.split(\"/\")[2]]}`);\n } else if (path.includes(\"http\")) {\n window.open(path, \"_blank\")?.focus();\n } else {\n setShowDrawer(false);\n if (path === `/${currentBroker.path}/bolsa`) {\n if (b3Authorized || user.user.skippedB3Integration) {\n navigate(path);\n } else {\n navigate(`/${currentBroker.path}/bolsa-integration`);\n }\n } else if (path === `/${currentBroker.path}/cripto`) {\n const userPlanValid =\n user.user.userPlanInfoVelotax.active &&\n user.user.userPlanInfoVelotax.type;\n if (\n userPlanValid ||\n (pathname === `/${currentBroker.path}/cripto-integrations` &&\n hasCriptoIntegration)\n ) {\n navigate(path);\n } else {\n navigate(`/${currentBroker.path}/cripto-integrations?redirect=true`);\n }\n } else if (path === `/${currentBroker.path}/exterior`) {\n const userPlanValid =\n user.user.userPlanInfoVelotax.active &&\n user.user.userPlanInfoVelotax.type;\n if (\n userPlanValid ||\n (pathname === `/${currentBroker.path}/exterior-integrations` &&\n hasExteriorIntegration)\n ) {\n navigate(path);\n } else {\n navigate(\n `/${currentBroker.path}/exterior-integrations?redirect=true`\n );\n }\n } else {\n navigate(path);\n }\n }\n };\n\n useEffect(() => {\n const currentPage = [\n ...sidebarPages,\n {\n path: \"/irpf\",\n subPages: [],\n },\n ].find(\n (page) =>\n page.path === pagePath ||\n page.subPages?.find((subPage) => subPage.path === pagePath)\n );\n setOpenKeys([currentPage?.path || \"\"]);\n }, [pagePath, sidebarPages]);\n\n const DECLARACAO_IRPF = false;\n\n const loginInSupport = async (cpf: string) => {\n try {\n const token = localStorage.getItem(\"@VeloTax:token\");\n const urlSupportSSO = process.env.REACT_APP_SUPPORT_URL ? `${process.env.REACT_APP_SUPPORT_URL}p/sso/${token}` : `http://localhost:3000/p/sso/${token}`;\n window.open(\n urlSupportSSO,\n isMobile() ? \"_self\" : \"_blank\"\n );\n } catch (err) {\n console.log('erro ao tentar logar no suporte')\n }\n };\n\n return (\n \n \n {DECLARACAO_IRPF && (\n {\n handleNavigate(\"/declaracao-irpf\");\n }}\n >\n \n Declaração IRPF\n \n DISPONÍVEL\n \n \n )}\n \n {user.user && currentBroker.useCarteira && (\n }\n onClick={() => handleNavigate(\"/carteira\")}\n sidebarselectedcolor={sidebarselectedcolor}\n >\n Meus investimentos\n \n )}\n {sidebarPages.map((page) => (\n {\n if (!hasPlan && page.path.includes(\"autonomos\"))\n navigate(\"/planos\");\n else handleNavigate(page.path);\n }}\n sidebarselectedcolor={sidebarselectedcolor}\n >\n {page.name}\n \n ))}\n {isMobile() &&\n \n \n \n }\n title={'suporte'}\n onClick={() => {\n loginInSupport(user.user.cpf);\n }}\n sidebarselectedcolor={sidebarselectedcolor}\n >\n Suporte \n }\n {isMobile() && }\n title='Chat'\n onClick={() => {\n document.getElementById(\"chat-gpt-button\")?.click();\n setShowDrawer(false);\n }}\n sidebarselectedcolor={sidebarselectedcolor}\n >\n Chat\n }\n {user.user && false && (\n }\n onClick={() => handleNavigate(\"/irpf\")}\n sidebarselectedcolor={sidebarselectedcolor}\n >\n Declaração IRPF\n \n )}\n \n {user.user ? (\n {\n if (!hasPlan || !hasPlan.concierge) navigate(\"/planos\");\n HandleTag(\"54\");\n }}\n >\n {!hasPlan && !hasPermissionGeneral ? (\n
\n Seu plano: Gratuito\n
\n ) : user?.user?.userPlanInfoVelotax?.type ===\n UserPlanEnum.VELOTAX_MAIN_PRO ||\n user?.user?.userPlanInfoVelotax?.type ===\n UserPlanEnum.VELOTAX_MAIN_PRO_MONTH ||\n user?.user?.userPlanInfoVelotax?.type ===\n UserPlanEnum.VELOTAX_MAIN_PRO ||\n user?.user?.userPlanInfoVelotax?.type.includes(\"_PRO\") ||\n hasPermissionGeneral ? (\n \n Seu plano: Premium\n \n ) : user?.user?.userPlanInfoVelotax?.type.includes(\"_CONCIERGE\") ? (\n \n Seu plano: Concierge\n \n ) : user?.user?.userPlanInfoVelotax?.type.includes(\"_BASIC\") ? (\n \n Seu plano: Basic\n \n ) : undefined}\n \n ) : (\n \n Já possui uma conta?\n {\n setShowDrawer(false);\n navigate(\"/p/login\");\n }}\n >\n Faça seu login\n \n \n )}\n {!currentBroker.hidePoweredBy && (\n \n )}\n {user.user && (\n \n handleNavigate(\"/conta\")}\n icon={}\n >\n Conta\n \n \n }\n onClick={() => {\n signOut();\n }}\n >\n Sair\n \n \n )}\n
\n );\n};\n\nexport default Sidebar;","import { Layout as AntLayout } from \"antd\";\nimport styled from \"styled-components\";\n\nexport const Layout = styled(AntLayout)`\n height: 100%;\n background-color: var(--velotax-ghost);\n &.showIRPFAPPBanner {\n height: calc(100% - 64px);\n }\n & > .content {\n height: 100%;\n &.overflow {\n overflow-y: auto;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n & > .content.tab-navigator {\n height: calc(100% - 64px - 64px);\n }\n & > .content.content.tab-navigator.no-header {\n height: calc(100% - 64px);\n }\n }\n`;\n","import { HTMLAttributes } from \"react\";\nimport styled, { css } from \"styled-components\";\n\ninterface ContainerProps extends HTMLAttributes {\n qtt: number;\n}\n\nexport const Container = styled.nav`\n display: none;\n bottom: 0px;\n width: 100%;\n height: 64px;\n position: fixed;\n box-shadow: 0px 0px 24px 0px rgba(0, 0, 88, 0.16);\n background-color: var(--velotax-background-color);\n border-top: 1px solid var(--velotax-background-color-ghost);\n .hidden {\n display: none;\n }\n .ant-menu {\n width: 100%;\n display: flex;\n &.ant-menu-horizontal {\n border-bottom: none;\n }\n .ant-menu-item {\n opacity: 0.8;\n ${({ qtt }) =>\n css`\n width: calc(100% / ${qtt});\n `}\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n .ant-menu-title-content {\n opacity: 0.8;\n margin: 6px 0 0;\n font-size: ${({ qtt }) =>\n qtt === 6 ? \"11px\" : qtt === 5 ? \"12px\" : \"13px\"};\n line-height: 13px;\n color: var(--velotax-font-color);\n }\n .ant-menu-item-icon {\n width: 24px;\n height: 24px;\n opacity: 0.7;\n fill: var(--velotax-font-color);\n }\n :after {\n top: 0;\n left: 5px;\n bottom: unset;\n width: calc(100% - 10px);\n }\n &:not(.ant-menu-item-active):after {\n border-bottom-color: transparent;\n }\n &.ant-menu-item-active {\n opacity: 1;\n :before {\n content: \"\";\n position: absolute;\n top: 6px;\n left: 5px;\n opacity: 0.1;\n border-radius: 4px;\n width: calc(100% - 10px);\n height: calc(100% - 12px);\n // background-color: var(--ant-primary-color) !important;\n }\n .stroke {\n stroke: var(--ant-primary-color);\n }\n .ant-menu-title-content {\n opacity: 1;\n font-weight: 500;\n color: var(--ant-primary-color)!important;\n }\n .ant-menu-item-icon {\n opacity: 1;\n fill: var(--ant-primary-color);\n }\n }\n &.finalizar {\n .ant-menu-title-content {\n margin: 4px 0 0;\n }\n .ant-menu-item-icon {\n width: 26px;\n height: 26px;\n }\n }\n }\n }\n @media only screen and (max-device-width: 812px) {\n display: flex;\n }\n svg {\n &.stroke {\n stroke: var(--velotax-font-color);\n fill: transparent !important;\n transition: stroke 0.3s;\n }\n }\n`;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.2 5H11C11 4.55817 10.6418 4.2 10.2 4.2V5ZM10.2 19V19.8C10.6418 19.8 11 19.4418 11 19H10.2ZM6.20001 19H5.40001C5.40001 19.4418 5.75818 19.8 6.20001 19.8V19ZM6.20001 5V4.2C5.75818 4.2 5.40001 4.55817 5.40001 5H6.20001ZM18 8H18.8C18.8 7.55817 18.4418 7.2 18 7.2V8ZM18 16V16.8C18.4418 16.8 18.8 16.4418 18.8 16H18ZM14 16H13.2C13.2 16.4418 13.5582 16.8 14 16.8V16ZM14 8V7.2C13.5582 7.2 13.2 7.55817 13.2 8H14ZM16.9 16.2C16.9 15.7582 16.5418 15.4 16.1 15.4C15.6582 15.4 15.3 15.7582 15.3 16.2H16.9ZM15.3 18.2C15.3 18.6418 15.6582 19 16.1 19C16.5418 19 16.9 18.6418 16.9 18.2H15.3ZM16.9 6C16.9 5.55817 16.5418 5.2 16.1 5.2C15.6582 5.2 15.3 5.55817 15.3 6H16.9ZM15.3 8C15.3 8.44183 15.6582 8.8 16.1 8.8C16.5418 8.8 16.9 8.44183 16.9 8H15.3ZM9.1 19.2C9.1 18.7582 8.74183 18.4 8.3 18.4C7.85817 18.4 7.5 18.7582 7.5 19.2H9.1ZM7.5 21.2C7.5 21.6418 7.85817 22 8.3 22C8.74183 22 9.1 21.6418 9.1 21.2H7.5ZM9.1 3C9.1 2.55817 8.74183 2.2 8.3 2.2C7.85817 2.2 7.5 2.55817 7.5 3H9.1ZM7.5 5C7.5 5.44183 7.85817 5.8 8.3 5.8C8.74183 5.8 9.1 5.44183 9.1 5H7.5ZM9.40001 5V19H11V5H9.40001ZM10.2 18.2H6.20001V19.8H10.2V18.2ZM7.00001 19V5H5.40001V19H7.00001ZM6.20001 5.8H10.2V4.2H6.20001V5.8ZM17.2 8V16H18.8V8H17.2ZM18 15.2H14V16.8H18V15.2ZM14.8 16V8H13.2V16H14.8ZM14 8.8H18V7.2H14V8.8ZM15.3 16.2V18.2H16.9V16.2H15.3ZM15.3 6V8H16.9V6H15.3ZM7.5 19.2V21.2H9.1V19.2H7.5ZM7.5 3V5H9.1V3H7.5Z\"\n});\nfunction SvgBolsaDeValores(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgBolsaDeValores);\nexport default __webpack_public_path__ + \"static/media/bolsa-de-valores.5d5809a1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.168 4.06L10.8543 4.47107L10.8544 4.47095L10.168 4.06ZM10.168 19.941L10.8544 19.53L10.8543 19.5299L10.168 19.941ZM13.833 19.941L13.1467 19.5299L13.1466 19.53L13.833 19.941ZM13.833 4.06L14.5193 3.64893L14.5192 3.64869L13.833 4.06ZM12 3.8C16.5402 3.8 20.2 7.45983 20.2 12H21.8C21.8 6.57617 17.4238 2.2 12 2.2V3.8ZM20.2 12C20.2 16.5402 16.5402 20.2 12 20.2V21.8C17.4238 21.8 21.8 17.4238 21.8 12H20.2ZM12 20.2C7.45983 20.2 3.8 16.5402 3.8 12H2.2C2.2 17.4238 6.57617 21.8 12 21.8V20.2ZM3.8 12C3.8 7.45983 7.45983 3.8 12 3.8V2.2C6.57617 2.2 2.2 6.57617 2.2 12H3.8ZM9.48169 3.64893C6.4401 8.72701 6.4401 15.274 9.48169 20.3521L10.8543 19.5299C8.1159 14.958 8.1159 9.04299 10.8543 4.47107L9.48169 3.64893ZM9.48162 20.352C10.6382 22.2837 13.3628 22.2837 14.5194 20.352L13.1466 19.53C12.6112 20.4243 11.3898 20.4243 10.8544 19.53L9.48162 20.352ZM14.5193 20.3521C17.5609 15.274 17.5609 8.72701 14.5193 3.64893L13.1467 4.47107C15.8851 9.04299 15.8851 14.958 13.1467 19.5299L14.5193 20.3521ZM14.5192 3.64869C13.3617 1.71774 10.6384 1.71701 9.48162 3.64905L10.8544 4.47095C11.3896 3.57699 12.6103 3.57626 13.1468 4.47131L14.5192 3.64869ZM3 12.8H21V11.2H3V12.8Z\"\n});\nfunction SvgAtivosNoExterior(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgAtivosNoExterior);\nexport default __webpack_public_path__ + \"static/media/ativos-no-exterior.2781f8ec.svg\";\nexport { ForwardRef as ReactComponent };","import { Menu } from \"antd\";\nimport { BsBriefcase, BsChat } from \"react-icons/bs\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { BiBuildingHouse, BiUserCircle } from \"react-icons/bi\";\nimport { Container } from \"./styles\";\nimport { isMobile } from \"../../utils\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\nimport { useB3Integration } from \"../../contexts/B3IntegrationContext\";\nimport { ReactComponent as CriptoIcon } from \"../../assets/calculadoras/criptomoedas.svg\";\nimport { ReactComponent as BolsaIcon } from \"../../assets/calculadoras/bolsa-de-valores.svg\";\nimport { ReactComponent as ExteriorIcon } from \"../../assets/calculadoras/ativos-no-exterior.svg\";\nimport { ReactComponent as AutonomosIcon } from \"../../assets/icons/sidebar/autonomos.svg\";\nimport { IoChatbubblesOutline } from \"react-icons/io5\";\n\nexport const TabNavigator = () => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const { b3Authorized } = useB3Integration();\n const {\n user,\n chatOpen,\n chatNotificationQtt,\n setChatNotificationQtt,\n forceUpdateTabNavigator,\n } = useAuth();\n const { currentBroker, hasCriptoIntegration, hasExteriorIntegration } =\n useBroker();\n\n const [activeKey, setActiveKey] = useState(\"\");\n\n const menuItems = useMemo(\n () => [\n ...(user.user\n ? [\n {\n fixed: true,\n id: \"carteira\",\n key: \"/carteira\",\n label: \"Carteira\",\n icon: ,\n },\n ]\n : []),\n {\n id: \"bolsa\",\n key: \"/velotax/bolsa\",\n label: \"Bolsa\",\n icon: ,\n },\n // {\n // id: \"cripto\",\n // key: \"/velotax/cripto\",\n // label: \"Cripto\",\n // icon: ,\n // },\n {\n id: \"exterior\",\n key: \"/velotax/exterior\",\n label: \"Exterior\",\n icon: ,\n },\n // {\n // id: \"autonomos\",\n // key: \"/velotax/autonomos-historico\",\n // label: \"Carnê-Leão\",\n // icon: ,\n // },\n // {\n // id: \"imoveis\",\n // key: \"/velotax/imoveis\",\n // label: \"Imóveis\",\n // icon: ,\n // },\n ...(user.user && !isMobile()\n ? [\n {\n fixed: true,\n id: \"chat\",\n key: \"chat\",\n label: (\n <>\n Chat\n {chatNotificationQtt > 0 && (\n \n {chatNotificationQtt}\n \n )}\n \n ),\n icon: ,\n },\n ]\n : []),\n ],\n [user.user, chatNotificationQtt]\n );\n\n const visibleMenuItems = useMemo(() => {\n if (user.user) {\n const fixedItems = menuItems.filter((item) => item.fixed);\n const [home, chat] = [fixedItems[0], fixedItems.slice(-1)[0]];\n const menuActiveItems = menuItems.filter((item) => !item.fixed);\n const itemActiveIndex =\n menuActiveItems.length > 3\n ? menuActiveItems.findIndex((item) => pathname.includes(item.key))\n : -1;\n return [\n home,\n ...(itemActiveIndex > 2\n ? [...menuActiveItems.slice(0, 3), menuActiveItems[itemActiveIndex]]\n : [...menuActiveItems.slice(0, 4)]),\n ...(!isMobile() ? [chat] : []),\n ];\n } else {\n return menuItems;\n }\n }, [menuItems, pathname, user.user]);\n\n const setActiveKeyByPathname = useCallback(() => {\n const matchItem = menuItems\n .filter((item) => item.key !== \"/\")\n .find(\n (item) =>\n (item.key.includes(\"cripto\") && pathname.includes(\"crypto\")) ||\n pathname.includes(item.key)\n );\n setActiveKey(matchItem?.key || \"\");\n }, [menuItems, pathname]);\n\n useEffect(() => {\n if (pathname === \"/\") {\n setActiveKey(pathname);\n } else if (chatOpen) {\n setActiveKey(\"chat\");\n } else {\n setActiveKeyByPathname();\n }\n }, [pathname, chatOpen, forceUpdateTabNavigator, setActiveKeyByPathname]);\n\n useEffect(() => {\n const observer = new MutationObserver(function (mutations) {\n const mutation = mutations.find(\n (m) => (m.target as HTMLElement).id === \"chatbase-bubble-window\"\n );\n if (mutation) {\n if ((mutation.target as HTMLElement).style.display === \"none\") {\n setActiveKeyByPathname();\n }\n }\n });\n const chatbaseWindow = document.getElementById(\"chatbase-bubble-window\");\n if (chatbaseWindow) {\n observer.observe(chatbaseWindow, {\n attributes: true,\n attributeFilter: [\"style\"],\n });\n }\n }, [setActiveKeyByPathname]);\n\n return (\n \n {\n setActiveKey(e.key);\n const chatbaseWindow = document.getElementById(\n \"chatbase-bubble-window\"\n );\n if (!user.user) {\n const extension: Record = {\n bolsa: \"-integration\",\n cripto: \"-integrations\",\n exterior: \"-integrations\",\n autonomos: \"-cadastro\",\n imoveis: \"-cadastro\",\n };\n navigate(`${e.key}${extension[e.key.split(\"/\")[2]]}`);\n } else if (e.key === \"chat\") {\n document.getElementById(\"chatbase-bubble-button\")?.click();\n setChatNotificationQtt(0);\n if (chatbaseWindow?.style.display === \"none\") {\n setActiveKeyByPathname();\n }\n } else {\n if (chatbaseWindow) {\n chatbaseWindow.style.display = \"none\";\n }\n navigate(\n e.key === `/${currentBroker.path}/bolsa` &&\n !b3Authorized &&\n !user.user.skippedB3Integration\n ? `/${currentBroker.path}/bolsa-integration`\n : e.key === `/${currentBroker.path}/cripto` &&\n !hasCriptoIntegration\n ? `/${currentBroker.path}/cripto-integrations`\n : e.key === `/${currentBroker.path}/exterior` &&\n !hasExteriorIntegration\n ? `/${currentBroker.path}/exterior-integrations`\n : e.key\n );\n }\n }}\n >\n {visibleMenuItems.map((item) => (\n \n {item.label}\n \n ))}\n } onClick={() => {\n document.getElementById(\"chat-gpt-button\")?.click()\n }}>\n Chat\n \n \n {forceUpdateTabNavigator}\n \n );\n};\n","import clsx from \"clsx\";\nimport { useLocation } from \"react-router-dom\";\nimport React, { useEffect, useMemo } from \"react\";\nimport Header from \"../Header\";\nimport Sidebar from \"../Sidebar\";\nimport { Layout } from \"./styles\";\nimport { Page } from \"../../constants/brokers\";\nimport { TabNavigator } from \"../TabNavigator\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { useBroker } from \"../../contexts/BrokerContext\";\n\ninterface IPageWrapperProps {\n page?: string;\n overflow?: boolean;\n}\n\nconst PageWrapper: React.FC = ({ children, overflow }) => {\n const { pathname } = useLocation();\n const {\n user,\n b3Authorized,\n loadingSession,\n cameFromRegister,\n setShowPhoneModal,\n showIRPFAPPBanner,\n setCameFromRegister,\n } = useAuth();\n const {\n currentBroker,\n privateRoutes,\n integration,\n hasCriptoIntegration,\n hasExteriorIntegration,\n } = useBroker();\n\n useEffect(() => {\n const mainContent = document.getElementById(\"main-content\");\n\n function scrollEvent(e: Event) {\n const y = (e.target as HTMLDivElement).scrollTop;\n if (\n y > 100 &&\n user.user &&\n !loadingSession &&\n !user?.user?.cellphone &&\n cameFromRegister.phone &&\n !user?.user?.cellphoneFilled &&\n pathname.includes(\"historic\") &&\n (hasCriptoIntegration || hasExteriorIntegration || true)\n ) {\n // setShowPhoneModal(true);\n setCameFromRegister((data) => ({ ...data, phone: false }));\n }\n if (user?.user?.cellphone || user?.user?.cellphoneFilled) {\n mainContent?.removeEventListener(\"scroll\", scrollEvent);\n }\n }\n if (!user?.user?.cellphone) {\n mainContent?.addEventListener(\"scroll\", scrollEvent);\n }\n return () => {\n mainContent?.removeEventListener(\"scroll\", scrollEvent);\n };\n }, [\n pathname,\n user.user,\n b3Authorized,\n loadingSession,\n setShowPhoneModal,\n setCameFromRegister,\n hasCriptoIntegration,\n hasExteriorIntegration,\n cameFromRegister.phone,\n integration?.lastUpdate,\n ]);\n\n const currentPage = useMemo(\n () =>\n [\n ...privateRoutes,\n ...(currentBroker.pages.reduce(\n (acc, cur) => [...acc, cur, ...(cur.subPages ?? [])],\n [] as Page[]\n ) || []),\n ].find(\n (page) =>\n pathname ===\n (page.path.substring(0, 1) === \"/\" ? page.path : `/${page.path}`)\n ),\n [pathname, currentBroker, privateRoutes]\n );\n\n const hasHeader = !!currentPage?.header;\n const hasSidebar = !!currentPage?.sidebar;\n\n return (\n \n {hasSidebar && }\n \n {hasHeader &&
}\n \n {children}\n \n \n \n \n );\n};\n\nexport default PageWrapper;\n","import styled from \"styled-components\";\n\nexport const HeaderContainer = styled.header`\n z-index: 1;\n display: flex;\n column-gap: 32px;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n height: 96px;\n padding: 26px 48px;\n top: 0;\n position: fixed;\n border-bottom: 1px solid transparent;\n background-color: var(--velotax-background-color);\n box-shadow: 0px 8px 24px rgba(0, 0, 88, 0.08);\n\n &.showIRPFAPPBanner {\n position: absolute;\n }\n\n @media only screen and (max-device-width: 812px) {\n height: 80px;\n column-gap: 2px;\n padding: 13px 12px;\n }\n\n .buttons {\n display: flex;\n align-items: center;\n column-gap: 16px;\n\n .login-desc {\n margin-right: -14px;\n }\n\n .ant-btn-text {\n padding: 4px 12px;\n color: var(--ant-primary-color);\n }\n\n @media only screen and (max-device-width: 812px) {\n column-gap: 2px;\n }\n\n button {\n height: 40px;\n font-size: 16px;\n font-weight: 500;\n padding: 4px 8px;\n &.ant-btn-primary {\n border-color: var(--ant-error-color);\n background-color: var(--ant-error-color);\n }\n }\n }\n`;\n\nexport const Progress = styled.div<{ value: number }>`\n left: 0;\n height: 4px;\n bottom: -4px;\n position: absolute;\n transition: 300ms width;\n width: ${({ value }) => value}%;\n background-color: var(--ant-primary-color);\n`;\n","import { useLocation, useNavigate } from \"react-router-dom\";\nimport Button from \"../../Button\";\nimport { usePublicProgress } from \"..\";\nimport { isMobile } from \"../../../utils\";\nimport { HeaderContainer, Progress } from \"./styles\";\nimport { useAuth } from \"../../../contexts/AuthContext\";\nimport VelotaxLogo from \"../../../assets/velotax/velotax-light.svg\";\nimport DownloadModal from \"../../../components/ButtonDownload\";\nimport { useState } from \"react\";\n\nexport const Header: React.FC<{ className?: string }> = ({ className }) => {\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const { user, signOut } = useAuth();\n const { progress } = usePublicProgress();\n const notLogin = pathname !== \"/p/login\";\n const notRegister = pathname !== \"/p/cadastrar\";\n const queryParams = new URLSearchParams(window.location.search);\n const isAd = Boolean(queryParams.get(\"ad\"));\n const [modalVisible, setModalVisible] = useState(false);\n\n return (\n \n \n

\n \n \"Velotax\n \n

\n {!user.user ? (\n
\n {notLogin && (\n <>\n {!isMobile() && (\n Já possui uma conta?\n )}\n isAd ? navigate(\"/p/login?ad=true\") : navigate(\"/p/login\") } \n >\n {!isMobile() ? \"Faça seu login\" : \"Login\"}\n \n \n )}\n {notRegister && (\n setModalVisible(true)}\n >\n Começar\n \n )}\n
\n ) : (\n
\n \n
\n )}\n \n
\n );\n};\n","import styled from \"styled-components\";\n\nexport const Container = styled.div`\n height: 100%;\n &.showIRPFAPPBanner {\n position: relative;\n height: calc(100% - 64px);\n }\n`;\n","import { useLocation } from \"react-router-dom\";\nimport {\n Dispatch,\n SetStateAction,\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\nimport { Header } from \"./Header\";\nimport { Container } from \"./styles\";\n\ninterface IPublicProgressContext {\n progress: number;\n setProgress: Dispatch>;\n}\n\nconst PublicProgressContext = createContext(\n {} as IPublicProgressContext\n);\n\nexport const usePublicProgress = () => useContext(PublicProgressContext);\n\nexport const PublicWrapper: React.FC<{ className?: string }> = ({\n children,\n className,\n}) => {\n const { pathname } = useLocation();\n const [progress, setProgress] = useState(0);\n\n useEffect(() => {\n if (\n pathname !== \"/p/cadastrar\" &&\n pathname !== \"/velotax/bolsa-integration\"\n ) {\n setProgress(0);\n } else if (pathname === \"/velotax/bolsa-integration\") {\n setProgress(90);\n }\n }, [pathname]);\n\n return (\n \n \n
\n {children}\n \n \n );\n};\n","import clsx from \"clsx\";\nimport { ConfigProvider } from \"antd\";\nimport { Navigate, Outlet, Route, Routes as Switch } from \"react-router-dom\";\nimport PrivateRoute from \"./PrivateRoutes\";\nimport OnlyPublicRoute from \"./OnlyPublicRoute\";\nimport PageNotFound from \"../pages/PageNotFound\";\nimport { useAuth } from \"../contexts/AuthContext\";\nimport PageWrapper from \"../components/PageWrapper\";\nimport { useBroker } from \"../contexts/BrokerContext\";\nimport { PublicWrapper } from \"../components/PublicWrapper\";\n\nfunction Routes() {\n const { showIRPFAPPBanner } = useAuth();\n const {\n mixedRoutes,\n brokerRoutes,\n publicRoutes,\n privateRoutes,\n currentBroker,\n registerRoutes,\n privatePublicWrapperRoutes,\n } = useBroker();\n\n ConfigProvider.config({\n theme: {\n primaryColor: currentBroker?.colors.primary || \"#1634ff\",\n infoColor: currentBroker?.colors.secondary || \"#000058\",\n successColor: \"#00cc8b\",\n },\n });\n\n return (\n <>\n \n \n \n \n }\n >\n {publicRoutes.map((route) => (\n \n ))}\n } />\n } />\n \n\n \n \n \n }\n >\n {registerRoutes}\n \n\n \n \n \n }\n >\n {mixedRoutes}\n \n\n \n \n \n }\n >\n {privatePublicWrapperRoutes}\n \n\n \n \n \n }\n >\n {brokerRoutes}\n {privateRoutes.map((route) => (\n \n ))}\n } />\n } />\n \n\n } />\n } />\n \n \n );\n}\n\nexport default Routes;\n","import { createGlobalStyle } from \"styled-components\";\n\nexport default createGlobalStyle`\n body {\n --white: #ffffff;\n --black: #000000;\n --green: #00cc8b;\n --success: #00B67A;\n --dark-gray: #9AB;\n --light-gray: #ECF0F6;\n --medium-gray: #D0D8E0;\n --velotax-ghost: #f4f8fc;\n --velotax-ghost-white: #f4f8fc;\n --velotax-disabled: #626368;\n --velotax-font-color: #272a30;\n --velotax-font-color-ghost: #9099aa;\n --velotax-background-color: #ffffff;\n --velotax-white-smoke: #f7f7f7;\n --velotax-background-color-ghost: #eaecee;\n --velotax-shadow-primary: rgba(0, 0, 88, 0.24);\n --velotax-shadow-default: rgba(144, 153, 170, 0.16);\n --velotax-green-amount: #00cc8b;\n --velotax-red-prejuizo: #ff0000;\n --velotax-orange: #ff8400;\n --em-aberto: #9ABC;\n --velotax-ligh-gray: #ECF0F6;\n &.dark {\n --velotax-ghost: #101112;\n --velotax-ghost-white: #848688;\n --velotax-disabled: #525358;\n --velotax-font-color: #cacbcc;\n --velotax-font-color-ghost: #9099aa;\n --velotax-background-color: #1a1b1c;\n --velotax-background-color-ghost: #222222;\n --velotax-shadow-primary: rgba(0, 0, 88, 0.24);\n --velotax-green-amount: #00cc8b;\n --velotax-red-prejuizo: #ff0000;\n --velotax-shadow-default: rgba(144, 153, 170, 0.16);\n }\n }\n\n .ant-steps-item-content {\n /* width: 140px; */\n }\n\n .ant-drawer.modal-drawer.no-closable {\n .ant-drawer-content-wrapper {\n .ant-drawer-content {\n .ant-drawer-wrapper-body {\n .ant-drawer-header {\n .ant-drawer-header-title {\n flex-direction: row;\n }\n }\n }\n }\n }\n }\n\n .ant-drawer.modal-drawer,\n .ant-drawer.help-drawer {\n &.untitled {\n .ant-drawer-wrapper-body {\n padding-top: 0 !important;\n .ant-drawer-header {\n z-index: 2;\n height: 0 !important;\n padding: 0 !important;\n border-left: none !important;\n .ant-drawer-header-title {\n height: 0 !important;\n .ant-drawer-close {\n margin: 24px 24px 0 12px !important;\n }\n }\n }\n .ant-drawer-body {\n z-index: 1;\n overflow: unset;\n }\n }\n }\n .ant-drawer-content-wrapper {\n .ant-drawer-content {\n .ant-drawer-wrapper-body {\n padding-top: 32px;\n .ant-drawer-header {\n padding: 8px 24px;\n border-left: 4px solid var(--ant-primary-color);\n border-bottom: none;\n border-radius: 0;\n .ant-drawer-header-title {\n width: 100%;\n flex-direction: row-reverse;\n .ant-drawer-close {\n align-self: flex-start;\n margin: -24px 0 0 12px;\n .anticon.anticon-close {\n svg {\n width: 24px;\n height: 24px;\n fill: var(--ant-primary-color);\n }\n }\n }\n .ant-drawer-title {\n font-size: 18px;\n line-height: 24px;\n }\n }\n }\n .ant-drawer-body {\n iframe {\n max-width: 100%;\n }\n }\n }\n }\n }\n }\n\n @media only screen and (min-device-width: 813px) {\n .ant-drawer.modal-drawer,\n .ant-drawer.help-drawer {\n .ant-drawer-content-wrapper {\n .ant-drawer-content {\n .ant-drawer-wrapper-body {\n .ant-drawer-body {\n padding: 32px;\n }\n }\n }\n }\n }\n }\n\n * {\n margin: 0;\n padding: 0;\n outline: 0;\n box-sizing: border-box;\n }\n\n *:focus {\n outline: 0;\n }\n\n html, body, #root {\n height: 100%;\n overflow: hidden;\n color: var(--velotax-font-color);\n }\n\n body {\n -webkit-font-smoothing: antialiased;\n position: relative;\n width: 100% !important;\n background: var(--velotax-background-color);\n }\n\n * {\n font-family: 'Inter', sans-serif;\n letter-spacing: -0.24px;\n }\n\n body, input, button {\n font-size: 14px;\n }\n\n input, select, textarea, input:focus, select:focus, textarea:focus {\n font-size: 16px !important;\n }\n\n a {\n text-decoration: none;\n }\n\n ul {\n list-style: none;\n }\n\n button {\n cursor: pointer;\n background: transparent;\n border: 0;\n outline: 0;\n color: var(--white);\n letter-spacing: 0.4px;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-weight: 700;\n &.ant-typography {\n font-weight: 700;\n }\n color: var(--velotax-font-color);\n }\n\n body > iframe {\n display: none;\n }\n\n .full-width {\n width: 100%;\n }\n\n .column-center {\n text-align: center;\n }\n\n .min-siz-title {\n .ant-modal-content{\n .ant-modal-header{\n border-bottom: none;\n .ant-modal-title{\n font-size: 20px !important;\n font-weight: 500;\n line-height: 32px;\n }\n }\n }\n }\n .beauty-scrollbar.zero-scrollbar {\n &::-webkit-scrollbar,\n ::-webkit-scrollbar {\n width: 0;\n }\n }\n\n .beauty-scrollbar.slim-scrollbar {\n &::-webkit-scrollbar,\n ::-webkit-scrollbar {\n width: 4px;\n }\n }\n\n .ant-modal-wrap,\n .beauty-scrollbar {\n \n &::-webkit-scrollbar,\n ::-webkit-scrollbar {\n width: 8px;\n }\n\n &::-webkit-scrollbar-thumb,\n ::-webkit-scrollbar-thumb {\n border-radius: 0;\n background-color: var(--ant-primary-color);\n }\n\n &::-webkit-scrollbar-track,\n ::-webkit-scrollbar-track {\n background-color: var(--velotax-background-color-ghost);\n }\n }\n\n .input {\n\n .label {\n margin-bottom: 6px;\n }\n\n & + div {\n margin-top: 12px;\n }\n }\n\n .ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .error {\n margin: 12px auto -12px auto;\n color: var(--ant-error-color);\n }\n\n .loading-session {\n background: var(--ant-info-color);\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 12;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n width: 250px;\n padding: 20px;\n }\n\n .anticon {\n color: var(--white);\n\n svg {\n\n height: 40px;\n width: 40px;\n }\n }\n }\n\n .hiring-modal {\n .ant-typography {\n color: var(--velotax-font-color);\n }\n .ant-modal-title::before {\n display: none;\n }\n .hiring-modal-title {\n font-size: 32px;\n font-weight: bold;\n margin: 32px auto;\n text-align: center;\n color: var(--ant-primary-color);\n }\n }\n\n .ant-modal .malha-fina-button {\n width: 100% !important;\n }\n\n ::placeholder {\n color: var(--velotax-font-color-ghost) !important;\n }\n .ant-upload {\n color: var(--velotax-font-color);\n background-color: var(--velotax-ghost);\n border-color: var(--velotax-ghost-white) !important;\n }\n\n .ant-btn {\n text-shadow: none !important;\n }\n\n .ant-btn-text:focus,\n .ant-btn-text:hover {\n color: var(--velotax-font-color-ghost);\n }\n\n .ant-card,\n .ant-dropdown-menu,\n .ant-layout-sider-light,\n .ant-menu,\n .ant-select-dropdown,\n .ant-select-item {\n background-color: var(--velotax-background-color);\n }\n\n .anticon,\n .ant-btn-text,\n .ant-checkbox + span,\n .ant-divider-inner-text,\n .ant-dropdown-menu,\n .ant-dropdown-menu-item,\n .ant-empty,\n .ant-form,\n .ant-form-item-label > label,\n .ant-input,\n .ant-input-number-input,\n .ant-list,\n .ant-list-item,\n .ant-modal,\n .ant-modal-title,\n .ant-radio-wrapper,\n .ant-select,\n .ant-select-dropdown,\n .ant-select-item,\n .ant-tabs,\n .ant-upload-list-item-name,\n .ant-typography {\n color: var(--velotax-font-color);\n }\n .ant-tabs-tab.ant-tabs-tab-disabled {\n color: var(--velotax-disabled) !important;\n }\n .ant-input[disabled],\n .ant-select-disabled .ant-select-selector {\n color: var(--velotax-disabled) !important;\n background-color: var(--velotax-ghost);\n }\n .ant-select-item:hover,\n .ant-dropdown-menu-item:hover,\n .ant-select-item-option-active {\n background-color: var(--velotax-background-color-ghost) !important;\n }\n .ant-select-item-option-selected {\n color: var(--ant-primary-color) !important;\n background-color: var(--velotax-background-color-ghost) !important;\n }\n .ant-modal-footer,\n .ant-divider {\n border-color: var(--velotax-ghost-white);\n }\n .ant-btn.ant-btn-icon-only.ant-btn-primary {\n svg {\n fill: var(--white);\n }\n }\n .ant-btn.ant-btn-icon-only {\n svg {\n fill: var(--velotax-font-color);\n }\n }\n\n .ant-select.year-select {\n min-width: 120px;\n .ant-select-selector {\n border-color: var(--light-gray) !important;\n background-color: var(--velotax-background-color) !important;\n }\n .ant-select-arrow {\n top: calc(50% - 6px);\n width: 24px;\n height: 24px;\n }\n }\n\n .success-icon {\n svg {\n fill: var(--ant-success-color) !important;\n }\n }\n .error-icon {\n svg {\n fill: var(--ant-error-color) !important;\n }\n }\n\n .footer-secure {\n position: fixed;\n background: var(--white);\n height: 50px;\n bottom: 16px;\n right: 84px;\n z-index: 10;\n display: flex;\n justify-content: flex-end;\n padding: 0 10px;\n max-height: 50px;\n border-radius: 6px;\n box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.1);\n\n &.goleft {\n left: 32px;\n right: auto;\n }\n\n img {\n width: 70px;\n }\n }\n\n .footer-velotax {\n left: 0;\n right: auto;\n row-gap: 5px;\n display: flex;\n box-shadow: none;\n align-items: center;\n flex-direction: column;\n background-color: transparent;\n transform: scale(0.75) translateY(16px);\n opacity: 0.625;\n color: var(--velotax-font-color);\n :hover {\n color: var(--velotax-font-color);\n i {\n opacity: 0.8;\n }\n }\n\n img {\n width: 128px;\n }\n\n i {\n font-size: 12px;\n font-weight: 600;\n }\n }\n\n .poweredby-velotax {\n height: 64px;\n padding: 6px 10px;\n max-height: 64px;\n row-gap: 5px;\n display: flex;\n align-items: center;\n flex-direction: column;\n color: var(--velotax-font-color);\n :hover {\n color: var(--velotax-font-color);\n i {\n opacity: 0.8;\n }\n }\n \n &.sidebar {\n border-top: 1px solid var(--velotax-ghost);\n img {\n height: 20px;\n }\n i {\n font-size: 12px;\n font-weight: 600;\n }\n }\n }\n\n /**\n * ANT-RADIO\n */\n .ant-radio-group {\n display: flex;\n row-gap: 8px;\n flex-direction: column;\n\n .ant-radio-wrapper {\n font-size: 18px;\n\n .ant-radio {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n }\n\n .ant-radio-inner {\n width: 22px;\n height: 22px;\n border-width: 2px;\n\n &:after {\n top: 2px;\n left: 2px;\n width: 14px;\n height: 14px;\n border-radius: 8px;\n }\n }\n }\n }\n\n /**\n * ANT-INPUT\n */\n .ant-input {\n font-weight: 500;\n border-radius: 8px;\n border: 2px solid var(--velotax-ghost);\n background-color: var(--velotax-ghost);\n\n &:hover, &:focus {\n border-right-width: 2px !important;\n }\n\n &:focus {\n box-shadow: 0 0 0 4px var(--ant-primary-color-outline);\n }\n\n &[disabled] {\n cursor: default;\n border-color: var(--velotax-ghost);\n }\n\n &.ant-input-lg {\n height: 56px;\n }\n }\n\n .ant-form-item-has-error {\n .ant-input:not(.ant-input-disabled):not(.ant-input-borderless) {\n background-color: var(--velotax-ghost) !important;\n }\n\n .ant-input:not(.ant-input-disabled):not(.ant-input-borderless):focus {\n border-right-width: 2px !important;\n box-shadow: 0 0 0 4px var(--ant-error-color-outline) !important;\n }\n }\n\n .ant-form-item-explain {\n margin-top: 4px;\n }\n\n /**\n * ANT-INPUT-NUMBER\n */\n .ant-input-number {\n font-weight: 500;\n border-radius: 8px;\n border: 2px solid var(--velotax-ghost);\n background-color: var(--velotax-ghost);\n display: flex;\n align-items: center;\n\n &:hover {\n border-right-width: 2px !important;\n }\n\n &.ant-input-number-focused {\n border-right-width: 2px !important;\n border-color: var(--ant-primary-color);\n box-shadow: 0 0 0 4px var(--ant-primary-color-outline);\n }\n\n &.ant-input-number-lg {\n height: 56px;\n }\n\n &.ant-input-number-disabled,\n &.ant-input-number-disabled .ant-input-number-input {\n cursor: default;\n }\n\n .ant-input-number-handler-wrap {\n display: none;\n }\n\n .ant-input-number-input-wrap {\n .ant-input-number-input {\n font-size: 18px;\n font-weight: 500;\n }\n }\n }\n\n .ant-form-item-has-error {\n .ant-input-number:not([disabled]):hover,\n .ant-input-number-focused:not([disabled]) {\n background-color: var(--velotax-ghost-white) !important;\n border-right-width: 2px !important;\n border-color: var(--ant-error-color);\n box-shadow: 0 0 0 4px var(--ant-error-color-outline) !important;\n }\n }\n\n /**\n * ANT-SELECT\n */\n .ant-select {\n border-radius: 8px !important;\n\n &[disabled],\n &.ant-select-disabled,\n &.ant-select-disabled input,\n &.ant-select-disabled .ant-select-selector {\n cursor: default !important;\n }\n }\n\n .ant-select .ant-select-selector {\n border-radius: 8px !important;\n border: 2px solid var(--velotax-ghost) !important;\n background-color: var(--velotax-ghost) !important;\n .ant-select-selection-search, .ant-select-selection-item {\n display: flex;\n align-items: center;\n font-weight: 500 !important;\n }\n }\n\n .ant-select-focused.ant-select-open {\n box-shadow: none !important;\n\n .ant-select-selector {\n border-color: var(--ant-primary-color) !important;\n }\n }\n\n .ant-select:not(.ant-select-disabled):hover .ant-select-selector,\n .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border-right-width: 2px !important;\n box-shadow: 0 0 0 4px var(--ant-primary-color-outline) !important;\n }\n\n .ant-form-item-has-error {\n .ant-select:not(.ant-select-disabled):hover .ant-select-selector,\n .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {\n border-right-width: 2px !important;\n box-shadow: 0 0 0 4px var(--ant-error-color-outline) !important;\n }\n }\n\n .ant-select-lg, .ant-select-lg .ant-select-selector {\n height: 56px !important;\n\n .ant-select-selection-placeholder {\n display: flex;\n align-items: center;\n }\n }\n\n /**\n * ANT-DROPDOWN\n */\n .ant-dropdown,\n .ant-select-dropdown {\n border-radius: 8px;\n border: 2px solid var(--ant-primary-color);\n box-shadow: 0 0 0 4px var(--ant-primary-color-outline);\n\n .ant-select-item,\n .ant-dropdown-menu-item {\n font-size: 16px\n }\n\n .ant-dropdown-menu {\n border-radius: 8px;\n }\n }\n\n /**\n * ANT-MODAL\n */\n .ant-modal-root {\n .ant-modal {\n top: 32px;\n\n \n .ant-modal-header {\n border-bottom: none;\n padding: 32px 64px 0 32px;\n border-radius: 16px 16px 0 0;\n\n .ant-modal-title {\n font-size: 22px;\n position: relative;\n\n &::before {\n content: '';\n top: -4px;\n width: 4px;\n left: -32px;\n height: calc(100% + 8px);\n position: absolute;\n background-color: var(--ant-primary-color);\n }\n }\n }\n\n .ant-modal-content {\n border-radius: 16px;\n\n .ant-modal-close {\n top: 16px;\n right: 16px;\n\n .ant-modal-close-x {\n .anticon.anticon-close.ant-modal-close-icon {\n font-size: 20px;\n }\n }\n }\n\n .ant-modal-body {\n padding: 32px 32px 16px;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n width: 100% !important;\n max-width: calc(100% - 32px);\n margin: 0 16px;\n padding-bottom: 54px;\n }\n }\n }\n\n /**\n * ANT-TABLE\n */\n .ant-table-title + .ant-table-container {\n border-radius: 12px;\n }\n .ant-table,\n .ant-table-title,\n .ant-table-footer {\n color: var(--velotax-font-color);\n background-color: var(--velotax-background-color);\n }\n .ant-table-tbody > tr.ant-table-row:hover > td,\n .ant-table-tbody > tr > td.ant-table-cell-row-hover,\n .ant-table-tbody > tr.ant-table-placeholder:hover > td {\n background-color: var(--velotax-background-color-ghost);\n }\n\n .ant-table-title {\n font-weight: 600;\n padding: 16px 0;\n }\n\n .ant-table-container {\n border-radius: 12px;\n border: 1px solid var(--velotax-ghost-white);\n background-color: var(--velotax-background-color);\n\n .ant-table-content {\n border-radius: 8px;\n\n overflow-x: auto;\n @media only screen and (min-device-width: 813px) {\n &::-webkit-scrollbar,\n ::-webkit-scrollbar {\n height: 4px;\n }\n\n &::-webkit-scrollbar-thumb,\n ::-webkit-scrollbar-thumb {\n border-radius: 0;\n background-color: var(--ant-primary-color);\n }\n\n &::-webkit-scrollbar-track,\n ::-webkit-scrollbar-track {\n background-color: var(--velotax-background-color-ghost);\n }\n }\n\n .ant-table-thead {\n .ant-table-cell {\n color: var(--velotax-font-color);\n border-bottom-color: var(--velotax-ghost-white);\n background-color: var(--velotax-ghost);\n &::before {\n display: none;\n }\n\n &:first-child {\n border-radius: 12px 0 0 0;\n }\n\n &:last-child {\n border-radius: 0 12px 0 0;\n }\n }\n }\n\n .ant-table-tbody {\n .ant-table-cell {\n border-bottom-color: var(--velotax-ghost-white);\n }\n .ant-table-row:last-child {\n .ant-table-cell {\n border-bottom: none;\n\n &:first-child {\n border-radius: 0 0 0 12px;\n }\n\n &:last-child {\n border-radius: 0 0 12px 0;\n }\n }\n }\n }\n\n .ant-table-placeholder {\n .ant-table-cell {\n border-bottom: none;\n }\n }\n }\n\n .ant-table-row-error {\n .ant-table-cell {\n border-top: 1px solid;\n border-bottom: 1px solid !important;\n border-color: var(--ant-error-color) !important;\n\n &:first-of-type {\n border-left: 1px solid;\n }\n\n &:last-child {\n border-right: 1px solid;\n }\n }\n\n svg.error-icon {\n display: block;\n margin: 0 auto;\n fill: var(--ant-error-color);\n }\n }\n\n .ant-table-row-error + .ant-table-row-error {\n .ant-table-cell {\n border-top: none;\n }\n }\n }\n\n body.dark {\n .ant-table-container {\n .ant-table-content {\n .ant-table-thead {\n .ant-table-cell {\n background-color: var(--velotax-background-color-ghost);\n }\n }\n }\n }\n }\n\n /**\n * ANT-DESCRIPTIONS\n */\n .ant-descriptions.ant-descriptions-bordered {\n .ant-descriptions-view {\n border-radius: 8px;\n border-color: var(--velotax-background-color-ghost);\n\n tbody {\n .ant-descriptions-row {\n border-color: var(--velotax-background-color-ghost);\n .ant-descriptions-item-label {\n color: var(--velotax-font-color);\n background-color: var(--velotax-ghost);\n border-color: var(--velotax-background-color-ghost);\n }\n .ant-descriptions-item-content {\n background-color: var(--velotax-background-color);\n color: var(--velotax-font-color) !important;\n }\n }\n }\n }\n }\n\n /**\n * ANT-TABS\n */\n .ant-tabs {\n &.fillers-tabs {\n margin-top: -48px;\n\n .ant-tabs-nav {\n height: 32px;\n max-width: 600px;\n margin: 0 auto 16px;\n\n .ant-tabs-nav-wrap {\n justify-content: space-around;\n\n @media only screen and (max-device-width: 812px) {\n .ant-tabs-tab {\n display: none;\n &.ant-tabs-tab-active {\n display: inline-flex;\n }\n }\n }\n }\n }\n\n .ant-tabs-nav-operations {\n display: none;\n }\n }\n\n &.operations-tabs {\n margin-top: 0;\n overflow-x: auto;\n\n .ant-tabs-content-holder {\n min-width: 756px;\n }\n\n .ant-tabs-nav {\n margin: 0;\n height: auto;\n padding: 0 8px;\n min-width: 756px;\n max-width: 100%;\n\n .ant-tabs-nav-wrap {\n .ant-tabs-nav-list {\n width: 100%;\n }\n\n .ant-tabs-tab {\n display: inline-flex;\n @media only screen and (min-device-width: 813px) {\n width: calc(100% / 12);\n }\n }\n\n .ant-tabs-tab + .ant-tabs-tab {\n margin: 0 0 0 16px;\n }\n\n &:before {\n top: 4px;\n height: calc(100% - 8px);\n box-shadow: inset 10px 0 8px -10px rgb(0 0 0 / 8%);\n }\n }\n }\n\n .ant-tabs-nav-operations {\n display: flex;\n }\n }\n\n &.operations-report-tabs {\n margin-top: 0;\n\n .ant-tabs-nav {\n margin: 0;\n padding: 0;\n width: 64px;\n height: auto;\n\n .ant-tabs-tab {\n display: inline-flex !important;\n margin: 0 !important;\n }\n }\n\n .ant-tabs-nav-operations {\n display: flex;\n }\n }\n\n .ant-tabs-nav {\n margin: 0;\n\n &::before {\n display: none;\n }\n\n .ant-tabs-nav-wrap {\n .ant-tabs-nav-list {\n .ant-tabs-tab {\n .ant-tabs-tab-btn {\n font-weight: 500;\n }\n }\n\n .ant-tabs-tab-disabled {\n cursor: default;\n }\n\n .ant-tabs-ink-bar {\n max-width: 32px;\n }\n }\n }\n }\n\n .anticon svg {\n color: var(--ant-primary-color);\n }\n }\n\n /**\n * ANT-COLLAPSE\n */\n .ant-collapse,\n .ant-collapse.ant-collapse-borderless {\n background-color: transparent;\n /* background-color: var(--white); verificar */\n .ant-collapse-item {\n border-bottom: none;\n .ant-collapse-header {\n color: var(--velotax-font-color);\n }\n }\n }\n\n /**\n * ANT-LIST\n */\n .ant-list {\n &.ant-list-vertical {\n .ant-list-item {\n .ant-list-item-extra {\n text-align: right;\n }\n }\n }\n }\n .ant-list.ant-list-split {\n .ant-list-item {\n border-bottom-color: var(--velotax-background-color-ghost);\n }\n }\n .ant-list-empty-text {\n opacity: 0.75;\n padding: 16px 0;\n font-size: 13px;\n margin-left: -8px;\n white-space: nowrap;\n color: var(--velotax-font-color);\n }\n\n .ant-list-loading {\n .ant-spin-blur:after {\n opacity: 0;\n }\n }\n\n /**\n * ANT-STEPS\n */\n .ant-steps {\n .ant-steps-item {\n &.ant-steps-item-active .ant-steps-item-title {\n color: var(--ant-primary-color) !important;\n }\n &.ant-steps-item-disabled .ant-steps-item-title {\n color: var(--velotax-font-color-ghost) !important;\n }\n .ant-steps-item-title {\n color: var(--velotax-font-color) !important;\n }\n }\n .ant-steps-item-process\n > .ant-steps-item-container\n > .ant-steps-item-tail::after,\n .ant-steps-item-wait\n > .ant-steps-item-container\n > .ant-steps-item-tail::after {\n background: var(--velotax-background-color-ghost);\n }\n }\n\n /**\n * ANTICON-LOADING\n */\n .anticon.anticon-loading.anticon-spin {\n width: 24px;\n height: 24px;\n svg {\n width: 24px;\n height: 24px;\n }\n }\n\n /**\n * ANT-MESSAGE\n */\n .ant-message {\n .ant-message-notice {\n text-align: right;\n max-width: calc(100% - 8px);\n }\n }\n\n /**\n * ANT-PICKER\n */\n .ant-picker {\n display: flex;\n align-items: center;\n border: 2px solid var(--velotax-ghost);\n background-color: var(--velotax-ghost);\n &:hover {\n border-right-width: 2px !important;\n }\n &.ant-picker-large {\n height: 56px;\n border-radius: 8px;\n }\n &.ant-picker-focused {\n border-right-width: 2px !important;\n border-color: var(--ant-primary-color);\n box-shadow: 0 0 0 4px var(--ant-primary-color-outline);\n }\n &.ant-picker-disabled {\n background-color: var(--velotax-ghost);\n .ant-picker-input input {\n opacity: 0.75;\n }\n }\n .ant-picker-input input {\n color: var(--velotax-font-color);\n }\n }\n .ant-picker-suffix {\n svg {\n fill: var(--velotax-font-color);\n }\n }\n .ant-picker-dropdown {\n .ant-picker-panel {\n border-bottom: none;\n }\n .ant-picker-panel-container {\n * {\n color: var(--velotax-font-color);\n }\n border-radius: 8px;\n background-color: var(--velotax-background-color);\n border: 2px solid var(--velotax-background-color-ghost);\n .ant-picker-header {\n border-bottom-color: var(--velotax-background-color-ghost);\n }\n .ant-picker-body {\n padding: 8px 0;\n .ant-picker-content {\n width: 100%;\n .ant-picker-cell-inner {\n border-radius: 6px;\n border: 1px solid var(--velotax-background-color-ghost);\n }\n }\n }\n .ant-picker-footer {\n border-top-color: var(--velotax-background-color-ghost);\n }\n }\n .ant-picker-cell:hover:not(.ant-picker-cell-selected) .ant-picker-cell-inner {\n opacity: 0.45;\n background-color: var(--velotax-ghost) !important;\n }\n }\n\n body.dark .ant-picker-dropdown .ant-picker-panel-container {\n box-shadow: 0 3px 6px -4px #6666661E, 0 6px 16px 0 #66666614, 0 9px 28px 8px #6666660C;\n }\n\n .ant-picker-cell-disabled {\n opacity: 0.2;\n }\n\n .help-info-tooltip {\n .ant-tooltip-inner {\n background-color: #000D;\n }\n }\n\n .sample-payed::after,\n .sample-regular::after,\n .sample-pending::after,\n .sample-not-payed::after,\n .ant-picker-cell-inner.payed::after,\n .ant-picker-cell-inner.regular::after,\n .ant-picker-cell-inner.pending::after,\n .ant-picker-cell-inner.not-payed::after {\n content: \"\";\n top: -4px;\n right: -4px;\n position: absolute;\n width: 16px;\n height: 16px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--ant-primary-color);\n }\n .sample-payed::after,\n .sample-regular::after,\n .ant-picker-cell-inner.payed::after,\n .ant-picker-cell-inner.regular::after {\n background-color: var(--ant-success-color);\n }\n .sample-pending::after,\n .ant-picker-cell-inner.pending::after {\n background-color: var(--ant-error-color);\n }\n .sample-not-payed::after,\n .ant-picker-cell-inner.not-payed::after {\n background-color: var(--ant-warning-color);\n }\n .sample-payed,\n .sample-regular,\n .sample-pending,\n .sample-not-payed {\n position: relative;\n &::after {\n top: 11px;\n left: 0px;\n }\n span {\n margin-left: 24px;\n }\n }\n\n /**\n * ANT-UPLOAD\n */\n .ant-upload-text-icon {\n svg {\n fill: var(--ant-primary-color);\n }\n }\n\n .anticon.anticon-delete {\n svg {\n fill: var(--ant-error-color);\n }\n }\n\n .ant-upload-list-item .ant-upload-list-item-info {\n padding: 8px;\n height: 32px;\n border-radius: 8px;\n }\n .ant-upload-list-item:hover .ant-upload-list-item-info {\n background-color: var(--velotax-ghost);\n }\n\n .progress {\n height: 5px;\n z-index: 1;\n background: var(--ant-primary-color);\n position: fixed;\n -webkit-transition: width 0.6s ease-in-out;\n -moz-transition: width 0.6s ease-in-out;\n -o-transition: width 0.6s ease-in-out;\n transition: width 0.6s ease-in-out;\n }\n\n .xmovel-content.ant-collapse-item {\n border-top: none;\n margin-bottom: 16px;\n .ant-collapse-header {\n margin-bottom: 4px;\n border-radius: 8px !important;\n color: var(--velotax-font-color);\n background-color: var(--velotax-ghost-white) !important;\n }\n .ant-collapse-content > .ant-collapse-content-box {\n padding: 0;\n }\n .ant-descriptions-view {\n table {\n tbody {\n .ant-descriptions-row {\n .ant-descriptions-item-label {\n border-color: var(--velotax-background-color-ghost) !important;\n }\n .ant-descriptions-item-content {\n border-color: var(--velotax-background-color-ghost);\n padding: 8px 16px !important;\n }\n }\n }\n }\n }\n }\n body.dark {\n .xmovel-content.ant-collapse-item {\n .ant-collapse-header {\n background-color: var(--velotax-background-color-ghost) !important;\n }\n .ant-descriptions-view {\n border-color: var(--velotax-background-color-ghost) !important;\n table {\n tbody {\n .ant-descriptions-row {\n border-color: var(--velotax-disabled) !important;\n .ant-descriptions-item-label {\n border-color: var(--velotax-background-color-ghost) !important;\n background-color: var(--velotax-background-color-ghost) !important;\n }\n .ant-descriptions-item-content {\n border-color: var(--velotax-background-color-ghost);\n }\n }\n }\n }\n }\n }\n }\n\n @media only screen and (min-device-width: 813px) {\n iframe[style*=\"z-index: 987654321\"] {\n left: 280px !important;\n }\n }\n\n .exterior-mode {\n flex-direction: row;\n .ant-radio-wrapper {\n color: var(--velotax-font-color);\n }\n }\n\n .exterior-content-title {\n display: block;\n font-weight: 600;\n text-align: center;\n padding: 0 8px 4px;\n font-size: 1.125rem;\n color: var(--velotax-font-color);\n border-bottom: 2px solid var(--ant-primary-color);\n }\n\n .installments-select {\n width: 100%;\n text-transform: none !important;\n .installment-tax {\n text-align: right;\n font-size: 8px;\n line-height: 12px;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .installments-select {\n .installment-tax {\n text-align: left;\n font-size: 12px;\n }\n }\n .column-reverse {\n flex-direction: column-reverse;\n }\n .desc-content {\n .ant-form-item {\n margin: 0;\n }\n }\n\n #chatbase-bubble-button {\n display:none\n }\n #chatbase-bubble-window {\n top: 0;\n box-shadow: none !important;\n height: calc(100% - 64px) !important;\n }\n }\n\n .info-circle-red svg{\n fill: var(--ant-error-color);\n }\n\n .grecaptcha-badge {\n display: none !important;\n }\n\n .modalProventos {\n width: calc(100% - 128px) !important;\n }\n\n .notas-corretagem-historico-modal,\n .ant-modal.modal-drawer.modalProventos,\n .modal-drawer.modalProventos {\n .ant-modal-content {\n background-color: var(--white);\n .ant-modal-close {\n top: 8px;\n right: 8px;\n .anticon {\n color: var(--ant-primary-color);\n }\n }\n .ant-modal-header {\n padding: 64px 64px 32px;\n background-color: var(--white);\n .ant-modal-title {\n font-weight: 900;\n color: var(--velotax-font-color);\n }\n }\n .ant-modal-body {\n padding: 32px 64px 32px;\n }\n }\n }\n\n .ant-drawer.modal-drawer.modalProventos {\n .ant-drawer-content {\n background-color: var(--white) !important;\n .ant-drawer-wrapper-body {\n .ant-drawer-header {\n .ant-drawer-header-title {\n .ant-drawer-title {\n color: var(--velotax-font-color) !important;\n }\n }\n }\n }\n }\n }\n\n .filter-proventos-modal {\n .ant-typography {\n strong {\n font-weight: 700;\n }\n }\n }\n\n .filter-modal {\n .corretoras-allcheck {\n display: flex;\n margin-bottom: 4px;\n }\n }\n\n .no-transactions {\n width: auto !important;\n }\n\n .select-mui {\n width: 100% !important;\n height: 54px !important;\n background-color: var(--velotax-ghost) !important;\n border-radius: 8px !important;\n div {\n padding: 16px !important;\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .modal-drawer.modalProventos {\n width: 100% !important;\n }\n\n .no-transactions {\n font-size: 12px;\n text-align: center;\n white-space: nowrap;\n width: auto !important;\n }\n }\n`;\n","import axios from \"axios\";\n\nexport const chatApi = axios.create({\n baseURL:\n process.env.REACT_APP_AI_DASHBOARD_API_URL || \"http://localhost:4000\",\n});\n","import styled from \"styled-components\";\n\nexport const ChatButton = styled.div`\n position: fixed;\n width: 3.75rem;\n height: 3.75rem;\n right: 0.625rem;\n bottom: 0.625rem;\n z-index: 100;\n display: flex;\n cursor: pointer;\n user-select: none;\n border-radius: 2rem;\n align-items: center;\n justify-content: center;\n transition: 0.3s filter;\n background-color: #1634ff;\n :hover {\n filter: contrast(1.2);\n }\n :active {\n filter: contrast(1.5);\n }\n\n svg {\n width: 2rem;\n height: 2rem;\n stroke: white;\n margin-top: -0.25rem;\n }\n\n @media (max-device-width: 812px) {\n display: none;\n }\n`;\n\nexport const ChatWindow = styled.div`\n left: unset;\n right: 0.875rem;\n border: none;\n bottom: 80px;\n width: 458px;\n height: 85dvh;\n display: flex;\n position: fixed;\n user-select: none;\n max-height: 824px;\n border-radius: 8px;\n z-index: 2147483647;\n flex-direction: column;\n background-color: white;\n box-shadow: rgba(150, 150, 150, 0.2) 0 10px 30px 0,\n rgba(150, 150, 150, 0.2) 0 0 0 1px;\n\n &.hide,\n &.hidden {\n display: none;\n }\n\n .chat-header {\n height: 80px;\n padding: 1rem;\n display: flex;\n align-items: center;\n border-bottom: 1px solid #f0f0f0;\n\n h1 {\n color: #212121;\n }\n .chat-icon {\n display: flex;\n width: 2.5rem;\n height: 2.5rem;\n border-radius: 1.25rem;\n align-items: center;\n justify-content: center;\n background-color: #000058;\n\n svg {\n width: 1rem;\n height: 1.5rem;\n margin-left: 2px;\n }\n }\n\n .reset-icon,\n .close-icon {\n width: 32px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .reset-icon {\n cursor: pointer;\n margin-left: auto;\n margin-right: 0.5rem;\n transition: 0.3s opacity, 0.3s transform;\n :hover {\n opacity: 0.5;\n }\n svg {\n width: 1.25rem;\n height: 1.25rem;\n path {\n stroke: #212121;\n }\n }\n }\n .close-icon {\n cursor: pointer;\n transition: 0.3s opacity, 0.3s transform;\n :hover {\n opacity: 0.5;\n }\n svg {\n width: 2rem;\n height: 2rem;\n fill: #212121;\n }\n }\n\n h1 {\n font-size: 1.125rem;\n margin: 0 0 0 0.75rem;\n }\n }\n\n .chat-body {\n display: flex;\n flex: 1 1 100%;\n overflow-y: auto;\n scroll-behavior: smooth;\n\n .chat-body-conversation {\n width: 100%;\n flex: 1 1 0%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 1rem 1rem 0 1rem;\n\n .chat-body-white-space {\n width: 100%;\n min-height: 1rem;\n }\n\n .chat-msg {\n :first-of-type {\n margin-top: 0;\n }\n &.chat-msg-user {\n padding-right: 0;\n padding-left: 2.5rem;\n justify-content: flex-end;\n .chat-mgs-text {\n color: white;\n background-color: #2573e2;\n border-radius: 1.25rem 1.25rem 0.25rem 1.25rem;\n }\n }\n display: flex;\n margin-top: 1.25rem;\n padding-right: 2rem;\n align-items: flex-end;\n .chat-msg-icon {\n display: flex;\n width: 2rem;\n height: 2rem;\n min-width: 2rem;\n min-height: 2rem;\n border-radius: 1rem;\n align-items: center;\n margin-right: 0.5rem;\n justify-content: center;\n background-color: #000058;\n &.error {\n margin: 0 0.5rem 0 0;\n background-color: #ff4d4f;\n svg {\n margin: 0;\n fill: white;\n width: 1.5rem;\n }\n }\n svg {\n width: 0.75rem;\n height: 1.125rem;\n margin-left: 0.125rem;\n }\n }\n .chat-mgs-text {\n color: #212121;\n text-align: left;\n user-select: text;\n font-size: 0.875rem;\n line-height: 1.25rem;\n padding: 0.875rem 1rem;\n background-color: #f0f0f0;\n border-radius: 1.25rem 1.25rem 1.25rem 0.25rem;\n\n ol,\n ul {\n list-style-position: inside;\n }\n\n .anticon-loading,\n .anticon-loading svg {\n width: 1rem;\n height: 1rem;\n color: #1634ff;\n }\n }\n }\n }\n }\n\n .chat-footer {\n display: flex;\n margin-top: auto;\n flex-direction: column;\n justify-content: flex-end;\n border-top: 1px solid #f0f0f0;\n .chat-input-container {\n display: flex;\n align-items: flex-end;\n textarea {\n flex-grow: 1;\n padding: 0.75rem;\n min-height: 2rem;\n max-height: 10rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n margin: 0;\n border: none;\n resize: none;\n overflow-y: auto;\n border-radius: 0;\n pointer-events: auto;\n background-color: white;\n overflow-wrap: break-word;\n tab-size: 4;\n text-align: start;\n border-bottom-left-radius: 0.5rem;\n display: flex;\n color: #212121;\n }\n button {\n cursor: pointer;\n white-space: nowrap;\n align-items: center;\n display: inline-flex;\n justify-content: center;\n background-color: transparent;\n width: 2.25rem;\n height: 2.25rem;\n border-radius: 0.375rem;\n margin: 0.75rem 0.75rem 1rem;\n background-color: hsla(240, 5%, 96%, 0.9);\n :hover {\n filter: opacity(0.8);\n }\n :disabled {\n cursor: default;\n filter: grayscale(1) opacity(0.8);\n background-color: hsla(240, 5%, 96%, 0.9);\n }\n svg {\n fill: #1634ff;\n }\n }\n }\n }\n\n @media (max-device-width: 812px) {\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: calc(100vh - 63px);\n border-radius: 0;\n }\n`;","import clsx from \"clsx\";\nimport DOMPurify from \"dompurify\";\nimport { BsX } from \"react-icons/bs\";\nimport { GrPowerReset } from \"react-icons/gr\";\nimport { FaPaperPlane } from \"react-icons/fa\";\nimport { MdErrorOutline } from \"react-icons/md\";\nimport { LoadingOutlined } from \"@ant-design/icons\";\nimport { IoChatbubblesOutline } from \"react-icons/io5\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { chatApi } from \"../../services/chatApi\";\nimport { ChatButton, ChatWindow } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { ReactComponent as VelotaxIcon } from \"../../assets/velotax/veloicon.svg\";\n\ninterface Msg {\n user: \"velotax\" | \"user\";\n text: string;\n error?: boolean;\n}\n\ninterface APIChatMessage {\n userMessage: string;\n botResponse: string;\n formattedGptAnswer: string;\n createdAt: Date;\n}\n\nconst KEY = \"velochat.thread_id\";\nconst KEY_TIMESTAMP = \"velochat.timestamp\";\nconst USER_MESSAGE_MAX_LENGTH = 200;\nconst defaultMsg: Msg = {\n user: \"velotax\",\n text: \"Olá! Eu sou o assistente virtual da Velotax. Como posso te ajudar?\",\n};\n\nexport const ChatGPT = () => {\n const storage = localStorage;\n const { signed, user } = useAuth();\n const chatBodyRef = useRef(null);\n const textareaRef = useRef(null);\n\n const [msg, setMsg] = useState(\"\");\n const [show, setShow] = useState(false);\n const [loading, setLoading] = useState(false);\n const [scrolled, setScrolled] = useState(false);\n const [firstLoading, setFirstLoading] = useState(false);\n const [msgs, setMsgs] = useState([defaultMsg]);\n\n chatApi.defaults.headers.common[\"Authorization\"] = `Bearer ${user?.token}`;\n\n const hide =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\n const disabled =\n !msg.replace(/\\s/g, \"\").length || msg.length > USER_MESSAGE_MAX_LENGTH;\n\n const resetChat = () => {\n setMsg(\"\");\n setMsgs([defaultMsg]);\n storage.removeItem(KEY);\n storage.removeItem(KEY_TIMESTAMP);\n };\n\n const scrollToBottom = useCallback(() => {\n setTimeout(() => {\n chatBodyRef.current?.scrollTo({\n top: chatBodyRef.current?.scrollHeight,\n });\n }, 50);\n }, []);\n\n const after24H = useCallback(() => {\n try {\n const timestamp = storage.getItem(KEY_TIMESTAMP);\n if (\n timestamp &&\n new Date().getTime() >\n new Date(Number(timestamp)).getTime() + 24 * 60 * 60 * 1000\n ) {\n storage.removeItem(KEY);\n return true;\n }\n return false;\n } catch (err) {\n console.log(err);\n return true;\n }\n }, [storage]);\n\n const loadMsgs = useCallback(async () => {\n const threadId = storage.getItem(KEY);\n if (!threadId) return;\n if (after24H()) return;\n try {\n setFirstLoading(true);\n const { data } = await chatApi.get(\"/chat/user\", {\n params: { threadId },\n });\n if (data?.length > 0) {\n setMsgs([\n defaultMsg,\n ...data.reduce(\n (acc, cur) => [\n ...acc,\n { user: \"user\", text: cur.userMessage } as Msg,\n {\n user: \"velotax\",\n text: cur.formattedGptAnswer\n ? DOMPurify.sanitize(cur.formattedGptAnswer)\n : cur.botResponse,\n } as Msg,\n ],\n [] as Msg[]\n ),\n ]);\n }\n } catch {\n } finally {\n setFirstLoading(false);\n scrollToBottom();\n }\n }, [scrollToBottom, storage, after24H]);\n\n const sendMsg = async (text: string) => {\n setMsgs((msgs) => [...msgs, { user: \"user\", text }]);\n setLoading(true);\n scrollToBottom();\n setTimeout(() => setMsg(\"\"), 100);\n try {\n const threadId = storage.getItem(KEY);\n const { data } = await chatApi.post(\"/chat/user\", {\n userMessage: text,\n threadId,\n });\n setLoading(false);\n const now = new Date();\n storage.setItem(KEY, data.threadId);\n storage.setItem(\n KEY_TIMESTAMP,\n String(\n new Date(now.getFullYear(), now.getMonth(), now.getDate()).getTime()\n )\n );\n setMsgs((msgs) => [\n ...msgs,\n {\n user: \"velotax\",\n text: data.formattedGptAnswer\n ? DOMPurify.sanitize(data.formattedGptAnswer)\n : data.botResponse,\n },\n ]);\n } catch {\n setLoading(false);\n setMsgs((msgs) => [\n ...msgs,\n {\n error: true,\n user: \"velotax\",\n text: \"Não conseguimos responder sua mensagem. Tente novamente mais tarde!\",\n },\n ]);\n } finally {\n scrollToBottom();\n }\n };\n\n useEffect(() => {\n if (signed) {\n loadMsgs();\n }\n }, [signed, loadMsgs]);\n\n return signed ? (\n <>\n {\n setShow((show) => {\n if (!show && !scrolled) {\n setScrolled(true);\n scrollToBottom();\n }\n return !show;\n });\n }}\n >\n \n \n \n
\n
\n \n
\n

Assistente Velotax

\n
\n \n
\n
setShow(false)}>\n \n
\n
\n
\n
\n {firstLoading ? (\n <>\n ) : (\n msgs.map(({ user, text, error }, i) =>\n user === \"velotax\" ? (\n
\n \n {error ? : }\n \n \n
\n ) : (\n
\n {text}\n
\n )\n )\n )}\n {(loading || firstLoading) && (\n
\n
\n \n \n \n \n \n \n
\n
\n )}\n
\n
\n
\n
\n
\n {\n setMsg(e.target.value || \"\");\n const textarea = textareaRef.current;\n if (textarea) {\n textarea.style.height = \"auto\";\n textarea.style.height = `${textarea.scrollHeight}px`;\n }\n }}\n onKeyDown={(e) => {\n if (e.code === \"Enter\" && !disabled) {\n sendMsg(msg);\n }\n }}\n />\n {\n if (!disabled) {\n sendMsg(msg);\n }\n }}\n >\n \n \n
\n
\n \n \n ) : (\n <>\n );\n};\n","import { createGlobalStyle } from \"styled-components\";\n\nexport default createGlobalStyle`\n .velotax-container {\n display: flex;\n align-items: center;\n flex-direction: column;\n padding: 64px 32px 128px;\n\n .page-title-outside {\n width: 700px;\n margin: 0 auto;\n font-size: 2rem;\n font-weight: 700;\n line-height: 2.5rem;\n color: var(--velotax-font-color);\n }\n\n & > .ant-typography {\n width: 700px;\n display: block;\n color: var(--velotax-font-color);\n &.destak {\n font-weight: 700;\n font-size: 1rem;\n padding-left: 16px;\n line-height: 1.5rem;\n margin: 32px auto 24px;\n border-left: 4px solid var(--ant-primary-color);\n }\n }\n\n .velotax-content {\n width: 700px;\n padding: 48px;\n margin: 0 auto;\n border-radius: 16px;\n box-shadow: 0px 4px 8px 0px rgba(0, 0, 88, 0.08);\n background-color: var(--velotax-background-color);\n\n &.plano {\n margin-bottom: 48px;\n }\n\n &.velotax-content-transparent {\n padding: 0;\n border: none;\n box-shadow: none;\n margin: 24px auto 0;\n background-color: transparent;\n }\n\n &.historic {\n .anticon.anticon-loading.anticon-spin {\n width: 16px !important;\n height: 16px !important;\n svg {\n width: 16px !important;\n height: 16px !important;\n }\n }\n }\n }\n }\n\n h1.page-title {\n font-weight: 700;\n font-size: 1.5rem;\n line-height: 2rem;\n margin: 0 auto 4rem;\n color: var(--velotax-font-color);\n position: relative;\n &:before {\n content: \"\";\n position: absolute;\n top: 0;\n left: -48px;\n width: 6px;\n height: 100%;\n background-color: var(--ant-primary-color);\n }\n &:after {\n content: \"\";\n position: absolute;\n left: 0;\n width: 100%;\n height: 2px;\n bottom: -2rem;\n background-color: var(--light-gray);\n }\n &.imovel {\n svg {\n right: 0;\n top: 12px;\n cursor: pointer;\n position: absolute;\n }\n }\n }\n\n h2.subtitle-lined {\n display: flex;\n white-space: nowrap;\n align-items: center;\n width: 100%;\n font-weight: 700;\n font-size: 1.125rem;\n line-height: 1.5rem;\n margin: 3.5rem 0 1.5rem;\n span {\n margin-right: 16px;\n }\n &:after {\n content: \"\";\n height: 2px;\n flex-grow: 1;\n background-color: var(--light-gray);\n }\n }\n\n .ant-btn.ant-btn-primary.btn-premium {\n z-index: 1;\n right: -6px;\n font-size: 13px;\n position: absolute;\n top: calc(50% - 16px);\n border-radius: 4px 4px 0 4px;\n svg {\n width: 15px;\n height: 15px;\n }\n :after {\n content: \"\";\n width: 0;\n height: 0;\n right: -1px;\n bottom: -10px;\n position: absolute;\n border-left: 0 solid transparent;\n border-right: 6px solid transparent;\n border-top: 10px solid var(--ant-primary-color-active);\n }\n }\n\n .btn-contratar-plano-historic {\n top: 0;\n right: 0;\n height: 40px;\n position: absolute;\n }\n\n @media only screen and (max-device-width: 812px) {\n .velotax-container {\n padding: 0;\n min-height: 100%;\n background-color: var(--velotax-background-color);\n\n .page-title-outside {\n width: 100%;\n font-size: 1.5rem;\n line-height: 2rem;\n padding: 24px 24px 0;\n }\n\n & > .ant-typography {\n width: 100%;\n &.destak {\n margin: 16px 0;\n font-size: 14px;\n line-height: 20px;\n padding-left: 20px;\n padding-right: 24px;\n }\n }\n\n .velotax-content {\n width: 100%;\n padding: 24px 24px 64px;\n border-radius: 0;\n box-shadow: none;\n\n &.plano {\n margin-bottom: -24px;\n }\n\n &.velotax-content-transparent {\n padding: 24px;\n margin: 0 auto;\n border-top: 1px solid var(--velotax-background-color-ghost);\n }\n }\n }\n\n h1.page-title {\n width: 100%;\n font-size: 1.5rem;\n line-height: 2rem;\n margin: 0 auto 1.75rem;\n &:before {\n left: -24px;\n }\n &:after {\n display: none;\n }\n &.imovel {\n font-size: 1.125rem;\n svg {\n top: 6px;\n }\n }\n }\n\n h2.subtitle-lined {\n font-size: 1.125rem;\n line-height: 1.5rem;\n margin: 3rem 0 1.5rem;\n }\n\n .ant-btn.ant-btn-primary.btn-premium {\n right: -6px;\n font-size: 11px;\n svg {\n width: 13px;\n height: 13px;\n }\n }\n\n .ant-btn.ant-btn-primary.btn-contratar-plano-historic {\n display: none;\n }\n }\n`;\n","import { createGlobalStyle } from \"styled-components\";\n\nexport default createGlobalStyle`\n .ant-drawer.plan-drawer-modal {\n .ant-drawer-content-wrapper {\n .ant-drawer-content {\n background-color: var(--light-gray);\n .ant-drawer-wrapper-body {\n padding-top: 24px;\n .ant-drawer-header {\n padding: 8px 24px;\n background-color: var(--light-gray);\n .ant-drawer-header-title {\n .ant-drawer-close {\n margin: -8px 0 0 12px;\n }\n .ant-drawer-title {\n font-weight: 800;\n p {\n margin: 0;\n }\n }\n }\n }\n .ant-drawer-body {\n overflow: unset;\n padding: 8px 24px 48px;\n }\n }\n }\n }\n }\n\n .ant-modal.plan-drawer-modal {\n .ant-modal-content {\n background-color: var(--light-gray);\n .ant-modal-header {\n padding: 48px 64px 0;\n background-color: var(--light-gray);\n .ant-modal-title {\n &:before {\n left: -64px;\n }\n font-weight: 800;\n line-height: 40px;\n font-size: 1.75rem;\n }\n }\n .ant-modal-body {\n padding: 8px 64px 48px;\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .plan-drawer-modal {\n .ant-modal-title,\n .ant-drawer-title {\n font-size: 1.5rem !important;\n }\n }\n }\n`;\n","import styled, { css } from \"styled-components\";\n\nexport const PIPContainer = styled.div<{ show: boolean }>`\n top: 0;\n left: 0;\n position: fixed;\n z-index: 9999999999999;\n\n ${({ show }) =>\n show\n ? css`\n display: block;\n `\n : css`\n display: none;\n `}\n\n .react-draggable {\n border-radius: 8px;\n box-shadow: 0px 8px 24px rgba(0, 0, 88, 0.08);\n background-color: var(--velotax-background-color);\n border: 2px solid var(--velotax-background-color-ghost);\n .header {\n display: flex;\n column-gap: 16px;\n height: 32px;\n padding: 0 8px;\n .handler {\n flex-grow: 1;\n row-gap: 4px;\n display: flex;\n align-items: center;\n flex-direction: column;\n justify-content: center;\n span {\n display: block;\n height: 1px;\n width: 100%;\n background-color: var(--velotax-background-color-ghost);\n }\n }\n }\n .iframe-content {\n margin: 0 auto;\n padding: 0 8px 8px;\n width: calc(100% - 16px);\n height: calc(100% - 48px);\n iframe {\n width: 100%;\n height: 100%;\n }\n }\n .placeholder {\n position: absolute;\n width: calc(100% - 32px);\n height: calc(100% - 44px);\n background-color: black;\n opacity: 0.4;\n }\n }\n`;\n","import { Rnd } from \"react-rnd\";\nimport { useState } from \"react\";\nimport { AiOutlineClose } from \"react-icons/ai\";\nimport Button from \"../Button\";\nimport { PIPContainer } from \"./styles\";\n\ninterface PIPProps {\n src: string;\n show: boolean;\n handleClose: () => void;\n}\n\nconst closeTagNames = [\"path\", \"svg\", \"button\"];\n\nexport const PIP = ({ src, show, handleClose }: PIPProps) => {\n const [pip, setPip] = useState({ dragging: false });\n return (\n \n {\n if (closeTagNames.includes((e.target as HTMLElement)?.tagName)) {\n handleClose();\n }\n setPip((pip) => ({ ...pip, dragging: true }));\n }}\n onDragStop={(e, d) => {\n setPip((pip) => ({\n ...pip,\n dragging: false,\n }));\n }}\n >\n
\n
\n \n \n \n
\n
\n
\n {pip.dragging &&
}\n {show && (\n \n )}\n
\n \n \n );\n};\n","import {\n createContext,\n Dispatch,\n SetStateAction,\n useContext,\n useState,\n} from \"react\";\nimport { PIP } from \"../components/Pip\";\nimport { useAuth } from \"./AuthContext\";\n\ninterface IPIP {\n src: string;\n show: boolean;\n}\n\ninterface IPIPContext {\n pip: IPIP;\n setPip: Dispatch>;\n}\n\nexport const PIPContext = createContext({} as IPIPContext);\n\nexport const PIPProvider: React.FC = ({ children }) => {\n const { user } = useAuth();\n const [pip, setPip] = useState({ src: \"\", show: false });\n\n return (\n \n {children}\n {user && (\n setPip((pip) => ({ ...pip, show: false }))}\n />\n )}\n \n );\n};\n\nexport const usePIP = () => useContext(PIPContext);\n","import React from \"react\";\nimport { PIPProvider } from \"./PIPContext\";\nimport { AuthProvider } from \"./AuthContext\";\nimport { BrokerProvider } from \"./BrokerContext\";\nimport { HistoryProvider } from \"./HistoryContext\";\nimport { CarteiraProvider } from \"./CarteiraContext\";\nimport { UploadDecProvider } from \"./UploadDecContext\";\nimport { NotificationProvider } from \"./NotificationContext\";\nimport { B3IntegrationProvider } from \"./B3IntegrationContext\";\nimport { OldTransactionsProvider } from \"./OldTransactionsContext\";\nimport { TransferenciaCustodiaProvider } from \"./TransferenciaCustodiaContext\";\nimport { WebSocketProvider } from \"./Notification.context\";\n\nconst ContextWrapper: React.FC = ({ children }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default ContextWrapper;\n","import { createGlobalStyle } from \"styled-components\";\n\nexport default createGlobalStyle`\n .velotax-historic-list.ant-list.ant-list-split {\n padding: 0;\n margin: 32px 0 0;\n .ant-spin-nested-loading {\n .ant-spin-container {\n .ant-list-items {\n .ant-list-item {\n padding: 0;\n border-radius: 8px;\n margin-bottom: 16px;\n position: relative;\n border: 2px solid var(--light-gray);\n .ant-list-item-meta {\n .ant-list-item-meta-content {\n .ant-list-item-meta-title {\n margin: 0;\n height: 48px;\n display: flex;\n font-size: 1rem;\n font-weight: 700;\n padding: 12px 24px;\n line-height: 1.5rem;\n align-items: center;\n justify-content: space-between;\n color: var(--velotax-font-color);\n background-color: var(--light-gray);\n .ant-switch {\n &:not(.ant-switch-checked) {\n padding-right: 6px;\n }\n &.ant-switch-checked {\n padding-left: 6px;\n background-color: var(--ant-success-color);\n }\n }\n }\n .ant-list-item-meta-description {\n padding: 16px 24px;\n color: var(--velotax-font-color);\n .ant-space.ant-space-vertical {\n gap: 2px !important;\n .ant-space-item {\n .ant-typography {\n & > span {\n width: 120px;\n display: inline-block;\n }\n strong {\n font-weight: 700;\n word-spacing: 2px;\n }\n }\n .tax-value {\n font-weight: 700;\n word-spacing: 2px;\n letter-spacing: -1px;\n color: var(--velotax-font-color);\n }\n .no-plan-imposto-a-pagar {\n display: flex;\n align-items: baseline;\n .ant-btn {\n padding: 0;\n height: 24px;\n font-size: 14px;\n font-weight: 600;\n display: inline-flex;\n strong {\n color: blue;\n display: flex;\n font-weight: 500;\n align-items: center;\n word-spacing: -0.5px;\n }\n }\n }\n }\n }\n }\n }\n }\n .ant-list-item-action {\n right: 16px;\n display: flex;\n margin-left: 24px;\n position: absolute;\n top: calc(50% + 6px);\n li + li {\n margin-left: 8px;\n }\n & > li {\n padding: 0;\n color: var(--velotax-font-color);\n .ant-btn-primary {\n height: 36px;\n padding: 4px 24px;\n border-radius: 4px;\n }\n .ant-btn-link {\n height: 36px;\n border-radius: 4px;\n background-color: var(--velotax-ghost);\n &.ant-btn-icon-only {\n width: 36px;\n }\n :hover {\n opacity: 0.7;\n }\n svg {\n stroke-width: 0.3px;\n fill: var(--ant-primary-color);\n }\n }\n .ant-list-item-action-split {\n opacity: 0;\n }\n }\n }\n }\n }\n }\n }\n }\n\n @media only screen and (max-device-width: 812px) {\n .velotax-historic-list.ant-list.ant-list-split {\n .ant-spin-nested-loading {\n .ant-spin-container {\n .ant-list-items {\n .ant-list-item {\n flex-wrap: nowrap;\n align-items: unset;\n flex-direction: column;\n justify-content: unset;\n .ant-list-item-meta {\n .ant-list-item-meta-content {\n .ant-list-item-meta-title {\n padding: 12px 16px;\n }\n .ant-list-item-meta-description {\n padding: 16px;\n .ant-space.ant-space-vertical {\n width: 100%;\n .ant-space-item {\n .ant-typography {\n & > * {\n width: 50%;\n text-align: right;\n display: inline-block;\n }\n .tax-value {\n text-align: right;\n }\n span + span {\n text-align: right;\n }\n & > span {\n width: 50%;\n text-align: left;\n }\n }\n .no-plan-imposto-a-pagar {\n flex-wrap: nowrap;\n white-space: nowrap;\n .ant-btn {\n display: flex;\n margin-left: 4px;\n padding: 0 !important;\n justify-content: end;\n }\n }\n }\n }\n }\n }\n }\n .ant-list-item-action {\n top: unset;\n right: unset;\n margin-left: 0;\n position: relative;\n justify-content: end;\n padding: 8px 12px;\n border-top: 2px solid var(--velotax-background-color-ghost);\n .ant-btn-primary {\n width: 100%;\n }\n }\n }\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport { Result, Row } from \"antd\";\nimport { ErrorBoundary } from \"@rollbar/react\";\nimport Button from \"../Button\";\nimport { Container } from \"../../pages/PageNotFound\";\nimport { ReactComponent as Veloicon } from \"../../assets/velotax/veloicon.svg\";\n\nconst FallbackUI = () => (\n \n }\n title=\"Erro inesperado\"\n subTitle=\"Um erro inesperado ocorreu\"\n extra={\n \n (window.location.href = \"/\")}\n >\n Volte para o app\n \n \n }\n />\n \n);\n\nconst ErrorBoundaryRollbar: React.FC = ({ children }) => (\n {children}\n);\n\nexport default ErrorBoundaryRollbar;\n","import styled from \"styled-components\";\n\nexport const SupportButton = styled.div`\n position: fixed;\n width: 3rem;\n height: 3rem;\n right: 0.625rem;\n top: 0.625rem;\n z-index: 100;\n display: flex;\n cursor: pointer;\n user-select: none;\n color: black;\n border-radius: 2rem;\n align-items: center;\n justify-content: center;\n transition: 0.3s filter;\n :hover {\n filter: contrast(1.2);\n }\n :active {\n filter: contrast(1.5);\n }\n\n svg {\n width: 1.5rem;\n height: 1.5rem;\n stroke: white;\n margin-top: -0.25rem;\n }\n\n &.hide {\n display: none;\n }\n\n @media (max-device-width: 812px) {\n display: none;\n }\n`;","import { SupportButton } from \"./styles\";\nimport { useAuth } from \"../../contexts/AuthContext\";\nimport { QuestionCircleOutlined } from \"@ant-design/icons\";\nimport { isMobile } from \"../../utils\";\nimport { useState } from \"react\";\n\nexport const Support = () => {\n const { signed, user } = useAuth();\n const [loadingLogin, setLoadingLogin] = useState(false);\n\n const loginInSupport = async (cpf: string) => {\n try {\n setLoadingLogin(true);\n const token = localStorage.getItem(\"@VeloTax:token\");\n setLoadingLogin(false);\n const urlSupportSSO = process.env.REACT_APP_SUPPORT_URL ? `${process.env.REACT_APP_SUPPORT_URL}p/sso/${token}` : `http://localhost:3000/p/sso/${token}`;\n window.open(\n urlSupportSSO,\n isMobile() ? \"_self\" : \"_blank\"\n );\n } catch (err) {\n setLoadingLogin(false);\n }\n };\n\n\n return signed ? (\n <>\n {\n loginInSupport(user.user.cpf);\n }}\n >\n \n \n \n ) : (\n <>\n );\n};","import { ConfigProvider } from \"antd\";\nimport ptBR from \"antd/lib/locale/pt_BR\";\nimport { Provider } from \"@rollbar/react\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\";\nimport Routes from \"./routes\";\nimport GlobalStyles from \"./styles/global\";\nimport { ChatGPT } from \"./components/ChatGPT\";\nimport ContainerStyles from \"./styles/container\";\nimport PlanModalStyles from \"./styles/plan-modal\";\nimport ContextWrapper from \"./contexts/ContextWrapper\";\nimport HistoricListStyles from \"./styles/historic-list\";\nimport ErrorBoundaryRollbar from \"./components/ErrorBoundary\";\nimport { Support } from \"./components/Support\";\n\nfunction App() {\n const { host } = window.location;\n const isDev = host.includes(\"localhost\") || host.includes(\"dev\");\n const rollbarConfig = {\n accessToken: \"30ca0272bd6e40e0bd69c225fa9e2c64\",\n captureUncaught: true,\n captureUnhandledRejections: true,\n payload: {\n environment: isDev ? \"development\" : \"production\",\n },\n };\n\n return (\n \n \n \n \"Nenhum dado encontrado\"}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import { useEffect } from \"react\";\nimport { useAuth } from \"../../contexts/AuthContext\";\n\nconst GoogleTagManagerHead = () => {\n const { isIOSAPP } = useAuth();\n useEffect(() => {\n if (process.env.REACT_APP_NODE_ENV === \"prd\" && !isIOSAPP) {\n // const scriptElement = document.createElement(\"script\");\n // scriptElement.innerHTML = `\n // (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n // new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n // j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n // 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n // })(window,document,'script','dataLayer','GTM-M4QZ393');\n // `;\n // document.head.appendChild(scriptElement);\n }\n }, [isIOSAPP]);\n\n return null;\n};\n\nexport default GoogleTagManagerHead;\n","import { useEffect } from \"react\";\nimport { useAuth } from \"../../contexts/AuthContext\";\n\nconst GoogleTagManagerNoScript = () => {\n const { isIOSAPP } = useAuth();\n useEffect(() => {\n if (process.env.REACT_APP_NODE_ENV === \"prd\" && !isIOSAPP) {\n // const noscriptElement = document.createElement('noscript');\n // const iframeElement = document.createElement('iframe');\n // iframeElement.src = 'https://www.googletagmanager.com/ns.html?id=GTM-M4QZ393';\n // iframeElement.height = '0';\n // iframeElement.width = '0';\n // iframeElement.style.display = 'none';\n // iframeElement.style.visibility = 'hidden';\n // noscriptElement.appendChild(iframeElement);\n // document.body.appendChild(noscriptElement);\n }\n }, [isIOSAPP]);\n\n return null;\n};\n\nexport default GoogleTagManagerNoScript;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport \"antd/dist/antd.variable.min.css\";\nimport \"react-credit-cards/es/styles-compiled.css\";\nimport GoogleTagManagerHead from \"./components/GoogleTagManagerHead\";\nimport GoogleTagManagerBody from \"./components/GoogleTagManagerBody\";\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}